diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 3a58ff3b9e..083b0261a5 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -9,16 +9,16 @@ Inputs to improvement? [Open an issue](https://github.com/agershun/alasql/issues **All contributions are much welcome and greatly appreciated(!)** -1. Fork the repo here on Github -0. Clone your forked repo and install dependencies `git clone https://github.com/MYUSERNAME/alasql/ && cd alasql && npm install` -0. Please work with the code from the develop branch `git checkout develop` -0. Add a test for the issue: Copy `test/test000.js` and replace `000` with a new number. -0. Impelement a test that reflects the issue. -0. Run `npm test` to verify only the new test fails -0. Implement your contributions in `src/` -0. Run `npm test` and verify all tests are OK -0. Commit changes to git and push to your forked repo -0. Click "Create Pull-request" when looking at your forked repo on Github +- Fork the repo here on Github +- Clone your forked repo and install dependencies `git clone https://github.com/MYUSERNAME/alasql/ && cd alasql && npm install` +- Please work with the code from the develop branch `git checkout develop` +- Add a test for the issue: Copy `test/test000.js` and replace `000` with a new number. +- Impelement a test that reflects the issue. +- Run `npm test` to verify only the new test fails +- Implement your contributions in `src/` +- Run `npm test` and verify all tests are OK +- Commit changes to git and push to your forked repo +- Click "Create Pull-request" when looking at your forked repo on Github _Please note that `npm test` will compile from `src/` before running tests_ diff --git a/.gitignore b/.gitignore index 3cc1875a25..30ba72980b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,6 @@ node_modules/ npm-debug.log site/ test/test604.json +test/test251.xlsx .versions .npm/ diff --git a/dist/alasql-echo.js b/dist/alasql-echo.js index f2282fd1c3..d595819f54 100644 --- a/dist/alasql-echo.js +++ b/dist/alasql-echo.js @@ -1,18 +1,18 @@ -// Plugin sample - -var yy = alasql.yy; - -yy.Echo = function (params) { return yy.extend(this, params); } -yy.Echo.prototype.toString = function() { - var s = 'TEST '+this.expr.toString(); - return s; -} - -yy.Echo.prototype.execute = function (databaseid, params, cb) { -// var self = this; - // console.log(76336,this.expr.toJS()); - var fn = new Function('params, alasql','return '+this.expr.toJS()); - var res = fn(params, alasql); - if(cb) res = cb(res); - return res; +// Plugin sample + +var yy = alasql.yy; + +yy.Echo = function (params) { return yy.extend(this, params); } +yy.Echo.prototype.toString = function() { + var s = 'TEST '+this.expr.toString(); + return s; +} + +yy.Echo.prototype.execute = function (databaseid, params, cb) { +// var self = this; + // console.log(76336,this.expr.toJS()); + var fn = new Function('params, alasql','return '+this.expr.toJS()); + var res = fn(params, alasql); + if(cb) res = cb(res); + return res; } \ No newline at end of file diff --git a/dist/alasql-md.js b/dist/alasql-md.js deleted file mode 100644 index d0728eadc6..0000000000 --- a/dist/alasql-md.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - Markdown export functions from the result table - @function - @param {string} filename - @param {object} opts - @param {array} data - @param {array} columns - @param {callback} cb - @return {number} - -*/ -alasql.into.MD = function(filename, opts, data, columns, cb) { - - // If columns is empty then generate columns - if(columns.length == 0 && data.length > 0) { - columns = Object.keys(data[0]).map(function(columnid){return {columnid:columnid}}); - }; - - // If one parameter then filename is opts - if(typeof filename == 'object') { - opts = filename; - filename = undefined; - }; - - /** @todo Add columns and lines generation */ - - /** @type {number} */ - var res = data.length; - /** @type {string} */ - var s = ''; - if(data.length > 0) { - var key = columns[0].columnid; - s += data.map(function(d){ - return d[key]; - }).join('\n'); - } - - // Save file - res = alasql.utils.saveFile(filename,s); - // Process callback - if(cb) res = cb(res); - return res; -}; diff --git a/dist/alasql-prolog.js b/dist/alasql-prolog.js index b7e3dd286f..0e66c9ef05 100644 --- a/dist/alasql-prolog.js +++ b/dist/alasql-prolog.js @@ -1,40 +1,40 @@ -// Prolog plugin - -var yy = alasql.yy; - -yy.Term = function (params) { return yy.extend(this, params); } -yy.Term.prototype.toString = function() { - var s = this.termid; - if(this.args && this.args.length > 0) { - s += '('+this.args.map(function(arg){ - return arg.toString(); - })+')'; - } - return s; -}; - -yy.AddRule = function (params) { return yy.extend(this, params); } -yy.AddRule.prototype.toString = function() { - var s = ''; - if(this.left) s += this.left.toString(); - s += ':-'; - s += this.right.map(function(r){return r.toString()}).join(','); - return s; -}; - -yy.AddRule.prototype.execute = function (databaseid, params, cb) { -// var self = this; -// console.log(this.expr.toJS()); -// var fn = new Function('params, alasql','return '+this.expr.toJS()); -// var res = fn(params, alasql); - var res = 1; - var objects = alasql.databases[databaseid].objects; - var rule = {}; - if(!this.left) { - this.right.forEach(function(term){ - rule.$class = term.termid; - }); - } - if(cb) res = cb(res); - return res; +// Prolog plugin + +var yy = alasql.yy; + +yy.Term = function (params) { return yy.extend(this, params); } +yy.Term.prototype.toString = function() { + var s = this.termid; + if(this.args && this.args.length > 0) { + s += '('+this.args.map(function(arg){ + return arg.toString(); + })+')'; + } + return s; +}; + +yy.AddRule = function (params) { return yy.extend(this, params); } +yy.AddRule.prototype.toString = function() { + var s = ''; + if(this.left) s += this.left.toString(); + s += ':-'; + s += this.right.map(function(r){return r.toString()}).join(','); + return s; +}; + +yy.AddRule.prototype.execute = function (databaseid, params, cb) { +// var self = this; +// console.log(this.expr.toJS()); +// var fn = new Function('params, alasql','return '+this.expr.toJS()); +// var res = fn(params, alasql); + var res = 1; + var objects = alasql.databases[databaseid].objects; + var rule = {}; + if(!this.left) { + this.right.forEach(function(term){ + rule.$class = term.termid; + }); + } + if(cb) res = cb(res); + return res; }; \ No newline at end of file diff --git a/dist/alasql-worker.js b/dist/alasql-worker.js index 4737febb2c..2f74e98b17 100755 --- a/dist/alasql-worker.js +++ b/dist/alasql-worker.js @@ -1,245 +1,245 @@ -//! AlaSQL v0.4.11-develop-d00d3b02undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT -/* -@module alasql -@version 0.4.11-develop-d00d3b02undefined - -AlaSQL - JavaScript SQL database -© 2014-2016 Andrey Gershun & Mathias Rangel Wulff - -@license -The MIT License (MIT) - -Copyright 2014-2016 Andrey Gershun (agershun@gmail.com) & Mathias Rangel Wulff (m@rawu.dk) - -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. -*/ - -/* -// -// AlaSQL Workker -// Date: 13.04.2014 -// (c) 2014-2015, Andrey Gershun -// -*/ -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - define([], factory); - } else if (typeof exports === 'object') { - module.exports = factory(); - } else { - root.alasql = factory(); - } -}(this, function () { - -/** - Main procedure for worker - @function - @param {string} sql SQL statement - @param {object} params List of parameters (can be omitted) - @param {callback} cb Callback function - @return {object} Query result -*/ -function alasql(sql,params,cb){ - - params = params||[]; - - // Avoid setting params if not needed even with callback - if(typeof params === 'function'){ - scope = cb; - cb = params; - params = []; - } - - if(typeof params !== 'object'){ - params = [params]; - } - - // Increase last request id - var id = alasql.lastid++; - // Save callback - alasql.buffer[id] = cb; - // Send a message to worker - alasql.webworker.postMessage({id:id,sql:sql,params:params}); -} - - -alasql.options = {}; -alasql.options.progress = function(){}; - -isArray = function(obj){ - return "[object Array]"===Object.prototype.toString.call(obj); -} - -alasql.promise = function() { - throw new Error('Please include a Promise/A+ library'); -} - -// From src/18promise.js -if(typeof Promise !== "undefined"){ - var promiseExec = function(sql, params, counterStep, counterTotal){ - return new Promise(function(resolve, reject){ - alasql(sql, params, function(data,err) { - if(err) { - reject(err); - } else { - if (counterStep && counterTotal && alasql.options.progress !== false) { - alasql.options.progress(counterStep, counterTotal); - } - resolve(data); - } - }); - }); - } - - var promiseAll = function(sqlParamsArray){ - if(sqlParamsArray.length<1){ - return ; - } - - var active, sql, params; - - var execArray = []; - - for (var i = 0; i < sqlParamsArray.length; i++) { - active = sqlParamsArray[i]; - - if(typeof active === 'string'){ - active = [active]; - } - - if(!isArray(active) || active.length<1 || 2 1) { - var sql = - 'REQUIRE ' + - paths - .map(function(p) { - return '"' + p + '"'; - }) - .join(','); - alasql(sql, [], cb); - } - } else if (path === false) { - delete alasql.webworker; - return; - } - }; -} - - -/* WebWorker */ -/** @type {number} */ -alasql.lastid = 0; - -/** @type {object} */ -alasql.buffer = {}; - -alasql.worker(); - -return alasql; -})); +//! AlaSQL v0.4.11-update-dependencies-ac1eccc0undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT +/* +@module alasql +@version 0.4.11-update-dependencies-ac1eccc0undefined + +AlaSQL - JavaScript SQL database +© 2014-2016 Andrey Gershun & Mathias Rangel Wulff + +@license +The MIT License (MIT) + +Copyright 2014-2016 Andrey Gershun (agershun@gmail.com) & Mathias Rangel Wulff (m@rawu.dk) + +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. +*/ + +/* +// +// AlaSQL Workker +// Date: 13.04.2014 +// (c) 2014-2015, Andrey Gershun +// +*/ +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + define([], factory); + } else if (typeof exports === 'object') { + module.exports = factory(); + } else { + root.alasql = factory(); + } +}(this, function () { + +/** + Main procedure for worker + @function + @param {string} sql SQL statement + @param {object} params List of parameters (can be omitted) + @param {callback} cb Callback function + @return {object} Query result +*/ +function alasql(sql,params,cb){ + + params = params||[]; + + // Avoid setting params if not needed even with callback + if(typeof params === 'function'){ + scope = cb; + cb = params; + params = []; + } + + if(typeof params !== 'object'){ + params = [params]; + } + + // Increase last request id + var id = alasql.lastid++; + // Save callback + alasql.buffer[id] = cb; + // Send a message to worker + alasql.webworker.postMessage({id:id,sql:sql,params:params}); +} + + +alasql.options = {}; +alasql.options.progress = function(){}; + +isArray = function(obj){ + return "[object Array]"===Object.prototype.toString.call(obj); +} + +alasql.promise = function() { + throw new Error('Please include a Promise/A+ library'); +} + +// From src/18promise.js +if(typeof Promise !== "undefined"){ + var promiseExec = function(sql, params, counterStep, counterTotal){ + return new Promise(function(resolve, reject){ + alasql(sql, params, function(data,err) { + if(err) { + reject(err); + } else { + if (counterStep && counterTotal && alasql.options.progress !== false) { + alasql.options.progress(counterStep, counterTotal); + } + resolve(data); + } + }); + }); + } + + var promiseAll = function(sqlParamsArray){ + if(sqlParamsArray.length<1){ + return ; + } + + var active, sql, params; + + var execArray = []; + + for (var i = 0; i < sqlParamsArray.length; i++) { + active = sqlParamsArray[i]; + + if(typeof active === 'string'){ + active = [active]; + } + + if(!isArray(active) || active.length<1 || 2 1) { + var sql = + 'REQUIRE ' + + paths + .map(function(p) { + return '"' + p + '"'; + }) + .join(','); + alasql(sql, [], cb); + } + } else if (path === false) { + delete alasql.webworker; + return; + } + }; +} + + +/* WebWorker */ +/** @type {number} */ +alasql.lastid = 0; + +/** @type {object} */ +alasql.buffer = {}; + +alasql.worker(); + +return alasql; +})); diff --git a/dist/alasql-worker.min.js b/dist/alasql-worker.min.js index ab6048961d..c5c27cfee9 100755 --- a/dist/alasql-worker.min.js +++ b/dist/alasql-worker.min.js @@ -1,2 +1,2 @@ -//! AlaSQL v0.4.11-develop-d00d3b02undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT -!function(r,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():r.alasql=e()}(this,function(){function r(e,t,o){t=t||[],"function"==typeof t&&(scope=o,o=t,t=[]),"object"!=typeof t&&(t=[t]);var n=r.lastid++;r.buffer[n]=o,r.webworker.postMessage({id:n,sql:e,params:t})}if(r.options={},r.options.progress=function(){},isArray=function(r){return"[object Array]"===Object.prototype.toString.call(r)},r.promise=function(){throw new Error("Please include a Promise/A+ library")},"undefined"!=typeof Promise){var e=function(e,t,o,n){return new Promise(function(s,i){r(e,t,function(e,t){t?i(t):(o&&n&&!1!==r.options.progress&&r.options.progress(o,n),s(e))})})},t=function(r){if(!(r.length<1)){for(var t,o,n,s=[],i=0;i1){r("REQUIRE "+t.map(function(r){return'"'+r+'"'}).join(","),[],o)}}else if(!1===e)return void delete r.webworker}),r.lastid=0,r.buffer={},r.worker(),r}); \ No newline at end of file +//! AlaSQL v0.4.11-update-dependencies-ac1eccc0undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT +!function(r,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():r.alasql=e()}(this,function(){function a(r,e,t){"function"==typeof(e=e||[])&&(scope=t,t=e,e=[]),"object"!=typeof e&&(e=[e]);var o=a.lastid++;a.buffer[o]=t,a.webworker.postMessage({id:o,sql:r,params:e})}if(a.options={},a.options.progress=function(){},isArray=function(r){return"[object Array]"===Object.prototype.toString.call(r)},a.promise=function(){throw new Error("Please include a Promise/A+ library")},"undefined"!=typeof Promise){function i(r,e,n,s){return new Promise(function(t,o){a(r,e,function(r,e){e?o(e):(n&&s&&!1!==a.options.progress&&a.options.progress(n,s),t(r))})})}a.promise=function(r,e){if("undefined"==typeof Promise)throw new Error("Please include a Promise/A+ library");if("string"==typeof r)return i(r,e);if(!isArray(r)||r.length<1||void 0!==e)throw new Error("Error in .promise parameters");return function(r){if(!(r.length<1)){for(var e,t,o,n=[],s=0;s { - then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => U | Thenable): Thenable; - then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => void): Thenable; - catch(onRejected?: (error: any) => U | Thenable): Thenable; - } - - // see https://github.com/agershun/alasql/wiki/User%20Defined%20Functions - interface userDefinedFunction { - (x: any): any; - } - interface userDefinedFunctionLookUp { - [x: string]: userDefinedFunction; - } - // see https://github.com/agershun/alasql/wiki/User%20Defined%20Functions - interface userAggregator { - (value: any, accumulator: any, stage: number): any; - } - interface userAggregatorLookUp { - [x: string]: userAggregator; - } - - interface AlaSQL { - options: AlaSQLOptions; - error: Error; - (sql: any, params?: any, cb?: AlaSQLCallback, scope?: any): any; - parse(sql: any): AlaSQLAST; - promise(sql: any, params?: any): Thenable; - fn: userDefinedFunctionLookUp; - aggr: userAggregatorLookUp; - autoval(tablename: string, colname: string, getNext?:boolean): number; - yy:{}; - setXLSX(xlsxlib: typeof xlsx): void; - } -} - -declare var alasql: alaSQLSpace.AlaSQL; -declare module 'alasql' { - export = alasql; -} +// Project: https://github.com/agershun/alasql + +import * as xlsx from "xlsx"; + +declare namespace alaSQLSpace { + interface AlaSQLCallback { + (data?: any, err?: Error): void; + } + + interface AlaSQLOptions { + errorlog: boolean; + valueof: boolean; + dropifnotexists: boolean; // drop database in any case + datetimeformat: string; // how to handle DATE and DATETIME types + casesensitive: boolean; // table and column names are case sensitive and converted to lower-case + logtarget: string; // target for log. Values: 'console', 'output', 'id' of html tag + logprompt: boolean; // print SQL at log + modifier: any; // values: RECORDSET, VALUE, ROW, COLUMN, MATRIX, TEXTSTRING, INDEX + columnlookup: number; // how many rows to lookup to define columns + autovertex: boolean; // create vertex if not found + usedbo: boolean; // use dbo as current database (for partial T-SQL comaptibility) + autocommit: boolean; // the AUTOCOMMIT ON | OFF + cache: boolean; // use cache + nocount: boolean; // for SET NOCOUNT OFF + nan: boolean; // check for NaN and convert it to undefined + angularjs: boolean; + tsql: boolean; + mysql: boolean; + postgres: boolean; + oracle: boolean; + sqlite: boolean; + orientdb: boolean; + } + + // compiled Statement + interface AlaSQLStatement { + (params?: any, cb?: AlaSQLCallback, scope?: any): any; + } + + // abstract Syntax Tree + interface AlaSQLAST { + compile(databaseid: string): AlaSQLStatement; + } + + // https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/es6-promise/es6-promise.d.ts + interface Thenable { + then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => U | Thenable): Thenable; + then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => void): Thenable; + catch(onRejected?: (error: any) => U | Thenable): Thenable; + } + + // see https://github.com/agershun/alasql/wiki/User%20Defined%20Functions + interface userDefinedFunction { + (x: any): any; + } + interface userDefinedFunctionLookUp { + [x: string]: userDefinedFunction; + } + // see https://github.com/agershun/alasql/wiki/User%20Defined%20Functions + interface userAggregator { + (value: any, accumulator: any, stage: number): any; + } + interface userAggregatorLookUp { + [x: string]: userAggregator; + } + + interface AlaSQL { + options: AlaSQLOptions; + error: Error; + (sql: any, params?: any, cb?: AlaSQLCallback, scope?: any): any; + parse(sql: any): AlaSQLAST; + promise(sql: any, params?: any): Thenable; + fn: userDefinedFunctionLookUp; + aggr: userAggregatorLookUp; + autoval(tablename: string, colname: string, getNext?:boolean): number; + yy:{}; + setXLSX(xlsxlib: typeof xlsx): void; + } +} + +declare var alasql: alaSQLSpace.AlaSQL; +declare module 'alasql' { + export = alasql; +} diff --git a/dist/alasql.fs.js b/dist/alasql.fs.js index c6d3016d65..77ef275c48 100755 --- a/dist/alasql.fs.js +++ b/dist/alasql.fs.js @@ -1,3151 +1,3152 @@ -//! AlaSQL v0.4.11-develop-d00d3b02undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT -/* -@module alasql -@version 0.4.11-develop-d00d3b02undefined - -AlaSQL - JavaScript SQL database -© 2014-2016 Andrey Gershun & Mathias Rangel Wulff - -@license -The MIT License (MIT) - -Copyright 2014-2016 Andrey Gershun (agershun@gmail.com) & Mathias Rangel Wulff (m@rawu.dk) - -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. -*/ - -/* eslint-disable */ - -"use strict"; - -/** - @fileoverview AlaSQL JavaScript SQL library - @see http://github.com/agershun/alasql -*/ - -/** - Callback from statement - @callback statement-callback - @param {object} data Result data -*/ - -/** - UMD envelope for AlaSQL -*/ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - define([], factory); - } else if (typeof exports === 'object') { - /** alasql main function */ - module.exports = factory(); - } else { - root.alasql = factory(); - } -}(this, function () { - -/** - AlaSQL - Main Alasql class - @function - @param {string|function|object} sql - SQL-statement or data object for fuent interface - @param {object} params - SQL parameters - @param {function} cb - callback function - @param {object} scope - Scope for nested queries - @return {any} - Result data object - - @example - Standard sync call: - alasql('CREATE TABLE one'); - Query: - var res = alasql('SELECT * FROM one'); - Call with parameters: - var res = alasql('SELECT * FROM ?',[data]); - Standard async call with callback function: - alasql('SELECT * FROM ?',[data],function(res){ - console.log(data); - }); - Call with scope for subquery (to pass common values): - var scope = {one:{a:2,b;20}} - alasql('SELECT * FROM ? two WHERE two.a = one.a',[data],null,scope); - Call for fluent interface with data object: - alasql(data).Where(function(x){return x.a == 10}).exec(); - Call for fluent interface without data object: - alasql().From(data).Where(function(x){return x.a == 10}).exec(); - */ - -var alasql = function(sql, params, cb, scope) { - - params = params||[]; - - if(typeof importScripts !== 'function' && alasql.webworker) { - var id = alasql.lastid++; - alasql.buffer[id] = cb; - alasql.webworker.postMessage({id:id,sql:sql,params:params}); - return; - } - - if(arguments.length === 0) { - // Without arguments - Fluent interface - return new yy.Select({ - columns:[new yy.Column({columnid:'*'})], - from: [new yy.ParamValue({param:0})] - }); - } else if(arguments.length === 1){ - // Access promise notation without using `.promise(...)` - if(sql.constructor === Array){ - return alasql.promise(sql); - } - } - // Avoid setting params if not needed even with callback - if(typeof params === 'function'){ - scope = cb; - cb = params; - params = []; - } - - if(typeof params !== 'object'){ - params = [params]; - } - - // Standard interface - // alasql('#sql'); - if(typeof sql === 'string' && sql[0]==='#' && typeof document === "object") { - sql = document.querySelector(sql).textContent; - } else if(typeof sql === 'object' && sql instanceof HTMLElement) { - sql = sql.textContent; - } else if(typeof sql === 'function') { - // to run multiline functions - sql = sql.toString(); - sql = (/\/\*([\S\s]+)\*\//m.exec(sql) || ['','Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function.'])[1]; - } - // Run SQL - return alasql.exec(sql, params, cb, scope); -}; - -/** - Current version of alasql - @constant {string} -*/ -alasql.version = '0.4.11-develop-d00d3b02undefined'; - -/** - Debug flag - @type {boolean} -*/ -alasql.debug = undefined; // Initial debug variable - -/*only-for-browser/* -var require = function(){return null}; // as alasqlparser.js is generated, we can not "remove" referenses to -var __dirname = ''; -//*/ - -/* parser generated by jison 0.4.18 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var alasqlparser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,13],$V1=[1,104],$V2=[1,102],$V3=[1,103],$V4=[1,6],$V5=[1,42],$V6=[1,79],$V7=[1,76],$V8=[1,94],$V9=[1,93],$Va=[1,69],$Vb=[1,101],$Vc=[1,85],$Vd=[1,64],$Ve=[1,71],$Vf=[1,84],$Vg=[1,66],$Vh=[1,70],$Vi=[1,68],$Vj=[1,61],$Vk=[1,74],$Vl=[1,62],$Vm=[1,67],$Vn=[1,83],$Vo=[1,77],$Vp=[1,86],$Vq=[1,87],$Vr=[1,81],$Vs=[1,82],$Vt=[1,80],$Vu=[1,88],$Vv=[1,89],$Vw=[1,90],$Vx=[1,91],$Vy=[1,92],$Vz=[1,98],$VA=[1,65],$VB=[1,78],$VC=[1,72],$VD=[1,96],$VE=[1,97],$VF=[1,63],$VG=[1,73],$VH=[1,108],$VI=[1,107],$VJ=[10,306,602,764],$VK=[10,306,310,602,764],$VL=[1,115],$VM=[1,116],$VN=[1,117],$VO=[1,118],$VP=[1,119],$VQ=[130,353,410],$VR=[1,127],$VS=[1,126],$VT=[1,134],$VU=[1,164],$VV=[1,175],$VW=[1,178],$VX=[1,173],$VY=[1,181],$VZ=[1,185],$V_=[1,160],$V$=[1,182],$V01=[1,169],$V11=[1,171],$V21=[1,174],$V31=[1,183],$V41=[1,166],$V51=[1,193],$V61=[1,188],$V71=[1,189],$V81=[1,194],$V91=[1,195],$Va1=[1,196],$Vb1=[1,197],$Vc1=[1,198],$Vd1=[1,199],$Ve1=[1,200],$Vf1=[1,201],$Vg1=[1,202],$Vh1=[1,176],$Vi1=[1,177],$Vj1=[1,179],$Vk1=[1,180],$Vl1=[1,186],$Vm1=[1,192],$Vn1=[1,184],$Vo1=[1,187],$Vp1=[1,172],$Vq1=[1,170],$Vr1=[1,191],$Vs1=[1,203],$Vt1=[2,4,5],$Vu1=[2,471],$Vv1=[1,206],$Vw1=[1,211],$Vx1=[1,220],$Vy1=[1,216],$Vz1=[10,72,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VA1=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$VB1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC1=[1,249],$VD1=[1,256],$VE1=[1,265],$VF1=[1,270],$VG1=[1,269],$VH1=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VI1=[2,162],$VJ1=[1,281],$VK1=[10,74,78,306,310,505,602,764],$VL1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,302,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,344,356,368,369,370,373,374,386,389,396,400,401,402,403,404,405,406,408,409,417,418,420,424,426,433,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,514,515,516,517,602,764],$VM1=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VN1=[1,562],$VO1=[1,564],$VP1=[2,503],$VQ1=[1,569],$VR1=[1,580],$VS1=[1,583],$VT1=[1,584],$VU1=[10,78,89,132,137,146,189,296,306,310,470,602,764],$VV1=[10,74,306,310,602,764],$VW1=[2,567],$VX1=[1,602],$VY1=[2,4,5,156],$VZ1=[1,640],$V_1=[1,612],$V$1=[1,646],$V02=[1,647],$V12=[1,620],$V22=[1,631],$V32=[1,618],$V42=[1,626],$V52=[1,619],$V62=[1,627],$V72=[1,629],$V82=[1,621],$V92=[1,622],$Va2=[1,641],$Vb2=[1,638],$Vc2=[1,639],$Vd2=[1,615],$Ve2=[1,617],$Vf2=[1,609],$Vg2=[1,610],$Vh2=[1,611],$Vi2=[1,613],$Vj2=[1,614],$Vk2=[1,616],$Vl2=[1,623],$Vm2=[1,624],$Vn2=[1,628],$Vo2=[1,630],$Vp2=[1,632],$Vq2=[1,633],$Vr2=[1,634],$Vs2=[1,635],$Vt2=[1,636],$Vu2=[1,642],$Vv2=[1,643],$Vw2=[1,644],$Vx2=[1,645],$Vy2=[2,287],$Vz2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA2=[2,359],$VB2=[1,668],$VC2=[1,678],$VD2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE2=[1,694],$VF2=[1,703],$VG2=[1,702],$VH2=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VI2=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2=[2,202],$VK2=[1,725],$VL2=[10,72,78,93,98,118,128,162,168,169,183,232,245,247,306,310,602,764],$VM2=[2,163],$VN2=[1,728],$VO2=[2,4,5,112],$VP2=[1,741],$VQ2=[1,760],$VR2=[1,740],$VS2=[1,739],$VT2=[1,734],$VU2=[1,735],$VV2=[1,737],$VW2=[1,738],$VX2=[1,742],$VY2=[1,743],$VZ2=[1,744],$V_2=[1,745],$V$2=[1,746],$V03=[1,747],$V13=[1,748],$V23=[1,749],$V33=[1,750],$V43=[1,751],$V53=[1,752],$V63=[1,753],$V73=[1,754],$V83=[1,755],$V93=[1,756],$Va3=[1,757],$Vb3=[1,759],$Vc3=[1,761],$Vd3=[1,762],$Ve3=[1,763],$Vf3=[1,764],$Vg3=[1,765],$Vh3=[1,766],$Vi3=[1,767],$Vj3=[1,770],$Vk3=[1,771],$Vl3=[1,772],$Vm3=[1,773],$Vn3=[1,774],$Vo3=[1,775],$Vp3=[1,776],$Vq3=[1,777],$Vr3=[1,778],$Vs3=[1,779],$Vt3=[1,780],$Vu3=[1,781],$Vv3=[74,89,189],$Vw3=[10,74,78,154,187,230,297,306,310,343,356,368,369,373,374,602,764],$Vx3=[1,798],$Vy3=[10,74,78,300,306,310,602,764],$Vz3=[1,799],$VA3=[1,805],$VB3=[1,806],$VC3=[1,810],$VD3=[10,74,78,306,310,602,764],$VE3=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,312,317,420,424],$VF3=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VG3=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VH3=[2,4,5,132,296],$VI3=[1,844],$VJ3=[10,74,76,78,306,310,602,764],$VK3=[2,738],$VL3=[10,74,76,78,132,139,141,145,152,306,310,420,424,602,764],$VM3=[2,1161],$VN3=[10,74,76,78,139,141,145,152,306,310,420,424,602,764],$VO3=[10,74,76,78,139,141,145,306,310,420,424,602,764],$VP3=[10,74,78,139,141,306,310,602,764],$VQ3=[10,78,89,132,146,189,296,306,310,470,602,764],$VR3=[335,338,339],$VS3=[2,764],$VT3=[1,869],$VU3=[1,870],$VV3=[1,871],$VW3=[1,872],$VX3=[1,881],$VY3=[1,880],$VZ3=[164,166,334],$V_3=[2,444],$V$3=[1,936],$V04=[2,4,5,77,131,156,290,291,292,293],$V14=[1,951],$V24=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V34=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V44=[2,375],$V54=[1,958],$V64=[306,308,310],$V74=[74,300],$V84=[74,300,426],$V94=[1,965],$Va4=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vb4=[74,426],$Vc4=[1,978],$Vd4=[1,977],$Ve4=[1,984],$Vf4=[10,72,78,93,98,118,128,162,168,169,232,245,247,306,310,602,764],$Vg4=[1,1010],$Vh4=[10,72,78,306,310,602,764],$Vi4=[1,1016],$Vj4=[1,1017],$Vk4=[1,1018],$Vl4=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$Vm4=[1,1068],$Vn4=[1,1067],$Vo4=[1,1081],$Vp4=[1,1080],$Vq4=[1,1088],$Vr4=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$Vs4=[1,1119],$Vt4=[10,78,89,146,189,306,310,470,602,764],$Vu4=[1,1139],$Vv4=[1,1138],$Vw4=[1,1137],$Vx4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy4=[1,1153],$Vz4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VB4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VD4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE4=[2,406],$VF4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VG4=[2,285],$VH4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VI4=[10,78,306,310,602,764],$VJ4=[1,1189],$VK4=[10,77,78,143,145,152,181,302,306,310,420,424,602,764],$VL4=[10,74,78,306,308,310,464,602,764],$VM4=[1,1200],$VN4=[10,72,78,118,128,162,168,169,232,245,247,306,310,602,764],$VO4=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VP4=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VQ4=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VR4=[2,1085],$VS4=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VT4=[1,1252],$VU4=[10,74,78,128,306,308,310,464,602,764],$VV4=[115,116,124],$VW4=[2,584],$VX4=[1,1280],$VY4=[76,139],$VZ4=[2,724],$V_4=[1,1297],$V$4=[1,1298],$V05=[2,4,5,10,53,72,76,89,124,146,156,189,230,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$V15=[2,330],$V25=[1,1322],$V35=[1,1336],$V45=[1,1338],$V55=[2,487],$V65=[74,78],$V75=[10,306,308,310,464,602,764],$V85=[10,72,78,118,162,168,169,232,245,247,306,310,602,764],$V95=[1,1354],$Va5=[1,1358],$Vb5=[1,1359],$Vc5=[1,1361],$Vd5=[1,1362],$Ve5=[1,1363],$Vf5=[1,1364],$Vg5=[1,1365],$Vh5=[1,1366],$Vi5=[1,1367],$Vj5=[1,1368],$Vk5=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vl5=[1,1393],$Vm5=[10,72,78,118,162,168,169,245,247,306,310,602,764],$Vn5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vo5=[1,1490],$Vp5=[1,1492],$Vq5=[2,4,5,77,143,145,152,156,181,290,291,292,293,302,420,424],$Vr5=[1,1506],$Vs5=[10,72,74,78,162,168,169,245,247,306,310,602,764],$Vt5=[1,1524],$Vu5=[1,1526],$Vv5=[1,1527],$Vw5=[1,1523],$Vx5=[1,1522],$Vy5=[1,1521],$Vz5=[1,1528],$VA5=[1,1518],$VB5=[1,1519],$VC5=[1,1520],$VD5=[1,1545],$VE5=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VF5=[1,1556],$VG5=[1,1564],$VH5=[1,1563],$VI5=[10,72,78,162,168,169,245,247,306,310,602,764],$VJ5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VK5=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VL5=[1,1621],$VM5=[1,1623],$VN5=[1,1620],$VO5=[1,1622],$VP5=[187,193,368,369,370,373],$VQ5=[2,515],$VR5=[1,1628],$VS5=[1,1647],$VT5=[10,72,78,162,168,169,306,310,602,764],$VU5=[1,1657],$VV5=[1,1658],$VW5=[1,1659],$VX5=[1,1678],$VY5=[4,10,243,306,310,343,356,602,764],$VZ5=[1,1726],$V_5=[10,72,74,78,118,162,168,169,239,245,247,306,310,602,764],$V$5=[2,4,5,77],$V06=[1,1820],$V16=[1,1832],$V26=[1,1851],$V36=[10,72,78,162,168,169,306,310,415,602,764],$V46=[10,74,78,230,306,310,602,764]; -var parser = {trace: function trace() { }, -yy: {}, -symbols_: {"error":2,"Literal":3,"LITERAL":4,"BRALITERAL":5,"NonReserved":6,"LiteralWithSpaces":7,"main":8,"Statements":9,"EOF":10,"Statements_group0":11,"AStatement":12,"ExplainStatement":13,"EXPLAIN":14,"QUERY":15,"PLAN":16,"Statement":17,"AlterTable":18,"AttachDatabase":19,"Call":20,"CreateDatabase":21,"CreateIndex":22,"CreateGraph":23,"CreateTable":24,"CreateView":25,"CreateEdge":26,"CreateVertex":27,"Declare":28,"Delete":29,"DetachDatabase":30,"DropDatabase":31,"DropIndex":32,"DropTable":33,"DropView":34,"If":35,"Insert":36,"Merge":37,"Reindex":38,"RenameTable":39,"Select":40,"ShowCreateTable":41,"ShowColumns":42,"ShowDatabases":43,"ShowIndex":44,"ShowTables":45,"TruncateTable":46,"WithSelect":47,"CreateTrigger":48,"DropTrigger":49,"BeginTransaction":50,"CommitTransaction":51,"RollbackTransaction":52,"EndTransaction":53,"UseDatabase":54,"Update":55,"JavaScript":56,"Source":57,"Assert":58,"While":59,"Continue":60,"Break":61,"BeginEnd":62,"Print":63,"Require":64,"SetVariable":65,"ExpressionStatement":66,"AddRule":67,"Query":68,"Echo":69,"CreateFunction":70,"CreateAggregate":71,"WITH":72,"WithTablesList":73,"COMMA":74,"WithTable":75,"AS":76,"LPAR":77,"RPAR":78,"SelectClause":79,"Select_option0":80,"IntoClause":81,"FromClause":82,"Select_option1":83,"WhereClause":84,"GroupClause":85,"OrderClause":86,"LimitClause":87,"UnionClause":88,"SEARCH":89,"Select_repetition0":90,"Select_option2":91,"PivotClause":92,"PIVOT":93,"Expression":94,"FOR":95,"PivotClause_option0":96,"PivotClause_option1":97,"UNPIVOT":98,"IN":99,"ColumnsList":100,"PivotClause_option2":101,"PivotClause2":102,"AsList":103,"AsLiteral":104,"AsPart":105,"RemoveClause":106,"REMOVE":107,"RemoveClause_option0":108,"RemoveColumnsList":109,"RemoveColumn":110,"Column":111,"LIKE":112,"StringValue":113,"ArrowDot":114,"ARROW":115,"DOT":116,"SearchSelector":117,"ORDER":118,"BY":119,"OrderExpressionsList":120,"SearchSelector_option0":121,"DOTDOT":122,"CARET":123,"EQ":124,"SearchSelector_repetition_plus0":125,"SearchSelector_repetition_plus1":126,"SearchSelector_option1":127,"WHERE":128,"OF":129,"CLASS":130,"NUMBER":131,"STRING":132,"SLASH":133,"VERTEX":134,"EDGE":135,"EXCLAMATION":136,"SHARP":137,"MODULO":138,"GT":139,"LT":140,"GTGT":141,"LTLT":142,"DOLLAR":143,"Json":144,"AT":145,"SET":146,"SetColumnsList":147,"TO":148,"VALUE":149,"ROW":150,"ExprList":151,"COLON":152,"PlusStar":153,"NOT":154,"SearchSelector_repetition2":155,"IF":156,"SearchSelector_repetition3":157,"Aggregator":158,"SearchSelector_repetition4":159,"SearchSelector_group0":160,"SearchSelector_repetition5":161,"UNION":162,"SearchSelectorList":163,"ALL":164,"SearchSelector_repetition6":165,"ANY":166,"SearchSelector_repetition7":167,"INTERSECT":168,"EXCEPT":169,"AND":170,"OR":171,"PATH":172,"RETURN":173,"ResultColumns":174,"REPEAT":175,"SearchSelector_repetition8":176,"SearchSelectorList_repetition0":177,"SearchSelectorList_repetition1":178,"PLUS":179,"STAR":180,"QUESTION":181,"SearchFrom":182,"FROM":183,"SelectModifier":184,"DISTINCT":185,"TopClause":186,"UNIQUE":187,"SelectClause_option0":188,"SELECT":189,"COLUMN":190,"MATRIX":191,"TEXTSTRING":192,"INDEX":193,"RECORDSET":194,"TOP":195,"NumValue":196,"TopClause_option0":197,"INTO":198,"Table":199,"FuncValue":200,"ParamValue":201,"VarValue":202,"FromTablesList":203,"JoinTablesList":204,"ApplyClause":205,"CROSS":206,"APPLY":207,"OUTER":208,"FromTable":209,"FromTable_option0":210,"FromTable_option1":211,"INDEXED":212,"INSERTED":213,"FromString":214,"JoinTable":215,"JoinMode":216,"JoinTableAs":217,"OnClause":218,"JoinTableAs_option0":219,"JoinTableAs_option1":220,"JoinModeMode":221,"NATURAL":222,"JOIN":223,"INNER":224,"LEFT":225,"RIGHT":226,"FULL":227,"SEMI":228,"ANTI":229,"ON":230,"USING":231,"GROUP":232,"GroupExpressionsList":233,"HavingClause":234,"GroupExpression":235,"GROUPING":236,"ROLLUP":237,"CUBE":238,"HAVING":239,"CORRESPONDING":240,"OrderExpression":241,"DIRECTION":242,"COLLATE":243,"NOCASE":244,"LIMIT":245,"OffsetClause":246,"OFFSET":247,"LimitClause_option0":248,"FETCH":249,"LimitClause_option1":250,"LimitClause_option2":251,"LimitClause_option3":252,"ResultColumn":253,"Star":254,"AggrValue":255,"Op":256,"LogicValue":257,"NullValue":258,"ExistsValue":259,"CaseValue":260,"CastClause":261,"ArrayValue":262,"NewClause":263,"Expression_group0":264,"CURRENT_TIMESTAMP":265,"JAVASCRIPT":266,"CREATE":267,"FUNCTION":268,"AGGREGATE":269,"NEW":270,"CAST":271,"ColumnType":272,"CONVERT":273,"PrimitiveValue":274,"OverClause":275,"OVER":276,"OverPartitionClause":277,"OverOrderByClause":278,"PARTITION":279,"SUM":280,"COUNT":281,"MIN":282,"MAX":283,"AVG":284,"FIRST":285,"LAST":286,"AGGR":287,"ARRAY":288,"FuncValue_option0":289,"REPLACE":290,"DATEADD":291,"DATEDIFF":292,"INTERVAL":293,"TRUE":294,"FALSE":295,"NSTRING":296,"NULL":297,"EXISTS":298,"ARRAYLBRA":299,"RBRA":300,"ParamValue_group0":301,"BRAQUESTION":302,"CASE":303,"WhensList":304,"ElseClause":305,"END":306,"When":307,"WHEN":308,"THEN":309,"ELSE":310,"REGEXP":311,"TILDA":312,"GLOB":313,"ESCAPE":314,"NOT_LIKE":315,"BARBAR":316,"MINUS":317,"AMPERSAND":318,"BAR":319,"GE":320,"LE":321,"EQEQ":322,"EQEQEQ":323,"NE":324,"NEEQEQ":325,"NEEQEQEQ":326,"CondOp":327,"AllSome":328,"ColFunc":329,"BETWEEN":330,"NOT_BETWEEN":331,"IS":332,"DOUBLECOLON":333,"SOME":334,"UPDATE":335,"SetColumn":336,"SetColumn_group0":337,"DELETE":338,"INSERT":339,"Into":340,"Values":341,"ValuesListsList":342,"DEFAULT":343,"VALUES":344,"ValuesList":345,"Value":346,"DateValue":347,"TemporaryClause":348,"TableClass":349,"IfNotExists":350,"CreateTableDefClause":351,"CreateTableOptionsClause":352,"TABLE":353,"CreateTableOptions":354,"CreateTableOption":355,"IDENTITY":356,"TEMP":357,"ColumnDefsList":358,"ConstraintsList":359,"Constraint":360,"ConstraintName":361,"PrimaryKey":362,"ForeignKey":363,"UniqueKey":364,"IndexKey":365,"Check":366,"CONSTRAINT":367,"CHECK":368,"PRIMARY":369,"KEY":370,"PrimaryKey_option0":371,"ColsList":372,"FOREIGN":373,"REFERENCES":374,"ForeignKey_option0":375,"OnForeignKeyClause":376,"ParColsList":377,"OnDeleteClause":378,"OnUpdateClause":379,"NO":380,"ACTION":381,"UniqueKey_option0":382,"UniqueKey_option1":383,"ColumnDef":384,"ColumnConstraintsClause":385,"ColumnConstraints":386,"SingularColumnType":387,"NumberMax":388,"ENUM":389,"MAXNUM":390,"ColumnConstraintsList":391,"ColumnConstraint":392,"ParLiteral":393,"ColumnConstraint_option0":394,"ColumnConstraint_option1":395,"DROP":396,"DropTable_group0":397,"IfExists":398,"TablesList":399,"ALTER":400,"RENAME":401,"ADD":402,"MODIFY":403,"ATTACH":404,"DATABASE":405,"DETACH":406,"AsClause":407,"USE":408,"SHOW":409,"VIEW":410,"CreateView_option0":411,"CreateView_option1":412,"SubqueryRestriction":413,"READ":414,"ONLY":415,"OPTION":416,"SOURCE":417,"ASSERT":418,"JsonObject":419,"ATLBRA":420,"JsonArray":421,"JsonValue":422,"JsonPrimitiveValue":423,"LCUR":424,"JsonPropertiesList":425,"RCUR":426,"JsonElementsList":427,"JsonProperty":428,"OnOff":429,"SetPropsList":430,"AtDollar":431,"SetProp":432,"OFF":433,"COMMIT":434,"TRANSACTION":435,"ROLLBACK":436,"BEGIN":437,"ElseStatement":438,"WHILE":439,"CONTINUE":440,"BREAK":441,"PRINT":442,"REQUIRE":443,"StringValuesList":444,"PluginsList":445,"Plugin":446,"ECHO":447,"DECLARE":448,"DeclaresList":449,"DeclareItem":450,"TRUNCATE":451,"MERGE":452,"MergeInto":453,"MergeUsing":454,"MergeOn":455,"MergeMatchedList":456,"OutputClause":457,"MergeMatched":458,"MergeNotMatched":459,"MATCHED":460,"MergeMatchedAction":461,"MergeNotMatchedAction":462,"TARGET":463,"OUTPUT":464,"CreateVertex_option0":465,"CreateVertex_option1":466,"CreateVertex_option2":467,"CreateVertexSet":468,"SharpValue":469,"CONTENT":470,"CreateEdge_option0":471,"GRAPH":472,"GraphList":473,"GraphVertexEdge":474,"GraphElement":475,"GraphVertexEdge_option0":476,"GraphVertexEdge_option1":477,"GraphElementVar":478,"GraphVertexEdge_option2":479,"GraphVertexEdge_option3":480,"GraphVertexEdge_option4":481,"GraphVar":482,"GraphAsClause":483,"GraphAtClause":484,"GraphElement2":485,"GraphElement2_option0":486,"GraphElement2_option1":487,"GraphElement2_option2":488,"GraphElement2_option3":489,"GraphElement_option0":490,"GraphElement_option1":491,"GraphElement_option2":492,"SharpLiteral":493,"GraphElement_option3":494,"GraphElement_option4":495,"GraphElement_option5":496,"ColonLiteral":497,"DeleteVertex":498,"DeleteVertex_option0":499,"DeleteEdge":500,"DeleteEdge_option0":501,"DeleteEdge_option1":502,"DeleteEdge_option2":503,"Term":504,"COLONDASH":505,"TermsList":506,"QUESTIONDASH":507,"CALL":508,"TRIGGER":509,"BeforeAfter":510,"InsertDeleteUpdate":511,"CreateTrigger_option0":512,"CreateTrigger_option1":513,"BEFORE":514,"AFTER":515,"INSTEAD":516,"REINDEX":517,"A":518,"ABSENT":519,"ABSOLUTE":520,"ACCORDING":521,"ADA":522,"ADMIN":523,"ALWAYS":524,"ASC":525,"ASSERTION":526,"ASSIGNMENT":527,"ATTRIBUTE":528,"ATTRIBUTES":529,"BASE64":530,"BERNOULLI":531,"BLOCKED":532,"BOM":533,"BREADTH":534,"C":535,"CASCADE":536,"CATALOG":537,"CATALOG_NAME":538,"CHAIN":539,"CHARACTERISTICS":540,"CHARACTERS":541,"CHARACTER_SET_CATALOG":542,"CHARACTER_SET_NAME":543,"CHARACTER_SET_SCHEMA":544,"CLASS_ORIGIN":545,"COBOL":546,"COLLATION":547,"COLLATION_CATALOG":548,"COLLATION_NAME":549,"COLLATION_SCHEMA":550,"COLUMNS":551,"COLUMN_NAME":552,"COMMAND_FUNCTION":553,"COMMAND_FUNCTION_CODE":554,"COMMITTED":555,"CONDITION_NUMBER":556,"CONNECTION":557,"CONNECTION_NAME":558,"CONSTRAINTS":559,"CONSTRAINT_CATALOG":560,"CONSTRAINT_NAME":561,"CONSTRAINT_SCHEMA":562,"CONSTRUCTOR":563,"CONTROL":564,"CURSOR_NAME":565,"DATA":566,"DATETIME_INTERVAL_CODE":567,"DATETIME_INTERVAL_PRECISION":568,"DB":569,"DEFAULTS":570,"DEFERRABLE":571,"DEFERRED":572,"DEFINED":573,"DEFINER":574,"DEGREE":575,"DEPTH":576,"DERIVED":577,"DESC":578,"DESCRIPTOR":579,"DIAGNOSTICS":580,"DISPATCH":581,"DOCUMENT":582,"DOMAIN":583,"DYNAMIC_FUNCTION":584,"DYNAMIC_FUNCTION_CODE":585,"EMPTY":586,"ENCODING":587,"ENFORCED":588,"EXCLUDE":589,"EXCLUDING":590,"EXPRESSION":591,"FILE":592,"FINAL":593,"FLAG":594,"FOLLOWING":595,"FORTRAN":596,"FOUND":597,"FS":598,"G":599,"GENERAL":600,"GENERATED":601,"GO":602,"GOTO":603,"GRANTED":604,"HEX":605,"HIERARCHY":606,"ID":607,"IGNORE":608,"IMMEDIATE":609,"IMMEDIATELY":610,"IMPLEMENTATION":611,"INCLUDING":612,"INCREMENT":613,"INDENT":614,"INITIALLY":615,"INPUT":616,"INSTANCE":617,"INSTANTIABLE":618,"INTEGRITY":619,"INVOKER":620,"ISOLATION":621,"K":622,"KEY_MEMBER":623,"KEY_TYPE":624,"LENGTH":625,"LEVEL":626,"LIBRARY":627,"LINK":628,"LOCATION":629,"LOCATOR":630,"M":631,"MAP":632,"MAPPING":633,"MAXVALUE":634,"MESSAGE_LENGTH":635,"MESSAGE_OCTET_LENGTH":636,"MESSAGE_TEXT":637,"MINVALUE":638,"MORE":639,"MUMPS":640,"NAME":641,"NAMES":642,"NAMESPACE":643,"NESTING":644,"NEXT":645,"NFC":646,"NFD":647,"NFKC":648,"NFKD":649,"NIL":650,"NORMALIZED":651,"NULLABLE":652,"NULLS":653,"OBJECT":654,"OCTETS":655,"OPTIONS":656,"ORDERING":657,"ORDINALITY":658,"OTHERS":659,"OVERRIDING":660,"P":661,"PAD":662,"PARAMETER_MODE":663,"PARAMETER_NAME":664,"PARAMETER_ORDINAL_POSITION":665,"PARAMETER_SPECIFIC_CATALOG":666,"PARAMETER_SPECIFIC_NAME":667,"PARAMETER_SPECIFIC_SCHEMA":668,"PARTIAL":669,"PASCAL":670,"PASSING":671,"PASSTHROUGH":672,"PERMISSION":673,"PLACING":674,"PLI":675,"PRECEDING":676,"PRESERVE":677,"PRIOR":678,"PRIVILEGES":679,"PUBLIC":680,"RECOVERY":681,"RELATIVE":682,"REPEATABLE":683,"REQUIRING":684,"RESPECT":685,"RESTART":686,"RESTORE":687,"RESTRICT":688,"RETURNED_CARDINALITY":689,"RETURNED_LENGTH":690,"RETURNED_OCTET_LENGTH":691,"RETURNED_SQLSTATE":692,"RETURNING":693,"ROLE":694,"ROUTINE":695,"ROUTINE_CATALOG":696,"ROUTINE_NAME":697,"ROUTINE_SCHEMA":698,"ROW_COUNT":699,"SCALE":700,"SCHEMA":701,"SCHEMA_NAME":702,"SCOPE_CATALOG":703,"SCOPE_NAME":704,"SCOPE_SCHEMA":705,"SECTION":706,"SECURITY":707,"SELECTIVE":708,"SELF":709,"SEQUENCE":710,"SERIALIZABLE":711,"SERVER":712,"SERVER_NAME":713,"SESSION":714,"SETS":715,"SIMPLE":716,"SIZE":717,"SPACE":718,"SPECIFIC_NAME":719,"STANDALONE":720,"STATE":721,"STATEMENT":722,"STRIP":723,"STRUCTURE":724,"STYLE":725,"SUBCLASS_ORIGIN":726,"T":727,"TABLE_NAME":728,"TEMPORARY":729,"TIES":730,"TOKEN":731,"TOP_LEVEL_COUNT":732,"TRANSACTIONS_COMMITTED":733,"TRANSACTIONS_ROLLED_BACK":734,"TRANSACTION_ACTIVE":735,"TRANSFORM":736,"TRANSFORMS":737,"TRIGGER_CATALOG":738,"TRIGGER_NAME":739,"TRIGGER_SCHEMA":740,"TYPE":741,"UNBOUNDED":742,"UNCOMMITTED":743,"UNDER":744,"UNLINK":745,"UNNAMED":746,"UNTYPED":747,"URI":748,"USAGE":749,"USER_DEFINED_TYPE_CATALOG":750,"USER_DEFINED_TYPE_CODE":751,"USER_DEFINED_TYPE_NAME":752,"USER_DEFINED_TYPE_SCHEMA":753,"VALID":754,"VERSION":755,"WHITESPACE":756,"WORK":757,"WRAPPER":758,"WRITE":759,"XMLDECLARATION":760,"XMLSCHEMA":761,"YES":762,"ZONE":763,"SEMICOLON":764,"PERCENT":765,"ROWS":766,"FuncValue_option0_group0":767,"$accept":0,"$end":1}, -terminals_: {2:"error",4:"LITERAL",5:"BRALITERAL",10:"EOF",14:"EXPLAIN",15:"QUERY",16:"PLAN",53:"EndTransaction",72:"WITH",74:"COMMA",76:"AS",77:"LPAR",78:"RPAR",89:"SEARCH",93:"PIVOT",95:"FOR",98:"UNPIVOT",99:"IN",107:"REMOVE",112:"LIKE",115:"ARROW",116:"DOT",118:"ORDER",119:"BY",122:"DOTDOT",123:"CARET",124:"EQ",128:"WHERE",129:"OF",130:"CLASS",131:"NUMBER",132:"STRING",133:"SLASH",134:"VERTEX",135:"EDGE",136:"EXCLAMATION",137:"SHARP",138:"MODULO",139:"GT",140:"LT",141:"GTGT",142:"LTLT",143:"DOLLAR",145:"AT",146:"SET",148:"TO",149:"VALUE",150:"ROW",152:"COLON",154:"NOT",156:"IF",162:"UNION",164:"ALL",166:"ANY",168:"INTERSECT",169:"EXCEPT",170:"AND",171:"OR",172:"PATH",173:"RETURN",175:"REPEAT",179:"PLUS",180:"STAR",181:"QUESTION",183:"FROM",185:"DISTINCT",187:"UNIQUE",189:"SELECT",190:"COLUMN",191:"MATRIX",192:"TEXTSTRING",193:"INDEX",194:"RECORDSET",195:"TOP",198:"INTO",206:"CROSS",207:"APPLY",208:"OUTER",212:"INDEXED",213:"INSERTED",222:"NATURAL",223:"JOIN",224:"INNER",225:"LEFT",226:"RIGHT",227:"FULL",228:"SEMI",229:"ANTI",230:"ON",231:"USING",232:"GROUP",236:"GROUPING",237:"ROLLUP",238:"CUBE",239:"HAVING",240:"CORRESPONDING",242:"DIRECTION",243:"COLLATE",244:"NOCASE",245:"LIMIT",247:"OFFSET",249:"FETCH",265:"CURRENT_TIMESTAMP",266:"JAVASCRIPT",267:"CREATE",268:"FUNCTION",269:"AGGREGATE",270:"NEW",271:"CAST",273:"CONVERT",276:"OVER",279:"PARTITION",280:"SUM",281:"COUNT",282:"MIN",283:"MAX",284:"AVG",285:"FIRST",286:"LAST",287:"AGGR",288:"ARRAY",290:"REPLACE",291:"DATEADD",292:"DATEDIFF",293:"INTERVAL",294:"TRUE",295:"FALSE",296:"NSTRING",297:"NULL",298:"EXISTS",299:"ARRAYLBRA",300:"RBRA",302:"BRAQUESTION",303:"CASE",306:"END",308:"WHEN",309:"THEN",310:"ELSE",311:"REGEXP",312:"TILDA",313:"GLOB",314:"ESCAPE",315:"NOT_LIKE",316:"BARBAR",317:"MINUS",318:"AMPERSAND",319:"BAR",320:"GE",321:"LE",322:"EQEQ",323:"EQEQEQ",324:"NE",325:"NEEQEQ",326:"NEEQEQEQ",330:"BETWEEN",331:"NOT_BETWEEN",332:"IS",333:"DOUBLECOLON",334:"SOME",335:"UPDATE",338:"DELETE",339:"INSERT",343:"DEFAULT",344:"VALUES",347:"DateValue",353:"TABLE",356:"IDENTITY",357:"TEMP",367:"CONSTRAINT",368:"CHECK",369:"PRIMARY",370:"KEY",373:"FOREIGN",374:"REFERENCES",380:"NO",381:"ACTION",386:"ColumnConstraints",389:"ENUM",390:"MAXNUM",396:"DROP",400:"ALTER",401:"RENAME",402:"ADD",403:"MODIFY",404:"ATTACH",405:"DATABASE",406:"DETACH",408:"USE",409:"SHOW",410:"VIEW",414:"READ",415:"ONLY",416:"OPTION",417:"SOURCE",418:"ASSERT",420:"ATLBRA",424:"LCUR",426:"RCUR",433:"OFF",434:"COMMIT",435:"TRANSACTION",436:"ROLLBACK",437:"BEGIN",439:"WHILE",440:"CONTINUE",441:"BREAK",442:"PRINT",443:"REQUIRE",447:"ECHO",448:"DECLARE",451:"TRUNCATE",452:"MERGE",460:"MATCHED",463:"TARGET",464:"OUTPUT",470:"CONTENT",472:"GRAPH",505:"COLONDASH",507:"QUESTIONDASH",508:"CALL",509:"TRIGGER",514:"BEFORE",515:"AFTER",516:"INSTEAD",517:"REINDEX",518:"A",519:"ABSENT",520:"ABSOLUTE",521:"ACCORDING",522:"ADA",523:"ADMIN",524:"ALWAYS",525:"ASC",526:"ASSERTION",527:"ASSIGNMENT",528:"ATTRIBUTE",529:"ATTRIBUTES",530:"BASE64",531:"BERNOULLI",532:"BLOCKED",533:"BOM",534:"BREADTH",535:"C",536:"CASCADE",537:"CATALOG",538:"CATALOG_NAME",539:"CHAIN",540:"CHARACTERISTICS",541:"CHARACTERS",542:"CHARACTER_SET_CATALOG",543:"CHARACTER_SET_NAME",544:"CHARACTER_SET_SCHEMA",545:"CLASS_ORIGIN",546:"COBOL",547:"COLLATION",548:"COLLATION_CATALOG",549:"COLLATION_NAME",550:"COLLATION_SCHEMA",551:"COLUMNS",552:"COLUMN_NAME",553:"COMMAND_FUNCTION",554:"COMMAND_FUNCTION_CODE",555:"COMMITTED",556:"CONDITION_NUMBER",557:"CONNECTION",558:"CONNECTION_NAME",559:"CONSTRAINTS",560:"CONSTRAINT_CATALOG",561:"CONSTRAINT_NAME",562:"CONSTRAINT_SCHEMA",563:"CONSTRUCTOR",564:"CONTROL",565:"CURSOR_NAME",566:"DATA",567:"DATETIME_INTERVAL_CODE",568:"DATETIME_INTERVAL_PRECISION",569:"DB",570:"DEFAULTS",571:"DEFERRABLE",572:"DEFERRED",573:"DEFINED",574:"DEFINER",575:"DEGREE",576:"DEPTH",577:"DERIVED",578:"DESC",579:"DESCRIPTOR",580:"DIAGNOSTICS",581:"DISPATCH",582:"DOCUMENT",583:"DOMAIN",584:"DYNAMIC_FUNCTION",585:"DYNAMIC_FUNCTION_CODE",586:"EMPTY",587:"ENCODING",588:"ENFORCED",589:"EXCLUDE",590:"EXCLUDING",591:"EXPRESSION",592:"FILE",593:"FINAL",594:"FLAG",595:"FOLLOWING",596:"FORTRAN",597:"FOUND",598:"FS",599:"G",600:"GENERAL",601:"GENERATED",602:"GO",603:"GOTO",604:"GRANTED",605:"HEX",606:"HIERARCHY",607:"ID",608:"IGNORE",609:"IMMEDIATE",610:"IMMEDIATELY",611:"IMPLEMENTATION",612:"INCLUDING",613:"INCREMENT",614:"INDENT",615:"INITIALLY",616:"INPUT",617:"INSTANCE",618:"INSTANTIABLE",619:"INTEGRITY",620:"INVOKER",621:"ISOLATION",622:"K",623:"KEY_MEMBER",624:"KEY_TYPE",625:"LENGTH",626:"LEVEL",627:"LIBRARY",628:"LINK",629:"LOCATION",630:"LOCATOR",631:"M",632:"MAP",633:"MAPPING",634:"MAXVALUE",635:"MESSAGE_LENGTH",636:"MESSAGE_OCTET_LENGTH",637:"MESSAGE_TEXT",638:"MINVALUE",639:"MORE",640:"MUMPS",641:"NAME",642:"NAMES",643:"NAMESPACE",644:"NESTING",645:"NEXT",646:"NFC",647:"NFD",648:"NFKC",649:"NFKD",650:"NIL",651:"NORMALIZED",652:"NULLABLE",653:"NULLS",654:"OBJECT",655:"OCTETS",656:"OPTIONS",657:"ORDERING",658:"ORDINALITY",659:"OTHERS",660:"OVERRIDING",661:"P",662:"PAD",663:"PARAMETER_MODE",664:"PARAMETER_NAME",665:"PARAMETER_ORDINAL_POSITION",666:"PARAMETER_SPECIFIC_CATALOG",667:"PARAMETER_SPECIFIC_NAME",668:"PARAMETER_SPECIFIC_SCHEMA",669:"PARTIAL",670:"PASCAL",671:"PASSING",672:"PASSTHROUGH",673:"PERMISSION",674:"PLACING",675:"PLI",676:"PRECEDING",677:"PRESERVE",678:"PRIOR",679:"PRIVILEGES",680:"PUBLIC",681:"RECOVERY",682:"RELATIVE",683:"REPEATABLE",684:"REQUIRING",685:"RESPECT",686:"RESTART",687:"RESTORE",688:"RESTRICT",689:"RETURNED_CARDINALITY",690:"RETURNED_LENGTH",691:"RETURNED_OCTET_LENGTH",692:"RETURNED_SQLSTATE",693:"RETURNING",694:"ROLE",695:"ROUTINE",696:"ROUTINE_CATALOG",697:"ROUTINE_NAME",698:"ROUTINE_SCHEMA",699:"ROW_COUNT",700:"SCALE",701:"SCHEMA",702:"SCHEMA_NAME",703:"SCOPE_CATALOG",704:"SCOPE_NAME",705:"SCOPE_SCHEMA",706:"SECTION",707:"SECURITY",708:"SELECTIVE",709:"SELF",710:"SEQUENCE",711:"SERIALIZABLE",712:"SERVER",713:"SERVER_NAME",714:"SESSION",715:"SETS",716:"SIMPLE",717:"SIZE",718:"SPACE",719:"SPECIFIC_NAME",720:"STANDALONE",721:"STATE",722:"STATEMENT",723:"STRIP",724:"STRUCTURE",725:"STYLE",726:"SUBCLASS_ORIGIN",727:"T",728:"TABLE_NAME",729:"TEMPORARY",730:"TIES",731:"TOKEN",732:"TOP_LEVEL_COUNT",733:"TRANSACTIONS_COMMITTED",734:"TRANSACTIONS_ROLLED_BACK",735:"TRANSACTION_ACTIVE",736:"TRANSFORM",737:"TRANSFORMS",738:"TRIGGER_CATALOG",739:"TRIGGER_NAME",740:"TRIGGER_SCHEMA",741:"TYPE",742:"UNBOUNDED",743:"UNCOMMITTED",744:"UNDER",745:"UNLINK",746:"UNNAMED",747:"UNTYPED",748:"URI",749:"USAGE",750:"USER_DEFINED_TYPE_CATALOG",751:"USER_DEFINED_TYPE_CODE",752:"USER_DEFINED_TYPE_NAME",753:"USER_DEFINED_TYPE_SCHEMA",754:"VALID",755:"VERSION",756:"WHITESPACE",757:"WORK",758:"WRAPPER",759:"WRITE",760:"XMLDECLARATION",761:"XMLSCHEMA",762:"YES",763:"ZONE",764:"SEMICOLON",765:"PERCENT",766:"ROWS"}, -productions_: [0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[241,1],[241,2],[241,3],[241,4],[87,0],[87,3],[87,8],[246,0],[246,2],[174,3],[174,1],[253,3],[253,2],[253,3],[253,2],[253,3],[253,2],[253,1],[254,5],[254,3],[254,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[263,2],[263,2],[261,6],[261,8],[261,6],[261,8],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[255,5],[255,6],[255,6],[275,0],[275,4],[275,4],[275,5],[277,3],[278,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[257,1],[257,1],[113,1],[113,1],[258,1],[202,2],[259,4],[262,3],[201,2],[201,2],[201,1],[201,1],[260,5],[260,4],[304,2],[304,1],[307,4],[305,2],[305,0],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,6],[256,6],[256,3],[256,3],[256,2],[256,2],[256,2],[256,2],[256,2],[256,3],[256,5],[256,6],[256,5],[256,6],[256,4],[256,5],[256,3],[256,4],[256,3],[256,4],[256,3],[256,3],[256,3],[256,3],[256,3],[329,1],[329,1],[329,4],[327,1],[327,1],[327,1],[327,1],[327,1],[327,1],[328,1],[328,1],[328,1],[55,6],[55,4],[147,1],[147,3],[336,3],[336,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[341,1],[341,1],[340,0],[340,1],[342,3],[342,1],[342,1],[342,5],[342,3],[342,3],[345,1],[345,3],[346,1],[346,1],[346,1],[346,1],[346,1],[346,1],[100,1],[100,3],[24,9],[24,5],[349,1],[349,1],[352,0],[352,1],[354,2],[354,1],[355,1],[355,3],[355,3],[355,3],[348,0],[348,1],[350,0],[350,3],[351,3],[351,1],[351,2],[359,1],[359,3],[360,2],[360,2],[360,2],[360,2],[360,2],[361,0],[361,2],[366,4],[362,6],[363,9],[377,3],[376,0],[376,2],[378,4],[379,4],[364,6],[365,5],[365,5],[372,1],[372,1],[372,3],[372,3],[358,1],[358,3],[384,3],[384,2],[384,1],[387,6],[387,4],[387,1],[387,4],[272,2],[272,1],[388,1],[388,1],[385,0],[385,1],[391,2],[391,1],[393,3],[392,2],[392,5],[392,3],[392,6],[392,1],[392,2],[392,4],[392,2],[392,1],[392,2],[392,1],[392,1],[392,3],[392,5],[33,4],[399,3],[399,1],[398,0],[398,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[407,0],[407,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[413,3],[413,3],[413,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[422,1],[422,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,3],[419,3],[419,4],[419,2],[421,2],[421,3],[421,1],[425,3],[425,1],[428,3],[428,3],[428,3],[427,3],[427,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[431,1],[431,1],[430,3],[430,2],[432,1],[432,1],[432,3],[429,1],[429,1],[51,2],[52,2],[50,2],[35,4],[35,3],[438,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[446,1],[446,1],[69,2],[444,3],[444,1],[445,3],[445,1],[28,2],[449,1],[449,3],[450,3],[450,4],[450,5],[450,6],[46,3],[37,6],[453,1],[453,2],[454,2],[455,2],[456,2],[456,2],[456,1],[456,1],[458,4],[458,6],[461,1],[461,3],[459,5],[459,7],[459,7],[459,9],[459,7],[459,9],[462,3],[462,6],[462,3],[462,6],[457,0],[457,2],[457,5],[457,4],[457,7],[27,6],[469,2],[468,0],[468,2],[468,2],[468,1],[26,8],[23,3],[23,4],[473,3],[473,1],[474,3],[474,7],[474,6],[474,3],[474,4],[478,1],[478,1],[482,2],[483,3],[484,2],[485,4],[475,4],[475,3],[475,2],[475,1],[497,2],[493,2],[493,2],[498,4],[500,6],[67,3],[67,2],[506,3],[506,1],[504,1],[504,4],[68,2],[20,2],[48,9],[48,8],[48,9],[510,0],[510,1],[510,1],[510,1],[510,2],[511,1],[511,1],[511,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[248,0],[248,1],[250,0],[250,1],[251,0],[251,1],[252,0],[252,1],[264,1],[264,1],[767,1],[767,1],[289,0],[289,1],[301,1],[301,1],[337,1],[337,1],[371,0],[371,1],[375,0],[375,1],[382,0],[382,1],[383,0],[383,1],[394,0],[394,1],[395,0],[395,1],[397,1],[397,1],[411,0],[411,1],[412,0],[412,1],[465,0],[465,1],[466,0],[466,1],[467,0],[467,1],[471,0],[471,1],[476,0],[476,1],[477,0],[477,1],[479,0],[479,1],[480,0],[480,1],[481,0],[481,1],[486,0],[486,1],[487,0],[487,1],[488,0],[488,1],[489,0],[489,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[499,0],[499,2],[501,0],[501,2],[502,0],[502,2],[503,0],[503,2],[512,0],[512,1],[513,0],[513,1]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 1: - - if (alasql.options.casesensitive) this.$ = $$[$0]; - else this.$ = $$[$0].toLowerCase(); - -break; -case 2: - this.$ = doubleq($$[$0].substr(1,$$[$0].length-2)); -break; -case 3: - this.$ = $$[$0].toLowerCase() -break; -case 4: - this.$ = $$[$0] -break; -case 5: - this.$ = $$[$0] ? $$[$0-1] + ' ' + $$[$0] : $$[$0-1] -break; -case 6: - return new yy.Statements({statements:$$[$0-1]}); -break; -case 7: - this.$ = $$[$0-2]; if($$[$0]) $$[$0-2].push($$[$0]); -break; -case 8: case 9: case 70: case 80: case 85: case 143: case 177: case 205: case 206: case 242: case 261: case 273: case 354: case 372: case 451: case 474: case 475: case 479: case 487: case 528: case 529: case 566: case 649: case 659: case 683: case 685: case 687: case 701: case 702: case 732: case 756: - this.$ = [$$[$0]]; -break; -case 10: - this.$ = $$[$0]; $$[$0].explain = true; -break; -case 11: - this.$ = $$[$0]; $$[$0].explain = true; -break; -case 12: - - this.$ = $$[$0]; - - // TODO combine exists and queries - if(yy.exists) this.$.exists = yy.exists; - delete yy.exists; - if(yy.queries) this.$.queries = yy.queries; - delete yy.queries; - -break; -case 13: case 162: case 172: case 237: case 238: case 240: case 248: case 250: case 259: case 267: case 270: case 375: case 491: case 501: case 503: case 515: case 521: case 522: case 567: - this.$ = undefined; -break; -case 68: - this.$ = new yy.WithSelect({withs: $$[$0-1], select:$$[$0]}); -break; -case 69: case 565: - $$[$0-2].push($$[$0]); this.$=$$[$0-2]; -break; -case 71: - this.$ = {name:$$[$0-4], select:$$[$0-1]}; -break; -case 72: - - yy.extend(this.$,$$[$0-9]); yy.extend(this.$,$$[$0-8]); yy.extend(this.$,$$[$0-7]); yy.extend(this.$,$$[$0-6]); - yy.extend(this.$,$$[$0-5]); yy.extend(this.$,$$[$0-4]);yy.extend(this.$,$$[$0-3]); - yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]); - this.$ = $$[$0-9]; -/* if(yy.exists) this.$.exists = yy.exists; - delete yy.exists; - if(yy.queries) this.$.queries = yy.queries; - delete yy.queries; -*/ -break; -case 73: - - this.$ = new yy.Search({selectors:$$[$0-2], from:$$[$0]}); - yy.extend(this.$,$$[$0-1]); - -break; -case 74: - this.$ = {pivot:{expr:$$[$0-5], columnid:$$[$0-3], inlist:$$[$0-2], as:$$[$0]}}; -break; -case 75: - this.$ = {unpivot:{tocolumnid:$$[$0-8], forcolumnid:$$[$0-6], inlist:$$[$0-3], as:$$[$0]}}; -break; -case 76: case 520: case 549: case 585: case 619: case 636: case 637: case 640: case 662: - this.$ = $$[$0-1]; -break; -case 77: case 78: case 86: case 147: case 185: case 247: case 280: case 288: case 289: case 290: case 291: case 292: case 293: case 294: case 295: case 296: case 297: case 298: case 299: case 300: case 301: case 304: case 305: case 320: case 321: case 322: case 323: case 324: case 325: case 374: case 440: case 441: case 442: case 443: case 444: case 445: case 516: case 542: case 546: case 548: case 623: case 624: case 625: case 626: case 627: case 628: case 632: case 634: case 635: case 644: case 660: case 661: case 723: case 738: case 739: case 741: case 742: case 748: case 749: - this.$ = $$[$0]; -break; -case 79: case 84: case 731: case 755: - this.$ = $$[$0-2]; this.$.push($$[$0]); -break; -case 81: - this.$ = {expr:$$[$0]}; -break; -case 82: - this.$ = {expr:$$[$0-2],as:$$[$0]}; -break; -case 83: - this.$ = {removecolumns:$$[$0]}; -break; -case 87: - this.$ = {like:$$[$0]}; -break; -case 90: case 104: - this.$ = {srchid:"PROP", args: [$$[$0]]}; -break; -case 91: - this.$ = {srchid:"ORDERBY", args: $$[$0-1]}; -break; -case 92: - - var dir = $$[$0-1]; - if(!dir) dir = 'ASC'; - this.$ = {srchid:"ORDERBY", args: [{expression: new yy.Column({columnid:'_'}), direction:dir}]}; - -break; -case 93: - this.$ = {srchid:"PARENT"}; -break; -case 94: - this.$ = {srchid:"APROP", args: [$$[$0]]}; -break; -case 95: - this.$ = {selid:"ROOT"}; -break; -case 96: - this.$ = {srchid:"EQ", args: [$$[$0]]}; -break; -case 97: - this.$ = {srchid:"LIKE", args: [$$[$0]]}; -break; -case 98: case 99: - this.$ = {selid:"WITH", args: $$[$0-1]}; -break; -case 100: - this.$ = {srchid:$$[$0-3].toUpperCase(), args:$$[$0-1]}; -break; -case 101: - this.$ = {srchid:"WHERE", args:[$$[$0-1]]}; -break; -case 102: - this.$ = {selid:"OF", args:[$$[$0-1]]}; -break; -case 103: - this.$ = {srchid:"CLASS", args:[$$[$0-1]]}; -break; -case 105: - this.$ = {srchid:"NAME", args: [$$[$0].substr(1,$$[$0].length-2)]}; -break; -case 106: - this.$ = {srchid:"CHILD"}; -break; -case 107: - this.$ = {srchid:"VERTEX"}; -break; -case 108: - this.$ = {srchid:"EDGE"}; -break; -case 109: - this.$ = {srchid:"REF"}; -break; -case 110: - this.$ = {srchid:"SHARP", args:[$$[$0]]}; -break; -case 111: - this.$ = {srchid:"ATTR", args:((typeof $$[$0] == 'undefined')?undefined:[$$[$0]])}; -break; -case 112: - this.$ = {srchid:"ATTR"}; -break; -case 113: - this.$ = {srchid:"OUT"}; -break; -case 114: - this.$ = {srchid:"IN"}; -break; -case 115: - this.$ = {srchid:"OUTOUT"}; -break; -case 116: - this.$ = {srchid:"ININ"}; -break; -case 117: - this.$ = {srchid:"CONTENT"}; -break; -case 118: - this.$ = {srchid:"EX",args:[new yy.Json({value:$$[$0]})]}; -break; -case 119: - this.$ = {srchid:"AT", args:[$$[$0]]}; -break; -case 120: - this.$ = {srchid:"AS", args:[$$[$0]]}; -break; -case 121: - this.$ = {srchid:"SET", args:$$[$0-1]}; -break; -case 122: - this.$ = {selid:"TO", args:[$$[$0]]}; -break; -case 123: - this.$ = {srchid:"VALUE"}; -break; -case 124: - this.$ = {srchid:"ROW", args:$$[$0-1]}; -break; -case 125: - this.$ = {srchid:"CLASS", args:[$$[$0]]}; -break; -case 126: - this.$ = {selid:$$[$0],args:[$$[$0-1]] }; -break; -case 127: - this.$ = {selid:"NOT",args:$$[$0-1] }; -break; -case 128: - this.$ = {selid:"IF",args:$$[$0-1] }; -break; -case 129: - this.$ = {selid:$$[$0-3],args:$$[$0-1] }; -break; -case 130: - this.$ = {selid:'DISTINCT',args:$$[$0-1] }; -break; -case 131: - this.$ = {selid:'UNION',args:$$[$0-1] }; -break; -case 132: - this.$ = {selid:'UNIONALL',args:$$[$0-1] }; -break; -case 133: - this.$ = {selid:'ALL',args:[$$[$0-1]] }; -break; -case 134: - this.$ = {selid:'ANY',args:[$$[$0-1]] }; -break; -case 135: - this.$ = {selid:'INTERSECT',args:$$[$0-1] }; -break; -case 136: - this.$ = {selid:'EXCEPT',args:$$[$0-1] }; -break; -case 137: - this.$ = {selid:'AND',args:$$[$0-1] }; -break; -case 138: - this.$ = {selid:'OR',args:$$[$0-1] }; -break; -case 139: - this.$ = {selid:'PATH',args:[$$[$0-1]] }; -break; -case 140: - this.$ = {srchid:'RETURN',args:$$[$0-1] }; -break; -case 141: - this.$ = {selid:'REPEAT',sels:$$[$0-3], args:$$[$0-1] }; -break; -case 142: - this.$ = $$[$0-2]; this.$.push($$[$0]); -break; -case 144: - this.$ = "PLUS"; -break; -case 145: - this.$ = "STAR"; -break; -case 146: - this.$ = "QUESTION"; -break; -case 148: - this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]); yy.extend(this.$, $$[$0-1]); -break; -case 149: - this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]); -break; -case 150: - this.$ = new yy.Select({ columns:$$[$0], all:true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]); -break; -case 151: - - if(!$$[$0]) { - this.$ = new yy.Select({columns:[new yy.Column({columnid:'_',})], modifier:'COLUMN'}); - } else { - this.$ = new yy.Select({ columns:$$[$0] }); yy.extend(this.$, $$[$0-2]);yy.extend(this.$, $$[$0-1]); - } - -break; -case 152: - if($$[$0]=='SELECT') this.$ = undefined; else this.$ = {modifier: $$[$0]}; -break; -case 153: - this.$ = {modifier:'VALUE'} -break; -case 154: - this.$ = {modifier:'ROW'} -break; -case 155: - this.$ = {modifier:'COLUMN'} -break; -case 156: - this.$ = {modifier:'MATRIX'} -break; -case 157: - this.$ = {modifier:'TEXTSTRING'} -break; -case 158: - this.$ = {modifier:'INDEX'} -break; -case 159: - this.$ = {modifier:'RECORDSET'} -break; -case 160: - this.$ = {top: $$[$0-1], percent:(typeof $$[$0] != 'undefined'?true:undefined)}; -break; -case 161: - this.$ = {top: $$[$0-1]}; -break; -case 163: case 330: case 523: case 524: case 724: -this.$ = undefined; -break; -case 164: case 165: case 166: case 167: -this.$ = {into: $$[$0]} -break; -case 168: - - var s = $$[$0]; - s = s.substr(1,s.length-2); - var x3 = s.substr(-3).toUpperCase(); - var x4 = s.substr(-4).toUpperCase(); - if(s[0] == '#') { - this.$ = {into: new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})}; - } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') { - this.$ = {into: new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})}; - } else if(x4=='XLSX' || x4 == 'JSON') { - this.$ = {into: new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})}; - } - -break; -case 169: - this.$ = { from: $$[$0] }; -break; -case 170: - this.$ = { from: $$[$0-1], joins: $$[$0] }; -break; -case 171: - this.$ = { from: $$[$0-2], joins: $$[$0-1] }; -break; -case 173: - this.$ = new yy.Apply({select: $$[$0-2], applymode:'CROSS', as:$$[$0]}); -break; -case 174: - this.$ = new yy.Apply({select: $$[$0-3], applymode:'CROSS', as:$$[$0]}); -break; -case 175: - this.$ = new yy.Apply({select: $$[$0-2], applymode:'OUTER', as:$$[$0]}); -break; -case 176: - this.$ = new yy.Apply({select: $$[$0-3], applymode:'OUTER', as:$$[$0]}); -break; -case 178: case 243: case 452: case 530: case 531: - this.$ = $$[$0-2]; $$[$0-2].push($$[$0]); -break; -case 179: - this.$ = $$[$0-2]; this.$.as = $$[$0] -break; -case 180: - this.$ = $$[$0-3]; this.$.as = $$[$0] -break; -case 181: - this.$ = $$[$0-1]; this.$.as = 'default' -break; -case 182: - this.$ = new yy.Json({value:$$[$0-2]}); $$[$0-2].as = $$[$0] -break; -case 183: - this.$ = $$[$0-1]; $$[$0-1].as = $$[$0] -break; -case 184: - this.$ = $$[$0-2]; $$[$0-2].as = $$[$0] -break; -case 186: case 638: case 641: - this.$ = $$[$0-2]; -break; -case 187: case 191: case 195: case 198: - this.$ = $$[$0-1]; $$[$0-1].as = $$[$0]; -break; -case 188: case 192: case 196: case 199: - this.$ = $$[$0-2]; $$[$0-2].as = $$[$0]; -break; -case 189: case 190: case 194: case 197: - this.$ = $$[$0]; $$[$0].as = 'default'; -break; -case 193: - this.$ = {inserted:true}; /*$$[$0].as = 'default'*/; -break; -case 200: - - var s = $$[$0]; - s = s.substr(1,s.length-2); - var x3 = s.substr(-3).toUpperCase(); - var x4 = s.substr(-4).toUpperCase(); - var r; - if(s[0] == '#') { - r = new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]}); - } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') { - r = new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]}); - } else if(x4=='XLSX' || x4 == 'JSON') { - r = new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]}); - } else { - throw new Error('Unknown string in FROM clause'); - }; - this.$ = r; - -break; -case 201: - - if($$[$0-2] == 'INFORMATION_SCHEMA') { - this.$ = new yy.FuncValue({funcid: $$[$0-2], args:[new yy.StringValue({value:$$[$0]})]}); - } else { - this.$ = new yy.Table({databaseid: $$[$0-2], tableid:$$[$0]}); - } - -break; -case 202: - this.$ = new yy.Table({tableid: $$[$0]}); -break; -case 203: case 204: - this.$ = $$[$0-1]; $$[$0-1].push($$[$0]); -break; -case 207: - this.$ = new yy.Join($$[$0-2]); yy.extend(this.$, $$[$0-1]); yy.extend(this.$, $$[$0]); -break; -case 208: - this.$ = {table: $$[$0]}; -break; -case 209: - this.$ = {table: $$[$0-1], as: $$[$0] } ; -break; -case 210: - this.$ = {table: $$[$0-2], as: $$[$0] } ; -break; -case 211: - this.$ = {json:new yy.Json({value:$$[$0-2],as:$$[$0]})}; -break; -case 212: - this.$ = {param: $$[$0-1], as: $$[$0] } ; -break; -case 213: - this.$ = {param: $$[$0-2], as: $$[$0] } ; -break; -case 214: - this.$ = {select: $$[$0-2], as: $$[$0]} ; -break; -case 215: - this.$ = {select: $$[$0-3], as: $$[$0] } ; -break; -case 216: - this.$ = {func:$$[$0], as:'default'}; -break; -case 217: - this.$ = {func:$$[$0-1], as: $$[$0]}; -break; -case 218: - this.$ = {func:$$[$0-2], as: $$[$0]}; -break; -case 219: - this.$ = {variable:$$[$0],as:'default'}; -break; -case 220: - this.$ = {variable:$$[$0-1],as:$$[$0]}; -break; -case 221: - this.$ = {variable:$$[$0-2],as:$$[$0]} -break; -case 222: - this.$ = { joinmode: $$[$0] } ; -break; -case 223: - this.$ = {joinmode: $$[$0-1], natural:true} ; -break; -case 224: case 225: - this.$ = "INNER"; -break; -case 226: case 227: - this.$ = "LEFT"; -break; -case 228: case 229: - this.$ = "RIGHT"; -break; -case 230: case 231: - this.$ = "OUTER"; -break; -case 232: - this.$ = "SEMI"; -break; -case 233: - this.$ = "ANTI"; -break; -case 234: - this.$ = "CROSS"; -break; -case 235: - this.$ = {on: $$[$0]}; -break; -case 236: case 697: - this.$ = {using: $$[$0]}; -break; -case 239: - this.$ = {where: new yy.Expression({expression:$$[$0]})}; -break; -case 241: - this.$ = {group:$$[$0-1]}; yy.extend(this.$,$$[$0]); -break; -case 244: - this.$ = new yy.GroupExpression({type:'GROUPING SETS', group: $$[$0-1]}); -break; -case 245: - this.$ = new yy.GroupExpression({type:'ROLLUP', group: $$[$0-1]}); -break; -case 246: - this.$ = new yy.GroupExpression({type:'CUBE', group: $$[$0-1]}); -break; -case 249: - this.$ = {having:$$[$0]} -break; -case 251: - this.$ = {union: $$[$0]} ; -break; -case 252: - this.$ = {unionall: $$[$0]} ; -break; -case 253: - this.$ = {except: $$[$0]} ; -break; -case 254: - this.$ = {intersect: $$[$0]} ; -break; -case 255: - this.$ = {union: $$[$0], corresponding:true} ; -break; -case 256: - this.$ = {unionall: $$[$0], corresponding:true} ; -break; -case 257: - this.$ = {except: $$[$0], corresponding:true} ; -break; -case 258: - this.$ = {intersect: $$[$0], corresponding:true} ; -break; -case 260: - this.$ = {order:$$[$0]} -break; -case 262: - this.$ = $$[$0-2]; $$[$0-2].push($$[$0]) -break; -case 263: - this.$ = new yy.Expression({expression: $$[$0], direction:'ASC'}) -break; -case 264: - this.$ = new yy.Expression({expression: $$[$0-1], direction:$$[$0].toUpperCase()}) -break; -case 265: - this.$ = new yy.Expression({expression: $$[$0-2], direction:'ASC', nocase:true}) -break; -case 266: - this.$ = new yy.Expression({expression: $$[$0-3], direction:$$[$0].toUpperCase(), nocase:true}) -break; -case 268: - this.$ = {limit:$$[$0-1]}; yy.extend(this.$, $$[$0]); -break; -case 269: - this.$ = {limit:$$[$0-2],offset:$$[$0-6]}; -break; -case 271: - this.$ = {offset:$$[$0]}; -break; -case 272: case 509: case 533: case 648: case 658: case 682: case 684: case 688: - $$[$0-2].push($$[$0]); this.$ = $$[$0-2]; -break; -case 274: case 276: case 278: - $$[$0-2].as = $$[$0]; this.$ = $$[$0-2]; -break; -case 275: case 277: case 279: - $$[$0-1].as = $$[$0]; this.$ = $$[$0-1]; -break; -case 281: - this.$ = new yy.Column({columid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]}); -break; -case 282: - this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]}); -break; -case 283: - this.$ = new yy.Column({columnid:$$[$0]}); -break; -case 284: - this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]}); -break; -case 285: case 286: - this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]}); -break; -case 287: - this.$ = new yy.Column({columnid: $$[$0]}); -break; -case 302: - this.$ = new yy.DomainValueValue(); -break; -case 303: - this.$ = new yy.Json({value:$$[$0]}); -break; -case 306: case 307: case 308: - - if(!yy.queries) yy.queries = []; - yy.queries.push($$[$0-1]); - $$[$0-1].queriesidx = yy.queries.length; - this.$ = $$[$0-1]; - -break; -case 309: -this.$ = $$[$0] -break; -case 310: - this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'}); -break; -case 311: - this.$ = new yy.JavaScript({value:$$[$0].substr(2,$$[$0].length-4)}); -break; -case 312: - this.$ = new yy.JavaScript({value:'alasql.fn["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)}); -break; -case 313: - this.$ = new yy.JavaScript({value:'alasql.aggr["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)}); -break; -case 314: - this.$ = new yy.FuncValue({funcid:$$[$0], newid:true}); -break; -case 315: - this.$ = $$[$0]; yy.extend(this.$,{newid:true}); -break; -case 316: - this.$ = new yy.Convert({expression:$$[$0-3]}) ; yy.extend(this.$,$$[$0-1]) ; -break; -case 317: - this.$ = new yy.Convert({expression:$$[$0-5], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ; -break; -case 318: - this.$ = new yy.Convert({expression:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ; -break; -case 319: - this.$ = new yy.Convert({expression:$$[$0-3], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-5]) ; -break; -case 326: - this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'}); -break; -case 327: - - if($$[$0-2].length > 1 && ($$[$0-4].toUpperCase() == 'MAX' || $$[$0-4].toUpperCase() == 'MIN')) { - this.$ = new yy.FuncValue({funcid:$$[$0-4],args:$$[$0-2]}); - } else { - this.$ = new yy.AggrValue({aggregatorid: $$[$0-4].toUpperCase(), expression: $$[$0-2].pop(), over:$$[$0]}); - } - -break; -case 328: - this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], distinct:true, over:$$[$0]}); -break; -case 329: - this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], - over:$$[$0]}); -break; -case 331: case 332: - this.$ = new yy.Over(); yy.extend(this.$,$$[$0-1]); -break; -case 333: - this.$ = new yy.Over(); yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); -break; -case 334: - this.$ = {partition:$$[$0]}; -break; -case 335: - this.$ = {order:$$[$0]}; -break; -case 336: - this.$ = "SUM"; -break; -case 337: - this.$ = "COUNT"; -break; -case 338: - this.$ = "MIN"; -break; -case 339: case 544: - this.$ = "MAX"; -break; -case 340: - this.$ = "AVG"; -break; -case 341: - this.$ = "FIRST"; -break; -case 342: - this.$ = "LAST"; -break; -case 343: - this.$ = "AGGR"; -break; -case 344: - this.$ = "ARRAY"; -break; -case 345: - - var funcid = $$[$0-4]; - var exprlist = $$[$0-1]; - if(exprlist.length > 1 && (funcid.toUpperCase() == 'MIN' || funcid.toUpperCase() == 'MAX')) { - this.$ = new yy.FuncValue({funcid: funcid, args: exprlist}); - } else if(alasql.aggr[$$[$0-4]]) { - this.$ = new yy.AggrValue({aggregatorid: 'REDUCE', - funcid: funcid, expression: exprlist.pop(),distinct:($$[$0-2]=='DISTINCT') }); - } else { - this.$ = new yy.FuncValue({funcid: funcid, args: exprlist}); - }; - -break; -case 346: - this.$ = new yy.FuncValue({ funcid: $$[$0-2] }) -break; -case 347: - this.$ = new yy.FuncValue({ funcid: 'IIF', args:$$[$0-1] }) -break; -case 348: - this.$ = new yy.FuncValue({ funcid: 'REPLACE', args:$$[$0-1] }) -break; -case 349: - this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]}) -break; -case 350: - this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[$$[$0-5],$$[$0-3],$$[$0-1]]}) -break; -case 351: - this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]}) -break; -case 352: - this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[$$[$0-5],$$[$0-3],$$[$0-1]]}) -break; -case 353: - this.$ = new yy.FuncValue({ funcid: 'INTERVAL', args:[$$[$0-1],new yy.StringValue({value:($$[$0]).toLowerCase()})]}); -break; -case 355: - $$[$0-2].push($$[$0]); this.$ = $$[$0-2] -break; -case 356: - this.$ = new yy.NumValue({value:+$$[$0]}); -break; -case 357: - this.$ = new yy.LogicValue({value:true}); -break; -case 358: - this.$ = new yy.LogicValue({value:false}); -break; -case 359: - this.$ = new yy.StringValue({value: $$[$0].substr(1,$$[$0].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")}); -break; -case 360: - this.$ = new yy.StringValue({value: $$[$0].substr(2,$$[$0].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")}); -break; -case 361: - this.$ = new yy.NullValue({value:undefined}); -break; -case 362: - this.$ = new yy.VarValue({variable:$$[$0]}); -break; -case 363: - - if(!yy.exists) yy.exists = []; - this.$ = new yy.ExistsValue({value:$$[$0-1], existsidx:yy.exists.length}); - yy.exists.push($$[$0-1]); - -break; -case 364: - this.$ = new yy.ArrayValue({value:$$[$0-1]}); -break; -case 365: case 366: - this.$ = new yy.ParamValue({param: $$[$0]}); -break; -case 367: - - if(typeof yy.question == 'undefined') yy.question = 0; - this.$ = new yy.ParamValue({param: yy.question++}); - -break; -case 368: - - if(typeof yy.question == 'undefined') yy.question = 0; - this.$ = new yy.ParamValue({param: yy.question++, array:true}); - -break; -case 369: - this.$ = new yy.CaseValue({expression:$$[$0-3], whens: $$[$0-2], elses: $$[$0-1]}); -break; -case 370: - this.$ = new yy.CaseValue({whens: $$[$0-2], elses: $$[$0-1]}); -break; -case 371: case 699: case 700: - this.$ = $$[$0-1]; this.$.push($$[$0]); -break; -case 373: - this.$ = {when: $$[$0-2], then: $$[$0] }; -break; -case 376: case 377: - this.$ = new yy.Op({left:$$[$0-2], op:'REGEXP', right:$$[$0]}); -break; -case 378: - this.$ = new yy.Op({left:$$[$0-2], op:'GLOB', right:$$[$0]}); -break; -case 379: - this.$ = new yy.Op({left:$$[$0-2], op:'LIKE', right:$$[$0]}); -break; -case 380: - this.$ = new yy.Op({left:$$[$0-4], op:'LIKE', right:$$[$0-2], escape:$$[$0]}); -break; -case 381: - this.$ = new yy.Op({left:$$[$0-2], op:'NOT LIKE', right:$$[$0] }); -break; -case 382: - this.$ = new yy.Op({left:$$[$0-4], op:'NOT LIKE', right:$$[$0-2], escape:$$[$0] }); -break; -case 383: - this.$ = new yy.Op({left:$$[$0-2], op:'||', right:$$[$0]}); -break; -case 384: - this.$ = new yy.Op({left:$$[$0-2], op:'+', right:$$[$0]}); -break; -case 385: - this.$ = new yy.Op({left:$$[$0-2], op:'-', right:$$[$0]}); -break; -case 386: - this.$ = new yy.Op({left:$$[$0-2], op:'*', right:$$[$0]}); -break; -case 387: - this.$ = new yy.Op({left:$$[$0-2], op:'/', right:$$[$0]}); -break; -case 388: - this.$ = new yy.Op({left:$$[$0-2], op:'%', right:$$[$0]}); -break; -case 389: - this.$ = new yy.Op({left:$$[$0-2], op:'^', right:$$[$0]}); -break; -case 390: - this.$ = new yy.Op({left:$$[$0-2], op:'>>', right:$$[$0]}); -break; -case 391: - this.$ = new yy.Op({left:$$[$0-2], op:'<<', right:$$[$0]}); -break; -case 392: - this.$ = new yy.Op({left:$$[$0-2], op:'&', right:$$[$0]}); -break; -case 393: - this.$ = new yy.Op({left:$$[$0-2], op:'|', right:$$[$0]}); -break; -case 394: case 395: case 397: - this.$ = new yy.Op({left:$$[$0-2], op:'->' , right:$$[$0]}); -break; -case 396: - this.$ = new yy.Op({left:$$[$0-4], op:'->' , right:$$[$0-1]}); -break; -case 398: case 399: case 401: - this.$ = new yy.Op({left:$$[$0-2], op:'!' , right:$$[$0]}); -break; -case 400: - this.$ = new yy.Op({left:$$[$0-4], op:'!' , right:$$[$0-1]}); -break; -case 402: - this.$ = new yy.Op({left:$$[$0-2], op:'>' , right:$$[$0]}); -break; -case 403: - this.$ = new yy.Op({left:$$[$0-2], op:'>=' , right:$$[$0]}); -break; -case 404: - this.$ = new yy.Op({left:$$[$0-2], op:'<' , right:$$[$0]}); -break; -case 405: - this.$ = new yy.Op({left:$$[$0-2], op:'<=' , right:$$[$0]}); -break; -case 406: - this.$ = new yy.Op({left:$$[$0-2], op:'=' , right:$$[$0]}); -break; -case 407: - this.$ = new yy.Op({left:$$[$0-2], op:'==' , right:$$[$0]}); -break; -case 408: - this.$ = new yy.Op({left:$$[$0-2], op:'===' , right:$$[$0]}); -break; -case 409: - this.$ = new yy.Op({left:$$[$0-2], op:'!=' , right:$$[$0]}); -break; -case 410: - this.$ = new yy.Op({left:$$[$0-2], op:'!==' , right:$$[$0]}); -break; -case 411: - this.$ = new yy.Op({left:$$[$0-2], op:'!===' , right:$$[$0]}); -break; -case 412: - - if(!yy.queries) yy.queries = []; - this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1], queriesidx: yy.queries.length}); - yy.queries.push($$[$0-1]); - -break; -case 413: - - this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1]}); - -break; -case 414: - - if($$[$0-2].op == 'BETWEEN1') { - - if($$[$0-2].left.op == 'AND') { - this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right: - new yy.Op({left:$$[$0-2].left.right, op:'BETWEEN', - right1:$$[$0-2].right, right2:$$[$0]}) - }); - } else { - this.$ = new yy.Op({left:$$[$0-2].left, op:'BETWEEN', - right1:$$[$0-2].right, right2:$$[$0]}); - } - - } else if($$[$0-2].op == 'NOT BETWEEN1') { - if($$[$0-2].left.op == 'AND') { - this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right: - new yy.Op({left:$$[$0-2].left.right, op:'NOT BETWEEN', - right1:$$[$0-2].right, right2:$$[$0]}) - }); - } else { - this.$ = new yy.Op({left:$$[$0-2].left, op:'NOT BETWEEN', - right1:$$[$0-2].right, right2:$$[$0]}); - } - } else { - this.$ = new yy.Op({left:$$[$0-2], op:'AND', right:$$[$0]}); - } - -break; -case 415: - this.$ = new yy.Op({left:$$[$0-2], op:'OR' , right:$$[$0]}); -break; -case 416: - this.$ = new yy.UniOp({op:'NOT' , right:$$[$0]}); -break; -case 417: - this.$ = new yy.UniOp({op:'-' , right:$$[$0]}); -break; -case 418: - this.$ = new yy.UniOp({op:'+' , right:$$[$0]}); -break; -case 419: - this.$ = new yy.UniOp({op:'~' , right:$$[$0]}); -break; -case 420: - this.$ = new yy.UniOp({op:'#' , right:$$[$0]}); -break; -case 421: - this.$ = new yy.UniOp({right: $$[$0-1]}); -break; -case 422: - - if(!yy.queries) yy.queries = []; - this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1], queriesidx: yy.queries.length}); - yy.queries.push($$[$0-1]); - -break; -case 423: - - if(!yy.queries) yy.queries = []; - this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1], queriesidx: yy.queries.length}); - yy.queries.push($$[$0-1]); - -break; -case 424: - this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1]}); -break; -case 425: - this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1]}); -break; -case 426: - this.$ = new yy.Op({left: $$[$0-3], op:'IN', right:[]}); -break; -case 427: - this.$ = new yy.Op({left: $$[$0-4], op:'NOT IN', right:[]}); -break; -case 428: case 430: - this.$ = new yy.Op({left: $$[$0-2], op:'IN', right:$$[$0]}); -break; -case 429: case 431: - this.$ = new yy.Op({left: $$[$0-3], op:'NOT IN', right:$$[$0]}); -break; -case 432: - -/* var expr = $$[$0]; - if(expr.left && expr.left.op == 'AND') { - this.$ = new yy.Op({left:new yy.Op({left:$$[$0-2], op:'BETWEEN', right:expr.left}), op:'AND', right:expr.right }); - } else { -*/ - this.$ = new yy.Op({left:$$[$0-2], op:'BETWEEN1', right:$$[$0] }); - -break; -case 433: - - this.$ = new yy.Op({left:$$[$0-2], op:'NOT BETWEEN1', right:$$[$0] }); - -break; -case 434: - this.$ = new yy.Op({op:'IS' , left:$$[$0-2], right:$$[$0]}); -break; -case 435: - - this.$ = new yy.Op({ - op:'IS', - left:$$[$0-2], - right: new yy.UniOp({ - op:'NOT', - right:new yy.NullValue({value:undefined}) - }) - }); - -break; -case 436: - this.$ = new yy.Convert({expression:$$[$0-2]}) ; yy.extend(this.$,$$[$0]) ; -break; -case 437: case 438: - this.$ = $$[$0]; -break; -case 439: - this.$ = $$[$0-1]; -break; -case 446: - this.$ = 'ALL'; -break; -case 447: - this.$ = 'SOME'; -break; -case 448: - this.$ = 'ANY'; -break; -case 449: - this.$ = new yy.Update({table:$$[$0-4], columns:$$[$0-2], where:$$[$0]}); -break; -case 450: - this.$ = new yy.Update({table:$$[$0-2], columns:$$[$0]}); -break; -case 453: - this.$ = new yy.SetColumn({column:$$[$0-2], expression:$$[$0]}) -break; -case 454: - this.$ = new yy.SetColumn({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]}) -break; -case 455: - this.$ = new yy.Delete({table:$$[$0-2], where:$$[$0]}); -break; -case 456: - this.$ = new yy.Delete({table:$$[$0]}); -break; -case 457: - this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0]}); -break; -case 458: - this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0]}); -break; -case 459: case 461: - this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0], orreplace:true}); -break; -case 460: case 462: - this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0], orreplace:true}); -break; -case 463: - this.$ = new yy.Insert({into:$$[$0-2], "default": true}) ; -break; -case 464: - this.$ = new yy.Insert({into:$$[$0-5], columns: $$[$0-3], values: $$[$0]}); -break; -case 465: - this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], values: $$[$0]}); -break; -case 466: - this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0]}); -break; -case 467: - this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0], orreplace:true}); -break; -case 468: - this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], select: $$[$0]}); -break; -case 473: - this.$ = [$$[$0-1]]; -break; -case 476: -this.$ = $$[$0-4]; $$[$0-4].push($$[$0-1]) -break; -case 477: case 478: case 480: case 488: -this.$ = $$[$0-2]; $$[$0-2].push($$[$0]) -break; -case 489: - - this.$ = new yy.CreateTable({table:$$[$0-4]}); - yy.extend(this.$,$$[$0-7]); - yy.extend(this.$,$$[$0-6]); - yy.extend(this.$,$$[$0-5]); - yy.extend(this.$,$$[$0-2]); - yy.extend(this.$,$$[$0]); - -break; -case 490: - - this.$ = new yy.CreateTable({table:$$[$0]}); - yy.extend(this.$,$$[$0-3]); - yy.extend(this.$,$$[$0-2]); - yy.extend(this.$,$$[$0-1]); - -break; -case 492: - this.$ = {class:true}; -break; -case 502: - this.$ = {temporary:true}; -break; -case 504: - this.$ = {ifnotexists: true}; -break; -case 505: - this.$ = {columns: $$[$0-2], constraints: $$[$0]}; -break; -case 506: - this.$ = {columns: $$[$0]}; -break; -case 507: - this.$ = {as: $$[$0]} -break; -case 508: case 532: - this.$ = [$$[$0]]; -break; -case 510: case 511: case 512: case 513: case 514: - $$[$0].constraintid = $$[$0-1]; this.$ = $$[$0]; -break; -case 517: - this.$ = {type: 'CHECK', expression: $$[$0-1]}; -break; -case 518: - this.$ = {type: 'PRIMARY KEY', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()}; -break; -case 519: - this.$ = {type: 'FOREIGN KEY', columns: $$[$0-5], fktable: $$[$0-2], fkcolumns: $$[$0-1]}; -break; -case 525: - - this.$ = {type: 'UNIQUE', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()}; - -break; -case 534: - this.$ = new yy.ColumnDef({columnid:$$[$0-2]}); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]); -break; -case 535: - this.$ = new yy.ColumnDef({columnid:$$[$0-1]}); yy.extend(this.$,$$[$0]); -break; -case 536: - this.$ = new yy.ColumnDef({columnid:$$[$0], dbtypeid: ''}); -break; -case 537: - this.$ = {dbtypeid: $$[$0-5], dbsize: $$[$0-3], dbprecision: +$$[$0-1]} -break; -case 538: - this.$ = {dbtypeid: $$[$0-3], dbsize: $$[$0-1]} -break; -case 539: - this.$ = {dbtypeid: $$[$0]} -break; -case 540: - this.$ = {dbtypeid: 'ENUM', enumvalues: $$[$0-1]} -break; -case 541: - this.$ = $$[$0-1]; $$[$0-1].dbtypeid += '[' + $$[$0] + ']'; -break; -case 543: case 750: - this.$ = +$$[$0]; -break; -case 545: -this.$ = undefined -break; -case 547: - - yy.extend($$[$0-1],$$[$0]); this.$ = $$[$0-1]; - -break; -case 550: -this.$ = {primarykey:true}; -break; -case 551: case 552: -this.$ = {foreignkey:{table:$$[$0-1], columnid: $$[$0]}}; -break; -case 553: - this.$ = {identity: {value:$$[$0-3],step:$$[$0-1]}} -break; -case 554: - this.$ = {identity: {value:1,step:1}} -break; -case 555: case 557: -this.$ = {"default":$$[$0]}; -break; -case 556: -this.$ = {"default":$$[$0-1]}; -break; -case 558: -this.$ = {null:true}; -break; -case 559: -this.$ = {notnull:true}; -break; -case 560: -this.$ = {check:$$[$0]}; -break; -case 561: -this.$ = {unique:true}; -break; -case 562: -this.$ = {"onupdate":$$[$0]}; -break; -case 563: -this.$ = {"onupdate":$$[$0-1]}; -break; -case 564: - this.$ = new yy.DropTable({tables:$$[$0],type:$$[$0-2]}); yy.extend(this.$, $$[$0-1]); -break; -case 568: - this.$ = {ifexists: true}; -break; -case 569: - this.$ = new yy.AlterTable({table:$$[$0-3], renameto: $$[$0]}); -break; -case 570: - this.$ = new yy.AlterTable({table:$$[$0-3], addcolumn: $$[$0]}); -break; -case 571: - this.$ = new yy.AlterTable({table:$$[$0-3], modifycolumn: $$[$0]}); -break; -case 572: - this.$ = new yy.AlterTable({table:$$[$0-5], renamecolumn: $$[$0-2], to: $$[$0]}); -break; -case 573: - this.$ = new yy.AlterTable({table:$$[$0-3], dropcolumn: $$[$0]}); -break; -case 574: - this.$ = new yy.AlterTable({table:$$[$0-2], renameto: $$[$0]}); -break; -case 575: - this.$ = new yy.AttachDatabase({databaseid:$$[$0], engineid:$$[$0-2].toUpperCase() }); -break; -case 576: - this.$ = new yy.AttachDatabase({databaseid:$$[$0-3], engineid:$$[$0-5].toUpperCase(), args:$$[$0-1] }); -break; -case 577: - this.$ = new yy.AttachDatabase({databaseid:$$[$0-2], engineid:$$[$0-4].toUpperCase(), as:$$[$0] }); -break; -case 578: - this.$ = new yy.AttachDatabase({databaseid:$$[$0-5], engineid:$$[$0-7].toUpperCase(), as:$$[$0], args:$$[$0-3]}); -break; -case 579: - this.$ = new yy.DetachDatabase({databaseid:$$[$0]}); -break; -case 580: - this.$ = new yy.CreateDatabase({databaseid:$$[$0] }); yy.extend(this.$,$$[$0]); -break; -case 581: - this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), databaseid:$$[$0-1], as:$$[$0] }); yy.extend(this.$,$$[$0-2]); -break; -case 582: - this.$ = new yy.CreateDatabase({engineid:$$[$0-7].toUpperCase(), databaseid:$$[$0-4], args:$$[$0-2], as:$$[$0] }); yy.extend(this.$,$$[$0-5]); -break; -case 583: - this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), - as:$$[$0], args:[$$[$0-1]] }); yy.extend(this.$,$$[$0-2]); -break; -case 584: -this.$ = undefined; -break; -case 586: case 587: - this.$ = new yy.UseDatabase({databaseid: $$[$0] }); -break; -case 588: - this.$ = new yy.DropDatabase({databaseid: $$[$0] }); yy.extend(this.$,$$[$0-1]); -break; -case 589: case 590: - this.$ = new yy.DropDatabase({databaseid: $$[$0], engineid:$$[$0-3].toUpperCase() }); yy.extend(this.$,$$[$0-1]); -break; -case 591: - this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1]}) -break; -case 592: - this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1], unique:true}) -break; -case 593: - this.$ = new yy.DropIndex({indexid:$$[$0]}); -break; -case 594: - this.$ = new yy.ShowDatabases(); -break; -case 595: - this.$ = new yy.ShowDatabases({like:$$[$0]}); -break; -case 596: - this.$ = new yy.ShowDatabases({engineid:$$[$0-1].toUpperCase() }); -break; -case 597: - this.$ = new yy.ShowDatabases({engineid:$$[$0-3].toUpperCase() , like:$$[$0]}); -break; -case 598: - this.$ = new yy.ShowTables(); -break; -case 599: - this.$ = new yy.ShowTables({like:$$[$0]}); -break; -case 600: - this.$ = new yy.ShowTables({databaseid: $$[$0]}); -break; -case 601: - this.$ = new yy.ShowTables({like:$$[$0], databaseid: $$[$0-2]}); -break; -case 602: - this.$ = new yy.ShowColumns({table: $$[$0]}); -break; -case 603: - this.$ = new yy.ShowColumns({table: $$[$0-2], databaseid:$$[$0]}); -break; -case 604: - this.$ = new yy.ShowIndex({table: $$[$0]}); -break; -case 605: - this.$ = new yy.ShowIndex({table: $$[$0-2], databaseid: $$[$0]}); -break; -case 606: - this.$ = new yy.ShowCreateTable({table: $$[$0]}); -break; -case 607: - this.$ = new yy.ShowCreateTable({table: $$[$0-2], databaseid:$$[$0]}); -break; -case 608: - - this.$ = new yy.CreateTable({table:$$[$0-6],view:true,select:$$[$0-1],viewcolumns:$$[$0-4]}); - yy.extend(this.$,$$[$0-9]); - yy.extend(this.$,$$[$0-7]); - -break; -case 609: - - this.$ = new yy.CreateTable({table:$$[$0-3],view:true,select:$$[$0-1]}); - yy.extend(this.$,$$[$0-6]); - yy.extend(this.$,$$[$0-4]); - -break; -case 613: - this.$ = new yy.DropTable({tables:$$[$0], view:true}); yy.extend(this.$, $$[$0-1]); -break; -case 614: case 760: - this.$ = new yy.ExpressionStatement({expression:$$[$0]}); -break; -case 615: - this.$ = new yy.Source({url:$$[$0].value}); -break; -case 616: - this.$ = new yy.Assert({value:$$[$0]}); -break; -case 617: - this.$ = new yy.Assert({value:$$[$0].value}); -break; -case 618: - this.$ = new yy.Assert({value:$$[$0], message:$$[$0-2]}); -break; -case 620: case 631: case 633: - this.$ = $$[$0].value; -break; -case 621: case 629: - this.$ = +$$[$0].value; -break; -case 622: - this.$ = (!!$$[$0].value); -break; -case 630: - this.$ = ""+$$[$0].value; -break; -case 639: - this.$ = {}; -break; -case 642: - this.$ = []; -break; -case 643: - yy.extend($$[$0-2],$$[$0]); this.$ = $$[$0-2]; -break; -case 645: - this.$ = {}; this.$[$$[$0-2].substr(1,$$[$0-2].length-2)] = $$[$0]; -break; -case 646: case 647: - this.$ = {}; this.$[$$[$0-2]] = $$[$0]; -break; -case 650: - this.$ = new yy.SetVariable({variable:$$[$0-2].toLowerCase(), value:$$[$0]}); -break; -case 651: - this.$ = new yy.SetVariable({variable:$$[$0-1].toLowerCase(), value:$$[$0]}); -break; -case 652: - this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0]}); -break; -case 653: - this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0]}); -break; -case 654: - this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]}); -break; -case 655: - this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0], method:$$[$0-4]}); -break; -case 656: -this.$ = '@'; -break; -case 657: -this.$ = '$'; -break; -case 663: - this.$ = true; -break; -case 664: - this.$ = false; -break; -case 665: - this.$ = new yy.CommitTransaction(); -break; -case 666: - this.$ = new yy.RollbackTransaction(); -break; -case 667: - this.$ = new yy.BeginTransaction(); -break; -case 668: - this.$ = new yy.If({expression:$$[$0-2],thenstat:$$[$0-1], elsestat:$$[$0]}); - if($$[$0-1].exists) this.$.exists = $$[$0-1].exists; - if($$[$0-1].queries) this.$.queries = $$[$0-1].queries; - -break; -case 669: - - this.$ = new yy.If({expression:$$[$0-1],thenstat:$$[$0]}); - if($$[$0].exists) this.$.exists = $$[$0].exists; - if($$[$0].queries) this.$.queries = $$[$0].queries; - -break; -case 670: -this.$ = $$[$0]; -break; -case 671: - this.$ = new yy.While({expression:$$[$0-1],loopstat:$$[$0]}); - if($$[$0].exists) this.$.exists = $$[$0].exists; - if($$[$0].queries) this.$.queries = $$[$0].queries; - -break; -case 672: - this.$ = new yy.Continue(); -break; -case 673: - this.$ = new yy.Break(); -break; -case 674: - this.$ = new yy.BeginEnd({statements:$$[$0-1]}); -break; -case 675: - this.$ = new yy.Print({exprs:$$[$0]}); -break; -case 676: - this.$ = new yy.Print({select:$$[$0]}); -break; -case 677: - this.$ = new yy.Require({paths:$$[$0]}); -break; -case 678: - this.$ = new yy.Require({plugins:$$[$0]}); -break; -case 679: case 680: -this.$ = $$[$0].toUpperCase(); -break; -case 681: - this.$ = new yy.Echo({expr:$$[$0]}); -break; -case 686: - this.$ = new yy.Declare({declares:$$[$0]}); -break; -case 689: - this.$ = {variable: $$[$0-1]}; yy.extend(this.$,$$[$0]); -break; -case 690: - this.$ = {variable: $$[$0-2]}; yy.extend(this.$,$$[$0]); -break; -case 691: - this.$ = {variable: $$[$0-3], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]); -break; -case 692: - this.$ = {variable: $$[$0-4], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]); -break; -case 693: - this.$ = new yy.TruncateTable({table:$$[$0]}); -break; -case 694: - - this.$ = new yy.Merge(); yy.extend(this.$,$$[$0-4]); yy.extend(this.$,$$[$0-3]); - yy.extend(this.$,$$[$0-2]); - yy.extend(this.$,{matches:$$[$0-1]});yy.extend(this.$,$$[$0]); - -break; -case 695: case 696: - this.$ = {into: $$[$0]}; -break; -case 698: - this.$ = {on:$$[$0]}; -break; -case 703: - this.$ = {matched:true, action:$$[$0]} -break; -case 704: - this.$ = {matched:true, expr: $$[$0-2], action:$$[$0]} -break; -case 705: - this.$ = {delete:true}; -break; -case 706: - this.$ = {update:$$[$0]}; -break; -case 707: case 708: - this.$ = {matched:false, bytarget: true, action:$$[$0]} -break; -case 709: case 710: - this.$ = {matched:false, bytarget: true, expr:$$[$0-2], action:$$[$0]} -break; -case 711: - this.$ = {matched:false, bysource: true, action:$$[$0]} -break; -case 712: - this.$ = {matched:false, bysource: true, expr:$$[$0-2], action:$$[$0]} -break; -case 713: - this.$ = {insert:true, values:$$[$0]}; -break; -case 714: - this.$ = {insert:true, values:$$[$0], columns:$$[$0-3]}; -break; -case 715: - this.$ = {insert:true, defaultvalues:true}; -break; -case 716: - this.$ = {insert:true, defaultvalues:true, columns:$$[$0-3]}; -break; -case 718: - this.$ = {output:{columns:$$[$0]}} -break; -case 719: - this.$ = {output:{columns:$$[$0-3], intovar: $$[$0], method:$$[$0-1]}} -break; -case 720: - this.$ = {output:{columns:$$[$0-2], intotable: $$[$0]}} -break; -case 721: - this.$ = {output:{columns:$$[$0-5], intotable: $$[$0-3], intocolumns:$$[$0-1]}} -break; -case 722: - - this.$ = new yy.CreateVertex({class:$$[$0-3],sharp:$$[$0-2], name:$$[$0-1]}); - yy.extend(this.$,$$[$0]); - -break; -case 725: - this.$ = {sets:$$[$0]}; -break; -case 726: - this.$ = {content:$$[$0]}; -break; -case 727: - this.$ = {select:$$[$0]}; -break; -case 728: - - this.$ = new yy.CreateEdge({from:$$[$0-3],to:$$[$0-1],name:$$[$0-5]}); - yy.extend(this.$,$$[$0]); - -break; -case 729: - this.$ = new yy.CreateGraph({graph:$$[$0]}); -break; -case 730: - this.$ = new yy.CreateGraph({from:$$[$0]}); -break; -case 733: - - this.$ = $$[$0-2]; - if($$[$0-1]) this.$.json = new yy.Json({value:$$[$0-1]}); - if($$[$0]) this.$.as = $$[$0]; - -break; -case 734: - - this.$ = {source:$$[$0-6], target: $$[$0]}; - if($$[$0-3]) this.$.json = new yy.Json({value:$$[$0-3]}); - if($$[$0-2]) this.$.as = $$[$0-2]; - yy.extend(this.$,$$[$0-4]); - -break; -case 735: - - this.$ = {source:$$[$0-5], target: $$[$0]}; - if($$[$0-2]) this.$.json = new yy.Json({value:$$[$0-3]}); - if($$[$0-1]) this.$.as = $$[$0-2]; - -break; -case 736: - - this.$ = {source:$$[$0-2], target: $$[$0]}; - -break; -case 740: - this.$ = {vars:$$[$0], method:$$[$0-1]}; -break; -case 743: case 744: - - var s3 = $$[$0-1]; - this.$ = {prop:$$[$0-3], sharp:$$[$0-2], name:(typeof s3 == 'undefined')?undefined:s3.substr(1,s3.length-2), class:$$[$0]}; - -break; -case 745: - - var s2 = $$[$0-1]; - this.$ = {sharp:$$[$0-2], name:(typeof s2 == 'undefined')?undefined:s2.substr(1,s2.length-2), class:$$[$0]}; - -break; -case 746: - - var s1 = $$[$0-1]; - this.$ = {name:(typeof s1 == 'undefined')?undefined:s1.substr(1,s1.length-2), class:$$[$0]}; - -break; -case 747: - - this.$ = {class:$$[$0]}; - -break; -case 753: - this.$ = new yy.AddRule({left:$$[$0-2], right:$$[$0]}); -break; -case 754: - this.$ = new yy.AddRule({right:$$[$0]}); -break; -case 757: - this.$ = new yy.Term({termid:$$[$0]}); -break; -case 758: - this.$ = new yy.Term({termid:$$[$0-3],args:$$[$0-1]}); -break; -case 761: - - this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-5], action:$$[$0-4], table:$$[$0-2], statement:$$[$0]}); - if($$[$0].exists) this.$.exists = $$[$0].exists; - if($$[$0].queries) this.$.queries = $$[$0].queries; - -break; -case 762: - - this.$ = new yy.CreateTrigger({trigger:$$[$0-5], when:$$[$0-4], action:$$[$0-3], table:$$[$0-1], funcid:$$[$0]}); - -break; -case 763: - - this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-4], action:$$[$0-3], table:$$[$0-5], statement:$$[$0]}); - if($$[$0].exists) this.$.exists = $$[$0].exists; - if($$[$0].queries) this.$.queries = $$[$0].queries; - -break; -case 764: case 765: case 767: - this.$ = 'AFTER'; -break; -case 766: - this.$ = 'BEFORE'; -break; -case 768: - this.$ = 'INSTEADOF'; -break; -case 769: - this.$ = 'INSERT'; -break; -case 770: - this.$ = 'DELETE'; -break; -case 771: - this.$ = 'UPDATE'; -break; -case 772: - this.$ = new yy.DropTrigger({trigger:$$[$0]}); -break; -case 773: - this.$ = new yy.Reindex({indexid:$$[$0]}); -break; -case 1047: case 1067: case 1069: case 1071: case 1075: case 1077: case 1079: case 1081: case 1083: case 1085: -this.$ = []; -break; -case 1048: case 1062: case 1064: case 1068: case 1070: case 1072: case 1076: case 1078: case 1080: case 1082: case 1084: case 1086: -$$[$0-1].push($$[$0]); -break; -case 1061: case 1063: -this.$ = [$$[$0]]; -break; -} -}, -table: [o([10,602,764],$V0,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{1:[3]},{10:[1,105],11:106,602:$VH,764:$VI},o($VJ,[2,8]),o($VJ,[2,9]),o($VK,[2,12]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:109,2:$V1,4:$V2,5:$V3,15:[1,110],53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,14]),o($VK,[2,15]),o($VK,[2,16]),o($VK,[2,17]),o($VK,[2,18]),o($VK,[2,19]),o($VK,[2,20]),o($VK,[2,21]),o($VK,[2,22]),o($VK,[2,23]),o($VK,[2,24]),o($VK,[2,25]),o($VK,[2,26]),o($VK,[2,27]),o($VK,[2,28]),o($VK,[2,29]),o($VK,[2,30]),o($VK,[2,31]),o($VK,[2,32]),o($VK,[2,33]),o($VK,[2,34]),o($VK,[2,35]),o($VK,[2,36]),o($VK,[2,37]),o($VK,[2,38]),o($VK,[2,39]),o($VK,[2,40]),o($VK,[2,41]),o($VK,[2,42]),o($VK,[2,43]),o($VK,[2,44]),o($VK,[2,45]),o($VK,[2,46]),o($VK,[2,47]),o($VK,[2,48]),o($VK,[2,49]),o($VK,[2,50]),o($VK,[2,51]),o($VK,[2,52]),o($VK,[2,53]),o($VK,[2,54]),o($VK,[2,55]),o($VK,[2,56]),o($VK,[2,57]),o($VK,[2,58]),o($VK,[2,59]),o($VK,[2,60]),o($VK,[2,61]),o($VK,[2,62]),o($VK,[2,63]),o($VK,[2,64]),o($VK,[2,65]),o($VK,[2,66]),o($VK,[2,67]),{353:[1,111]},{2:$V1,3:112,4:$V2,5:$V3},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:113,290:$VM,291:$VN,292:$VO,293:$VP},o($VQ,[2,501],{3:121,348:125,2:$V1,4:$V2,5:$V3,134:$VR,135:$VS,187:[1,123],193:[1,122],268:[1,129],269:[1,130],357:[1,131],405:[1,120],472:[1,124],509:[1,128]}),{145:$VT,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:$V1,3:138,4:$V2,5:$V3,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:145,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:204,171:[1,205],198:$Vv1}),o($Vt1,$Vu1,{340:207,198:$Vv1}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1,453:208},{2:$V1,3:221,4:$V2,5:$V3},{353:[1,222]},o($Vz1,[2,1043],{80:223,106:224,107:[1,225]}),o($VA1,[2,1047],{90:226}),{2:$V1,3:230,4:$V2,5:$V3,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:$V1,3:236,4:$V2,5:$V3,73:234,75:235},o([306,602,764],$V0,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,9:238,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,435:[1,237],436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{435:[1,239]},{435:[1,240]},{2:$V1,3:242,4:$V2,5:$V3,405:[1,241]},{2:$V1,3:244,4:$V2,5:$V3,199:243},o($VB1,[2,311]),{113:245,132:$VW,296:$Vj1},{2:$V1,3:114,4:$V2,5:$V3,113:251,131:$VV,132:[1,248],143:$VY,144:246,145:$VC1,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:247,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,672]),o($VK,[2,673]),{2:$V1,3:168,4:$V2,5:$V3,40:259,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:258,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:266,4:$V2,5:$V3,113:263,132:$VW,296:$Vj1,444:261,445:262,446:264,447:$VE1},{2:$V1,3:267,4:$V2,5:$V3,143:$VF1,145:$VG1,431:268},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:271,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{505:[1,272]},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:273},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:275,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH1,$VI1,{186:280,164:[1,279],185:[1,277],187:[1,278],195:$VJ1}),o($VK1,[2,757],{77:[1,282]}),o([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],[2,152],{149:[1,283],150:[1,284],190:[1,285],191:[1,286],192:[1,287],193:[1,288],194:[1,289]}),o($VL1,[2,1]),o($VL1,[2,2]),{6:290,131:[1,439],172:[1,462],245:[1,411],285:[1,373],286:[1,407],370:[1,404],381:[1,295],402:[1,297],410:[1,549],414:[1,471],416:[1,443],417:[1,509],433:[1,442],435:[1,525],440:[1,342],460:[1,418],464:[1,448],470:[1,341],514:[1,307],515:[1,299],516:[1,399],518:[1,291],519:[1,292],520:[1,293],521:[1,294],522:[1,296],523:[1,298],524:[1,300],525:[1,301],526:[1,302],527:[1,303],528:[1,304],529:[1,305],530:[1,306],531:[1,308],532:[1,309],533:[1,310],534:[1,311],535:[1,312],536:[1,313],537:[1,314],538:[1,315],539:[1,316],540:[1,317],541:[1,318],542:[1,319],543:[1,320],544:[1,321],545:[1,322],546:[1,323],547:[1,324],548:[1,325],549:[1,326],550:[1,327],551:[1,328],552:[1,329],553:[1,330],554:[1,331],555:[1,332],556:[1,333],557:[1,334],558:[1,335],559:[1,336],560:[1,337],561:[1,338],562:[1,339],563:[1,340],564:[1,343],565:[1,344],566:[1,345],567:[1,346],568:[1,347],569:[1,348],570:[1,349],571:[1,350],572:[1,351],573:[1,352],574:[1,353],575:[1,354],576:[1,355],577:[1,356],578:[1,357],579:[1,358],580:[1,359],581:[1,360],582:[1,361],583:[1,362],584:[1,363],585:[1,364],586:[1,365],587:[1,366],588:[1,367],589:[1,368],590:[1,369],591:[1,370],592:[1,371],593:[1,372],594:[1,374],595:[1,375],596:[1,376],597:[1,377],598:[1,378],599:[1,379],600:[1,380],601:[1,381],602:[1,382],603:[1,383],604:[1,384],605:[1,385],606:[1,386],607:[1,387],608:[1,388],609:[1,389],610:[1,390],611:[1,391],612:[1,392],613:[1,393],614:[1,394],615:[1,395],616:[1,396],617:[1,397],618:[1,398],619:[1,400],620:[1,401],621:[1,402],622:[1,403],623:[1,405],624:[1,406],625:[1,408],626:[1,409],627:[1,410],628:[1,412],629:[1,413],630:[1,414],631:[1,415],632:[1,416],633:[1,417],634:[1,419],635:[1,420],636:[1,421],637:[1,422],638:[1,423],639:[1,424],640:[1,425],641:[1,426],642:[1,427],643:[1,428],644:[1,429],645:[1,430],646:[1,431],647:[1,432],648:[1,433],649:[1,434],650:[1,435],651:[1,436],652:[1,437],653:[1,438],654:[1,440],655:[1,441],656:[1,444],657:[1,445],658:[1,446],659:[1,447],660:[1,449],661:[1,450],662:[1,451],663:[1,452],664:[1,453],665:[1,454],666:[1,455],667:[1,456],668:[1,457],669:[1,458],670:[1,459],671:[1,460],672:[1,461],673:[1,463],674:[1,464],675:[1,465],676:[1,466],677:[1,467],678:[1,468],679:[1,469],680:[1,470],681:[1,472],682:[1,473],683:[1,474],684:[1,475],685:[1,476],686:[1,477],687:[1,478],688:[1,479],689:[1,480],690:[1,481],691:[1,482],692:[1,483],693:[1,484],694:[1,485],695:[1,486],696:[1,487],697:[1,488],698:[1,489],699:[1,490],700:[1,491],701:[1,492],702:[1,493],703:[1,494],704:[1,495],705:[1,496],706:[1,497],707:[1,498],708:[1,499],709:[1,500],710:[1,501],711:[1,502],712:[1,503],713:[1,504],714:[1,505],715:[1,506],716:[1,507],717:[1,508],718:[1,510],719:[1,511],720:[1,512],721:[1,513],722:[1,514],723:[1,515],724:[1,516],725:[1,517],726:[1,518],727:[1,519],728:[1,520],729:[1,521],730:[1,522],731:[1,523],732:[1,524],733:[1,526],734:[1,527],735:[1,528],736:[1,529],737:[1,530],738:[1,531],739:[1,532],740:[1,533],741:[1,534],742:[1,535],743:[1,536],744:[1,537],745:[1,538],746:[1,539],747:[1,540],748:[1,541],749:[1,542],750:[1,543],751:[1,544],752:[1,545],753:[1,546],754:[1,547],755:[1,548],756:[1,550],757:[1,551],758:[1,552],759:[1,553],760:[1,554],761:[1,555],762:[1,556],763:[1,557]},{1:[2,6]},o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:558,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VM1,[2,1041]),o($VM1,[2,1042]),o($VJ,[2,10]),{16:[1,559]},{2:$V1,3:244,4:$V2,5:$V3,199:560},{405:[1,561]},o($VK,[2,760]),{77:$VN1},{77:[1,563]},{77:$VO1},{77:[1,565]},{77:[1,566]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:567,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$VP1,{350:568,156:$VQ1}),{405:[1,570]},{2:$V1,3:571,4:$V2,5:$V3},{193:[1,572]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,183:[1,574],431:585,473:573,474:575,475:576,478:577,482:582,493:579,497:581},{130:[1,589],349:586,353:[1,588],410:[1,587]},{113:591,132:$VW,183:[2,1141],296:$Vj1,471:590},o($VU1,[2,1135],{465:592,3:593,2:$V1,4:$V2,5:$V3}),{2:$V1,3:594,4:$V2,5:$V3},{4:[1,595]},{4:[1,596]},o($VQ,[2,502]),o($VK,[2,686],{74:[1,597]}),o($VV1,[2,687]),{2:$V1,3:598,4:$V2,5:$V3},{2:$V1,3:244,4:$V2,5:$V3,199:599},{2:$V1,3:600,4:$V2,5:$V3},o($Vt1,$VW1,{398:601,156:$VX1}),{405:[1,603]},{2:$V1,3:604,4:$V2,5:$V3},o($Vt1,$VW1,{398:605,156:$VX1}),o($Vt1,$VW1,{398:606,156:$VX1}),{2:$V1,3:607,4:$V2,5:$V3},o($VY1,[2,1129]),o($VY1,[2,1130]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:608,114:625,327:637,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VB1,[2,288]),o($VB1,[2,289]),o($VB1,[2,290]),o($VB1,[2,291]),o($VB1,[2,292]),o($VB1,[2,293]),o($VB1,[2,294]),o($VB1,[2,295]),o($VB1,[2,296]),o($VB1,[2,297]),o($VB1,[2,298]),o($VB1,[2,299]),o($VB1,[2,300]),o($VB1,[2,301]),o($VB1,[2,302]),o($VB1,[2,303]),o($VB1,[2,304]),o($VB1,[2,305]),{2:$V1,3:168,4:$V2,5:$V3,26:654,27:653,36:649,40:648,56:165,77:$VU,79:75,89:$V7,94:651,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,264:650,265:$V41,266:$Vc,267:[1,655],270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:[1,652],291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,339:$Vh,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,309]),o($VB1,[2,310]),{77:[1,656]},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:[1,657]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:658,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:659,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:661,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:662,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,283]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,249,265,266,267,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,300,302,303,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,415,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764,765,766],[2,356]),o($Vz2,[2,357]),o($Vz2,[2,358]),o($Vz2,$VA2),o($Vz2,[2,360]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,361]),{2:$V1,3:664,4:$V2,5:$V3,131:[1,665],301:663},{2:$V1,3:666,4:$V2,5:$V3},o($Vz2,[2,367]),o($Vz2,[2,368]),{2:$V1,3:667,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{77:[1,674]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:675,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,304:676,307:677,308:$VC2,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,679]},{77:[1,680]},o($VD2,[2,624]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,683],302:$Vn1,419:190,420:$Vr1,421:681,422:684,423:686,424:$Vs1,427:682},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:696,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:697,4:$V2,5:$V3,156:$VL,200:698,290:$VM,291:$VN,292:$VO,293:$VP},{77:[2,336]},{77:[2,337]},{77:[2,338]},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,425:699,426:[1,700],428:701},{2:$V1,3:244,4:$V2,5:$V3,199:705},{290:[1,706]},o($Vt1,[2,472]),{2:$V1,3:244,4:$V2,5:$V3,199:707},{231:[1,709],454:708},{231:[2,695]},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:710,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{40:711,79:75,89:$V7,184:99,189:$Vb},o($VH2,[2,1091],{210:712,76:[1,713]}),o($VI2,[2,185],{3:714,2:$V1,4:$V2,5:$V3,76:[1,715],154:[1,716]}),o($VI2,[2,189],{3:717,2:$V1,4:$V2,5:$V3,76:[1,718]}),o($VI2,[2,190],{3:719,2:$V1,4:$V2,5:$V3,76:[1,720]}),o($VI2,[2,193]),o($VI2,[2,194],{3:721,2:$V1,4:$V2,5:$V3,76:[1,722]}),o($VI2,[2,197],{3:723,2:$V1,4:$V2,5:$V3,76:[1,724]}),o([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2,{77:$VN1,116:$VK2}),o([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],[2,200]),o($VK,[2,773]),{2:$V1,3:244,4:$V2,5:$V3,199:726},o($VL2,$VM2,{81:727,198:$VN2}),o($Vz1,[2,1044]),o($VO2,[2,1057],{108:729,190:[1,730]}),o([10,78,183,306,310,602,764],$VM2,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,198:$VN2,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),{353:[1,782]},{183:[1,783]},o($VK,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},o($VK,[2,598],{112:[1,787],183:[1,788]}),{2:$V1,3:244,4:$V2,5:$V3,199:789},{40:790,74:[1,791],79:75,89:$V7,184:99,189:$Vb},o($Vv3,[2,70]),{76:[1,792]},o($VK,[2,667]),{11:106,306:[1,793],602:$VH,764:$VI},o($VK,[2,665]),o($VK,[2,666]),{2:$V1,3:794,4:$V2,5:$V3},o($VK,[2,587]),{146:[1,795]},o([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],$VJ2,{116:$VK2}),o($VK,[2,615]),o($VK,[2,616]),o($VK,[2,617]),o($VK,$VA2,{74:[1,796]}),{77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},o($Vw3,[2,320]),o($Vw3,[2,321]),o($Vw3,[2,322]),o($Vw3,[2,323]),o($Vw3,[2,324]),o($Vw3,[2,325]),o($Vw3,[2,326]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,114:625,327:637,12:797,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,675],{74:$Vx3}),o($VK,[2,676]),o($Vy3,[2,354],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,677],{74:[1,800]}),o($VK,[2,678],{74:[1,801]}),o($VV1,[2,683]),o($VV1,[2,685]),o($VV1,[2,679]),o($VV1,[2,680]),{114:807,115:$V$1,116:$V02,124:[1,802],230:$VA3,429:803,430:804,433:$VB3},{2:$V1,3:808,4:$V2,5:$V3},o($Vt1,[2,656]),o($Vt1,[2,657]),o($VK,[2,614],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:100,4:$V2,5:$V3,504:274,506:809},o($VK,[2,754],{74:$VC3}),o($VD3,[2,756]),o($VK,[2,759]),o($VK,[2,681],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VE3,$VI1,{186:811,195:$VJ1}),o($VE3,$VI1,{186:812,195:$VJ1}),o($VE3,$VI1,{186:813,195:$VJ1}),o($VF3,[2,1087],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,188:814,174:815,253:816,94:817,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{77:[1,819],131:$VV,196:818},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:820},o($VG3,[2,153]),o($VG3,[2,154]),o($VG3,[2,155]),o($VG3,[2,156]),o($VG3,[2,157]),o($VG3,[2,158]),o($VG3,[2,159]),o($VL1,[2,3]),o($VL1,[2,774]),o($VL1,[2,775]),o($VL1,[2,776]),o($VL1,[2,777]),o($VL1,[2,778]),o($VL1,[2,779]),o($VL1,[2,780]),o($VL1,[2,781]),o($VL1,[2,782]),o($VL1,[2,783]),o($VL1,[2,784]),o($VL1,[2,785]),o($VL1,[2,786]),o($VL1,[2,787]),o($VL1,[2,788]),o($VL1,[2,789]),o($VL1,[2,790]),o($VL1,[2,791]),o($VL1,[2,792]),o($VL1,[2,793]),o($VL1,[2,794]),o($VL1,[2,795]),o($VL1,[2,796]),o($VL1,[2,797]),o($VL1,[2,798]),o($VL1,[2,799]),o($VL1,[2,800]),o($VL1,[2,801]),o($VL1,[2,802]),o($VL1,[2,803]),o($VL1,[2,804]),o($VL1,[2,805]),o($VL1,[2,806]),o($VL1,[2,807]),o($VL1,[2,808]),o($VL1,[2,809]),o($VL1,[2,810]),o($VL1,[2,811]),o($VL1,[2,812]),o($VL1,[2,813]),o($VL1,[2,814]),o($VL1,[2,815]),o($VL1,[2,816]),o($VL1,[2,817]),o($VL1,[2,818]),o($VL1,[2,819]),o($VL1,[2,820]),o($VL1,[2,821]),o($VL1,[2,822]),o($VL1,[2,823]),o($VL1,[2,824]),o($VL1,[2,825]),o($VL1,[2,826]),o($VL1,[2,827]),o($VL1,[2,828]),o($VL1,[2,829]),o($VL1,[2,830]),o($VL1,[2,831]),o($VL1,[2,832]),o($VL1,[2,833]),o($VL1,[2,834]),o($VL1,[2,835]),o($VL1,[2,836]),o($VL1,[2,837]),o($VL1,[2,838]),o($VL1,[2,839]),o($VL1,[2,840]),o($VL1,[2,841]),o($VL1,[2,842]),o($VL1,[2,843]),o($VL1,[2,844]),o($VL1,[2,845]),o($VL1,[2,846]),o($VL1,[2,847]),o($VL1,[2,848]),o($VL1,[2,849]),o($VL1,[2,850]),o($VL1,[2,851]),o($VL1,[2,852]),o($VL1,[2,853]),o($VL1,[2,854]),o($VL1,[2,855]),o($VL1,[2,856]),o($VL1,[2,857]),o($VL1,[2,858]),o($VL1,[2,859]),o($VL1,[2,860]),o($VL1,[2,861]),o($VL1,[2,862]),o($VL1,[2,863]),o($VL1,[2,864]),o($VL1,[2,865]),o($VL1,[2,866]),o($VL1,[2,867]),o($VL1,[2,868]),o($VL1,[2,869]),o($VL1,[2,870]),o($VL1,[2,871]),o($VL1,[2,872]),o($VL1,[2,873]),o($VL1,[2,874]),o($VL1,[2,875]),o($VL1,[2,876]),o($VL1,[2,877]),o($VL1,[2,878]),o($VL1,[2,879]),o($VL1,[2,880]),o($VL1,[2,881]),o($VL1,[2,882]),o($VL1,[2,883]),o($VL1,[2,884]),o($VL1,[2,885]),o($VL1,[2,886]),o($VL1,[2,887]),o($VL1,[2,888]),o($VL1,[2,889]),o($VL1,[2,890]),o($VL1,[2,891]),o($VL1,[2,892]),o($VL1,[2,893]),o($VL1,[2,894]),o($VL1,[2,895]),o($VL1,[2,896]),o($VL1,[2,897]),o($VL1,[2,898]),o($VL1,[2,899]),o($VL1,[2,900]),o($VL1,[2,901]),o($VL1,[2,902]),o($VL1,[2,903]),o($VL1,[2,904]),o($VL1,[2,905]),o($VL1,[2,906]),o($VL1,[2,907]),o($VL1,[2,908]),o($VL1,[2,909]),o($VL1,[2,910]),o($VL1,[2,911]),o($VL1,[2,912]),o($VL1,[2,913]),o($VL1,[2,914]),o($VL1,[2,915]),o($VL1,[2,916]),o($VL1,[2,917]),o($VL1,[2,918]),o($VL1,[2,919]),o($VL1,[2,920]),o($VL1,[2,921]),o($VL1,[2,922]),o($VL1,[2,923]),o($VL1,[2,924]),o($VL1,[2,925]),o($VL1,[2,926]),o($VL1,[2,927]),o($VL1,[2,928]),o($VL1,[2,929]),o($VL1,[2,930]),o($VL1,[2,931]),o($VL1,[2,932]),o($VL1,[2,933]),o($VL1,[2,934]),o($VL1,[2,935]),o($VL1,[2,936]),o($VL1,[2,937]),o($VL1,[2,938]),o($VL1,[2,939]),o($VL1,[2,940]),o($VL1,[2,941]),o($VL1,[2,942]),o($VL1,[2,943]),o($VL1,[2,944]),o($VL1,[2,945]),o($VL1,[2,946]),o($VL1,[2,947]),o($VL1,[2,948]),o($VL1,[2,949]),o($VL1,[2,950]),o($VL1,[2,951]),o($VL1,[2,952]),o($VL1,[2,953]),o($VL1,[2,954]),o($VL1,[2,955]),o($VL1,[2,956]),o($VL1,[2,957]),o($VL1,[2,958]),o($VL1,[2,959]),o($VL1,[2,960]),o($VL1,[2,961]),o($VL1,[2,962]),o($VL1,[2,963]),o($VL1,[2,964]),o($VL1,[2,965]),o($VL1,[2,966]),o($VL1,[2,967]),o($VL1,[2,968]),o($VL1,[2,969]),o($VL1,[2,970]),o($VL1,[2,971]),o($VL1,[2,972]),o($VL1,[2,973]),o($VL1,[2,974]),o($VL1,[2,975]),o($VL1,[2,976]),o($VL1,[2,977]),o($VL1,[2,978]),o($VL1,[2,979]),o($VL1,[2,980]),o($VL1,[2,981]),o($VL1,[2,982]),o($VL1,[2,983]),o($VL1,[2,984]),o($VL1,[2,985]),o($VL1,[2,986]),o($VL1,[2,987]),o($VL1,[2,988]),o($VL1,[2,989]),o($VL1,[2,990]),o($VL1,[2,991]),o($VL1,[2,992]),o($VL1,[2,993]),o($VL1,[2,994]),o($VL1,[2,995]),o($VL1,[2,996]),o($VL1,[2,997]),o($VL1,[2,998]),o($VL1,[2,999]),o($VL1,[2,1000]),o($VL1,[2,1001]),o($VL1,[2,1002]),o($VL1,[2,1003]),o($VL1,[2,1004]),o($VL1,[2,1005]),o($VL1,[2,1006]),o($VL1,[2,1007]),o($VL1,[2,1008]),o($VL1,[2,1009]),o($VL1,[2,1010]),o($VL1,[2,1011]),o($VL1,[2,1012]),o($VL1,[2,1013]),o($VL1,[2,1014]),o($VL1,[2,1015]),o($VL1,[2,1016]),o($VL1,[2,1017]),o($VL1,[2,1018]),o($VL1,[2,1019]),o($VL1,[2,1020]),o($VL1,[2,1021]),o($VL1,[2,1022]),o($VL1,[2,1023]),o($VL1,[2,1024]),o($VL1,[2,1025]),o($VL1,[2,1026]),o($VL1,[2,1027]),o($VL1,[2,1028]),o($VL1,[2,1029]),o($VL1,[2,1030]),o($VL1,[2,1031]),o($VL1,[2,1032]),o($VL1,[2,1033]),o($VL1,[2,1034]),o($VL1,[2,1035]),o($VL1,[2,1036]),o($VL1,[2,1037]),o($VL1,[2,1038]),o($VL1,[2,1039]),o($VL1,[2,1040]),o($VJ,[2,7]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:821,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:$V1,3:826,4:$V2,5:$V3},o($VE3,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:832,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:833,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:834,4:$V2,5:$V3,132:[1,835]},{2:$V1,3:836,4:$V2,5:$V3,132:[1,837]},{2:$V1,3:838,4:$V2,5:$V3,99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:839,4:$V2,5:$V3},{154:[1,840]},o($VH3,$VP1,{350:841,156:$VQ1}),{230:[1,842]},{2:$V1,3:843,4:$V2,5:$V3},o($VK,[2,729],{74:$VI3}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:845,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD3,[2,732]),o($VJ3,[2,1143],{419:190,476:846,144:847,139:$VK3,141:$VK3,145:$VC1,420:$Vr1,424:$Vs1}),{139:[1,848],141:[1,849]},o($VL3,$VM3,{490:851,493:852,77:[1,850],137:$VS1}),o($VN3,[2,1167],{494:853,132:[1,854]}),o($VO3,[2,1171],{496:855,497:856,152:$VT1}),o($VO3,[2,747]),o($VP3,[2,739]),{2:$V1,3:857,4:$V2,5:$V3,131:[1,858]},{2:$V1,3:859,4:$V2,5:$V3},{2:$V1,3:860,4:$V2,5:$V3},o($Vt1,$VP1,{350:861,156:$VQ1}),o($Vt1,$VP1,{350:862,156:$VQ1}),o($VY1,[2,491]),o($VY1,[2,492]),{183:[1,863]},{183:[2,1142]},o($VQ3,[2,1137],{466:864,469:865,137:[1,866]}),o($VU1,[2,1136]),o($VR3,$VS3,{510:867,95:$VT3,230:[1,868],514:$VU3,515:$VV3,516:$VW3}),{76:[1,873]},{76:[1,874]},{145:$VT,450:875},{4:$VX3,7:879,76:[1,877],272:876,387:878,389:$VY3},o($VK,[2,456],{128:[1,882]}),o($VK,[2,579]),{2:$V1,3:883,4:$V2,5:$V3},{298:[1,884]},o($VH3,$VW1,{398:885,156:$VX1}),o($VK,[2,593]),{2:$V1,3:244,4:$V2,5:$V3,199:887,399:886},{2:$V1,3:244,4:$V2,5:$V3,199:887,399:888},o($VK,[2,772]),o($VJ,[2,669],{438:889,310:[1,890]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:891,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:892,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:893,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:894,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:895,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:896,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:897,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:898,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:899,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:900,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:901,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:902,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:903,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:904,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:905,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:906,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:907,4:$V2,5:$V3,77:[1,909],131:$VV,156:$VL,196:908,200:910,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:911,4:$V2,5:$V3,77:[1,913],131:$VV,156:$VL,196:912,200:914,290:$VM,291:$VN,292:$VO,293:$VP},o($VZ3,[2,440],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:915,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,441],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:916,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,442],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:917,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,443],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:918,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:919,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:920,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:921,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,[2,445],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:922,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:923,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:924,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:929,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:930,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:[1,931],111:934,145:$V$3,156:$VL,200:935,202:933,290:$VM,291:$VN,292:$VO,293:$VP,329:932},{99:[1,937],297:[1,938]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:939,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:940,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:941,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:942,387:878,389:$VY3},o($V04,[2,88]),o($V04,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vt1,$Vu1,{340:207,77:$VO1,198:$Vv1}),{78:[2,1107]},{78:[2,1108]},{134:$VR,135:$VS},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:947,152:$V$,154:$V01,156:$VL,158:167,164:[1,949],179:$V11,180:$V21,181:$V31,185:[1,948],196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:950,4:$V2,5:$V3,149:$V14,180:[1,952]},o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,416],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($V24,[2,417],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,418],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V34,[2,419],{114:625,327:637,316:$Vj2}),o($V34,[2,420],{114:625,327:637,316:$Vj2}),o($Vz2,[2,365]),o($Vz2,[2,1113]),o($Vz2,[2,1114]),o($Vz2,[2,366]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,362]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:953,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,620]),o($VD2,[2,621]),o($VD2,[2,622]),o($VD2,[2,623]),o($VD2,[2,625]),{40:954,79:75,89:$V7,184:99,189:$Vb},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,304:955,307:677,308:$VC2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{305:956,306:$V44,307:957,308:$VC2,310:$V54},o($V64,[2,372]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:959,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:960,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:961,387:878,389:$VY3},o($VD2,[2,626]),{74:[1,963],300:[1,962]},o($VD2,[2,642]),o($V74,[2,649]),o($V84,[2,627]),o($V84,[2,628]),o($V84,[2,629]),o($V84,[2,630]),o($V84,[2,631]),o($V84,[2,632]),o($V84,[2,633]),o($V84,[2,634]),o($V84,[2,635]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:964,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:$V94}),{74:$Vx3,300:[1,966]},o($Va4,[2,314],{77:$VN1}),o($VB1,[2,315]),{74:[1,968],426:[1,967]},o($VD2,[2,639]),o($Vb4,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:972,342:973,343:[1,974],344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:981,198:$Vv1}),{77:$Ve4,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,201:980,302:$Vn1,341:982,342:983,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{230:[1,986],455:985},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:987,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{231:[2,696]},{78:[1,988]},o($VI2,[2,1093],{211:989,3:990,2:$V1,4:$V2,5:$V3}),o($VH2,[2,1092]),o($VI2,[2,183]),{2:$V1,3:991,4:$V2,5:$V3},{212:[1,992]},o($VI2,[2,187]),{2:$V1,3:993,4:$V2,5:$V3},o($VI2,[2,191]),{2:$V1,3:994,4:$V2,5:$V3},o($VI2,[2,195]),{2:$V1,3:995,4:$V2,5:$V3},o($VI2,[2,198]),{2:$V1,3:996,4:$V2,5:$V3},{2:$V1,3:997,4:$V2,5:$V3},{148:[1,998]},o($Vf4,[2,172],{82:999,183:[1,1000]}),{2:$V1,3:219,4:$V2,5:$V3,132:[1,1005],143:$VY,145:[1,1006],152:$V$,156:$VL,181:$V31,199:1001,200:1002,201:1003,202:1004,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1},{2:$V1,3:1011,4:$V2,5:$V3,109:1007,110:1008,111:1009,112:$Vg4},o($VO2,[2,1058]),o($Vh4,[2,1049],{91:1012,182:1013,183:[1,1014]}),o($VA1,[2,1048],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,90],{77:[1,1019]}),{119:[1,1020]},o($Vl4,[2,93]),{2:$V1,3:1021,4:$V2,5:$V3},o($Vl4,[2,95]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1022,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1023,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1025,118:$VT2,122:$VU2,123:$VV2,124:$VW2,125:1024,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},o($Vl4,[2,104]),o($Vl4,[2,105]),o($Vl4,[2,106]),o($Vl4,[2,107]),o($Vl4,[2,108]),o($Vl4,[2,109]),{2:$V1,3:1030,4:$V2,5:$V3},{2:$V1,3:1031,4:$V2,5:$V3,133:[1,1032]},o($Vl4,[2,113]),o($Vl4,[2,114]),o($Vl4,[2,115]),o($Vl4,[2,116]),o($Vl4,[2,117]),o($Vl4,[2,118]),{2:$V1,3:1033,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},o($Vl4,[2,123]),{77:[1,1037]},{2:$V1,3:1038,4:$V2,5:$V3},{77:[1,1039]},{77:[1,1040]},{77:[1,1041]},{77:[1,1042]},{77:[1,1043],164:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047]},{77:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[2,1073]},{77:[2,1074]},{2:$V1,3:244,4:$V2,5:$V3,199:1054},{2:$V1,3:244,4:$V2,5:$V3,199:1055},{113:1056,132:$VW,296:$Vj1},o($VK,[2,596],{112:[1,1057]}),{2:$V1,3:244,4:$V2,5:$V3,199:1058},{113:1059,132:$VW,296:$Vj1},{2:$V1,3:1060,4:$V2,5:$V3},o($VK,[2,693]),o($VK,[2,68]),{2:$V1,3:236,4:$V2,5:$V3,75:1061},{77:[1,1062]},o($VK,[2,674]),o($VK,[2,586]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1063,336:1064,337:1066},{144:1069,145:$VC1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,671]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1070,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:1071,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{113:1072,132:$VW,296:$Vj1},{2:$V1,3:266,4:$V2,5:$V3,446:1073,447:$VE1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1075,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,230:$VA3,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1,429:1074,433:$VB3},o($VK,[2,651]),{114:1077,115:$V$1,116:$V02,124:[1,1076]},o($VK,[2,663]),o($VK,[2,664]),{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1078},{114:807,115:$V$1,116:$V02,124:[1,1082],430:1083},o($VK,[2,753],{74:$VC3}),{2:$V1,3:100,4:$V2,5:$V3,504:1084},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1085,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1086,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1087,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VF3,[2,151]),o($VF3,[2,1088],{74:$Vq4}),o($Vr4,[2,273]),o($Vr4,[2,280],{114:625,327:637,3:1090,113:1092,2:$V1,4:$V2,5:$V3,76:[1,1089],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,131:[1,1091],132:$VW,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,296:$Vj1,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VH1,[2,1089],{197:1093,765:[1,1094]}),{131:$VV,196:1095},{74:$VC3,78:[1,1096]},o($VJ,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},o($VK,[2,575],{76:[1,1103],77:[1,1102]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1104,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vz2,[2,346]),o($VE3,[2,1112]),o($VE3,[2,1109]),o($VE3,[2,1110]),{74:$Vx3,78:[1,1105]},{74:$Vx3,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},o($Vz2,[2,353]),o($VK,[2,580]),{298:[1,1111]},{2:$V1,3:1112,4:$V2,5:$V3,113:1113,132:$VW,296:$Vj1},{2:$V1,3:244,4:$V2,5:$V3,199:1114},{230:[1,1115]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},o($VK,[2,730],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD3,[2,1145],{477:1117,483:1118,76:$Vs4}),o($VJ3,[2,1144]),{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,144:1121,145:$VC1,152:$VT1,419:190,420:$Vr1,424:$Vs1,475:1120,493:579,497:581},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},o($VN3,[2,1163],{491:1126,132:[1,1127]}),o($VL3,[2,1162]),o($VO3,[2,1169],{495:1128,497:1129,152:$VT1}),o($VN3,[2,1168]),o($VO3,[2,746]),o($VO3,[2,1172]),o($VL3,[2,749]),o($VL3,[2,750]),o($VO3,[2,748]),o($VP3,[2,740]),{2:$V1,3:244,4:$V2,5:$V3,199:1130},{2:$V1,3:244,4:$V2,5:$V3,199:1131},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1132,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt4,[2,1139],{467:1133,113:1134,132:$VW,296:$Vj1}),o($VQ3,[2,1138]),{2:$V1,3:1135,4:$V2,5:$V3},{335:$Vu4,338:$Vv4,339:$Vw4,511:1136},{2:$V1,3:244,4:$V2,5:$V3,199:1140},o($VR3,[2,765]),o($VR3,[2,766]),o($VR3,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},o($VV1,[2,688]),o($VV1,[2,689],{124:[1,1144]}),{4:$VX3,7:879,272:1145,387:878,389:$VY3},o([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,542],{5:[1,1146]}),o([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,539],{4:[1,1148],77:[1,1147]}),{77:[1,1149]},o($Vx4,[2,4]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1150,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,588]),o($VH3,[2,568]),{2:$V1,3:1151,4:$V2,5:$V3,113:1152,132:$VW,296:$Vj1},o($VK,[2,564],{74:$Vy4}),o($VV1,[2,566]),o($VK,[2,613],{74:$Vy4}),o($VK,[2,668]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1154,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($Vz4,[2,376],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($V34,[2,377],{114:625,327:637,316:$Vj2}),o($Vz4,[2,378],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,379],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1155],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,381],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1156],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,383],{114:625,327:637}),o($V24,[2,384],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,385],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($VB4,[2,386],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,387],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,388],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,389],{114:625,327:637,115:$V$1,116:$V02,136:$V42,312:$Vg2,316:$Vj2}),o($VC4,[2,390],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,391],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,392],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,393],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($Va4,[2,394],{77:$VN1}),o($VB1,[2,395]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1157,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,397]),o($Va4,[2,398],{77:$VN1}),o($VB1,[2,399]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1158,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,401]),o($VD4,[2,402],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,403],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,404],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,405],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,266,267,290,306,310,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,407],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,408],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,409],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,410],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,411],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},o($VF4,[2,414],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,415],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2}),{2:$V1,3:168,4:$V2,5:$V3,40:1160,56:165,77:$VU,78:[1,1162],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1161,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,428]),o($VB1,[2,430]),o($VB1,[2,437]),o($VB1,[2,438]),{2:$V1,3:667,4:$V2,5:$V3,77:[1,1163]},{2:$V1,3:695,4:$V2,5:$V3,77:[1,1164],111:934,145:$V$3,156:$VL,200:935,202:1166,290:$VM,291:$VN,292:$VO,293:$VP,329:1165},o($VB1,[2,435]),o($VF4,[2,432],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($VF4,[2,433],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,434],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,436]),o($VB1,[2,306]),o($VB1,[2,307]),o($VB1,[2,308]),o($VB1,[2,421]),{74:$Vx3,78:[1,1167]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1168,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1169,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,$VG4),o($VH4,[2,286]),o($VB1,[2,282]),{78:[1,1171],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1172]},{305:1173,306:$V44,307:957,308:$VC2,310:$V54},{306:[1,1174]},o($V64,[2,371]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1175,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1176],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{76:[1,1177],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1178]},o($VD2,[2,640]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,1179],302:$Vn1,419:190,420:$Vr1,422:1180,423:686,424:$Vs1},{78:[1,1181],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1182,4:$V2,5:$V3,149:$V14},o($VB1,[2,364]),o($VD2,[2,637]),{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,426:[1,1183],428:1184},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1185,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1186,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1187,423:686,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1188,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,458],{74:$VJ4}),{149:$Vc4,341:1190,344:$Vd4},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,100:1191,111:1193,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,466]),o($VK4,[2,469]),o($VK4,[2,470]),o($VL4,[2,474]),o($VL4,[2,475]),{2:$V1,3:244,4:$V2,5:$V3,199:1195},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1196,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,462],{74:$VJ4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},{308:$VM4,456:1197,458:1198,459:1199},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1201,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{230:[2,697]},o($VI2,[2,181],{3:1202,2:$V1,4:$V2,5:$V3,76:[1,1203]}),o($VI2,[2,182]),o($VI2,[2,1094]),o($VI2,[2,184]),o($VI2,[2,186]),o($VI2,[2,188]),o($VI2,[2,192]),o($VI2,[2,196]),o($VI2,[2,199]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],[2,201]),{2:$V1,3:1204,4:$V2,5:$V3},o($VN4,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1210],132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,203:1209,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VL2,[2,164]),o($VL2,[2,165]),o($VL2,[2,166]),o($VL2,[2,167]),o($VL2,[2,168]),{2:$V1,3:667,4:$V2,5:$V3},o($Vz1,[2,83],{74:[1,1212]}),o($VO4,[2,85]),o($VO4,[2,86]),{113:1213,132:$VW,296:$Vj1},o([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vy2,{116:$V94}),o($Vh4,[2,73]),o($Vh4,[2,1050]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1214,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,126]),o($Vl4,[2,144]),o($Vl4,[2,145]),o($Vl4,[2,146]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1065],94:260,111:149,113:153,127:1215,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1216,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1217]},o($Vl4,[2,94]),o([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,96],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,97],{114:625,327:637,99:$VZ1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1218],112:$VS2,114:736,115:$V$1,116:$V02,117:1219,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1061],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1221,118:$VT2,122:$VU2,123:$VV2,124:$VW2,126:1220,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1222,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1223,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1224,4:$V2,5:$V3},o($Vl4,[2,110]),o($Vl4,[2,111]),o($Vl4,[2,112]),o($Vl4,[2,119]),{2:$V1,3:1225,4:$V2,5:$V3},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1226,336:1064,337:1066},{2:$V1,3:1227,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1228,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,125]),o($VP4,[2,1067],{155:1229}),o($VP4,[2,1069],{157:1230}),o($VP4,[2,1071],{159:1231}),o($VP4,[2,1075],{161:1232}),o($VQ4,$VR4,{163:1233,178:1234}),{77:[1,1235]},o($VP4,[2,1077],{165:1236}),o($VP4,[2,1079],{167:1237}),o($VQ4,$VR4,{178:1234,163:1238}),o($VQ4,$VR4,{178:1234,163:1239}),o($VQ4,$VR4,{178:1234,163:1240}),o($VQ4,$VR4,{178:1234,163:1241}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1242,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1243,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1081],{176:1244}),o($VK,[2,606],{183:[1,1245]}),o($VK,[2,602],{183:[1,1246]}),o($VK,[2,595]),{113:1247,132:$VW,296:$Vj1},o($VK,[2,604],{183:[1,1248]}),o($VK,[2,599]),o($VK,[2,600],{112:[1,1249]}),o($Vv3,[2,69]),{40:1250,79:75,89:$V7,184:99,189:$Vb},o($VK,[2,450],{74:$VT4,128:[1,1251]}),o($VU4,[2,451]),{124:[1,1253]},{2:$V1,3:1254,4:$V2,5:$V3},o($Vt1,[2,1115]),o($Vt1,[2,1116]),o($VK,[2,618]),o($Vy3,[2,355],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD4,$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VV1,[2,682]),o($VV1,[2,684]),o($VK,[2,650]),o($VK,[2,652],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1255,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1256},o($VV4,[2,659]),o($VV4,[2,660]),o($VV4,[2,661]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1258,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{114:1077,115:$V$1,116:$V02,124:[1,1259]},o($VD3,[2,755]),o($VF3,[2,148],{74:$Vq4}),o($VF3,[2,149],{74:$Vq4}),o($VF3,[2,150],{74:$Vq4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:1260,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1261,4:$V2,5:$V3,113:1263,131:[1,1262],132:$VW,296:$Vj1},o($Vr4,[2,275]),o($Vr4,[2,277]),o($Vr4,[2,279]),o($VH1,[2,160]),o($VH1,[2,1090]),{78:[1,1264]},o($VK1,[2,758]),{2:$V1,3:1265,4:$V2,5:$V3},{2:$V1,3:1266,4:$V2,5:$V3},{2:$V1,3:1268,4:$V2,5:$V3,384:1267},{2:$V1,3:1268,4:$V2,5:$V3,384:1269},{2:$V1,3:1270,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1271,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1272,4:$V2,5:$V3},{74:$Vx3,78:[1,1273]},o($Vz2,[2,347]),o($Vz2,[2,348]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1274,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1275,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1277,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH3,[2,504]),o($VK,$VW4,{407:1278,76:$VX4,77:[1,1279]}),o($VK,$VW4,{407:1281,76:$VX4}),{77:[1,1282]},{2:$V1,3:244,4:$V2,5:$V3,199:1283},o($VD3,[2,731]),o($VD3,[2,733]),o($VD3,[2,1146]),{143:$VF1,145:$VG1,431:1284},o($VY4,[2,1147],{419:190,479:1285,144:1286,145:$VC1,420:$Vr1,424:$Vs1}),{76:$Vs4,139:[2,1151],481:1287,483:1288},o([10,74,76,78,132,139,145,152,306,310,420,424,602,764],$VM3,{490:851,493:852,137:$VS1}),o($VD3,[2,736]),o($VD3,$VK3),{74:$VI3,78:[1,1289]},o($VO3,[2,1165],{492:1290,497:1291,152:$VT1}),o($VN3,[2,1164]),o($VO3,[2,745]),o($VO3,[2,1170]),o($VK,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,148:[1,1295],154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI4,$VZ4,{79:75,184:99,468:1296,40:1299,89:$V7,146:$V_4,189:$Vb,470:$V$4}),o($Vt4,[2,1140]),o($VQ3,[2,723]),{230:[1,1300]},o($V05,[2,769]),o($V05,[2,770]),o($V05,[2,771]),o($VR3,$VS3,{510:1301,95:$VT3,514:$VU3,515:$VV3,516:$VW3}),o($VR3,[2,768]),o($VK,[2,312]),o($VK,[2,313]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1302,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV1,[2,690],{124:[1,1303]}),o($Vx4,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},o($Vx4,[2,5]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1307,419:190,420:$Vr1,424:$Vs1},o($VK,[2,455],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,589]),o($VK,[2,590]),{2:$V1,3:244,4:$V2,5:$V3,199:1308},o($VK,[2,670]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1309,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1310,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1311],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1312],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,40:1313,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1314,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1315]},{74:$Vx3,78:[1,1316]},o($VB1,[2,426]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1317,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,40:1318,56:165,77:$VU,78:[1,1320],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1319,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,429]),o($VB1,[2,431]),o($VB1,$V15,{275:1321,276:$V25}),{78:[1,1323],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1324],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3,180:[1,1326]},o($VD2,[2,619]),o($VB1,[2,363]),{306:[1,1327]},o($VB1,[2,370]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,306:[2,374],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1328,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:1329,387:878,389:$VY3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1330,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,641]),o($V74,[2,648]),o($V84,[2,636]),o($VH4,$VG4),o($VD2,[2,638]),o($Vb4,[2,643]),o($Vb4,[2,645]),o($Vb4,[2,646]),o($Vb4,[2,647]),o($VI4,[2,457],{74:$VJ4}),{77:[1,1332],143:$VY,144:1333,145:$VC1,152:$V$,181:$V31,201:1334,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,463]),{74:$V35,78:[1,1335]},{74:$V45,78:[1,1337]},o([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,311,312,313,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333],$V55),o($V65,[2,479],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{40:1341,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1339,342:1340,344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,461],{74:$VJ4}),o($VK,[2,717],{457:1342,458:1343,459:1344,308:$VM4,464:[1,1345]}),o($V75,[2,701]),o($V75,[2,702]),{154:[1,1347],460:[1,1346]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,308:[2,698],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI2,[2,179]),{2:$V1,3:1348,4:$V2,5:$V3},o($VK,[2,574]),o($V85,[2,238],{84:1349,128:[1,1350]}),o($VN4,[2,1046]),{77:[1,1351]},{77:[1,1352]},o($Vf4,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:$V95,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,40:711,77:$Vw1,79:75,89:$V7,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,184:99,189:$Vb,199:213,200:215,201:214,202:217,203:1369,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vk5,[2,177]),{2:$V1,3:1011,4:$V2,5:$V3,110:1370,111:1009,112:$Vg4},o($VO4,[2,87]),o($Vh4,[2,147],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[1,1371]},{74:$Vx3,78:[2,1066]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,242:[1,1375],254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,98]),o($VP4,[2,1062],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1377],112:$VS2,114:736,115:$V$1,116:$V02,117:1378,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1063],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{78:[1,1379],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1380],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1381]},o($Vl4,[2,120]),{74:$VT4,78:[1,1382]},o($Vl4,[2,122]),{74:$Vx3,78:[1,1383]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1384],112:$VS2,114:736,115:$V$1,116:$V02,117:1385,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1386],112:$VS2,114:736,115:$V$1,116:$V02,117:1387,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1388],112:$VS2,114:736,115:$V$1,116:$V02,117:1389,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1390],112:$VS2,114:736,115:$V$1,116:$V02,117:1391,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1392]},o($V65,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($VQ4,$VR4,{178:1234,163:1395}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1396],112:$VS2,114:736,115:$V$1,116:$V02,117:1397,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1398],112:$VS2,114:736,115:$V$1,116:$V02,117:1399,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1400]},{74:$Vl5,78:[1,1401]},{74:$Vl5,78:[1,1402]},{74:$Vl5,78:[1,1403]},{78:[1,1404],153:1015,179:$Vi4,180:$Vj4,181:$Vk4},{74:$Vq4,78:[1,1405]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,74:[1,1406],76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1407,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1408,4:$V2,5:$V3},{2:$V1,3:1409,4:$V2,5:$V3},o($VK,[2,597]),{2:$V1,3:1410,4:$V2,5:$V3},{113:1411,132:$VW,296:$Vj1},{78:[1,1412]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1413,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,336:1414,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1415,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{124:[1,1416]},o($VK,[2,653],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VV4,[2,658]),{78:[1,1417],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,654],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1418,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vr4,[2,272]),o($Vr4,[2,274]),o($Vr4,[2,276]),o($Vr4,[2,278]),o($VH1,[2,161]),o($VK,[2,569]),{148:[1,1419]},o($VK,[2,570]),o($VD3,[2,536],{387:878,7:879,272:1420,4:$VX3,386:[1,1421],389:$VY3}),o($VK,[2,571]),o($VK,[2,573]),{74:$Vx3,78:[1,1422]},o($VK,[2,577]),o($Vz2,[2,345]),{74:[1,1423],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1424],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1425],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1426],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,581]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1427,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1428,4:$V2,5:$V3},o($VK,[2,583]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1429,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1430]},{2:$V1,3:1431,4:$V2,5:$V3},{76:$Vs4,139:[2,1149],480:1432,483:1433},o($VY4,[2,1148]),{139:[1,1434]},{139:[2,1152]},o($VD3,[2,737]),o($VO3,[2,744]),o($VO3,[2,1166]),{2:$V1,3:1268,4:$V2,5:$V3,76:[1,1437],351:1435,358:1436,384:1438},{2:$V1,3:1011,4:$V2,5:$V3,100:1439,111:1440},{40:1441,79:75,89:$V7,184:99,189:$Vb},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1442,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,722]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1443,336:1064,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1444,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,727]),{2:$V1,3:244,4:$V2,5:$V3,199:1445},{335:$Vu4,338:$Vv4,339:$Vw4,511:1446},o($VV1,[2,691],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1447,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:[1,1448],78:[1,1449]},o($V65,[2,543]),o($V65,[2,544]),{74:$V45,78:[1,1450]},o($VV1,[2,565]),o($Vz4,[2,380],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($Vz4,[2,382],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,396]),o($VB1,[2,400]),{78:[1,1451]},{74:$Vx3,78:[1,1452]},o($VB1,[2,422]),o($VB1,[2,424]),{78:[1,1453],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1454]},{74:$Vx3,78:[1,1455]},o($VB1,[2,427]),o($VB1,[2,327]),{77:[1,1456]},o($VB1,$V15,{275:1457,276:$V25}),o($VB1,$V15,{275:1458,276:$V25}),o($VH4,[2,284]),o($VB1,[2,281]),o($VB1,[2,369]),o($V64,[2,373],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1463,419:190,420:$Vr1,424:$Vs1},o($VL4,[2,477]),o($VL4,[2,478]),{40:1466,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1464,342:1465,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1467},o($VL4,[2,473]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1468,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1469,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,460],{74:$VJ4}),o($VI4,[2,467]),o($VK,[2,694]),o($V75,[2,699]),o($V75,[2,700]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1470,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{170:[1,1472],309:[1,1471]},{460:[1,1473]},o($VI2,[2,180]),o($Vm5,[2,240],{85:1474,232:[1,1475]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1476,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1477,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1478,4:$V2,5:$V3},o($Vf4,[2,170],{216:1357,221:1360,215:1479,205:1480,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:1481,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vn5,[2,205]),o($Vn5,[2,206]),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1486],143:$VY,144:1484,145:$VZ,152:$V$,156:$VL,181:$V31,199:1483,200:1487,201:1485,202:1488,217:1482,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{207:[1,1489],223:$Vo5},{207:[1,1491],223:$Vp5},o($Vq5,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vq5,[2,224]),{223:[1,1496]},{208:[1,1498],223:[1,1497]},{208:[1,1500],223:[1,1499]},{208:[1,1501]},{223:[1,1502]},{223:[1,1503]},{74:$V95,204:1504,205:1356,206:$Va5,208:$Vb5,215:1355,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($VO4,[2,84]),o($Vl4,[2,100]),{74:$Vr5,78:[1,1505]},{78:[1,1507]},o($Vs5,[2,261]),{78:[2,1060]},o($Vs5,[2,263],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,242:[1,1508],243:[1,1509],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vl4,[2,99]),o($VP4,[2,1064],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,101]),o($Vl4,[2,102]),o($Vl4,[2,103]),o($Vl4,[2,121]),o($Vl4,[2,124]),o($Vl4,[2,127]),o($VP4,[2,1068],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,128]),o($VP4,[2,1070],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,129]),o($VP4,[2,1072],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,130]),o($VP4,[2,1076],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,131]),o($VQ4,[2,1083],{177:1510}),o($VQ4,[2,1086],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{74:$Vl5,78:[1,1511]},o($Vl4,[2,133]),o($VP4,[2,1078],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,134]),o($VP4,[2,1080],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,135]),o($Vl4,[2,136]),o($Vl4,[2,137]),o($Vl4,[2,138]),o($Vl4,[2,139]),o($Vl4,[2,140]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1512,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1082],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($VK,[2,607]),o($VK,[2,603]),o($VK,[2,605]),o($VK,[2,601]),o($Vv3,[2,71]),o($VK,[2,449],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VU4,[2,452]),o($VU4,[2,453],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1513,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV4,[2,662]),o($VK,[2,655],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:1514,4:$V2,5:$V3},o($VD3,[2,545],{385:1515,391:1516,392:1517,366:1525,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($VD3,[2,535]),o($VK,[2,576],{76:[1,1529]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1530,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1531,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1532,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1533,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$Vx3,78:[1,1534]},o($VK,[2,585]),{74:$Vr5,78:[1,1535]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1536,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1538,482:582,493:579,497:581},{78:[1,1539]},{74:[1,1540],78:[2,506]},{40:1541,79:75,89:$V7,184:99,189:$Vb},o($V65,[2,532]),{74:$V35,78:[1,1542]},o($Vk5,$V55),o($VK,[2,1133],{412:1543,413:1544,72:$VD5}),o($VI4,$VZ4,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V_4,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,470:$V$4}),o($VI4,[2,725],{74:$VT4}),o($VI4,[2,726],{74:$Vx3}),o([10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],[2,1181],{512:1547,3:1548,2:$V1,4:$V2,5:$V3,76:[1,1549]}),o($VE5,[2,1183],{513:1550,76:[1,1551]}),o($VV1,[2,692],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{131:[1,1552]},o($Vx4,[2,538]),o($Vx4,[2,540]),o($VB1,[2,412]),o($VB1,[2,413]),o($VB1,[2,439]),o($VB1,[2,423]),o($VB1,[2,425]),{118:$VF5,277:1553,278:1554,279:[1,1555]},o($VB1,[2,328]),o($VB1,[2,329]),o($VB1,[2,316]),{131:[1,1557]},o($VB1,[2,318]),{131:[1,1558]},{74:$V45,78:[1,1559]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1560,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,465],{74:$VJ4}),o($VI4,[2,468]),o($Vk5,[2,488]),o($V65,[2,480],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VI4,[2,459],{74:$VJ4}),o($VK,[2,718],{74:$Vq4,198:[1,1561]}),{335:$VG5,338:$VH5,461:1562},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1565,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{119:[1,1567],170:[1,1568],309:[1,1566]},o($VI5,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},o($V85,[2,239],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{95:[1,1572],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{95:[1,1573]},o($Vn5,[2,203]),o($Vn5,[2,204]),o($Vk5,[2,178]),o($Vn5,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),o($VJ5,[2,208],{3:1577,2:$V1,4:$V2,5:$V3,76:[1,1578]}),o($VK5,[2,1095],{219:1579,76:[1,1580]}),{2:$V1,3:1581,4:$V2,5:$V3,76:[1,1582]},{40:1583,79:75,89:$V7,184:99,189:$Vb},o($VJ5,[2,216],{3:1584,2:$V1,4:$V2,5:$V3,76:[1,1585]}),o($VJ5,[2,219],{3:1586,2:$V1,4:$V2,5:$V3,76:[1,1587]}),{77:[1,1588]},o($Vq5,[2,234]),{77:[1,1589]},o($Vq5,[2,230]),o($Vq5,[2,223]),{223:$Vp5},{223:$Vo5},o($Vq5,[2,225]),o($Vq5,[2,226]),{223:[1,1590]},o($Vq5,[2,228]),{223:[1,1591]},{223:[1,1592]},o($Vq5,[2,232]),o($Vq5,[2,233]),{78:[1,1593],205:1480,206:$Va5,208:$Vb5,215:1479,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vl4,[2,91]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1594,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,92]),o($Vs5,[2,264]),{244:[1,1595]},o($V65,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($Vl4,[2,132]),{74:$Vx3,78:[1,1597]},o($VU4,[2,454],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,572]),o($VD3,[2,534]),o($VD3,[2,546],{366:1525,392:1598,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($Vw3,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:$V1,3:244,4:$V2,5:$V3,199:1601},o($Vw3,[2,554],{77:[1,1602]}),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1604],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:1605,201:254,257:252,258:253,265:$VD1,274:1603,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},o($Vw3,[2,558]),{297:[1,1606]},o($Vw3,[2,560]),o($Vw3,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:$V1,3:1609,4:$V2,5:$V3},{78:[1,1610],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1611],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1612],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1613],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,$VW4,{407:1614,76:$VX4}),o($VK,[2,591]),{74:$Vr5,78:[1,1615]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1616,482:582,493:579,497:581},o($VD3,[2,735]),o($VK,[2,493],{352:1617,354:1618,355:1619,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VP5,$VQ5,{3:1268,359:1624,384:1625,360:1626,361:1627,2:$V1,4:$V2,5:$V3,367:$VR5}),{78:[2,507]},{76:[1,1629]},o($VK,[2,609]),o($VK,[2,1134]),{368:[1,1631],414:[1,1630]},o($VI4,[2,728]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1632,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,762]),o($VE5,[2,1182]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1633,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VE5,[2,1184]),{78:[1,1634]},{78:[1,1635],118:$VF5,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},o($VL4,[2,476]),o($VI4,[2,464],{74:$VJ4}),{2:$V1,3:244,4:$V2,5:$V3,143:$VF1,145:$VG1,199:1643,431:1642},o($V75,[2,703]),o($V75,[2,705]),{146:[1,1644]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1645],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{339:$VS5,462:1646},{417:[1,1649],463:[1,1648]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1650,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VT5,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1655,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1661,4:$V2,5:$V3},{2:$V1,3:1662,4:$V2,5:$V3},o($Vn5,[2,207]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1663,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1664,111:1440},o($VJ5,[2,209]),{2:$V1,3:1665,4:$V2,5:$V3},o($VJ5,[2,1097],{220:1666,3:1667,2:$V1,4:$V2,5:$V3}),o($VK5,[2,1096]),o($VJ5,[2,212]),{2:$V1,3:1668,4:$V2,5:$V3},{78:[1,1669]},o($VJ5,[2,217]),{2:$V1,3:1670,4:$V2,5:$V3},o($VJ5,[2,220]),{2:$V1,3:1671,4:$V2,5:$V3},{40:1672,79:75,89:$V7,184:99,189:$Vb},{40:1673,79:75,89:$V7,184:99,189:$Vb},o($Vq5,[2,227]),o($Vq5,[2,229]),o($Vq5,[2,231]),o($Vf4,[2,171]),o($Vs5,[2,262]),o($Vs5,[2,265],{242:[1,1674]}),o($VQ4,[2,1084],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,141]),o($Vw3,[2,547]),o($Vw3,[2,550]),{374:[1,1675]},o($Vw3,[2,1127],{395:1676,393:1677,77:$VX5}),{131:$VV,196:1679},o($Vw3,[2,555]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1680,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vw3,[2,557]),o($Vw3,[2,559]),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1682],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:1681,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1683,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,578]),o($Vz2,[2,349]),o($Vz2,[2,350]),o($Vz2,[2,351]),o($Vz2,[2,352]),o($VK,[2,582]),o($VK,[2,592]),o($VD3,[2,734]),o($VK,[2,489]),o($VK,[2,494],{355:1684,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VY5,[2,496]),o($VY5,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},o($V65,[2,533]),o($V65,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:$Vz5,369:[1,1694],370:[1,1698],373:[1,1695]},{2:$V1,3:1699,4:$V2,5:$V3},{40:1700,79:75,89:$V7,184:99,189:$Vb},{415:[1,1701]},{416:[1,1702]},o($VK,[2,761]),o($VK,[2,763]),o($Vx4,[2,537]),o($VB1,[2,331]),{78:[1,1703]},o($VB1,[2,332]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1704,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1705,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,317]),o($VB1,[2,319]),{2:$V1,3:1706,4:$V2,5:$V3},o($VK,[2,720],{77:[1,1707]}),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1708,336:1064,337:1066},{335:$VG5,338:$VH5,461:1709},o($V75,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1717],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vh4,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:$VV,196:1722},{131:$VV,196:1723},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1724,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vm5,[2,248],{234:1725,74:$VZ5,239:[1,1727]}),o($V_5,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},o($V_5,[2,247],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},o($Vn5,[2,235],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vn5,[2,236],{74:$V35}),o($VJ5,[2,210]),o($VJ5,[2,211]),o($VJ5,[2,1098]),o($VJ5,[2,213]),{2:$V1,3:1735,4:$V2,5:$V3,76:[1,1736]},o($VJ5,[2,218]),o($VJ5,[2,221]),{78:[1,1737]},{78:[1,1738]},o($Vs5,[2,266]),{2:$V1,3:244,4:$V2,5:$V3,199:1739},o($Vw3,[2,552]),o($Vw3,[2,1128]),{2:$V1,3:1740,4:$V2,5:$V3},{74:[1,1741]},{78:[1,1742],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,562]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1743,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1744],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VY5,[2,495]),{2:$V1,3:1745,4:$V2,5:$V3},{131:$VV,196:1746},{2:$V1,3:1747,4:$V2,5:$V3},o($VP5,$VQ5,{361:1627,360:1748,367:$VR5}),o($VD3,[2,510]),o($VD3,[2,511]),o($VD3,[2,512]),o($VD3,[2,513]),o($VD3,[2,514]),{370:[1,1749]},{370:[1,1750]},o($V$5,[2,1121],{382:1751,370:[1,1752]}),{2:$V1,3:1753,4:$V2,5:$V3},{2:$V1,3:1754,4:$V2,5:$V3},o($VP5,[2,516]),o($VK,[2,1131],{411:1755,413:1756,72:$VD5}),o($VK,[2,610]),o($VK,[2,611],{367:[1,1757]}),o($VB1,[2,333]),o([78,118],[2,334],{74:$VZ5}),{74:$Vr5,78:[2,335]},o($VK,[2,719]),{2:$V1,3:1011,4:$V2,5:$V3,100:1758,111:1440},o($V75,[2,706],{74:$VT4}),o($V75,[2,704]),{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1759,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1760,111:1440},{344:[1,1761]},{339:$VS5,462:1762},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1763,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1764},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1765,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1766},o($Vh4,[2,72]),{40:1767,79:75,89:$V7,164:[1,1768],184:99,189:$Vb,240:[1,1769]},{40:1770,79:75,89:$V7,184:99,189:$Vb,240:[1,1771]},{40:1772,79:75,89:$V7,184:99,189:$Vb,240:[1,1773]},o($VT5,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},o($VI5,[2,260],{74:$Vr5}),o($Vm5,[2,241]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,235:1778,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1779,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1780]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1781,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1782,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},o($VJ5,[2,214]),{2:$V1,3:1786,4:$V2,5:$V3},{2:$V1,3:1787,4:$V2,5:$V3,76:[1,1788]},{2:$V1,3:1789,4:$V2,5:$V3,76:[1,1790]},o($Vw3,[2,1125],{394:1791,393:1792,77:$VX5}),{78:[1,1793]},{131:$VV,196:1794},o($Vw3,[2,556]),{78:[1,1795],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,517]),o($VY5,[2,498]),o($VY5,[2,499]),o($VY5,[2,500]),o($V65,[2,509]),{2:$V1,3:1797,4:$V2,5:$V3,77:[2,1117],371:1796},{77:[1,1798]},{2:$V1,3:1800,4:$V2,5:$V3,77:[2,1123],383:1799},o($V$5,[2,1122]),{77:[1,1801]},{77:[1,1802]},o($VK,[2,608]),o($VK,[2,1132]),o($VP5,$VQ5,{361:1627,360:1803,367:$VR5}),{74:$V35,78:[1,1804]},o($V75,[2,713],{74:$VJ4}),{74:$V35,78:[1,1805]},o($V75,[2,715]),o($V75,[2,708]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1806],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,711]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1807],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,709]),o($Vh4,[2,251]),{40:1808,79:75,89:$V7,184:99,189:$Vb,240:[1,1809]},{40:1810,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,253]),{40:1811,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,254]),{40:1812,79:75,89:$V7,184:99,189:$Vb},o($VT5,[2,268]),{131:$VV,196:1813},{249:[1,1814]},{249:[2,1100]},o($V_5,[2,243]),o($Vm5,[2,249],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1815,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$VZ5,78:[1,1816]},{74:$VZ5,78:[1,1817]},o($VN4,[2,1053],{97:1818,104:1819,3:1821,2:$V1,4:$V2,5:$V3,76:$V06}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,103:1822,105:1823,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1825,111:1440},o($VJ5,[2,215]),o($Vn5,[2,173]),{2:$V1,3:1826,4:$V2,5:$V3},o($Vn5,[2,175]),{2:$V1,3:1827,4:$V2,5:$V3},o($Vw3,[2,551]),o($Vw3,[2,1126]),o($Vw3,[2,549]),{78:[1,1828]},o($Vw3,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1830},{77:[1,1833]},{77:[2,1124]},{2:$V1,3:1011,4:$V2,5:$V3,100:1834,111:1440},{2:$V1,3:1011,4:$V2,5:$V3,100:1835,111:1440},o($VK,[2,612]),o($VK,[2,721]),{343:[1,1837],344:[1,1836]},{339:$VS5,462:1838},{335:$VG5,338:$VH5,461:1839},o($Vh4,[2,252]),{40:1840,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,255]),o($Vh4,[2,257]),o($Vh4,[2,258]),o($VT5,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:$VZ5,78:[1,1843]},o($V_5,[2,245]),o($V_5,[2,246]),o($VN4,[2,74]),o($VN4,[2,1054]),{2:$V1,3:1844,4:$V2,5:$V3},o($VN4,[2,78]),{74:[1,1846],78:[1,1845]},o($V65,[2,80]),o($V65,[2,81],{114:625,327:637,76:[1,1847],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:$V35,78:[1,1848]},o($Vn5,[2,174]),o($Vn5,[2,176]),o($Vw3,[2,553]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1849},{74:$V26,78:[1,1850]},o($V65,[2,528]),o($V65,[2,529]),{2:$V1,3:1011,4:$V2,5:$V3,100:1852,111:1440},{74:$V35,78:[1,1853]},{74:$V35,78:[1,1854]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1855,419:190,420:$Vr1,424:$Vs1},{344:[1,1856]},o($V75,[2,710]),o($V75,[2,712]),o($Vh4,[2,256]),{131:$VV,196:1857},{131:[2,1102]},o($V_5,[2,244]),o($VN4,[2,77]),{78:[2,76]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,105:1858,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1859,4:$V2,5:$V3},{78:[1,1860]},{74:$V26,78:[1,1861]},{374:[1,1862]},{2:$V1,3:1863,4:$V2,5:$V3,132:[1,1864]},{74:$V35,78:[1,1865]},o($VD3,[2,526]),o($VD3,[2,527]),o($V75,[2,714],{74:$VJ4}),o($V75,[2,716]),o($V36,[2,1103],{251:1866,766:[1,1867]}),o($V65,[2,79]),o($V65,[2,82]),o($VN4,[2,1055],{3:1821,101:1868,104:1869,2:$V1,4:$V2,5:$V3,76:$V06}),o($VD3,[2,518]),{2:$V1,3:244,4:$V2,5:$V3,199:1870},o($V65,[2,530]),o($V65,[2,531]),o($VD3,[2,525]),o($VT5,[2,1105],{252:1871,415:[1,1872]}),o($V36,[2,1104]),o($VN4,[2,75]),o($VN4,[2,1056]),o($V46,[2,1119],{375:1873,377:1874,77:[1,1875]}),o($VT5,[2,269]),o($VT5,[2,1106]),o($VD3,[2,521],{376:1876,378:1877,230:[1,1878]}),o($V46,[2,1120]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1879},o($VD3,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:$V26,78:[1,1883]},o($VD3,[2,522]),{335:[1,1884]},{380:[1,1885]},o($V46,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},o($VD3,[2,524])], -defaultActions: {105:[2,6],194:[2,336],195:[2,337],196:[2,338],197:[2,339],198:[2,340],199:[2,341],200:[2,342],201:[2,343],202:[2,344],209:[2,695],591:[2,1142],653:[2,1107],654:[2,1108],710:[2,696],780:[2,1073],781:[2,1074],926:[2,446],927:[2,447],928:[2,448],987:[2,697],1288:[2,1152],1375:[2,1060],1433:[2,1150],1541:[2,507],1732:[2,1052],1777:[2,1100],1797:[2,1118],1800:[2,1124],1842:[2,1102],1845:[2,76],1887:[2,523]}, -parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } -}, -parse: function parse(input) { - var self = this, - stack = [0], - tstack = [], // token stack - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - var args = lstack.slice.call(arguments, 1); - - //this.reductionCount = this.shiftCount = 0; - - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - // copy state - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - - var ranges = lexer.options && lexer.options.ranges; - - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - - function popStack (n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - -_token_stack: - var lex = function () { - var token; - token = lexer.lex() || EOF; - // if token isn't its numeric value, convert - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - // retreive state number from top of stack - state = stack[stack.length - 1]; - - // use default actions if available - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - // read action for current state and first input - action = table[state] && table[state][symbol]; - } - -_handle_error: - // handle parse error - if (typeof action === 'undefined' || !action.length || !action[0]) { - var error_rule_depth; - var errStr = ''; - - // Return the rule stack depth where the nearest error rule can be found. - // Return FALSE when no error recovery rule was found. - function locateNearestErrorRecoveryRule(state) { - var stack_probe = stack.length - 1; - var depth = 0; - - // try to recover from error - for(;;) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - return depth; - } - if (state === 0 || stack_probe < 2) { - return false; // No suitable error recovery rule available. - } - stack_probe -= 2; // popStack(1): [symbol, action] - state = stack[stack_probe]; - ++depth; - } - } - - if (!recovering) { - // first see if there's any chance at hitting an error recovery rule: - error_rule_depth = locateNearestErrorRecoveryRule(state); - - // Report error - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'"+this.terminals_[p]+"'"); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; - } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == EOF ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected, - recoverable: (error_rule_depth !== false) - }); - } else if (preErrorSymbol !== EOF) { - error_rule_depth = locateNearestErrorRecoveryRule(state); - } - - // just recovered from another error - if (recovering == 3) { - if (symbol === EOF || preErrorSymbol === EOF) { - throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); - } - - // discard current lookahead and grab another - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - symbol = lex(); - } - - // try to recover from error - if (error_rule_depth === false) { - throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); - } - popStack(error_rule_depth); - - preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: - // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: - // accept - return true; - } - - } - - return true; -}}; - -// from https://www.postgresql.org/docs/current/static/sql-keywords-appendix.html -// JSON.stringify([].slice.call(document.querySelectorAll('tr')).filter(x => x.children.length == 5 && x.children[2].innerText == 'reserved').map(x => x.children[0].innerText)) - -var nonReserved = ["A","ABSENT","ABSOLUTE","ACCORDING","ACTION","ADA","ADD","ADMIN","AFTER","ALWAYS","ASC","ASSERTION","ASSIGNMENT","ATTRIBUTE","ATTRIBUTES","BASE64","BEFORE","BERNOULLI","BLOCKED","BOM","BREADTH","C","CASCADE","CATALOG","CATALOG_NAME","CHAIN","CHARACTERISTICS","CHARACTERS","CHARACTER_SET_CATALOG","CHARACTER_SET_NAME","CHARACTER_SET_SCHEMA","CLASS_ORIGIN","COBOL","COLLATION","COLLATION_CATALOG","COLLATION_NAME","COLLATION_SCHEMA","COLUMNS","COLUMN_NAME","COMMAND_FUNCTION","COMMAND_FUNCTION_CODE","COMMITTED","CONDITION_NUMBER","CONNECTION","CONNECTION_NAME","CONSTRAINTS","CONSTRAINT_CATALOG","CONSTRAINT_NAME","CONSTRAINT_SCHEMA","CONSTRUCTOR","CONTENT","CONTINUE","CONTROL","CURSOR_NAME","DATA","DATETIME_INTERVAL_CODE","DATETIME_INTERVAL_PRECISION","DB","DEFAULTS","DEFERRABLE","DEFERRED","DEFINED","DEFINER","DEGREE","DEPTH","DERIVED","DESC","DESCRIPTOR","DIAGNOSTICS","DISPATCH","DOCUMENT","DOMAIN","DYNAMIC_FUNCTION","DYNAMIC_FUNCTION_CODE","EMPTY","ENCODING","ENFORCED","EXCLUDE","EXCLUDING","EXPRESSION","FILE","FINAL","FIRST","FLAG","FOLLOWING","FORTRAN","FOUND","FS","G","GENERAL","GENERATED","GO","GOTO","GRANTED","HEX","HIERARCHY","ID","IGNORE","IMMEDIATE","IMMEDIATELY","IMPLEMENTATION","INCLUDING","INCREMENT","INDENT","INITIALLY","INPUT","INSTANCE","INSTANTIABLE","INSTEAD","INTEGRITY","INVOKER","ISOLATION","K","KEY","KEY_MEMBER","KEY_TYPE","LAST","LENGTH","LEVEL","LIBRARY","LIMIT","LINK","LOCATION","LOCATOR","M","MAP","MAPPING","MATCHED","MAXVALUE","MESSAGE_LENGTH","MESSAGE_OCTET_LENGTH","MESSAGE_TEXT","MINVALUE","MORE","MUMPS","NAME","NAMES","NAMESPACE","NESTING","NEXT","NFC","NFD","NFKC","NFKD","NIL","NORMALIZED","NULLABLE","NULLS","NUMBER","OBJECT","OCTETS","OFF","OPTION","OPTIONS","ORDERING","ORDINALITY","OTHERS","OUTPUT","OVERRIDING","P","PAD","PARAMETER_MODE","PARAMETER_NAME","PARAMETER_ORDINAL_POSITION","PARAMETER_SPECIFIC_CATALOG","PARAMETER_SPECIFIC_NAME","PARAMETER_SPECIFIC_SCHEMA","PARTIAL","PASCAL","PASSING","PASSTHROUGH","PATH","PERMISSION","PLACING","PLI","PRECEDING","PRESERVE","PRIOR","PRIVILEGES","PUBLIC","READ","RECOVERY","RELATIVE","REPEATABLE","REQUIRING","RESPECT","RESTART","RESTORE","RESTRICT","RETURNED_CARDINALITY","RETURNED_LENGTH","RETURNED_OCTET_LENGTH","RETURNED_SQLSTATE","RETURNING","ROLE","ROUTINE","ROUTINE_CATALOG","ROUTINE_NAME","ROUTINE_SCHEMA","ROW_COUNT","SCALE","SCHEMA","SCHEMA_NAME","SCOPE_CATALOG","SCOPE_NAME","SCOPE_SCHEMA","SECTION","SECURITY","SELECTIVE","SELF","SEQUENCE","SERIALIZABLE","SERVER","SERVER_NAME","SESSION","SETS","SIMPLE","SIZE","SOURCE","SPACE","SPECIFIC_NAME","STANDALONE","STATE","STATEMENT","STRIP","STRUCTURE","STYLE","SUBCLASS_ORIGIN","T","TABLE_NAME","TEMPORARY","TIES","TOKEN","TOP_LEVEL_COUNT","TRANSACTION","TRANSACTIONS_COMMITTED","TRANSACTIONS_ROLLED_BACK","TRANSACTION_ACTIVE","TRANSFORM","TRANSFORMS","TRIGGER_CATALOG","TRIGGER_NAME","TRIGGER_SCHEMA","TYPE","UNBOUNDED","UNCOMMITTED","UNDER","UNLINK","UNNAMED","UNTYPED","URI","USAGE","USER_DEFINED_TYPE_CATALOG","USER_DEFINED_TYPE_CODE","USER_DEFINED_TYPE_NAME","USER_DEFINED_TYPE_SCHEMA","VALID","VERSION","VIEW","WHITESPACE","WORK","WRAPPER","WRITE","XMLDECLARATION","XMLSCHEMA","YES","ZONE"] - -parser.parseError = function(str, hash) { - if (hash.expected && hash.expected.indexOf("'LITERAL'") > -1 && /[a-zA-Z_][a-zA-Z_0-9]*/.test(hash.token) && nonReserved.indexOf(hash.token) > -1) { - return - } - throw new SyntaxError(str) -} -/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function (match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin(condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState(condition) { - this.begin(condition); - }, - -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {"case-insensitive":true}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0:return 266 -break; -case 1:return 302 -break; -case 2:return 420 -break; -case 3:return 299 -break; -case 4:return 5 -break; -case 5:return 5 -break; -case 6:return 296 -break; -case 7:return 296 -break; -case 8:return 132 -break; -case 9:return 132 -break; -case 10:return /* its a COMMENT */ -break; -case 11:/* skip whitespace */ -break; -case 12:return 316 -break; -case 13:return 319 -break; -case 14:yy_.yytext = 'VALUE';return 89 -break; -case 15:yy_.yytext = 'VALUE';return 189 -break; -case 16:yy_.yytext = 'ROW';return 189 -break; -case 17:yy_.yytext = 'COLUMN';return 189 -break; -case 18:yy_.yytext = 'MATRIX';return 189 -break; -case 19:yy_.yytext = 'INDEX';return 189 -break; -case 20:yy_.yytext = 'RECORDSET';return 189 -break; -case 21:yy_.yytext = 'TEXT';return 189 -break; -case 22:yy_.yytext = 'SELECT';return 189 -break; -case 23:return 520 -break; -case 24:return 381 -break; -case 25:return 402 -break; -case 26:return 515 -break; -case 27:return 287 -break; -case 28:return 269 -break; -case 29:return 269 -break; -case 30:return 164 -break; -case 31:return 400 -break; -case 32:return 170 -break; -case 33:return 229 -break; -case 34:return 166 -break; -case 35:return 207 -break; -case 36:return 288 -break; -case 37:return 76 -break; -case 38:return 418 -break; -case 39:return 242 -break; -case 40:return 404 -break; -case 41:return 356 -break; -case 42:return 284 -break; -case 43:return 514 -break; -case 44:return 437 -break; -case 45:return 330 -break; -case 46:return 441 -break; -case 47:return 331 -break; -case 48:return 315 -break; -case 49:return 119 -break; -case 50:return 112 -break; -case 51:return 315 -break; -case 52:return 112 -break; -case 53:return 315 -break; -case 54:return 112 -break; -case 55:return 315 -break; -case 56:return 508 -break; -case 57:return 303 -break; -case 58:return 271 -break; -case 59:return 368 -break; -case 60:return 130 -break; -case 61:return 'CLOSE' -break; -case 62:return 243 -break; -case 63:return 190 -break; -case 64:return 190 -break; -case 65:return 434 -break; -case 66:return 367 -break; -case 67:return 470 -break; -case 68:return 440 -break; -case 69:return 273 -break; -case 70:return 240 -break; -case 71:return 281 -break; -case 72:return 267 -break; -case 73:return 206 -break; -case 74:return 238 -break; -case 75:return 265 -break; -case 76:return 'CURSOR' -break; -case 77:return 405 -break; -case 78:return 291 -break; -case 79:return 292 -break; -case 80:return 448 -break; -case 81:return 343 -break; -case 82:return 338 -break; -case 83:return 'DELETED' -break; -case 84:return 242 -break; -case 85:return 406 -break; -case 86:return 185 -break; -case 87:return 396 -break; -case 88:return 447 -break; -case 89:return 135 -break; -case 90:return 306 -break; -case 91:return 389 -break; -case 92:return 310 -break; -case 93:return 314 -break; -case 94:return 169 -break; -case 95:return 508 -break; -case 96:return 508 -break; -case 97:return 298 -break; -case 98:return 14 -break; -case 99:return 295 -break; -case 100:return 249 -break; -case 101:return 285 -break; -case 102:return 95 -break; -case 103:return 373 -break; -case 104:return 183 -break; -case 105:return 227 -break; -case 106:return 268 -break; -case 107:return 313 -break; -case 108:return 602 -break; -case 109:return 472 -break; -case 110:return 232 -break; -case 111:return 236 -break; -case 112:return 239 -break; -case 113:return 156 -break; -case 114:return 356 -break; -case 115:return 332 -break; -case 116:return 99 -break; -case 117:return 193 -break; -case 118:return 212 -break; -case 119:return 224 -break; -case 120:return 516 -break; -case 121:return 339 -break; -case 122:return 213 -break; -case 123:return 168 -break; -case 124:return 293 -break; -case 125:return 198 -break; -case 126:return 223 -break; -case 127:return 370 -break; -case 128:return 286 -break; -case 129:return 'LET' -break; -case 130:return 225 -break; -case 131:return 112 -break; -case 132:return 245 -break; -case 133:return 460 -break; -case 134:return 191 -break; -case 135:return 283 -break; -case 136:return 390 -break; -case 137:return 282 -break; -case 138:return 452 -break; -case 139:return 169 -break; -case 140:return 403 -break; -case 141:return 222 -break; -case 142:return 645 -break; -case 143:return 270 -break; -case 144:return 244 -break; -case 145:return 380 -break; -case 146:return 154 -break; -case 147:return 297 -break; -case 148:return 433 -break; -case 149:return 230 -break; -case 150:return 415 -break; -case 151:return 129 -break; -case 152:return 247 -break; -case 153:return 'OPEN' -break; -case 154:return 416 -break; -case 155:return 171 -break; -case 156:return 118 -break; -case 157:return 208 -break; -case 158:return 276 -break; -case 159:return 172 -break; -case 160:return 279 -break; -case 161:return 765 -break; -case 162:return 93 -break; -case 163:return 16 -break; -case 164:return 369 -break; -case 165:return 442 -break; -case 166:return 678 -break; -case 167:return 15 -break; -case 168:return 414 -break; -case 169:return 194 -break; -case 170:return 'REDUCE' -break; -case 171:return 374 -break; -case 172:return 311 -break; -case 173:return 517 -break; -case 174:return 682 -break; -case 175:return 107 -break; -case 176:return 401 -break; -case 177:return 175 -break; -case 178:return 290 -break; -case 179:return 443 -break; -case 180:return 687 -break; -case 181:return 173 -break; -case 182:return 173 -break; -case 183:return 226 -break; -case 184:return 436 -break; -case 185:return 237 -break; -case 186:return 150 -break; -case 187:return 766 -break; -case 188:return 405 -break; -case 189:return 89 -break; -case 190:return 228 -break; -case 191:return 146 -break; -case 192:return 146 -break; -case 193:return 409 -break; -case 194:return 334 -break; -case 195:return 417 -break; -case 196:return 'STRATEGY' -break; -case 197:return 'STORE' -break; -case 198:return 280 -break; -case 199:return 353 -break; -case 200:return 353 -break; -case 201:return 463 -break; -case 202:return 357 -break; -case 203:return 357 -break; -case 204:return 192 -break; -case 205:return 309 -break; -case 206:return 'TIMEOUT' -break; -case 207:return 148 -break; -case 208:return 195 -break; -case 209:return 435 -break; -case 210:return 435 -break; -case 211:return 509 -break; -case 212:return 294 -break; -case 213:return 451 -break; -case 214:return 162 -break; -case 215:return 187 -break; -case 216:return 98 -break; -case 217:return 335 -break; -case 218:return 408 -break; -case 219:return 231 -break; -case 220:return 149 -break; -case 221:return 344 -break; -case 222:return 134 -break; -case 223:return 410 -break; -case 224:return 308 -break; -case 225:return 128 -break; -case 226:return 439 -break; -case 227:return 72 -break; -case 228:return 435 /* Is this keyword required? */ -break; -case 229:return 131 -break; -case 230:return 131 -break; -case 231:return 115 -break; -case 232:return 137 -break; -case 233:return 179 -break; -case 234:return 317 -break; -case 235:return 180 -break; -case 236:return 133 -break; -case 237:return 138 -break; -case 238:return 326 -break; -case 239:return 323 -break; -case 240:return 325 -break; -case 241:return 322 -break; -case 242:return 320 -break; -case 243:return 318 -break; -case 244:return 319 -break; -case 245:return 142 -break; -case 246:return 141 -break; -case 247:return 139 -break; -case 248:return 321 -break; -case 249:return 324 -break; -case 250:return 140 -break; -case 251:return 124 -break; -case 252:return 324 -break; -case 253:return 77 -break; -case 254:return 78 -break; -case 255:return 145 -break; -case 256:return 424 -break; -case 257:return 426 -break; -case 258:return 300 -break; -case 259:return 505 -break; -case 260:return 507 -break; -case 261:return 122 -break; -case 262:return 116 -break; -case 263:return 74 -break; -case 264:return 333 -break; -case 265:return 152 -break; -case 266:return 764 -break; -case 267:return 143 -break; -case 268:return 181 -break; -case 269:return 136 -break; -case 270:return 123 -break; -case 271:return 312 -break; -case 272:return 4 -break; -case 273:return 10 -break; -case 274:return 'INVALID' -break; -} -}, -rules: [/^(?:``([^\`])+``)/i,/^(?:\[\?\])/i,/^(?:@\[)/i,/^(?:ARRAY\[)/i,/^(?:\[([^\]])*?\])/i,/^(?:`([^\`])*?`)/i,/^(?:N(['](\\.|[^']|\\')*?['])+)/i,/^(?:X(['](\\.|[^']|\\')*?['])+)/i,/^(?:(['](\\.|[^']|\\')*?['])+)/i,/^(?:(["](\\.|[^"]|\\")*?["])+)/i,/^(?:--(.*?)($|\r\n|\r|\n))/i,/^(?:\s+)/i,/^(?:\|\|)/i,/^(?:\|)/i,/^(?:VALUE\s+OF\s+SEARCH\b)/i,/^(?:VALUE\s+OF\s+SELECT\b)/i,/^(?:ROW\s+OF\s+SELECT\b)/i,/^(?:COLUMN\s+OF\s+SELECT\b)/i,/^(?:MATRIX\s+OF\s+SELECT\b)/i,/^(?:INDEX\s+OF\s+SELECT\b)/i,/^(?:RECORDSET\s+OF\s+SELECT\b)/i,/^(?:TEXT\s+OF\s+SELECT\b)/i,/^(?:SELECT\b)/i,/^(?:ABSOLUTE\b)/i,/^(?:ACTION\b)/i,/^(?:ADD\b)/i,/^(?:AFTER\b)/i,/^(?:AGGR\b)/i,/^(?:AGGREGATE\b)/i,/^(?:AGGREGATOR\b)/i,/^(?:ALL\b)/i,/^(?:ALTER\b)/i,/^(?:AND\b)/i,/^(?:ANTI\b)/i,/^(?:ANY\b)/i,/^(?:APPLY\b)/i,/^(?:ARRAY\b)/i,/^(?:AS\b)/i,/^(?:ASSERT\b)/i,/^(?:ASC\b)/i,/^(?:ATTACH\b)/i,/^(?:AUTO(_)?INCREMENT\b)/i,/^(?:AVG\b)/i,/^(?:BEFORE\b)/i,/^(?:BEGIN\b)/i,/^(?:BETWEEN\b)/i,/^(?:BREAK\b)/i,/^(?:NOT\s+BETWEEN\b)/i,/^(?:NOT\s+LIKE\b)/i,/^(?:BY\b)/i,/^(?:~~\*)/i,/^(?:!~~\*)/i,/^(?:~~)/i,/^(?:!~~)/i,/^(?:ILIKE\b)/i,/^(?:NOT\s+ILIKE\b)/i,/^(?:CALL\b)/i,/^(?:CASE\b)/i,/^(?:CAST\b)/i,/^(?:CHECK\b)/i,/^(?:CLASS\b)/i,/^(?:CLOSE\b)/i,/^(?:COLLATE\b)/i,/^(?:COLUMN\b)/i,/^(?:COLUMNS\b)/i,/^(?:COMMIT\b)/i,/^(?:CONSTRAINT\b)/i,/^(?:CONTENT\b)/i,/^(?:CONTINUE\b)/i,/^(?:CONVERT\b)/i,/^(?:CORRESPONDING\b)/i,/^(?:COUNT\b)/i,/^(?:CREATE\b)/i,/^(?:CROSS\b)/i,/^(?:CUBE\b)/i,/^(?:CURRENT_TIMESTAMP\b)/i,/^(?:CURSOR\b)/i,/^(?:DATABASE(S)?)/i,/^(?:DATEADD\b)/i,/^(?:DATEDIFF\b)/i,/^(?:DECLARE\b)/i,/^(?:DEFAULT\b)/i,/^(?:DELETE\b)/i,/^(?:DELETED\b)/i,/^(?:DESC\b)/i,/^(?:DETACH\b)/i,/^(?:DISTINCT\b)/i,/^(?:DROP\b)/i,/^(?:ECHO\b)/i,/^(?:EDGE\b)/i,/^(?:END\b)/i,/^(?:ENUM\b)/i,/^(?:ELSE\b)/i,/^(?:ESCAPE\b)/i,/^(?:EXCEPT\b)/i,/^(?:EXEC\b)/i,/^(?:EXECUTE\b)/i,/^(?:EXISTS\b)/i,/^(?:EXPLAIN\b)/i,/^(?:FALSE\b)/i,/^(?:FETCH\b)/i,/^(?:FIRST\b)/i,/^(?:FOR\b)/i,/^(?:FOREIGN\b)/i,/^(?:FROM\b)/i,/^(?:FULL\b)/i,/^(?:FUNCTION\b)/i,/^(?:GLOB\b)/i,/^(?:GO\b)/i,/^(?:GRAPH\b)/i,/^(?:GROUP\b)/i,/^(?:GROUPING\b)/i,/^(?:HAVING\b)/i,/^(?:IF\b)/i,/^(?:IDENTITY\b)/i,/^(?:IS\b)/i,/^(?:IN\b)/i,/^(?:INDEX\b)/i,/^(?:INDEXED\b)/i,/^(?:INNER\b)/i,/^(?:INSTEAD\b)/i,/^(?:INSERT\b)/i,/^(?:INSERTED\b)/i,/^(?:INTERSECT\b)/i,/^(?:INTERVAL\b)/i,/^(?:INTO\b)/i,/^(?:JOIN\b)/i,/^(?:KEY\b)/i,/^(?:LAST\b)/i,/^(?:LET\b)/i,/^(?:LEFT\b)/i,/^(?:LIKE\b)/i,/^(?:LIMIT\b)/i,/^(?:MATCHED\b)/i,/^(?:MATRIX\b)/i,/^(?:MAX(\s+)?(?=\())/i,/^(?:MAX(\s+)?(?=(,|\))))/i,/^(?:MIN(\s+)?(?=\())/i,/^(?:MERGE\b)/i,/^(?:MINUS\b)/i,/^(?:MODIFY\b)/i,/^(?:NATURAL\b)/i,/^(?:NEXT\b)/i,/^(?:NEW\b)/i,/^(?:NOCASE\b)/i,/^(?:NO\b)/i,/^(?:NOT\b)/i,/^(?:NULL\b)/i,/^(?:OFF\b)/i,/^(?:ON\b)/i,/^(?:ONLY\b)/i,/^(?:OF\b)/i,/^(?:OFFSET\b)/i,/^(?:OPEN\b)/i,/^(?:OPTION\b)/i,/^(?:OR\b)/i,/^(?:ORDER\b)/i,/^(?:OUTER\b)/i,/^(?:OVER\b)/i,/^(?:PATH\b)/i,/^(?:PARTITION\b)/i,/^(?:PERCENT\b)/i,/^(?:PIVOT\b)/i,/^(?:PLAN\b)/i,/^(?:PRIMARY\b)/i,/^(?:PRINT\b)/i,/^(?:PRIOR\b)/i,/^(?:QUERY\b)/i,/^(?:READ\b)/i,/^(?:RECORDSET\b)/i,/^(?:REDUCE\b)/i,/^(?:REFERENCES\b)/i,/^(?:REGEXP\b)/i,/^(?:REINDEX\b)/i,/^(?:RELATIVE\b)/i,/^(?:REMOVE\b)/i,/^(?:RENAME\b)/i,/^(?:REPEAT\b)/i,/^(?:REPLACE\b)/i,/^(?:REQUIRE\b)/i,/^(?:RESTORE\b)/i,/^(?:RETURN\b)/i,/^(?:RETURNS\b)/i,/^(?:RIGHT\b)/i,/^(?:ROLLBACK\b)/i,/^(?:ROLLUP\b)/i,/^(?:ROW\b)/i,/^(?:ROWS\b)/i,/^(?:SCHEMA(S)?)/i,/^(?:SEARCH\b)/i,/^(?:SEMI\b)/i,/^(?:SET\b)/i,/^(?:SETS\b)/i,/^(?:SHOW\b)/i,/^(?:SOME\b)/i,/^(?:SOURCE\b)/i,/^(?:STRATEGY\b)/i,/^(?:STORE\b)/i,/^(?:SUM\b)/i,/^(?:TABLE\b)/i,/^(?:TABLES\b)/i,/^(?:TARGET\b)/i,/^(?:TEMP\b)/i,/^(?:TEMPORARY\b)/i,/^(?:TEXTSTRING\b)/i,/^(?:THEN\b)/i,/^(?:TIMEOUT\b)/i,/^(?:TO\b)/i,/^(?:TOP\b)/i,/^(?:TRAN\b)/i,/^(?:TRANSACTION\b)/i,/^(?:TRIGGER\b)/i,/^(?:TRUE\b)/i,/^(?:TRUNCATE\b)/i,/^(?:UNION\b)/i,/^(?:UNIQUE\b)/i,/^(?:UNPIVOT\b)/i,/^(?:UPDATE\b)/i,/^(?:USE\b)/i,/^(?:USING\b)/i,/^(?:VALUE\b)/i,/^(?:VALUES\b)/i,/^(?:VERTEX\b)/i,/^(?:VIEW\b)/i,/^(?:WHEN\b)/i,/^(?:WHERE\b)/i,/^(?:WHILE\b)/i,/^(?:WITH\b)/i,/^(?:WORK\b)/i,/^(?:(\d*[.])?\d+[eE]\d+)/i,/^(?:(\d*[.])?\d+)/i,/^(?:->)/i,/^(?:#)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?::-)/i,/^(?:\?-)/i,/^(?:\.\.)/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:!)/i,/^(?:\^)/i,/^(?:~)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); - -if (typeof require !== 'undefined' && typeof exports !== 'undefined') { -exports.parser = alasqlparser; -exports.Parser = alasqlparser.Parser; -exports.parse = function () { return alasqlparser.parse.apply(alasqlparser, arguments); }; -exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: '+args[0]+' FILE'); - process.exit(1); - } - var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); - return exports.parser.parse(source); -}; -if (typeof module !== 'undefined' && require.main === module) { - exports.main(process.argv.slice(1)); -} +//! AlaSQL v0.4.11-update-dependencies-ac1eccc0undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT +/* +@module alasql +@version 0.4.11-update-dependencies-ac1eccc0undefined + +AlaSQL - JavaScript SQL database +© 2014-2016 Andrey Gershun & Mathias Rangel Wulff + +@license +The MIT License (MIT) + +Copyright 2014-2016 Andrey Gershun (agershun@gmail.com) & Mathias Rangel Wulff (m@rawu.dk) + +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. +*/ + +/* eslint-disable */ + +"use strict"; + +/** + @fileoverview AlaSQL JavaScript SQL library + @see http://github.com/agershun/alasql +*/ + +/** + Callback from statement + @callback statement-callback + @param {object} data Result data +*/ + +/** + UMD envelope for AlaSQL +*/ + +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + define([], factory); + } else if (typeof exports === 'object') { + /** alasql main function */ + module.exports = factory(); + } else { + root.alasql = factory(); + } +}(this, function () { + +/** + AlaSQL - Main Alasql class + @function + @param {string|function|object} sql - SQL-statement or data object for fuent interface + @param {object} params - SQL parameters + @param {function} cb - callback function + @param {object} scope - Scope for nested queries + @return {any} - Result data object + + @example + Standard sync call: + alasql('CREATE TABLE one'); + Query: + var res = alasql('SELECT * FROM one'); + Call with parameters: + var res = alasql('SELECT * FROM ?',[data]); + Standard async call with callback function: + alasql('SELECT * FROM ?',[data],function(res){ + console.log(data); + }); + Call with scope for subquery (to pass common values): + var scope = {one:{a:2,b;20}} + alasql('SELECT * FROM ? two WHERE two.a = one.a',[data],null,scope); + Call for fluent interface with data object: + alasql(data).Where(function(x){return x.a == 10}).exec(); + Call for fluent interface without data object: + alasql().From(data).Where(function(x){return x.a == 10}).exec(); + */ + +var alasql = function(sql, params, cb, scope) { + + params = params||[]; + + if(typeof importScripts !== 'function' && alasql.webworker) { + var id = alasql.lastid++; + alasql.buffer[id] = cb; + alasql.webworker.postMessage({id:id,sql:sql,params:params}); + return; + } + + if(arguments.length === 0) { + // Without arguments - Fluent interface + return new yy.Select({ + columns:[new yy.Column({columnid:'*'})], + from: [new yy.ParamValue({param:0})] + }); + } else if(arguments.length === 1){ + // Access promise notation without using `.promise(...)` + if(sql.constructor === Array){ + return alasql.promise(sql); + } + } + // Avoid setting params if not needed even with callback + if(typeof params === 'function'){ + scope = cb; + cb = params; + params = []; + } + + if(typeof params !== 'object'){ + params = [params]; + } + + // Standard interface + // alasql('#sql'); + if(typeof sql === 'string' && sql[0]==='#' && typeof document === "object") { + sql = document.querySelector(sql).textContent; + } else if(typeof sql === 'object' && sql instanceof HTMLElement) { + sql = sql.textContent; + } else if(typeof sql === 'function') { + // to run multiline functions + sql = sql.toString(); + sql = (/\/\*([\S\s]+)\*\//m.exec(sql) || ['','Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function.'])[1]; + } + // Run SQL + return alasql.exec(sql, params, cb, scope); +}; + +/** + Current version of alasql + @constant {string} +*/ +alasql.version = '0.4.11-update-dependencies-ac1eccc0undefined'; + +/** + Debug flag + @type {boolean} +*/ +alasql.debug = undefined; // Initial debug variable + +/*only-for-browser/* +var require = function(){return null}; // as alasqlparser.js is generated, we can not "remove" referenses to +var __dirname = ''; +//*/ + +/* parser generated by jison 0.4.18 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +var alasqlparser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,13],$V1=[1,104],$V2=[1,102],$V3=[1,103],$V4=[1,6],$V5=[1,42],$V6=[1,79],$V7=[1,76],$V8=[1,94],$V9=[1,93],$Va=[1,69],$Vb=[1,101],$Vc=[1,85],$Vd=[1,64],$Ve=[1,71],$Vf=[1,84],$Vg=[1,66],$Vh=[1,70],$Vi=[1,68],$Vj=[1,61],$Vk=[1,74],$Vl=[1,62],$Vm=[1,67],$Vn=[1,83],$Vo=[1,77],$Vp=[1,86],$Vq=[1,87],$Vr=[1,81],$Vs=[1,82],$Vt=[1,80],$Vu=[1,88],$Vv=[1,89],$Vw=[1,90],$Vx=[1,91],$Vy=[1,92],$Vz=[1,98],$VA=[1,65],$VB=[1,78],$VC=[1,72],$VD=[1,96],$VE=[1,97],$VF=[1,63],$VG=[1,73],$VH=[1,108],$VI=[1,107],$VJ=[10,306,602,764],$VK=[10,306,310,602,764],$VL=[1,115],$VM=[1,116],$VN=[1,117],$VO=[1,118],$VP=[1,119],$VQ=[130,353,410],$VR=[1,127],$VS=[1,126],$VT=[1,134],$VU=[1,164],$VV=[1,175],$VW=[1,178],$VX=[1,173],$VY=[1,181],$VZ=[1,185],$V_=[1,160],$V$=[1,182],$V01=[1,169],$V11=[1,171],$V21=[1,174],$V31=[1,183],$V41=[1,166],$V51=[1,193],$V61=[1,188],$V71=[1,189],$V81=[1,194],$V91=[1,195],$Va1=[1,196],$Vb1=[1,197],$Vc1=[1,198],$Vd1=[1,199],$Ve1=[1,200],$Vf1=[1,201],$Vg1=[1,202],$Vh1=[1,176],$Vi1=[1,177],$Vj1=[1,179],$Vk1=[1,180],$Vl1=[1,186],$Vm1=[1,192],$Vn1=[1,184],$Vo1=[1,187],$Vp1=[1,172],$Vq1=[1,170],$Vr1=[1,191],$Vs1=[1,203],$Vt1=[2,4,5],$Vu1=[2,471],$Vv1=[1,206],$Vw1=[1,211],$Vx1=[1,220],$Vy1=[1,216],$Vz1=[10,72,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VA1=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$VB1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC1=[1,249],$VD1=[1,256],$VE1=[1,265],$VF1=[1,270],$VG1=[1,269],$VH1=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VI1=[2,162],$VJ1=[1,281],$VK1=[10,74,78,306,310,505,602,764],$VL1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,302,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,344,356,368,369,370,373,374,386,389,396,400,401,402,403,404,405,406,408,409,417,418,420,424,426,433,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,514,515,516,517,602,764],$VM1=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VN1=[1,562],$VO1=[1,564],$VP1=[2,503],$VQ1=[1,569],$VR1=[1,580],$VS1=[1,583],$VT1=[1,584],$VU1=[10,78,89,132,137,146,189,296,306,310,470,602,764],$VV1=[10,74,306,310,602,764],$VW1=[2,567],$VX1=[1,602],$VY1=[2,4,5,156],$VZ1=[1,640],$V_1=[1,612],$V$1=[1,646],$V02=[1,647],$V12=[1,620],$V22=[1,631],$V32=[1,618],$V42=[1,626],$V52=[1,619],$V62=[1,627],$V72=[1,629],$V82=[1,621],$V92=[1,622],$Va2=[1,641],$Vb2=[1,638],$Vc2=[1,639],$Vd2=[1,615],$Ve2=[1,617],$Vf2=[1,609],$Vg2=[1,610],$Vh2=[1,611],$Vi2=[1,613],$Vj2=[1,614],$Vk2=[1,616],$Vl2=[1,623],$Vm2=[1,624],$Vn2=[1,628],$Vo2=[1,630],$Vp2=[1,632],$Vq2=[1,633],$Vr2=[1,634],$Vs2=[1,635],$Vt2=[1,636],$Vu2=[1,642],$Vv2=[1,643],$Vw2=[1,644],$Vx2=[1,645],$Vy2=[2,287],$Vz2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA2=[2,359],$VB2=[1,668],$VC2=[1,678],$VD2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE2=[1,694],$VF2=[1,703],$VG2=[1,702],$VH2=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VI2=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2=[2,202],$VK2=[1,725],$VL2=[10,72,78,93,98,118,128,162,168,169,183,232,245,247,306,310,602,764],$VM2=[2,163],$VN2=[1,728],$VO2=[2,4,5,112],$VP2=[1,741],$VQ2=[1,760],$VR2=[1,740],$VS2=[1,739],$VT2=[1,734],$VU2=[1,735],$VV2=[1,737],$VW2=[1,738],$VX2=[1,742],$VY2=[1,743],$VZ2=[1,744],$V_2=[1,745],$V$2=[1,746],$V03=[1,747],$V13=[1,748],$V23=[1,749],$V33=[1,750],$V43=[1,751],$V53=[1,752],$V63=[1,753],$V73=[1,754],$V83=[1,755],$V93=[1,756],$Va3=[1,757],$Vb3=[1,759],$Vc3=[1,761],$Vd3=[1,762],$Ve3=[1,763],$Vf3=[1,764],$Vg3=[1,765],$Vh3=[1,766],$Vi3=[1,767],$Vj3=[1,770],$Vk3=[1,771],$Vl3=[1,772],$Vm3=[1,773],$Vn3=[1,774],$Vo3=[1,775],$Vp3=[1,776],$Vq3=[1,777],$Vr3=[1,778],$Vs3=[1,779],$Vt3=[1,780],$Vu3=[1,781],$Vv3=[74,89,189],$Vw3=[10,74,78,154,187,230,297,306,310,343,356,368,369,373,374,602,764],$Vx3=[1,798],$Vy3=[10,74,78,300,306,310,602,764],$Vz3=[1,799],$VA3=[1,805],$VB3=[1,806],$VC3=[1,810],$VD3=[10,74,78,306,310,602,764],$VE3=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,312,317,420,424],$VF3=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VG3=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VH3=[2,4,5,132,296],$VI3=[1,844],$VJ3=[10,74,76,78,306,310,602,764],$VK3=[2,738],$VL3=[10,74,76,78,132,139,141,145,152,306,310,420,424,602,764],$VM3=[2,1161],$VN3=[10,74,76,78,139,141,145,152,306,310,420,424,602,764],$VO3=[10,74,76,78,139,141,145,306,310,420,424,602,764],$VP3=[10,74,78,139,141,306,310,602,764],$VQ3=[10,78,89,132,146,189,296,306,310,470,602,764],$VR3=[335,338,339],$VS3=[2,764],$VT3=[1,869],$VU3=[1,870],$VV3=[1,871],$VW3=[1,872],$VX3=[1,881],$VY3=[1,880],$VZ3=[164,166,334],$V_3=[2,444],$V$3=[1,936],$V04=[2,4,5,77,131,156,290,291,292,293],$V14=[1,951],$V24=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V34=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V44=[2,375],$V54=[1,958],$V64=[306,308,310],$V74=[74,300],$V84=[74,300,426],$V94=[1,965],$Va4=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vb4=[74,426],$Vc4=[1,978],$Vd4=[1,977],$Ve4=[1,984],$Vf4=[10,72,78,93,98,118,128,162,168,169,232,245,247,306,310,602,764],$Vg4=[1,1010],$Vh4=[10,72,78,306,310,602,764],$Vi4=[1,1016],$Vj4=[1,1017],$Vk4=[1,1018],$Vl4=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$Vm4=[1,1068],$Vn4=[1,1067],$Vo4=[1,1081],$Vp4=[1,1080],$Vq4=[1,1088],$Vr4=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$Vs4=[1,1119],$Vt4=[10,78,89,146,189,306,310,470,602,764],$Vu4=[1,1139],$Vv4=[1,1138],$Vw4=[1,1137],$Vx4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy4=[1,1153],$Vz4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VB4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VD4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE4=[2,406],$VF4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VG4=[2,285],$VH4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VI4=[10,78,306,310,602,764],$VJ4=[1,1189],$VK4=[10,77,78,143,145,152,181,302,306,310,420,424,602,764],$VL4=[10,74,78,306,308,310,464,602,764],$VM4=[1,1200],$VN4=[10,72,78,118,128,162,168,169,232,245,247,306,310,602,764],$VO4=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VP4=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VQ4=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VR4=[2,1085],$VS4=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VT4=[1,1252],$VU4=[10,74,78,128,306,308,310,464,602,764],$VV4=[115,116,124],$VW4=[2,584],$VX4=[1,1280],$VY4=[76,139],$VZ4=[2,724],$V_4=[1,1297],$V$4=[1,1298],$V05=[2,4,5,10,53,72,76,89,124,146,156,189,230,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$V15=[2,330],$V25=[1,1322],$V35=[1,1336],$V45=[1,1338],$V55=[2,487],$V65=[74,78],$V75=[10,306,308,310,464,602,764],$V85=[10,72,78,118,162,168,169,232,245,247,306,310,602,764],$V95=[1,1354],$Va5=[1,1358],$Vb5=[1,1359],$Vc5=[1,1361],$Vd5=[1,1362],$Ve5=[1,1363],$Vf5=[1,1364],$Vg5=[1,1365],$Vh5=[1,1366],$Vi5=[1,1367],$Vj5=[1,1368],$Vk5=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vl5=[1,1393],$Vm5=[10,72,78,118,162,168,169,245,247,306,310,602,764],$Vn5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vo5=[1,1490],$Vp5=[1,1492],$Vq5=[2,4,5,77,143,145,152,156,181,290,291,292,293,302,420,424],$Vr5=[1,1506],$Vs5=[10,72,74,78,162,168,169,245,247,306,310,602,764],$Vt5=[1,1524],$Vu5=[1,1526],$Vv5=[1,1527],$Vw5=[1,1523],$Vx5=[1,1522],$Vy5=[1,1521],$Vz5=[1,1528],$VA5=[1,1518],$VB5=[1,1519],$VC5=[1,1520],$VD5=[1,1545],$VE5=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VF5=[1,1556],$VG5=[1,1564],$VH5=[1,1563],$VI5=[10,72,78,162,168,169,245,247,306,310,602,764],$VJ5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VK5=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VL5=[1,1621],$VM5=[1,1623],$VN5=[1,1620],$VO5=[1,1622],$VP5=[187,193,368,369,370,373],$VQ5=[2,515],$VR5=[1,1628],$VS5=[1,1647],$VT5=[10,72,78,162,168,169,306,310,602,764],$VU5=[1,1657],$VV5=[1,1658],$VW5=[1,1659],$VX5=[1,1678],$VY5=[4,10,243,306,310,343,356,602,764],$VZ5=[1,1726],$V_5=[10,72,74,78,118,162,168,169,239,245,247,306,310,602,764],$V$5=[2,4,5,77],$V06=[1,1820],$V16=[1,1832],$V26=[1,1851],$V36=[10,72,78,162,168,169,306,310,415,602,764],$V46=[10,74,78,230,306,310,602,764]; +var parser = {trace: function trace() { }, +yy: {}, +symbols_: {"error":2,"Literal":3,"LITERAL":4,"BRALITERAL":5,"NonReserved":6,"LiteralWithSpaces":7,"main":8,"Statements":9,"EOF":10,"Statements_group0":11,"AStatement":12,"ExplainStatement":13,"EXPLAIN":14,"QUERY":15,"PLAN":16,"Statement":17,"AlterTable":18,"AttachDatabase":19,"Call":20,"CreateDatabase":21,"CreateIndex":22,"CreateGraph":23,"CreateTable":24,"CreateView":25,"CreateEdge":26,"CreateVertex":27,"Declare":28,"Delete":29,"DetachDatabase":30,"DropDatabase":31,"DropIndex":32,"DropTable":33,"DropView":34,"If":35,"Insert":36,"Merge":37,"Reindex":38,"RenameTable":39,"Select":40,"ShowCreateTable":41,"ShowColumns":42,"ShowDatabases":43,"ShowIndex":44,"ShowTables":45,"TruncateTable":46,"WithSelect":47,"CreateTrigger":48,"DropTrigger":49,"BeginTransaction":50,"CommitTransaction":51,"RollbackTransaction":52,"EndTransaction":53,"UseDatabase":54,"Update":55,"JavaScript":56,"Source":57,"Assert":58,"While":59,"Continue":60,"Break":61,"BeginEnd":62,"Print":63,"Require":64,"SetVariable":65,"ExpressionStatement":66,"AddRule":67,"Query":68,"Echo":69,"CreateFunction":70,"CreateAggregate":71,"WITH":72,"WithTablesList":73,"COMMA":74,"WithTable":75,"AS":76,"LPAR":77,"RPAR":78,"SelectClause":79,"Select_option0":80,"IntoClause":81,"FromClause":82,"Select_option1":83,"WhereClause":84,"GroupClause":85,"OrderClause":86,"LimitClause":87,"UnionClause":88,"SEARCH":89,"Select_repetition0":90,"Select_option2":91,"PivotClause":92,"PIVOT":93,"Expression":94,"FOR":95,"PivotClause_option0":96,"PivotClause_option1":97,"UNPIVOT":98,"IN":99,"ColumnsList":100,"PivotClause_option2":101,"PivotClause2":102,"AsList":103,"AsLiteral":104,"AsPart":105,"RemoveClause":106,"REMOVE":107,"RemoveClause_option0":108,"RemoveColumnsList":109,"RemoveColumn":110,"Column":111,"LIKE":112,"StringValue":113,"ArrowDot":114,"ARROW":115,"DOT":116,"SearchSelector":117,"ORDER":118,"BY":119,"OrderExpressionsList":120,"SearchSelector_option0":121,"DOTDOT":122,"CARET":123,"EQ":124,"SearchSelector_repetition_plus0":125,"SearchSelector_repetition_plus1":126,"SearchSelector_option1":127,"WHERE":128,"OF":129,"CLASS":130,"NUMBER":131,"STRING":132,"SLASH":133,"VERTEX":134,"EDGE":135,"EXCLAMATION":136,"SHARP":137,"MODULO":138,"GT":139,"LT":140,"GTGT":141,"LTLT":142,"DOLLAR":143,"Json":144,"AT":145,"SET":146,"SetColumnsList":147,"TO":148,"VALUE":149,"ROW":150,"ExprList":151,"COLON":152,"PlusStar":153,"NOT":154,"SearchSelector_repetition2":155,"IF":156,"SearchSelector_repetition3":157,"Aggregator":158,"SearchSelector_repetition4":159,"SearchSelector_group0":160,"SearchSelector_repetition5":161,"UNION":162,"SearchSelectorList":163,"ALL":164,"SearchSelector_repetition6":165,"ANY":166,"SearchSelector_repetition7":167,"INTERSECT":168,"EXCEPT":169,"AND":170,"OR":171,"PATH":172,"RETURN":173,"ResultColumns":174,"REPEAT":175,"SearchSelector_repetition8":176,"SearchSelectorList_repetition0":177,"SearchSelectorList_repetition1":178,"PLUS":179,"STAR":180,"QUESTION":181,"SearchFrom":182,"FROM":183,"SelectModifier":184,"DISTINCT":185,"TopClause":186,"UNIQUE":187,"SelectClause_option0":188,"SELECT":189,"COLUMN":190,"MATRIX":191,"TEXTSTRING":192,"INDEX":193,"RECORDSET":194,"TOP":195,"NumValue":196,"TopClause_option0":197,"INTO":198,"Table":199,"FuncValue":200,"ParamValue":201,"VarValue":202,"FromTablesList":203,"JoinTablesList":204,"ApplyClause":205,"CROSS":206,"APPLY":207,"OUTER":208,"FromTable":209,"FromTable_option0":210,"FromTable_option1":211,"INDEXED":212,"INSERTED":213,"FromString":214,"JoinTable":215,"JoinMode":216,"JoinTableAs":217,"OnClause":218,"JoinTableAs_option0":219,"JoinTableAs_option1":220,"JoinModeMode":221,"NATURAL":222,"JOIN":223,"INNER":224,"LEFT":225,"RIGHT":226,"FULL":227,"SEMI":228,"ANTI":229,"ON":230,"USING":231,"GROUP":232,"GroupExpressionsList":233,"HavingClause":234,"GroupExpression":235,"GROUPING":236,"ROLLUP":237,"CUBE":238,"HAVING":239,"CORRESPONDING":240,"OrderExpression":241,"DIRECTION":242,"COLLATE":243,"NOCASE":244,"LIMIT":245,"OffsetClause":246,"OFFSET":247,"LimitClause_option0":248,"FETCH":249,"LimitClause_option1":250,"LimitClause_option2":251,"LimitClause_option3":252,"ResultColumn":253,"Star":254,"AggrValue":255,"Op":256,"LogicValue":257,"NullValue":258,"ExistsValue":259,"CaseValue":260,"CastClause":261,"ArrayValue":262,"NewClause":263,"Expression_group0":264,"CURRENT_TIMESTAMP":265,"JAVASCRIPT":266,"CREATE":267,"FUNCTION":268,"AGGREGATE":269,"NEW":270,"CAST":271,"ColumnType":272,"CONVERT":273,"PrimitiveValue":274,"OverClause":275,"OVER":276,"OverPartitionClause":277,"OverOrderByClause":278,"PARTITION":279,"SUM":280,"COUNT":281,"MIN":282,"MAX":283,"AVG":284,"FIRST":285,"LAST":286,"AGGR":287,"ARRAY":288,"FuncValue_option0":289,"REPLACE":290,"DATEADD":291,"DATEDIFF":292,"INTERVAL":293,"TRUE":294,"FALSE":295,"NSTRING":296,"NULL":297,"EXISTS":298,"ARRAYLBRA":299,"RBRA":300,"ParamValue_group0":301,"BRAQUESTION":302,"CASE":303,"WhensList":304,"ElseClause":305,"END":306,"When":307,"WHEN":308,"THEN":309,"ELSE":310,"REGEXP":311,"TILDA":312,"GLOB":313,"ESCAPE":314,"NOT_LIKE":315,"BARBAR":316,"MINUS":317,"AMPERSAND":318,"BAR":319,"GE":320,"LE":321,"EQEQ":322,"EQEQEQ":323,"NE":324,"NEEQEQ":325,"NEEQEQEQ":326,"CondOp":327,"AllSome":328,"ColFunc":329,"BETWEEN":330,"NOT_BETWEEN":331,"IS":332,"DOUBLECOLON":333,"SOME":334,"UPDATE":335,"SetColumn":336,"SetColumn_group0":337,"DELETE":338,"INSERT":339,"Into":340,"Values":341,"ValuesListsList":342,"DEFAULT":343,"VALUES":344,"ValuesList":345,"Value":346,"DateValue":347,"TemporaryClause":348,"TableClass":349,"IfNotExists":350,"CreateTableDefClause":351,"CreateTableOptionsClause":352,"TABLE":353,"CreateTableOptions":354,"CreateTableOption":355,"IDENTITY":356,"TEMP":357,"ColumnDefsList":358,"ConstraintsList":359,"Constraint":360,"ConstraintName":361,"PrimaryKey":362,"ForeignKey":363,"UniqueKey":364,"IndexKey":365,"Check":366,"CONSTRAINT":367,"CHECK":368,"PRIMARY":369,"KEY":370,"PrimaryKey_option0":371,"ColsList":372,"FOREIGN":373,"REFERENCES":374,"ForeignKey_option0":375,"OnForeignKeyClause":376,"ParColsList":377,"OnDeleteClause":378,"OnUpdateClause":379,"NO":380,"ACTION":381,"UniqueKey_option0":382,"UniqueKey_option1":383,"ColumnDef":384,"ColumnConstraintsClause":385,"ColumnConstraints":386,"SingularColumnType":387,"NumberMax":388,"ENUM":389,"MAXNUM":390,"ColumnConstraintsList":391,"ColumnConstraint":392,"ParLiteral":393,"ColumnConstraint_option0":394,"ColumnConstraint_option1":395,"DROP":396,"DropTable_group0":397,"IfExists":398,"TablesList":399,"ALTER":400,"RENAME":401,"ADD":402,"MODIFY":403,"ATTACH":404,"DATABASE":405,"DETACH":406,"AsClause":407,"USE":408,"SHOW":409,"VIEW":410,"CreateView_option0":411,"CreateView_option1":412,"SubqueryRestriction":413,"READ":414,"ONLY":415,"OPTION":416,"SOURCE":417,"ASSERT":418,"JsonObject":419,"ATLBRA":420,"JsonArray":421,"JsonValue":422,"JsonPrimitiveValue":423,"LCUR":424,"JsonPropertiesList":425,"RCUR":426,"JsonElementsList":427,"JsonProperty":428,"OnOff":429,"SetPropsList":430,"AtDollar":431,"SetProp":432,"OFF":433,"COMMIT":434,"TRANSACTION":435,"ROLLBACK":436,"BEGIN":437,"ElseStatement":438,"WHILE":439,"CONTINUE":440,"BREAK":441,"PRINT":442,"REQUIRE":443,"StringValuesList":444,"PluginsList":445,"Plugin":446,"ECHO":447,"DECLARE":448,"DeclaresList":449,"DeclareItem":450,"TRUNCATE":451,"MERGE":452,"MergeInto":453,"MergeUsing":454,"MergeOn":455,"MergeMatchedList":456,"OutputClause":457,"MergeMatched":458,"MergeNotMatched":459,"MATCHED":460,"MergeMatchedAction":461,"MergeNotMatchedAction":462,"TARGET":463,"OUTPUT":464,"CreateVertex_option0":465,"CreateVertex_option1":466,"CreateVertex_option2":467,"CreateVertexSet":468,"SharpValue":469,"CONTENT":470,"CreateEdge_option0":471,"GRAPH":472,"GraphList":473,"GraphVertexEdge":474,"GraphElement":475,"GraphVertexEdge_option0":476,"GraphVertexEdge_option1":477,"GraphElementVar":478,"GraphVertexEdge_option2":479,"GraphVertexEdge_option3":480,"GraphVertexEdge_option4":481,"GraphVar":482,"GraphAsClause":483,"GraphAtClause":484,"GraphElement2":485,"GraphElement2_option0":486,"GraphElement2_option1":487,"GraphElement2_option2":488,"GraphElement2_option3":489,"GraphElement_option0":490,"GraphElement_option1":491,"GraphElement_option2":492,"SharpLiteral":493,"GraphElement_option3":494,"GraphElement_option4":495,"GraphElement_option5":496,"ColonLiteral":497,"DeleteVertex":498,"DeleteVertex_option0":499,"DeleteEdge":500,"DeleteEdge_option0":501,"DeleteEdge_option1":502,"DeleteEdge_option2":503,"Term":504,"COLONDASH":505,"TermsList":506,"QUESTIONDASH":507,"CALL":508,"TRIGGER":509,"BeforeAfter":510,"InsertDeleteUpdate":511,"CreateTrigger_option0":512,"CreateTrigger_option1":513,"BEFORE":514,"AFTER":515,"INSTEAD":516,"REINDEX":517,"A":518,"ABSENT":519,"ABSOLUTE":520,"ACCORDING":521,"ADA":522,"ADMIN":523,"ALWAYS":524,"ASC":525,"ASSERTION":526,"ASSIGNMENT":527,"ATTRIBUTE":528,"ATTRIBUTES":529,"BASE64":530,"BERNOULLI":531,"BLOCKED":532,"BOM":533,"BREADTH":534,"C":535,"CASCADE":536,"CATALOG":537,"CATALOG_NAME":538,"CHAIN":539,"CHARACTERISTICS":540,"CHARACTERS":541,"CHARACTER_SET_CATALOG":542,"CHARACTER_SET_NAME":543,"CHARACTER_SET_SCHEMA":544,"CLASS_ORIGIN":545,"COBOL":546,"COLLATION":547,"COLLATION_CATALOG":548,"COLLATION_NAME":549,"COLLATION_SCHEMA":550,"COLUMNS":551,"COLUMN_NAME":552,"COMMAND_FUNCTION":553,"COMMAND_FUNCTION_CODE":554,"COMMITTED":555,"CONDITION_NUMBER":556,"CONNECTION":557,"CONNECTION_NAME":558,"CONSTRAINTS":559,"CONSTRAINT_CATALOG":560,"CONSTRAINT_NAME":561,"CONSTRAINT_SCHEMA":562,"CONSTRUCTOR":563,"CONTROL":564,"CURSOR_NAME":565,"DATA":566,"DATETIME_INTERVAL_CODE":567,"DATETIME_INTERVAL_PRECISION":568,"DB":569,"DEFAULTS":570,"DEFERRABLE":571,"DEFERRED":572,"DEFINED":573,"DEFINER":574,"DEGREE":575,"DEPTH":576,"DERIVED":577,"DESC":578,"DESCRIPTOR":579,"DIAGNOSTICS":580,"DISPATCH":581,"DOCUMENT":582,"DOMAIN":583,"DYNAMIC_FUNCTION":584,"DYNAMIC_FUNCTION_CODE":585,"EMPTY":586,"ENCODING":587,"ENFORCED":588,"EXCLUDE":589,"EXCLUDING":590,"EXPRESSION":591,"FILE":592,"FINAL":593,"FLAG":594,"FOLLOWING":595,"FORTRAN":596,"FOUND":597,"FS":598,"G":599,"GENERAL":600,"GENERATED":601,"GO":602,"GOTO":603,"GRANTED":604,"HEX":605,"HIERARCHY":606,"ID":607,"IGNORE":608,"IMMEDIATE":609,"IMMEDIATELY":610,"IMPLEMENTATION":611,"INCLUDING":612,"INCREMENT":613,"INDENT":614,"INITIALLY":615,"INPUT":616,"INSTANCE":617,"INSTANTIABLE":618,"INTEGRITY":619,"INVOKER":620,"ISOLATION":621,"K":622,"KEY_MEMBER":623,"KEY_TYPE":624,"LENGTH":625,"LEVEL":626,"LIBRARY":627,"LINK":628,"LOCATION":629,"LOCATOR":630,"M":631,"MAP":632,"MAPPING":633,"MAXVALUE":634,"MESSAGE_LENGTH":635,"MESSAGE_OCTET_LENGTH":636,"MESSAGE_TEXT":637,"MINVALUE":638,"MORE":639,"MUMPS":640,"NAME":641,"NAMES":642,"NAMESPACE":643,"NESTING":644,"NEXT":645,"NFC":646,"NFD":647,"NFKC":648,"NFKD":649,"NIL":650,"NORMALIZED":651,"NULLABLE":652,"NULLS":653,"OBJECT":654,"OCTETS":655,"OPTIONS":656,"ORDERING":657,"ORDINALITY":658,"OTHERS":659,"OVERRIDING":660,"P":661,"PAD":662,"PARAMETER_MODE":663,"PARAMETER_NAME":664,"PARAMETER_ORDINAL_POSITION":665,"PARAMETER_SPECIFIC_CATALOG":666,"PARAMETER_SPECIFIC_NAME":667,"PARAMETER_SPECIFIC_SCHEMA":668,"PARTIAL":669,"PASCAL":670,"PASSING":671,"PASSTHROUGH":672,"PERMISSION":673,"PLACING":674,"PLI":675,"PRECEDING":676,"PRESERVE":677,"PRIOR":678,"PRIVILEGES":679,"PUBLIC":680,"RECOVERY":681,"RELATIVE":682,"REPEATABLE":683,"REQUIRING":684,"RESPECT":685,"RESTART":686,"RESTORE":687,"RESTRICT":688,"RETURNED_CARDINALITY":689,"RETURNED_LENGTH":690,"RETURNED_OCTET_LENGTH":691,"RETURNED_SQLSTATE":692,"RETURNING":693,"ROLE":694,"ROUTINE":695,"ROUTINE_CATALOG":696,"ROUTINE_NAME":697,"ROUTINE_SCHEMA":698,"ROW_COUNT":699,"SCALE":700,"SCHEMA":701,"SCHEMA_NAME":702,"SCOPE_CATALOG":703,"SCOPE_NAME":704,"SCOPE_SCHEMA":705,"SECTION":706,"SECURITY":707,"SELECTIVE":708,"SELF":709,"SEQUENCE":710,"SERIALIZABLE":711,"SERVER":712,"SERVER_NAME":713,"SESSION":714,"SETS":715,"SIMPLE":716,"SIZE":717,"SPACE":718,"SPECIFIC_NAME":719,"STANDALONE":720,"STATE":721,"STATEMENT":722,"STRIP":723,"STRUCTURE":724,"STYLE":725,"SUBCLASS_ORIGIN":726,"T":727,"TABLE_NAME":728,"TEMPORARY":729,"TIES":730,"TOKEN":731,"TOP_LEVEL_COUNT":732,"TRANSACTIONS_COMMITTED":733,"TRANSACTIONS_ROLLED_BACK":734,"TRANSACTION_ACTIVE":735,"TRANSFORM":736,"TRANSFORMS":737,"TRIGGER_CATALOG":738,"TRIGGER_NAME":739,"TRIGGER_SCHEMA":740,"TYPE":741,"UNBOUNDED":742,"UNCOMMITTED":743,"UNDER":744,"UNLINK":745,"UNNAMED":746,"UNTYPED":747,"URI":748,"USAGE":749,"USER_DEFINED_TYPE_CATALOG":750,"USER_DEFINED_TYPE_CODE":751,"USER_DEFINED_TYPE_NAME":752,"USER_DEFINED_TYPE_SCHEMA":753,"VALID":754,"VERSION":755,"WHITESPACE":756,"WORK":757,"WRAPPER":758,"WRITE":759,"XMLDECLARATION":760,"XMLSCHEMA":761,"YES":762,"ZONE":763,"SEMICOLON":764,"PERCENT":765,"ROWS":766,"FuncValue_option0_group0":767,"$accept":0,"$end":1}, +terminals_: {2:"error",4:"LITERAL",5:"BRALITERAL",10:"EOF",14:"EXPLAIN",15:"QUERY",16:"PLAN",53:"EndTransaction",72:"WITH",74:"COMMA",76:"AS",77:"LPAR",78:"RPAR",89:"SEARCH",93:"PIVOT",95:"FOR",98:"UNPIVOT",99:"IN",107:"REMOVE",112:"LIKE",115:"ARROW",116:"DOT",118:"ORDER",119:"BY",122:"DOTDOT",123:"CARET",124:"EQ",128:"WHERE",129:"OF",130:"CLASS",131:"NUMBER",132:"STRING",133:"SLASH",134:"VERTEX",135:"EDGE",136:"EXCLAMATION",137:"SHARP",138:"MODULO",139:"GT",140:"LT",141:"GTGT",142:"LTLT",143:"DOLLAR",145:"AT",146:"SET",148:"TO",149:"VALUE",150:"ROW",152:"COLON",154:"NOT",156:"IF",162:"UNION",164:"ALL",166:"ANY",168:"INTERSECT",169:"EXCEPT",170:"AND",171:"OR",172:"PATH",173:"RETURN",175:"REPEAT",179:"PLUS",180:"STAR",181:"QUESTION",183:"FROM",185:"DISTINCT",187:"UNIQUE",189:"SELECT",190:"COLUMN",191:"MATRIX",192:"TEXTSTRING",193:"INDEX",194:"RECORDSET",195:"TOP",198:"INTO",206:"CROSS",207:"APPLY",208:"OUTER",212:"INDEXED",213:"INSERTED",222:"NATURAL",223:"JOIN",224:"INNER",225:"LEFT",226:"RIGHT",227:"FULL",228:"SEMI",229:"ANTI",230:"ON",231:"USING",232:"GROUP",236:"GROUPING",237:"ROLLUP",238:"CUBE",239:"HAVING",240:"CORRESPONDING",242:"DIRECTION",243:"COLLATE",244:"NOCASE",245:"LIMIT",247:"OFFSET",249:"FETCH",265:"CURRENT_TIMESTAMP",266:"JAVASCRIPT",267:"CREATE",268:"FUNCTION",269:"AGGREGATE",270:"NEW",271:"CAST",273:"CONVERT",276:"OVER",279:"PARTITION",280:"SUM",281:"COUNT",282:"MIN",283:"MAX",284:"AVG",285:"FIRST",286:"LAST",287:"AGGR",288:"ARRAY",290:"REPLACE",291:"DATEADD",292:"DATEDIFF",293:"INTERVAL",294:"TRUE",295:"FALSE",296:"NSTRING",297:"NULL",298:"EXISTS",299:"ARRAYLBRA",300:"RBRA",302:"BRAQUESTION",303:"CASE",306:"END",308:"WHEN",309:"THEN",310:"ELSE",311:"REGEXP",312:"TILDA",313:"GLOB",314:"ESCAPE",315:"NOT_LIKE",316:"BARBAR",317:"MINUS",318:"AMPERSAND",319:"BAR",320:"GE",321:"LE",322:"EQEQ",323:"EQEQEQ",324:"NE",325:"NEEQEQ",326:"NEEQEQEQ",330:"BETWEEN",331:"NOT_BETWEEN",332:"IS",333:"DOUBLECOLON",334:"SOME",335:"UPDATE",338:"DELETE",339:"INSERT",343:"DEFAULT",344:"VALUES",347:"DateValue",353:"TABLE",356:"IDENTITY",357:"TEMP",367:"CONSTRAINT",368:"CHECK",369:"PRIMARY",370:"KEY",373:"FOREIGN",374:"REFERENCES",380:"NO",381:"ACTION",386:"ColumnConstraints",389:"ENUM",390:"MAXNUM",396:"DROP",400:"ALTER",401:"RENAME",402:"ADD",403:"MODIFY",404:"ATTACH",405:"DATABASE",406:"DETACH",408:"USE",409:"SHOW",410:"VIEW",414:"READ",415:"ONLY",416:"OPTION",417:"SOURCE",418:"ASSERT",420:"ATLBRA",424:"LCUR",426:"RCUR",433:"OFF",434:"COMMIT",435:"TRANSACTION",436:"ROLLBACK",437:"BEGIN",439:"WHILE",440:"CONTINUE",441:"BREAK",442:"PRINT",443:"REQUIRE",447:"ECHO",448:"DECLARE",451:"TRUNCATE",452:"MERGE",460:"MATCHED",463:"TARGET",464:"OUTPUT",470:"CONTENT",472:"GRAPH",505:"COLONDASH",507:"QUESTIONDASH",508:"CALL",509:"TRIGGER",514:"BEFORE",515:"AFTER",516:"INSTEAD",517:"REINDEX",518:"A",519:"ABSENT",520:"ABSOLUTE",521:"ACCORDING",522:"ADA",523:"ADMIN",524:"ALWAYS",525:"ASC",526:"ASSERTION",527:"ASSIGNMENT",528:"ATTRIBUTE",529:"ATTRIBUTES",530:"BASE64",531:"BERNOULLI",532:"BLOCKED",533:"BOM",534:"BREADTH",535:"C",536:"CASCADE",537:"CATALOG",538:"CATALOG_NAME",539:"CHAIN",540:"CHARACTERISTICS",541:"CHARACTERS",542:"CHARACTER_SET_CATALOG",543:"CHARACTER_SET_NAME",544:"CHARACTER_SET_SCHEMA",545:"CLASS_ORIGIN",546:"COBOL",547:"COLLATION",548:"COLLATION_CATALOG",549:"COLLATION_NAME",550:"COLLATION_SCHEMA",551:"COLUMNS",552:"COLUMN_NAME",553:"COMMAND_FUNCTION",554:"COMMAND_FUNCTION_CODE",555:"COMMITTED",556:"CONDITION_NUMBER",557:"CONNECTION",558:"CONNECTION_NAME",559:"CONSTRAINTS",560:"CONSTRAINT_CATALOG",561:"CONSTRAINT_NAME",562:"CONSTRAINT_SCHEMA",563:"CONSTRUCTOR",564:"CONTROL",565:"CURSOR_NAME",566:"DATA",567:"DATETIME_INTERVAL_CODE",568:"DATETIME_INTERVAL_PRECISION",569:"DB",570:"DEFAULTS",571:"DEFERRABLE",572:"DEFERRED",573:"DEFINED",574:"DEFINER",575:"DEGREE",576:"DEPTH",577:"DERIVED",578:"DESC",579:"DESCRIPTOR",580:"DIAGNOSTICS",581:"DISPATCH",582:"DOCUMENT",583:"DOMAIN",584:"DYNAMIC_FUNCTION",585:"DYNAMIC_FUNCTION_CODE",586:"EMPTY",587:"ENCODING",588:"ENFORCED",589:"EXCLUDE",590:"EXCLUDING",591:"EXPRESSION",592:"FILE",593:"FINAL",594:"FLAG",595:"FOLLOWING",596:"FORTRAN",597:"FOUND",598:"FS",599:"G",600:"GENERAL",601:"GENERATED",602:"GO",603:"GOTO",604:"GRANTED",605:"HEX",606:"HIERARCHY",607:"ID",608:"IGNORE",609:"IMMEDIATE",610:"IMMEDIATELY",611:"IMPLEMENTATION",612:"INCLUDING",613:"INCREMENT",614:"INDENT",615:"INITIALLY",616:"INPUT",617:"INSTANCE",618:"INSTANTIABLE",619:"INTEGRITY",620:"INVOKER",621:"ISOLATION",622:"K",623:"KEY_MEMBER",624:"KEY_TYPE",625:"LENGTH",626:"LEVEL",627:"LIBRARY",628:"LINK",629:"LOCATION",630:"LOCATOR",631:"M",632:"MAP",633:"MAPPING",634:"MAXVALUE",635:"MESSAGE_LENGTH",636:"MESSAGE_OCTET_LENGTH",637:"MESSAGE_TEXT",638:"MINVALUE",639:"MORE",640:"MUMPS",641:"NAME",642:"NAMES",643:"NAMESPACE",644:"NESTING",645:"NEXT",646:"NFC",647:"NFD",648:"NFKC",649:"NFKD",650:"NIL",651:"NORMALIZED",652:"NULLABLE",653:"NULLS",654:"OBJECT",655:"OCTETS",656:"OPTIONS",657:"ORDERING",658:"ORDINALITY",659:"OTHERS",660:"OVERRIDING",661:"P",662:"PAD",663:"PARAMETER_MODE",664:"PARAMETER_NAME",665:"PARAMETER_ORDINAL_POSITION",666:"PARAMETER_SPECIFIC_CATALOG",667:"PARAMETER_SPECIFIC_NAME",668:"PARAMETER_SPECIFIC_SCHEMA",669:"PARTIAL",670:"PASCAL",671:"PASSING",672:"PASSTHROUGH",673:"PERMISSION",674:"PLACING",675:"PLI",676:"PRECEDING",677:"PRESERVE",678:"PRIOR",679:"PRIVILEGES",680:"PUBLIC",681:"RECOVERY",682:"RELATIVE",683:"REPEATABLE",684:"REQUIRING",685:"RESPECT",686:"RESTART",687:"RESTORE",688:"RESTRICT",689:"RETURNED_CARDINALITY",690:"RETURNED_LENGTH",691:"RETURNED_OCTET_LENGTH",692:"RETURNED_SQLSTATE",693:"RETURNING",694:"ROLE",695:"ROUTINE",696:"ROUTINE_CATALOG",697:"ROUTINE_NAME",698:"ROUTINE_SCHEMA",699:"ROW_COUNT",700:"SCALE",701:"SCHEMA",702:"SCHEMA_NAME",703:"SCOPE_CATALOG",704:"SCOPE_NAME",705:"SCOPE_SCHEMA",706:"SECTION",707:"SECURITY",708:"SELECTIVE",709:"SELF",710:"SEQUENCE",711:"SERIALIZABLE",712:"SERVER",713:"SERVER_NAME",714:"SESSION",715:"SETS",716:"SIMPLE",717:"SIZE",718:"SPACE",719:"SPECIFIC_NAME",720:"STANDALONE",721:"STATE",722:"STATEMENT",723:"STRIP",724:"STRUCTURE",725:"STYLE",726:"SUBCLASS_ORIGIN",727:"T",728:"TABLE_NAME",729:"TEMPORARY",730:"TIES",731:"TOKEN",732:"TOP_LEVEL_COUNT",733:"TRANSACTIONS_COMMITTED",734:"TRANSACTIONS_ROLLED_BACK",735:"TRANSACTION_ACTIVE",736:"TRANSFORM",737:"TRANSFORMS",738:"TRIGGER_CATALOG",739:"TRIGGER_NAME",740:"TRIGGER_SCHEMA",741:"TYPE",742:"UNBOUNDED",743:"UNCOMMITTED",744:"UNDER",745:"UNLINK",746:"UNNAMED",747:"UNTYPED",748:"URI",749:"USAGE",750:"USER_DEFINED_TYPE_CATALOG",751:"USER_DEFINED_TYPE_CODE",752:"USER_DEFINED_TYPE_NAME",753:"USER_DEFINED_TYPE_SCHEMA",754:"VALID",755:"VERSION",756:"WHITESPACE",757:"WORK",758:"WRAPPER",759:"WRITE",760:"XMLDECLARATION",761:"XMLSCHEMA",762:"YES",763:"ZONE",764:"SEMICOLON",765:"PERCENT",766:"ROWS"}, +productions_: [0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[241,1],[241,2],[241,3],[241,4],[87,0],[87,3],[87,8],[246,0],[246,2],[174,3],[174,1],[253,3],[253,2],[253,3],[253,2],[253,3],[253,2],[253,1],[254,5],[254,3],[254,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[263,2],[263,2],[261,6],[261,8],[261,6],[261,8],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[255,5],[255,6],[255,6],[275,0],[275,4],[275,4],[275,5],[277,3],[278,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[257,1],[257,1],[113,1],[113,1],[258,1],[202,2],[259,4],[262,3],[201,2],[201,2],[201,1],[201,1],[260,5],[260,4],[304,2],[304,1],[307,4],[305,2],[305,0],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,6],[256,6],[256,3],[256,3],[256,2],[256,2],[256,2],[256,2],[256,2],[256,3],[256,5],[256,6],[256,5],[256,6],[256,4],[256,5],[256,3],[256,4],[256,3],[256,4],[256,3],[256,3],[256,3],[256,3],[256,3],[329,1],[329,1],[329,4],[327,1],[327,1],[327,1],[327,1],[327,1],[327,1],[328,1],[328,1],[328,1],[55,6],[55,4],[147,1],[147,3],[336,3],[336,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[341,1],[341,1],[340,0],[340,1],[342,3],[342,1],[342,1],[342,5],[342,3],[342,3],[345,1],[345,3],[346,1],[346,1],[346,1],[346,1],[346,1],[346,1],[100,1],[100,3],[24,9],[24,5],[349,1],[349,1],[352,0],[352,1],[354,2],[354,1],[355,1],[355,3],[355,3],[355,3],[348,0],[348,1],[350,0],[350,3],[351,3],[351,1],[351,2],[359,1],[359,3],[360,2],[360,2],[360,2],[360,2],[360,2],[361,0],[361,2],[366,4],[362,6],[363,9],[377,3],[376,0],[376,2],[378,4],[379,4],[364,6],[365,5],[365,5],[372,1],[372,1],[372,3],[372,3],[358,1],[358,3],[384,3],[384,2],[384,1],[387,6],[387,4],[387,1],[387,4],[272,2],[272,1],[388,1],[388,1],[385,0],[385,1],[391,2],[391,1],[393,3],[392,2],[392,5],[392,3],[392,6],[392,1],[392,2],[392,4],[392,2],[392,1],[392,2],[392,1],[392,1],[392,3],[392,5],[33,4],[399,3],[399,1],[398,0],[398,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[407,0],[407,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[413,3],[413,3],[413,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[422,1],[422,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,3],[419,3],[419,4],[419,2],[421,2],[421,3],[421,1],[425,3],[425,1],[428,3],[428,3],[428,3],[427,3],[427,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[431,1],[431,1],[430,3],[430,2],[432,1],[432,1],[432,3],[429,1],[429,1],[51,2],[52,2],[50,2],[35,4],[35,3],[438,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[446,1],[446,1],[69,2],[444,3],[444,1],[445,3],[445,1],[28,2],[449,1],[449,3],[450,3],[450,4],[450,5],[450,6],[46,3],[37,6],[453,1],[453,2],[454,2],[455,2],[456,2],[456,2],[456,1],[456,1],[458,4],[458,6],[461,1],[461,3],[459,5],[459,7],[459,7],[459,9],[459,7],[459,9],[462,3],[462,6],[462,3],[462,6],[457,0],[457,2],[457,5],[457,4],[457,7],[27,6],[469,2],[468,0],[468,2],[468,2],[468,1],[26,8],[23,3],[23,4],[473,3],[473,1],[474,3],[474,7],[474,6],[474,3],[474,4],[478,1],[478,1],[482,2],[483,3],[484,2],[485,4],[475,4],[475,3],[475,2],[475,1],[497,2],[493,2],[493,2],[498,4],[500,6],[67,3],[67,2],[506,3],[506,1],[504,1],[504,4],[68,2],[20,2],[48,9],[48,8],[48,9],[510,0],[510,1],[510,1],[510,1],[510,2],[511,1],[511,1],[511,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[248,0],[248,1],[250,0],[250,1],[251,0],[251,1],[252,0],[252,1],[264,1],[264,1],[767,1],[767,1],[289,0],[289,1],[301,1],[301,1],[337,1],[337,1],[371,0],[371,1],[375,0],[375,1],[382,0],[382,1],[383,0],[383,1],[394,0],[394,1],[395,0],[395,1],[397,1],[397,1],[411,0],[411,1],[412,0],[412,1],[465,0],[465,1],[466,0],[466,1],[467,0],[467,1],[471,0],[471,1],[476,0],[476,1],[477,0],[477,1],[479,0],[479,1],[480,0],[480,1],[481,0],[481,1],[486,0],[486,1],[487,0],[487,1],[488,0],[488,1],[489,0],[489,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[499,0],[499,2],[501,0],[501,2],[502,0],[502,2],[503,0],[503,2],[512,0],[512,1],[513,0],[513,1]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 1: + + if (alasql.options.casesensitive) this.$ = $$[$0]; + else this.$ = $$[$0].toLowerCase(); + +break; +case 2: + this.$ = doubleq($$[$0].substr(1,$$[$0].length-2)); +break; +case 3: + this.$ = $$[$0].toLowerCase() +break; +case 4: + this.$ = $$[$0] +break; +case 5: + this.$ = $$[$0] ? $$[$0-1] + ' ' + $$[$0] : $$[$0-1] +break; +case 6: + return new yy.Statements({statements:$$[$0-1]}); +break; +case 7: + this.$ = $$[$0-2]; if($$[$0]) $$[$0-2].push($$[$0]); +break; +case 8: case 9: case 70: case 80: case 85: case 143: case 177: case 205: case 206: case 242: case 261: case 273: case 354: case 372: case 451: case 474: case 475: case 479: case 487: case 528: case 529: case 566: case 649: case 659: case 683: case 685: case 687: case 701: case 702: case 732: case 756: + this.$ = [$$[$0]]; +break; +case 10: + this.$ = $$[$0]; $$[$0].explain = true; +break; +case 11: + this.$ = $$[$0]; $$[$0].explain = true; +break; +case 12: + + this.$ = $$[$0]; + + // TODO combine exists and queries + if(yy.exists) this.$.exists = yy.exists; + delete yy.exists; + if(yy.queries) this.$.queries = yy.queries; + delete yy.queries; + +break; +case 13: case 162: case 172: case 237: case 238: case 240: case 248: case 250: case 259: case 267: case 270: case 375: case 491: case 501: case 503: case 515: case 521: case 522: case 567: + this.$ = undefined; +break; +case 68: + this.$ = new yy.WithSelect({withs: $$[$0-1], select:$$[$0]}); +break; +case 69: case 565: + $$[$0-2].push($$[$0]); this.$=$$[$0-2]; +break; +case 71: + this.$ = {name:$$[$0-4], select:$$[$0-1]}; +break; +case 72: + + yy.extend(this.$,$$[$0-9]); yy.extend(this.$,$$[$0-8]); yy.extend(this.$,$$[$0-7]); yy.extend(this.$,$$[$0-6]); + yy.extend(this.$,$$[$0-5]); yy.extend(this.$,$$[$0-4]);yy.extend(this.$,$$[$0-3]); + yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]); + this.$ = $$[$0-9]; +/* if(yy.exists) this.$.exists = yy.exists; + delete yy.exists; + if(yy.queries) this.$.queries = yy.queries; + delete yy.queries; +*/ +break; +case 73: + + this.$ = new yy.Search({selectors:$$[$0-2], from:$$[$0]}); + yy.extend(this.$,$$[$0-1]); + +break; +case 74: + this.$ = {pivot:{expr:$$[$0-5], columnid:$$[$0-3], inlist:$$[$0-2], as:$$[$0]}}; +break; +case 75: + this.$ = {unpivot:{tocolumnid:$$[$0-8], forcolumnid:$$[$0-6], inlist:$$[$0-3], as:$$[$0]}}; +break; +case 76: case 520: case 549: case 585: case 619: case 636: case 637: case 640: case 662: + this.$ = $$[$0-1]; +break; +case 77: case 78: case 86: case 147: case 185: case 247: case 280: case 288: case 289: case 290: case 291: case 292: case 293: case 294: case 295: case 296: case 297: case 298: case 299: case 300: case 301: case 304: case 305: case 320: case 321: case 322: case 323: case 324: case 325: case 374: case 440: case 441: case 442: case 443: case 444: case 445: case 516: case 542: case 546: case 548: case 623: case 624: case 625: case 626: case 627: case 628: case 632: case 634: case 635: case 644: case 660: case 661: case 723: case 738: case 739: case 741: case 742: case 748: case 749: + this.$ = $$[$0]; +break; +case 79: case 84: case 731: case 755: + this.$ = $$[$0-2]; this.$.push($$[$0]); +break; +case 81: + this.$ = {expr:$$[$0]}; +break; +case 82: + this.$ = {expr:$$[$0-2],as:$$[$0]}; +break; +case 83: + this.$ = {removecolumns:$$[$0]}; +break; +case 87: + this.$ = {like:$$[$0]}; +break; +case 90: case 104: + this.$ = {srchid:"PROP", args: [$$[$0]]}; +break; +case 91: + this.$ = {srchid:"ORDERBY", args: $$[$0-1]}; +break; +case 92: + + var dir = $$[$0-1]; + if(!dir) dir = 'ASC'; + this.$ = {srchid:"ORDERBY", args: [{expression: new yy.Column({columnid:'_'}), direction:dir}]}; + +break; +case 93: + this.$ = {srchid:"PARENT"}; +break; +case 94: + this.$ = {srchid:"APROP", args: [$$[$0]]}; +break; +case 95: + this.$ = {selid:"ROOT"}; +break; +case 96: + this.$ = {srchid:"EQ", args: [$$[$0]]}; +break; +case 97: + this.$ = {srchid:"LIKE", args: [$$[$0]]}; +break; +case 98: case 99: + this.$ = {selid:"WITH", args: $$[$0-1]}; +break; +case 100: + this.$ = {srchid:$$[$0-3].toUpperCase(), args:$$[$0-1]}; +break; +case 101: + this.$ = {srchid:"WHERE", args:[$$[$0-1]]}; +break; +case 102: + this.$ = {selid:"OF", args:[$$[$0-1]]}; +break; +case 103: + this.$ = {srchid:"CLASS", args:[$$[$0-1]]}; +break; +case 105: + this.$ = {srchid:"NAME", args: [$$[$0].substr(1,$$[$0].length-2)]}; +break; +case 106: + this.$ = {srchid:"CHILD"}; +break; +case 107: + this.$ = {srchid:"VERTEX"}; +break; +case 108: + this.$ = {srchid:"EDGE"}; +break; +case 109: + this.$ = {srchid:"REF"}; +break; +case 110: + this.$ = {srchid:"SHARP", args:[$$[$0]]}; +break; +case 111: + this.$ = {srchid:"ATTR", args:((typeof $$[$0] == 'undefined')?undefined:[$$[$0]])}; +break; +case 112: + this.$ = {srchid:"ATTR"}; +break; +case 113: + this.$ = {srchid:"OUT"}; +break; +case 114: + this.$ = {srchid:"IN"}; +break; +case 115: + this.$ = {srchid:"OUTOUT"}; +break; +case 116: + this.$ = {srchid:"ININ"}; +break; +case 117: + this.$ = {srchid:"CONTENT"}; +break; +case 118: + this.$ = {srchid:"EX",args:[new yy.Json({value:$$[$0]})]}; +break; +case 119: + this.$ = {srchid:"AT", args:[$$[$0]]}; +break; +case 120: + this.$ = {srchid:"AS", args:[$$[$0]]}; +break; +case 121: + this.$ = {srchid:"SET", args:$$[$0-1]}; +break; +case 122: + this.$ = {selid:"TO", args:[$$[$0]]}; +break; +case 123: + this.$ = {srchid:"VALUE"}; +break; +case 124: + this.$ = {srchid:"ROW", args:$$[$0-1]}; +break; +case 125: + this.$ = {srchid:"CLASS", args:[$$[$0]]}; +break; +case 126: + this.$ = {selid:$$[$0],args:[$$[$0-1]] }; +break; +case 127: + this.$ = {selid:"NOT",args:$$[$0-1] }; +break; +case 128: + this.$ = {selid:"IF",args:$$[$0-1] }; +break; +case 129: + this.$ = {selid:$$[$0-3],args:$$[$0-1] }; +break; +case 130: + this.$ = {selid:'DISTINCT',args:$$[$0-1] }; +break; +case 131: + this.$ = {selid:'UNION',args:$$[$0-1] }; +break; +case 132: + this.$ = {selid:'UNIONALL',args:$$[$0-1] }; +break; +case 133: + this.$ = {selid:'ALL',args:[$$[$0-1]] }; +break; +case 134: + this.$ = {selid:'ANY',args:[$$[$0-1]] }; +break; +case 135: + this.$ = {selid:'INTERSECT',args:$$[$0-1] }; +break; +case 136: + this.$ = {selid:'EXCEPT',args:$$[$0-1] }; +break; +case 137: + this.$ = {selid:'AND',args:$$[$0-1] }; +break; +case 138: + this.$ = {selid:'OR',args:$$[$0-1] }; +break; +case 139: + this.$ = {selid:'PATH',args:[$$[$0-1]] }; +break; +case 140: + this.$ = {srchid:'RETURN',args:$$[$0-1] }; +break; +case 141: + this.$ = {selid:'REPEAT',sels:$$[$0-3], args:$$[$0-1] }; +break; +case 142: + this.$ = $$[$0-2]; this.$.push($$[$0]); +break; +case 144: + this.$ = "PLUS"; +break; +case 145: + this.$ = "STAR"; +break; +case 146: + this.$ = "QUESTION"; +break; +case 148: + this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]); yy.extend(this.$, $$[$0-1]); +break; +case 149: + this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]); +break; +case 150: + this.$ = new yy.Select({ columns:$$[$0], all:true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]); +break; +case 151: + + if(!$$[$0]) { + this.$ = new yy.Select({columns:[new yy.Column({columnid:'_',})], modifier:'COLUMN'}); + } else { + this.$ = new yy.Select({ columns:$$[$0] }); yy.extend(this.$, $$[$0-2]);yy.extend(this.$, $$[$0-1]); + } + +break; +case 152: + if($$[$0]=='SELECT') this.$ = undefined; else this.$ = {modifier: $$[$0]}; +break; +case 153: + this.$ = {modifier:'VALUE'} +break; +case 154: + this.$ = {modifier:'ROW'} +break; +case 155: + this.$ = {modifier:'COLUMN'} +break; +case 156: + this.$ = {modifier:'MATRIX'} +break; +case 157: + this.$ = {modifier:'TEXTSTRING'} +break; +case 158: + this.$ = {modifier:'INDEX'} +break; +case 159: + this.$ = {modifier:'RECORDSET'} +break; +case 160: + this.$ = {top: $$[$0-1], percent:(typeof $$[$0] != 'undefined'?true:undefined)}; +break; +case 161: + this.$ = {top: $$[$0-1]}; +break; +case 163: case 330: case 523: case 524: case 724: +this.$ = undefined; +break; +case 164: case 165: case 166: case 167: +this.$ = {into: $$[$0]} +break; +case 168: + + var s = $$[$0]; + s = s.substr(1,s.length-2); + var x3 = s.substr(-3).toUpperCase(); + var x4 = s.substr(-4).toUpperCase(); + if(s[0] == '#') { + this.$ = {into: new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})}; + } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') { + this.$ = {into: new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})}; + } else if(x4=='XLSX' || x4 == 'JSON') { + this.$ = {into: new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})}; + } + +break; +case 169: + this.$ = { from: $$[$0] }; +break; +case 170: + this.$ = { from: $$[$0-1], joins: $$[$0] }; +break; +case 171: + this.$ = { from: $$[$0-2], joins: $$[$0-1] }; +break; +case 173: + this.$ = new yy.Apply({select: $$[$0-2], applymode:'CROSS', as:$$[$0]}); +break; +case 174: + this.$ = new yy.Apply({select: $$[$0-3], applymode:'CROSS', as:$$[$0]}); +break; +case 175: + this.$ = new yy.Apply({select: $$[$0-2], applymode:'OUTER', as:$$[$0]}); +break; +case 176: + this.$ = new yy.Apply({select: $$[$0-3], applymode:'OUTER', as:$$[$0]}); +break; +case 178: case 243: case 452: case 530: case 531: + this.$ = $$[$0-2]; $$[$0-2].push($$[$0]); +break; +case 179: + this.$ = $$[$0-2]; this.$.as = $$[$0] +break; +case 180: + this.$ = $$[$0-3]; this.$.as = $$[$0] +break; +case 181: + this.$ = $$[$0-1]; this.$.as = 'default' +break; +case 182: + this.$ = new yy.Json({value:$$[$0-2]}); $$[$0-2].as = $$[$0] +break; +case 183: + this.$ = $$[$0-1]; $$[$0-1].as = $$[$0] +break; +case 184: + this.$ = $$[$0-2]; $$[$0-2].as = $$[$0] +break; +case 186: case 638: case 641: + this.$ = $$[$0-2]; +break; +case 187: case 191: case 195: case 198: + this.$ = $$[$0-1]; $$[$0-1].as = $$[$0]; +break; +case 188: case 192: case 196: case 199: + this.$ = $$[$0-2]; $$[$0-2].as = $$[$0]; +break; +case 189: case 190: case 194: case 197: + this.$ = $$[$0]; $$[$0].as = 'default'; +break; +case 193: + this.$ = {inserted:true}; /*$$[$0].as = 'default'*/; +break; +case 200: + + var s = $$[$0]; + s = s.substr(1,s.length-2); + var x3 = s.substr(-3).toUpperCase(); + var x4 = s.substr(-4).toUpperCase(); + var r; + if(s[0] == '#') { + r = new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]}); + } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') { + r = new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]}); + } else if(x4=='XLSX' || x4 == 'JSON') { + r = new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]}); + } else { + throw new Error('Unknown string in FROM clause'); + }; + this.$ = r; + +break; +case 201: + + if($$[$0-2] == 'INFORMATION_SCHEMA') { + this.$ = new yy.FuncValue({funcid: $$[$0-2], args:[new yy.StringValue({value:$$[$0]})]}); + } else { + this.$ = new yy.Table({databaseid: $$[$0-2], tableid:$$[$0]}); + } + +break; +case 202: + this.$ = new yy.Table({tableid: $$[$0]}); +break; +case 203: case 204: + this.$ = $$[$0-1]; $$[$0-1].push($$[$0]); +break; +case 207: + this.$ = new yy.Join($$[$0-2]); yy.extend(this.$, $$[$0-1]); yy.extend(this.$, $$[$0]); +break; +case 208: + this.$ = {table: $$[$0]}; +break; +case 209: + this.$ = {table: $$[$0-1], as: $$[$0] } ; +break; +case 210: + this.$ = {table: $$[$0-2], as: $$[$0] } ; +break; +case 211: + this.$ = {json:new yy.Json({value:$$[$0-2],as:$$[$0]})}; +break; +case 212: + this.$ = {param: $$[$0-1], as: $$[$0] } ; +break; +case 213: + this.$ = {param: $$[$0-2], as: $$[$0] } ; +break; +case 214: + this.$ = {select: $$[$0-2], as: $$[$0]} ; +break; +case 215: + this.$ = {select: $$[$0-3], as: $$[$0] } ; +break; +case 216: + this.$ = {func:$$[$0], as:'default'}; +break; +case 217: + this.$ = {func:$$[$0-1], as: $$[$0]}; +break; +case 218: + this.$ = {func:$$[$0-2], as: $$[$0]}; +break; +case 219: + this.$ = {variable:$$[$0],as:'default'}; +break; +case 220: + this.$ = {variable:$$[$0-1],as:$$[$0]}; +break; +case 221: + this.$ = {variable:$$[$0-2],as:$$[$0]} +break; +case 222: + this.$ = { joinmode: $$[$0] } ; +break; +case 223: + this.$ = {joinmode: $$[$0-1], natural:true} ; +break; +case 224: case 225: + this.$ = "INNER"; +break; +case 226: case 227: + this.$ = "LEFT"; +break; +case 228: case 229: + this.$ = "RIGHT"; +break; +case 230: case 231: + this.$ = "OUTER"; +break; +case 232: + this.$ = "SEMI"; +break; +case 233: + this.$ = "ANTI"; +break; +case 234: + this.$ = "CROSS"; +break; +case 235: + this.$ = {on: $$[$0]}; +break; +case 236: case 697: + this.$ = {using: $$[$0]}; +break; +case 239: + this.$ = {where: new yy.Expression({expression:$$[$0]})}; +break; +case 241: + this.$ = {group:$$[$0-1]}; yy.extend(this.$,$$[$0]); +break; +case 244: + this.$ = new yy.GroupExpression({type:'GROUPING SETS', group: $$[$0-1]}); +break; +case 245: + this.$ = new yy.GroupExpression({type:'ROLLUP', group: $$[$0-1]}); +break; +case 246: + this.$ = new yy.GroupExpression({type:'CUBE', group: $$[$0-1]}); +break; +case 249: + this.$ = {having:$$[$0]} +break; +case 251: + this.$ = {union: $$[$0]} ; +break; +case 252: + this.$ = {unionall: $$[$0]} ; +break; +case 253: + this.$ = {except: $$[$0]} ; +break; +case 254: + this.$ = {intersect: $$[$0]} ; +break; +case 255: + this.$ = {union: $$[$0], corresponding:true} ; +break; +case 256: + this.$ = {unionall: $$[$0], corresponding:true} ; +break; +case 257: + this.$ = {except: $$[$0], corresponding:true} ; +break; +case 258: + this.$ = {intersect: $$[$0], corresponding:true} ; +break; +case 260: + this.$ = {order:$$[$0]} +break; +case 262: + this.$ = $$[$0-2]; $$[$0-2].push($$[$0]) +break; +case 263: + this.$ = new yy.Expression({expression: $$[$0], direction:'ASC'}) +break; +case 264: + this.$ = new yy.Expression({expression: $$[$0-1], direction:$$[$0].toUpperCase()}) +break; +case 265: + this.$ = new yy.Expression({expression: $$[$0-2], direction:'ASC', nocase:true}) +break; +case 266: + this.$ = new yy.Expression({expression: $$[$0-3], direction:$$[$0].toUpperCase(), nocase:true}) +break; +case 268: + this.$ = {limit:$$[$0-1]}; yy.extend(this.$, $$[$0]); +break; +case 269: + this.$ = {limit:$$[$0-2],offset:$$[$0-6]}; +break; +case 271: + this.$ = {offset:$$[$0]}; +break; +case 272: case 509: case 533: case 648: case 658: case 682: case 684: case 688: + $$[$0-2].push($$[$0]); this.$ = $$[$0-2]; +break; +case 274: case 276: case 278: + $$[$0-2].as = $$[$0]; this.$ = $$[$0-2]; +break; +case 275: case 277: case 279: + $$[$0-1].as = $$[$0]; this.$ = $$[$0-1]; +break; +case 281: + this.$ = new yy.Column({columid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]}); +break; +case 282: + this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]}); +break; +case 283: + this.$ = new yy.Column({columnid:$$[$0]}); +break; +case 284: + this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]}); +break; +case 285: case 286: + this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]}); +break; +case 287: + this.$ = new yy.Column({columnid: $$[$0]}); +break; +case 302: + this.$ = new yy.DomainValueValue(); +break; +case 303: + this.$ = new yy.Json({value:$$[$0]}); +break; +case 306: case 307: case 308: + + if(!yy.queries) yy.queries = []; + yy.queries.push($$[$0-1]); + $$[$0-1].queriesidx = yy.queries.length; + this.$ = $$[$0-1]; + +break; +case 309: +this.$ = $$[$0] +break; +case 310: + this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'}); +break; +case 311: + this.$ = new yy.JavaScript({value:$$[$0].substr(2,$$[$0].length-4)}); +break; +case 312: + this.$ = new yy.JavaScript({value:'alasql.fn["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)}); +break; +case 313: + this.$ = new yy.JavaScript({value:'alasql.aggr["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)}); +break; +case 314: + this.$ = new yy.FuncValue({funcid:$$[$0], newid:true}); +break; +case 315: + this.$ = $$[$0]; yy.extend(this.$,{newid:true}); +break; +case 316: + this.$ = new yy.Convert({expression:$$[$0-3]}) ; yy.extend(this.$,$$[$0-1]) ; +break; +case 317: + this.$ = new yy.Convert({expression:$$[$0-5], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ; +break; +case 318: + this.$ = new yy.Convert({expression:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ; +break; +case 319: + this.$ = new yy.Convert({expression:$$[$0-3], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-5]) ; +break; +case 326: + this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'}); +break; +case 327: + + if($$[$0-2].length > 1 && ($$[$0-4].toUpperCase() == 'MAX' || $$[$0-4].toUpperCase() == 'MIN')) { + this.$ = new yy.FuncValue({funcid:$$[$0-4],args:$$[$0-2]}); + } else { + this.$ = new yy.AggrValue({aggregatorid: $$[$0-4].toUpperCase(), expression: $$[$0-2].pop(), over:$$[$0]}); + } + +break; +case 328: + this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], distinct:true, over:$$[$0]}); +break; +case 329: + this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], + over:$$[$0]}); +break; +case 331: case 332: + this.$ = new yy.Over(); yy.extend(this.$,$$[$0-1]); +break; +case 333: + this.$ = new yy.Over(); yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); +break; +case 334: + this.$ = {partition:$$[$0]}; +break; +case 335: + this.$ = {order:$$[$0]}; +break; +case 336: + this.$ = "SUM"; +break; +case 337: + this.$ = "COUNT"; +break; +case 338: + this.$ = "MIN"; +break; +case 339: case 544: + this.$ = "MAX"; +break; +case 340: + this.$ = "AVG"; +break; +case 341: + this.$ = "FIRST"; +break; +case 342: + this.$ = "LAST"; +break; +case 343: + this.$ = "AGGR"; +break; +case 344: + this.$ = "ARRAY"; +break; +case 345: + + var funcid = $$[$0-4]; + var exprlist = $$[$0-1]; + if(exprlist.length > 1 && (funcid.toUpperCase() == 'MIN' || funcid.toUpperCase() == 'MAX')) { + this.$ = new yy.FuncValue({funcid: funcid, args: exprlist}); + } else if(alasql.aggr[$$[$0-4]]) { + this.$ = new yy.AggrValue({aggregatorid: 'REDUCE', + funcid: funcid, expression: exprlist.pop(),distinct:($$[$0-2]=='DISTINCT') }); + } else { + this.$ = new yy.FuncValue({funcid: funcid, args: exprlist}); + }; + +break; +case 346: + this.$ = new yy.FuncValue({ funcid: $$[$0-2] }) +break; +case 347: + this.$ = new yy.FuncValue({ funcid: 'IIF', args:$$[$0-1] }) +break; +case 348: + this.$ = new yy.FuncValue({ funcid: 'REPLACE', args:$$[$0-1] }) +break; +case 349: + this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]}) +break; +case 350: + this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[$$[$0-5],$$[$0-3],$$[$0-1]]}) +break; +case 351: + this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]}) +break; +case 352: + this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[$$[$0-5],$$[$0-3],$$[$0-1]]}) +break; +case 353: + this.$ = new yy.FuncValue({ funcid: 'INTERVAL', args:[$$[$0-1],new yy.StringValue({value:($$[$0]).toLowerCase()})]}); +break; +case 355: + $$[$0-2].push($$[$0]); this.$ = $$[$0-2] +break; +case 356: + this.$ = new yy.NumValue({value:+$$[$0]}); +break; +case 357: + this.$ = new yy.LogicValue({value:true}); +break; +case 358: + this.$ = new yy.LogicValue({value:false}); +break; +case 359: + this.$ = new yy.StringValue({value: $$[$0].substr(1,$$[$0].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")}); +break; +case 360: + this.$ = new yy.StringValue({value: $$[$0].substr(2,$$[$0].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")}); +break; +case 361: + this.$ = new yy.NullValue({value:undefined}); +break; +case 362: + this.$ = new yy.VarValue({variable:$$[$0]}); +break; +case 363: + + if(!yy.exists) yy.exists = []; + this.$ = new yy.ExistsValue({value:$$[$0-1], existsidx:yy.exists.length}); + yy.exists.push($$[$0-1]); + +break; +case 364: + this.$ = new yy.ArrayValue({value:$$[$0-1]}); +break; +case 365: case 366: + this.$ = new yy.ParamValue({param: $$[$0]}); +break; +case 367: + + if(typeof yy.question == 'undefined') yy.question = 0; + this.$ = new yy.ParamValue({param: yy.question++}); + +break; +case 368: + + if(typeof yy.question == 'undefined') yy.question = 0; + this.$ = new yy.ParamValue({param: yy.question++, array:true}); + +break; +case 369: + this.$ = new yy.CaseValue({expression:$$[$0-3], whens: $$[$0-2], elses: $$[$0-1]}); +break; +case 370: + this.$ = new yy.CaseValue({whens: $$[$0-2], elses: $$[$0-1]}); +break; +case 371: case 699: case 700: + this.$ = $$[$0-1]; this.$.push($$[$0]); +break; +case 373: + this.$ = {when: $$[$0-2], then: $$[$0] }; +break; +case 376: case 377: + this.$ = new yy.Op({left:$$[$0-2], op:'REGEXP', right:$$[$0]}); +break; +case 378: + this.$ = new yy.Op({left:$$[$0-2], op:'GLOB', right:$$[$0]}); +break; +case 379: + this.$ = new yy.Op({left:$$[$0-2], op:'LIKE', right:$$[$0]}); +break; +case 380: + this.$ = new yy.Op({left:$$[$0-4], op:'LIKE', right:$$[$0-2], escape:$$[$0]}); +break; +case 381: + this.$ = new yy.Op({left:$$[$0-2], op:'NOT LIKE', right:$$[$0] }); +break; +case 382: + this.$ = new yy.Op({left:$$[$0-4], op:'NOT LIKE', right:$$[$0-2], escape:$$[$0] }); +break; +case 383: + this.$ = new yy.Op({left:$$[$0-2], op:'||', right:$$[$0]}); +break; +case 384: + this.$ = new yy.Op({left:$$[$0-2], op:'+', right:$$[$0]}); +break; +case 385: + this.$ = new yy.Op({left:$$[$0-2], op:'-', right:$$[$0]}); +break; +case 386: + this.$ = new yy.Op({left:$$[$0-2], op:'*', right:$$[$0]}); +break; +case 387: + this.$ = new yy.Op({left:$$[$0-2], op:'/', right:$$[$0]}); +break; +case 388: + this.$ = new yy.Op({left:$$[$0-2], op:'%', right:$$[$0]}); +break; +case 389: + this.$ = new yy.Op({left:$$[$0-2], op:'^', right:$$[$0]}); +break; +case 390: + this.$ = new yy.Op({left:$$[$0-2], op:'>>', right:$$[$0]}); +break; +case 391: + this.$ = new yy.Op({left:$$[$0-2], op:'<<', right:$$[$0]}); +break; +case 392: + this.$ = new yy.Op({left:$$[$0-2], op:'&', right:$$[$0]}); +break; +case 393: + this.$ = new yy.Op({left:$$[$0-2], op:'|', right:$$[$0]}); +break; +case 394: case 395: case 397: + this.$ = new yy.Op({left:$$[$0-2], op:'->' , right:$$[$0]}); +break; +case 396: + this.$ = new yy.Op({left:$$[$0-4], op:'->' , right:$$[$0-1]}); +break; +case 398: case 399: case 401: + this.$ = new yy.Op({left:$$[$0-2], op:'!' , right:$$[$0]}); +break; +case 400: + this.$ = new yy.Op({left:$$[$0-4], op:'!' , right:$$[$0-1]}); +break; +case 402: + this.$ = new yy.Op({left:$$[$0-2], op:'>' , right:$$[$0]}); +break; +case 403: + this.$ = new yy.Op({left:$$[$0-2], op:'>=' , right:$$[$0]}); +break; +case 404: + this.$ = new yy.Op({left:$$[$0-2], op:'<' , right:$$[$0]}); +break; +case 405: + this.$ = new yy.Op({left:$$[$0-2], op:'<=' , right:$$[$0]}); +break; +case 406: + this.$ = new yy.Op({left:$$[$0-2], op:'=' , right:$$[$0]}); +break; +case 407: + this.$ = new yy.Op({left:$$[$0-2], op:'==' , right:$$[$0]}); +break; +case 408: + this.$ = new yy.Op({left:$$[$0-2], op:'===' , right:$$[$0]}); +break; +case 409: + this.$ = new yy.Op({left:$$[$0-2], op:'!=' , right:$$[$0]}); +break; +case 410: + this.$ = new yy.Op({left:$$[$0-2], op:'!==' , right:$$[$0]}); +break; +case 411: + this.$ = new yy.Op({left:$$[$0-2], op:'!===' , right:$$[$0]}); +break; +case 412: + + if(!yy.queries) yy.queries = []; + this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1], queriesidx: yy.queries.length}); + yy.queries.push($$[$0-1]); + +break; +case 413: + + this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1]}); + +break; +case 414: + + if($$[$0-2].op == 'BETWEEN1') { + + if($$[$0-2].left.op == 'AND') { + this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right: + new yy.Op({left:$$[$0-2].left.right, op:'BETWEEN', + right1:$$[$0-2].right, right2:$$[$0]}) + }); + } else { + this.$ = new yy.Op({left:$$[$0-2].left, op:'BETWEEN', + right1:$$[$0-2].right, right2:$$[$0]}); + } + + } else if($$[$0-2].op == 'NOT BETWEEN1') { + if($$[$0-2].left.op == 'AND') { + this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right: + new yy.Op({left:$$[$0-2].left.right, op:'NOT BETWEEN', + right1:$$[$0-2].right, right2:$$[$0]}) + }); + } else { + this.$ = new yy.Op({left:$$[$0-2].left, op:'NOT BETWEEN', + right1:$$[$0-2].right, right2:$$[$0]}); + } + } else { + this.$ = new yy.Op({left:$$[$0-2], op:'AND', right:$$[$0]}); + } + +break; +case 415: + this.$ = new yy.Op({left:$$[$0-2], op:'OR' , right:$$[$0]}); +break; +case 416: + this.$ = new yy.UniOp({op:'NOT' , right:$$[$0]}); +break; +case 417: + this.$ = new yy.UniOp({op:'-' , right:$$[$0]}); +break; +case 418: + this.$ = new yy.UniOp({op:'+' , right:$$[$0]}); +break; +case 419: + this.$ = new yy.UniOp({op:'~' , right:$$[$0]}); +break; +case 420: + this.$ = new yy.UniOp({op:'#' , right:$$[$0]}); +break; +case 421: + this.$ = new yy.UniOp({right: $$[$0-1]}); +break; +case 422: + + if(!yy.queries) yy.queries = []; + this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1], queriesidx: yy.queries.length}); + yy.queries.push($$[$0-1]); + +break; +case 423: + + if(!yy.queries) yy.queries = []; + this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1], queriesidx: yy.queries.length}); + yy.queries.push($$[$0-1]); + +break; +case 424: + this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1]}); +break; +case 425: + this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1]}); +break; +case 426: + this.$ = new yy.Op({left: $$[$0-3], op:'IN', right:[]}); +break; +case 427: + this.$ = new yy.Op({left: $$[$0-4], op:'NOT IN', right:[]}); +break; +case 428: case 430: + this.$ = new yy.Op({left: $$[$0-2], op:'IN', right:$$[$0]}); +break; +case 429: case 431: + this.$ = new yy.Op({left: $$[$0-3], op:'NOT IN', right:$$[$0]}); +break; +case 432: + +/* var expr = $$[$0]; + if(expr.left && expr.left.op == 'AND') { + this.$ = new yy.Op({left:new yy.Op({left:$$[$0-2], op:'BETWEEN', right:expr.left}), op:'AND', right:expr.right }); + } else { +*/ + this.$ = new yy.Op({left:$$[$0-2], op:'BETWEEN1', right:$$[$0] }); + +break; +case 433: + + this.$ = new yy.Op({left:$$[$0-2], op:'NOT BETWEEN1', right:$$[$0] }); + +break; +case 434: + this.$ = new yy.Op({op:'IS' , left:$$[$0-2], right:$$[$0]}); +break; +case 435: + + this.$ = new yy.Op({ + op:'IS', + left:$$[$0-2], + right: new yy.UniOp({ + op:'NOT', + right:new yy.NullValue({value:undefined}) + }) + }); + +break; +case 436: + this.$ = new yy.Convert({expression:$$[$0-2]}) ; yy.extend(this.$,$$[$0]) ; +break; +case 437: case 438: + this.$ = $$[$0]; +break; +case 439: + this.$ = $$[$0-1]; +break; +case 446: + this.$ = 'ALL'; +break; +case 447: + this.$ = 'SOME'; +break; +case 448: + this.$ = 'ANY'; +break; +case 449: + this.$ = new yy.Update({table:$$[$0-4], columns:$$[$0-2], where:$$[$0]}); +break; +case 450: + this.$ = new yy.Update({table:$$[$0-2], columns:$$[$0]}); +break; +case 453: + this.$ = new yy.SetColumn({column:$$[$0-2], expression:$$[$0]}) +break; +case 454: + this.$ = new yy.SetColumn({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]}) +break; +case 455: + this.$ = new yy.Delete({table:$$[$0-2], where:$$[$0]}); +break; +case 456: + this.$ = new yy.Delete({table:$$[$0]}); +break; +case 457: + this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0]}); +break; +case 458: + this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0]}); +break; +case 459: case 461: + this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0], orreplace:true}); +break; +case 460: case 462: + this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0], orreplace:true}); +break; +case 463: + this.$ = new yy.Insert({into:$$[$0-2], "default": true}) ; +break; +case 464: + this.$ = new yy.Insert({into:$$[$0-5], columns: $$[$0-3], values: $$[$0]}); +break; +case 465: + this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], values: $$[$0]}); +break; +case 466: + this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0]}); +break; +case 467: + this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0], orreplace:true}); +break; +case 468: + this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], select: $$[$0]}); +break; +case 473: + this.$ = [$$[$0-1]]; +break; +case 476: +this.$ = $$[$0-4]; $$[$0-4].push($$[$0-1]) +break; +case 477: case 478: case 480: case 488: +this.$ = $$[$0-2]; $$[$0-2].push($$[$0]) +break; +case 489: + + this.$ = new yy.CreateTable({table:$$[$0-4]}); + yy.extend(this.$,$$[$0-7]); + yy.extend(this.$,$$[$0-6]); + yy.extend(this.$,$$[$0-5]); + yy.extend(this.$,$$[$0-2]); + yy.extend(this.$,$$[$0]); + +break; +case 490: + + this.$ = new yy.CreateTable({table:$$[$0]}); + yy.extend(this.$,$$[$0-3]); + yy.extend(this.$,$$[$0-2]); + yy.extend(this.$,$$[$0-1]); + +break; +case 492: + this.$ = {class:true}; +break; +case 502: + this.$ = {temporary:true}; +break; +case 504: + this.$ = {ifnotexists: true}; +break; +case 505: + this.$ = {columns: $$[$0-2], constraints: $$[$0]}; +break; +case 506: + this.$ = {columns: $$[$0]}; +break; +case 507: + this.$ = {as: $$[$0]} +break; +case 508: case 532: + this.$ = [$$[$0]]; +break; +case 510: case 511: case 512: case 513: case 514: + $$[$0].constraintid = $$[$0-1]; this.$ = $$[$0]; +break; +case 517: + this.$ = {type: 'CHECK', expression: $$[$0-1]}; +break; +case 518: + this.$ = {type: 'PRIMARY KEY', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()}; +break; +case 519: + this.$ = {type: 'FOREIGN KEY', columns: $$[$0-5], fktable: $$[$0-2], fkcolumns: $$[$0-1]}; +break; +case 525: + + this.$ = {type: 'UNIQUE', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()}; + +break; +case 534: + this.$ = new yy.ColumnDef({columnid:$$[$0-2]}); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]); +break; +case 535: + this.$ = new yy.ColumnDef({columnid:$$[$0-1]}); yy.extend(this.$,$$[$0]); +break; +case 536: + this.$ = new yy.ColumnDef({columnid:$$[$0], dbtypeid: ''}); +break; +case 537: + this.$ = {dbtypeid: $$[$0-5], dbsize: $$[$0-3], dbprecision: +$$[$0-1]} +break; +case 538: + this.$ = {dbtypeid: $$[$0-3], dbsize: $$[$0-1]} +break; +case 539: + this.$ = {dbtypeid: $$[$0]} +break; +case 540: + this.$ = {dbtypeid: 'ENUM', enumvalues: $$[$0-1]} +break; +case 541: + this.$ = $$[$0-1]; $$[$0-1].dbtypeid += '[' + $$[$0] + ']'; +break; +case 543: case 750: + this.$ = +$$[$0]; +break; +case 545: +this.$ = undefined +break; +case 547: + + yy.extend($$[$0-1],$$[$0]); this.$ = $$[$0-1]; + +break; +case 550: +this.$ = {primarykey:true}; +break; +case 551: case 552: +this.$ = {foreignkey:{table:$$[$0-1], columnid: $$[$0]}}; +break; +case 553: + this.$ = {identity: {value:$$[$0-3],step:$$[$0-1]}} +break; +case 554: + this.$ = {identity: {value:1,step:1}} +break; +case 555: case 557: +this.$ = {"default":$$[$0]}; +break; +case 556: +this.$ = {"default":$$[$0-1]}; +break; +case 558: +this.$ = {null:true}; +break; +case 559: +this.$ = {notnull:true}; +break; +case 560: +this.$ = {check:$$[$0]}; +break; +case 561: +this.$ = {unique:true}; +break; +case 562: +this.$ = {"onupdate":$$[$0]}; +break; +case 563: +this.$ = {"onupdate":$$[$0-1]}; +break; +case 564: + this.$ = new yy.DropTable({tables:$$[$0],type:$$[$0-2]}); yy.extend(this.$, $$[$0-1]); +break; +case 568: + this.$ = {ifexists: true}; +break; +case 569: + this.$ = new yy.AlterTable({table:$$[$0-3], renameto: $$[$0]}); +break; +case 570: + this.$ = new yy.AlterTable({table:$$[$0-3], addcolumn: $$[$0]}); +break; +case 571: + this.$ = new yy.AlterTable({table:$$[$0-3], modifycolumn: $$[$0]}); +break; +case 572: + this.$ = new yy.AlterTable({table:$$[$0-5], renamecolumn: $$[$0-2], to: $$[$0]}); +break; +case 573: + this.$ = new yy.AlterTable({table:$$[$0-3], dropcolumn: $$[$0]}); +break; +case 574: + this.$ = new yy.AlterTable({table:$$[$0-2], renameto: $$[$0]}); +break; +case 575: + this.$ = new yy.AttachDatabase({databaseid:$$[$0], engineid:$$[$0-2].toUpperCase() }); +break; +case 576: + this.$ = new yy.AttachDatabase({databaseid:$$[$0-3], engineid:$$[$0-5].toUpperCase(), args:$$[$0-1] }); +break; +case 577: + this.$ = new yy.AttachDatabase({databaseid:$$[$0-2], engineid:$$[$0-4].toUpperCase(), as:$$[$0] }); +break; +case 578: + this.$ = new yy.AttachDatabase({databaseid:$$[$0-5], engineid:$$[$0-7].toUpperCase(), as:$$[$0], args:$$[$0-3]}); +break; +case 579: + this.$ = new yy.DetachDatabase({databaseid:$$[$0]}); +break; +case 580: + this.$ = new yy.CreateDatabase({databaseid:$$[$0] }); yy.extend(this.$,$$[$0]); +break; +case 581: + this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), databaseid:$$[$0-1], as:$$[$0] }); yy.extend(this.$,$$[$0-2]); +break; +case 582: + this.$ = new yy.CreateDatabase({engineid:$$[$0-7].toUpperCase(), databaseid:$$[$0-4], args:$$[$0-2], as:$$[$0] }); yy.extend(this.$,$$[$0-5]); +break; +case 583: + this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), + as:$$[$0], args:[$$[$0-1]] }); yy.extend(this.$,$$[$0-2]); +break; +case 584: +this.$ = undefined; +break; +case 586: case 587: + this.$ = new yy.UseDatabase({databaseid: $$[$0] }); +break; +case 588: + this.$ = new yy.DropDatabase({databaseid: $$[$0] }); yy.extend(this.$,$$[$0-1]); +break; +case 589: case 590: + this.$ = new yy.DropDatabase({databaseid: $$[$0], engineid:$$[$0-3].toUpperCase() }); yy.extend(this.$,$$[$0-1]); +break; +case 591: + this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1]}) +break; +case 592: + this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1], unique:true}) +break; +case 593: + this.$ = new yy.DropIndex({indexid:$$[$0]}); +break; +case 594: + this.$ = new yy.ShowDatabases(); +break; +case 595: + this.$ = new yy.ShowDatabases({like:$$[$0]}); +break; +case 596: + this.$ = new yy.ShowDatabases({engineid:$$[$0-1].toUpperCase() }); +break; +case 597: + this.$ = new yy.ShowDatabases({engineid:$$[$0-3].toUpperCase() , like:$$[$0]}); +break; +case 598: + this.$ = new yy.ShowTables(); +break; +case 599: + this.$ = new yy.ShowTables({like:$$[$0]}); +break; +case 600: + this.$ = new yy.ShowTables({databaseid: $$[$0]}); +break; +case 601: + this.$ = new yy.ShowTables({like:$$[$0], databaseid: $$[$0-2]}); +break; +case 602: + this.$ = new yy.ShowColumns({table: $$[$0]}); +break; +case 603: + this.$ = new yy.ShowColumns({table: $$[$0-2], databaseid:$$[$0]}); +break; +case 604: + this.$ = new yy.ShowIndex({table: $$[$0]}); +break; +case 605: + this.$ = new yy.ShowIndex({table: $$[$0-2], databaseid: $$[$0]}); +break; +case 606: + this.$ = new yy.ShowCreateTable({table: $$[$0]}); +break; +case 607: + this.$ = new yy.ShowCreateTable({table: $$[$0-2], databaseid:$$[$0]}); +break; +case 608: + + this.$ = new yy.CreateTable({table:$$[$0-6],view:true,select:$$[$0-1],viewcolumns:$$[$0-4]}); + yy.extend(this.$,$$[$0-9]); + yy.extend(this.$,$$[$0-7]); + +break; +case 609: + + this.$ = new yy.CreateTable({table:$$[$0-3],view:true,select:$$[$0-1]}); + yy.extend(this.$,$$[$0-6]); + yy.extend(this.$,$$[$0-4]); + +break; +case 613: + this.$ = new yy.DropTable({tables:$$[$0], view:true}); yy.extend(this.$, $$[$0-1]); +break; +case 614: case 760: + this.$ = new yy.ExpressionStatement({expression:$$[$0]}); +break; +case 615: + this.$ = new yy.Source({url:$$[$0].value}); +break; +case 616: + this.$ = new yy.Assert({value:$$[$0]}); +break; +case 617: + this.$ = new yy.Assert({value:$$[$0].value}); +break; +case 618: + this.$ = new yy.Assert({value:$$[$0], message:$$[$0-2]}); +break; +case 620: case 631: case 633: + this.$ = $$[$0].value; +break; +case 621: case 629: + this.$ = +$$[$0].value; +break; +case 622: + this.$ = (!!$$[$0].value); +break; +case 630: + this.$ = ""+$$[$0].value; +break; +case 639: + this.$ = {}; +break; +case 642: + this.$ = []; +break; +case 643: + yy.extend($$[$0-2],$$[$0]); this.$ = $$[$0-2]; +break; +case 645: + this.$ = {}; this.$[$$[$0-2].substr(1,$$[$0-2].length-2)] = $$[$0]; +break; +case 646: case 647: + this.$ = {}; this.$[$$[$0-2]] = $$[$0]; +break; +case 650: + this.$ = new yy.SetVariable({variable:$$[$0-2].toLowerCase(), value:$$[$0]}); +break; +case 651: + this.$ = new yy.SetVariable({variable:$$[$0-1].toLowerCase(), value:$$[$0]}); +break; +case 652: + this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0]}); +break; +case 653: + this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0]}); +break; +case 654: + this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]}); +break; +case 655: + this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0], method:$$[$0-4]}); +break; +case 656: +this.$ = '@'; +break; +case 657: +this.$ = '$'; +break; +case 663: + this.$ = true; +break; +case 664: + this.$ = false; +break; +case 665: + this.$ = new yy.CommitTransaction(); +break; +case 666: + this.$ = new yy.RollbackTransaction(); +break; +case 667: + this.$ = new yy.BeginTransaction(); +break; +case 668: + this.$ = new yy.If({expression:$$[$0-2],thenstat:$$[$0-1], elsestat:$$[$0]}); + if($$[$0-1].exists) this.$.exists = $$[$0-1].exists; + if($$[$0-1].queries) this.$.queries = $$[$0-1].queries; + +break; +case 669: + + this.$ = new yy.If({expression:$$[$0-1],thenstat:$$[$0]}); + if($$[$0].exists) this.$.exists = $$[$0].exists; + if($$[$0].queries) this.$.queries = $$[$0].queries; + +break; +case 670: +this.$ = $$[$0]; +break; +case 671: + this.$ = new yy.While({expression:$$[$0-1],loopstat:$$[$0]}); + if($$[$0].exists) this.$.exists = $$[$0].exists; + if($$[$0].queries) this.$.queries = $$[$0].queries; + +break; +case 672: + this.$ = new yy.Continue(); +break; +case 673: + this.$ = new yy.Break(); +break; +case 674: + this.$ = new yy.BeginEnd({statements:$$[$0-1]}); +break; +case 675: + this.$ = new yy.Print({exprs:$$[$0]}); +break; +case 676: + this.$ = new yy.Print({select:$$[$0]}); +break; +case 677: + this.$ = new yy.Require({paths:$$[$0]}); +break; +case 678: + this.$ = new yy.Require({plugins:$$[$0]}); +break; +case 679: case 680: +this.$ = $$[$0].toUpperCase(); +break; +case 681: + this.$ = new yy.Echo({expr:$$[$0]}); +break; +case 686: + this.$ = new yy.Declare({declares:$$[$0]}); +break; +case 689: + this.$ = {variable: $$[$0-1]}; yy.extend(this.$,$$[$0]); +break; +case 690: + this.$ = {variable: $$[$0-2]}; yy.extend(this.$,$$[$0]); +break; +case 691: + this.$ = {variable: $$[$0-3], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]); +break; +case 692: + this.$ = {variable: $$[$0-4], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]); +break; +case 693: + this.$ = new yy.TruncateTable({table:$$[$0]}); +break; +case 694: + + this.$ = new yy.Merge(); yy.extend(this.$,$$[$0-4]); yy.extend(this.$,$$[$0-3]); + yy.extend(this.$,$$[$0-2]); + yy.extend(this.$,{matches:$$[$0-1]});yy.extend(this.$,$$[$0]); + +break; +case 695: case 696: + this.$ = {into: $$[$0]}; +break; +case 698: + this.$ = {on:$$[$0]}; +break; +case 703: + this.$ = {matched:true, action:$$[$0]} +break; +case 704: + this.$ = {matched:true, expr: $$[$0-2], action:$$[$0]} +break; +case 705: + this.$ = {delete:true}; +break; +case 706: + this.$ = {update:$$[$0]}; +break; +case 707: case 708: + this.$ = {matched:false, bytarget: true, action:$$[$0]} +break; +case 709: case 710: + this.$ = {matched:false, bytarget: true, expr:$$[$0-2], action:$$[$0]} +break; +case 711: + this.$ = {matched:false, bysource: true, action:$$[$0]} +break; +case 712: + this.$ = {matched:false, bysource: true, expr:$$[$0-2], action:$$[$0]} +break; +case 713: + this.$ = {insert:true, values:$$[$0]}; +break; +case 714: + this.$ = {insert:true, values:$$[$0], columns:$$[$0-3]}; +break; +case 715: + this.$ = {insert:true, defaultvalues:true}; +break; +case 716: + this.$ = {insert:true, defaultvalues:true, columns:$$[$0-3]}; +break; +case 718: + this.$ = {output:{columns:$$[$0]}} +break; +case 719: + this.$ = {output:{columns:$$[$0-3], intovar: $$[$0], method:$$[$0-1]}} +break; +case 720: + this.$ = {output:{columns:$$[$0-2], intotable: $$[$0]}} +break; +case 721: + this.$ = {output:{columns:$$[$0-5], intotable: $$[$0-3], intocolumns:$$[$0-1]}} +break; +case 722: + + this.$ = new yy.CreateVertex({class:$$[$0-3],sharp:$$[$0-2], name:$$[$0-1]}); + yy.extend(this.$,$$[$0]); + +break; +case 725: + this.$ = {sets:$$[$0]}; +break; +case 726: + this.$ = {content:$$[$0]}; +break; +case 727: + this.$ = {select:$$[$0]}; +break; +case 728: + + this.$ = new yy.CreateEdge({from:$$[$0-3],to:$$[$0-1],name:$$[$0-5]}); + yy.extend(this.$,$$[$0]); + +break; +case 729: + this.$ = new yy.CreateGraph({graph:$$[$0]}); +break; +case 730: + this.$ = new yy.CreateGraph({from:$$[$0]}); +break; +case 733: + + this.$ = $$[$0-2]; + if($$[$0-1]) this.$.json = new yy.Json({value:$$[$0-1]}); + if($$[$0]) this.$.as = $$[$0]; + +break; +case 734: + + this.$ = {source:$$[$0-6], target: $$[$0]}; + if($$[$0-3]) this.$.json = new yy.Json({value:$$[$0-3]}); + if($$[$0-2]) this.$.as = $$[$0-2]; + yy.extend(this.$,$$[$0-4]); + +break; +case 735: + + this.$ = {source:$$[$0-5], target: $$[$0]}; + if($$[$0-2]) this.$.json = new yy.Json({value:$$[$0-3]}); + if($$[$0-1]) this.$.as = $$[$0-2]; + +break; +case 736: + + this.$ = {source:$$[$0-2], target: $$[$0]}; + +break; +case 740: + this.$ = {vars:$$[$0], method:$$[$0-1]}; +break; +case 743: case 744: + + var s3 = $$[$0-1]; + this.$ = {prop:$$[$0-3], sharp:$$[$0-2], name:(typeof s3 == 'undefined')?undefined:s3.substr(1,s3.length-2), class:$$[$0]}; + +break; +case 745: + + var s2 = $$[$0-1]; + this.$ = {sharp:$$[$0-2], name:(typeof s2 == 'undefined')?undefined:s2.substr(1,s2.length-2), class:$$[$0]}; + +break; +case 746: + + var s1 = $$[$0-1]; + this.$ = {name:(typeof s1 == 'undefined')?undefined:s1.substr(1,s1.length-2), class:$$[$0]}; + +break; +case 747: + + this.$ = {class:$$[$0]}; + +break; +case 753: + this.$ = new yy.AddRule({left:$$[$0-2], right:$$[$0]}); +break; +case 754: + this.$ = new yy.AddRule({right:$$[$0]}); +break; +case 757: + this.$ = new yy.Term({termid:$$[$0]}); +break; +case 758: + this.$ = new yy.Term({termid:$$[$0-3],args:$$[$0-1]}); +break; +case 761: + + this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-5], action:$$[$0-4], table:$$[$0-2], statement:$$[$0]}); + if($$[$0].exists) this.$.exists = $$[$0].exists; + if($$[$0].queries) this.$.queries = $$[$0].queries; + +break; +case 762: + + this.$ = new yy.CreateTrigger({trigger:$$[$0-5], when:$$[$0-4], action:$$[$0-3], table:$$[$0-1], funcid:$$[$0]}); + +break; +case 763: + + this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-4], action:$$[$0-3], table:$$[$0-5], statement:$$[$0]}); + if($$[$0].exists) this.$.exists = $$[$0].exists; + if($$[$0].queries) this.$.queries = $$[$0].queries; + +break; +case 764: case 765: case 767: + this.$ = 'AFTER'; +break; +case 766: + this.$ = 'BEFORE'; +break; +case 768: + this.$ = 'INSTEADOF'; +break; +case 769: + this.$ = 'INSERT'; +break; +case 770: + this.$ = 'DELETE'; +break; +case 771: + this.$ = 'UPDATE'; +break; +case 772: + this.$ = new yy.DropTrigger({trigger:$$[$0]}); +break; +case 773: + this.$ = new yy.Reindex({indexid:$$[$0]}); +break; +case 1047: case 1067: case 1069: case 1071: case 1075: case 1077: case 1079: case 1081: case 1083: case 1085: +this.$ = []; +break; +case 1048: case 1062: case 1064: case 1068: case 1070: case 1072: case 1076: case 1078: case 1080: case 1082: case 1084: case 1086: +$$[$0-1].push($$[$0]); +break; +case 1061: case 1063: +this.$ = [$$[$0]]; +break; +} +}, +table: [o([10,602,764],$V0,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{1:[3]},{10:[1,105],11:106,602:$VH,764:$VI},o($VJ,[2,8]),o($VJ,[2,9]),o($VK,[2,12]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:109,2:$V1,4:$V2,5:$V3,15:[1,110],53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,14]),o($VK,[2,15]),o($VK,[2,16]),o($VK,[2,17]),o($VK,[2,18]),o($VK,[2,19]),o($VK,[2,20]),o($VK,[2,21]),o($VK,[2,22]),o($VK,[2,23]),o($VK,[2,24]),o($VK,[2,25]),o($VK,[2,26]),o($VK,[2,27]),o($VK,[2,28]),o($VK,[2,29]),o($VK,[2,30]),o($VK,[2,31]),o($VK,[2,32]),o($VK,[2,33]),o($VK,[2,34]),o($VK,[2,35]),o($VK,[2,36]),o($VK,[2,37]),o($VK,[2,38]),o($VK,[2,39]),o($VK,[2,40]),o($VK,[2,41]),o($VK,[2,42]),o($VK,[2,43]),o($VK,[2,44]),o($VK,[2,45]),o($VK,[2,46]),o($VK,[2,47]),o($VK,[2,48]),o($VK,[2,49]),o($VK,[2,50]),o($VK,[2,51]),o($VK,[2,52]),o($VK,[2,53]),o($VK,[2,54]),o($VK,[2,55]),o($VK,[2,56]),o($VK,[2,57]),o($VK,[2,58]),o($VK,[2,59]),o($VK,[2,60]),o($VK,[2,61]),o($VK,[2,62]),o($VK,[2,63]),o($VK,[2,64]),o($VK,[2,65]),o($VK,[2,66]),o($VK,[2,67]),{353:[1,111]},{2:$V1,3:112,4:$V2,5:$V3},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:113,290:$VM,291:$VN,292:$VO,293:$VP},o($VQ,[2,501],{3:121,348:125,2:$V1,4:$V2,5:$V3,134:$VR,135:$VS,187:[1,123],193:[1,122],268:[1,129],269:[1,130],357:[1,131],405:[1,120],472:[1,124],509:[1,128]}),{145:$VT,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:$V1,3:138,4:$V2,5:$V3,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:145,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:204,171:[1,205],198:$Vv1}),o($Vt1,$Vu1,{340:207,198:$Vv1}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1,453:208},{2:$V1,3:221,4:$V2,5:$V3},{353:[1,222]},o($Vz1,[2,1043],{80:223,106:224,107:[1,225]}),o($VA1,[2,1047],{90:226}),{2:$V1,3:230,4:$V2,5:$V3,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:$V1,3:236,4:$V2,5:$V3,73:234,75:235},o([306,602,764],$V0,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,9:238,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,435:[1,237],436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{435:[1,239]},{435:[1,240]},{2:$V1,3:242,4:$V2,5:$V3,405:[1,241]},{2:$V1,3:244,4:$V2,5:$V3,199:243},o($VB1,[2,311]),{113:245,132:$VW,296:$Vj1},{2:$V1,3:114,4:$V2,5:$V3,113:251,131:$VV,132:[1,248],143:$VY,144:246,145:$VC1,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:247,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,672]),o($VK,[2,673]),{2:$V1,3:168,4:$V2,5:$V3,40:259,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:258,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:266,4:$V2,5:$V3,113:263,132:$VW,296:$Vj1,444:261,445:262,446:264,447:$VE1},{2:$V1,3:267,4:$V2,5:$V3,143:$VF1,145:$VG1,431:268},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:271,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{505:[1,272]},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:273},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:275,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH1,$VI1,{186:280,164:[1,279],185:[1,277],187:[1,278],195:$VJ1}),o($VK1,[2,757],{77:[1,282]}),o([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],[2,152],{149:[1,283],150:[1,284],190:[1,285],191:[1,286],192:[1,287],193:[1,288],194:[1,289]}),o($VL1,[2,1]),o($VL1,[2,2]),{6:290,131:[1,439],172:[1,462],245:[1,411],285:[1,373],286:[1,407],370:[1,404],381:[1,295],402:[1,297],410:[1,549],414:[1,471],416:[1,443],417:[1,509],433:[1,442],435:[1,525],440:[1,342],460:[1,418],464:[1,448],470:[1,341],514:[1,307],515:[1,299],516:[1,399],518:[1,291],519:[1,292],520:[1,293],521:[1,294],522:[1,296],523:[1,298],524:[1,300],525:[1,301],526:[1,302],527:[1,303],528:[1,304],529:[1,305],530:[1,306],531:[1,308],532:[1,309],533:[1,310],534:[1,311],535:[1,312],536:[1,313],537:[1,314],538:[1,315],539:[1,316],540:[1,317],541:[1,318],542:[1,319],543:[1,320],544:[1,321],545:[1,322],546:[1,323],547:[1,324],548:[1,325],549:[1,326],550:[1,327],551:[1,328],552:[1,329],553:[1,330],554:[1,331],555:[1,332],556:[1,333],557:[1,334],558:[1,335],559:[1,336],560:[1,337],561:[1,338],562:[1,339],563:[1,340],564:[1,343],565:[1,344],566:[1,345],567:[1,346],568:[1,347],569:[1,348],570:[1,349],571:[1,350],572:[1,351],573:[1,352],574:[1,353],575:[1,354],576:[1,355],577:[1,356],578:[1,357],579:[1,358],580:[1,359],581:[1,360],582:[1,361],583:[1,362],584:[1,363],585:[1,364],586:[1,365],587:[1,366],588:[1,367],589:[1,368],590:[1,369],591:[1,370],592:[1,371],593:[1,372],594:[1,374],595:[1,375],596:[1,376],597:[1,377],598:[1,378],599:[1,379],600:[1,380],601:[1,381],602:[1,382],603:[1,383],604:[1,384],605:[1,385],606:[1,386],607:[1,387],608:[1,388],609:[1,389],610:[1,390],611:[1,391],612:[1,392],613:[1,393],614:[1,394],615:[1,395],616:[1,396],617:[1,397],618:[1,398],619:[1,400],620:[1,401],621:[1,402],622:[1,403],623:[1,405],624:[1,406],625:[1,408],626:[1,409],627:[1,410],628:[1,412],629:[1,413],630:[1,414],631:[1,415],632:[1,416],633:[1,417],634:[1,419],635:[1,420],636:[1,421],637:[1,422],638:[1,423],639:[1,424],640:[1,425],641:[1,426],642:[1,427],643:[1,428],644:[1,429],645:[1,430],646:[1,431],647:[1,432],648:[1,433],649:[1,434],650:[1,435],651:[1,436],652:[1,437],653:[1,438],654:[1,440],655:[1,441],656:[1,444],657:[1,445],658:[1,446],659:[1,447],660:[1,449],661:[1,450],662:[1,451],663:[1,452],664:[1,453],665:[1,454],666:[1,455],667:[1,456],668:[1,457],669:[1,458],670:[1,459],671:[1,460],672:[1,461],673:[1,463],674:[1,464],675:[1,465],676:[1,466],677:[1,467],678:[1,468],679:[1,469],680:[1,470],681:[1,472],682:[1,473],683:[1,474],684:[1,475],685:[1,476],686:[1,477],687:[1,478],688:[1,479],689:[1,480],690:[1,481],691:[1,482],692:[1,483],693:[1,484],694:[1,485],695:[1,486],696:[1,487],697:[1,488],698:[1,489],699:[1,490],700:[1,491],701:[1,492],702:[1,493],703:[1,494],704:[1,495],705:[1,496],706:[1,497],707:[1,498],708:[1,499],709:[1,500],710:[1,501],711:[1,502],712:[1,503],713:[1,504],714:[1,505],715:[1,506],716:[1,507],717:[1,508],718:[1,510],719:[1,511],720:[1,512],721:[1,513],722:[1,514],723:[1,515],724:[1,516],725:[1,517],726:[1,518],727:[1,519],728:[1,520],729:[1,521],730:[1,522],731:[1,523],732:[1,524],733:[1,526],734:[1,527],735:[1,528],736:[1,529],737:[1,530],738:[1,531],739:[1,532],740:[1,533],741:[1,534],742:[1,535],743:[1,536],744:[1,537],745:[1,538],746:[1,539],747:[1,540],748:[1,541],749:[1,542],750:[1,543],751:[1,544],752:[1,545],753:[1,546],754:[1,547],755:[1,548],756:[1,550],757:[1,551],758:[1,552],759:[1,553],760:[1,554],761:[1,555],762:[1,556],763:[1,557]},{1:[2,6]},o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:558,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VM1,[2,1041]),o($VM1,[2,1042]),o($VJ,[2,10]),{16:[1,559]},{2:$V1,3:244,4:$V2,5:$V3,199:560},{405:[1,561]},o($VK,[2,760]),{77:$VN1},{77:[1,563]},{77:$VO1},{77:[1,565]},{77:[1,566]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:567,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$VP1,{350:568,156:$VQ1}),{405:[1,570]},{2:$V1,3:571,4:$V2,5:$V3},{193:[1,572]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,183:[1,574],431:585,473:573,474:575,475:576,478:577,482:582,493:579,497:581},{130:[1,589],349:586,353:[1,588],410:[1,587]},{113:591,132:$VW,183:[2,1141],296:$Vj1,471:590},o($VU1,[2,1135],{465:592,3:593,2:$V1,4:$V2,5:$V3}),{2:$V1,3:594,4:$V2,5:$V3},{4:[1,595]},{4:[1,596]},o($VQ,[2,502]),o($VK,[2,686],{74:[1,597]}),o($VV1,[2,687]),{2:$V1,3:598,4:$V2,5:$V3},{2:$V1,3:244,4:$V2,5:$V3,199:599},{2:$V1,3:600,4:$V2,5:$V3},o($Vt1,$VW1,{398:601,156:$VX1}),{405:[1,603]},{2:$V1,3:604,4:$V2,5:$V3},o($Vt1,$VW1,{398:605,156:$VX1}),o($Vt1,$VW1,{398:606,156:$VX1}),{2:$V1,3:607,4:$V2,5:$V3},o($VY1,[2,1129]),o($VY1,[2,1130]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:608,114:625,327:637,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VB1,[2,288]),o($VB1,[2,289]),o($VB1,[2,290]),o($VB1,[2,291]),o($VB1,[2,292]),o($VB1,[2,293]),o($VB1,[2,294]),o($VB1,[2,295]),o($VB1,[2,296]),o($VB1,[2,297]),o($VB1,[2,298]),o($VB1,[2,299]),o($VB1,[2,300]),o($VB1,[2,301]),o($VB1,[2,302]),o($VB1,[2,303]),o($VB1,[2,304]),o($VB1,[2,305]),{2:$V1,3:168,4:$V2,5:$V3,26:654,27:653,36:649,40:648,56:165,77:$VU,79:75,89:$V7,94:651,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,264:650,265:$V41,266:$Vc,267:[1,655],270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:[1,652],291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,339:$Vh,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,309]),o($VB1,[2,310]),{77:[1,656]},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:[1,657]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:658,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:659,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:661,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:662,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,283]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,249,265,266,267,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,300,302,303,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,415,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764,765,766],[2,356]),o($Vz2,[2,357]),o($Vz2,[2,358]),o($Vz2,$VA2),o($Vz2,[2,360]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,361]),{2:$V1,3:664,4:$V2,5:$V3,131:[1,665],301:663},{2:$V1,3:666,4:$V2,5:$V3},o($Vz2,[2,367]),o($Vz2,[2,368]),{2:$V1,3:667,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{77:[1,674]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:675,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,304:676,307:677,308:$VC2,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,679]},{77:[1,680]},o($VD2,[2,624]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,683],302:$Vn1,419:190,420:$Vr1,421:681,422:684,423:686,424:$Vs1,427:682},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:696,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:697,4:$V2,5:$V3,156:$VL,200:698,290:$VM,291:$VN,292:$VO,293:$VP},{77:[2,336]},{77:[2,337]},{77:[2,338]},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,425:699,426:[1,700],428:701},{2:$V1,3:244,4:$V2,5:$V3,199:705},{290:[1,706]},o($Vt1,[2,472]),{2:$V1,3:244,4:$V2,5:$V3,199:707},{231:[1,709],454:708},{231:[2,695]},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:710,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{40:711,79:75,89:$V7,184:99,189:$Vb},o($VH2,[2,1091],{210:712,76:[1,713]}),o($VI2,[2,185],{3:714,2:$V1,4:$V2,5:$V3,76:[1,715],154:[1,716]}),o($VI2,[2,189],{3:717,2:$V1,4:$V2,5:$V3,76:[1,718]}),o($VI2,[2,190],{3:719,2:$V1,4:$V2,5:$V3,76:[1,720]}),o($VI2,[2,193]),o($VI2,[2,194],{3:721,2:$V1,4:$V2,5:$V3,76:[1,722]}),o($VI2,[2,197],{3:723,2:$V1,4:$V2,5:$V3,76:[1,724]}),o([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2,{77:$VN1,116:$VK2}),o([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],[2,200]),o($VK,[2,773]),{2:$V1,3:244,4:$V2,5:$V3,199:726},o($VL2,$VM2,{81:727,198:$VN2}),o($Vz1,[2,1044]),o($VO2,[2,1057],{108:729,190:[1,730]}),o([10,78,183,306,310,602,764],$VM2,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,198:$VN2,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),{353:[1,782]},{183:[1,783]},o($VK,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},o($VK,[2,598],{112:[1,787],183:[1,788]}),{2:$V1,3:244,4:$V2,5:$V3,199:789},{40:790,74:[1,791],79:75,89:$V7,184:99,189:$Vb},o($Vv3,[2,70]),{76:[1,792]},o($VK,[2,667]),{11:106,306:[1,793],602:$VH,764:$VI},o($VK,[2,665]),o($VK,[2,666]),{2:$V1,3:794,4:$V2,5:$V3},o($VK,[2,587]),{146:[1,795]},o([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],$VJ2,{116:$VK2}),o($VK,[2,615]),o($VK,[2,616]),o($VK,[2,617]),o($VK,$VA2,{74:[1,796]}),{77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},o($Vw3,[2,320]),o($Vw3,[2,321]),o($Vw3,[2,322]),o($Vw3,[2,323]),o($Vw3,[2,324]),o($Vw3,[2,325]),o($Vw3,[2,326]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,114:625,327:637,12:797,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,675],{74:$Vx3}),o($VK,[2,676]),o($Vy3,[2,354],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,677],{74:[1,800]}),o($VK,[2,678],{74:[1,801]}),o($VV1,[2,683]),o($VV1,[2,685]),o($VV1,[2,679]),o($VV1,[2,680]),{114:807,115:$V$1,116:$V02,124:[1,802],230:$VA3,429:803,430:804,433:$VB3},{2:$V1,3:808,4:$V2,5:$V3},o($Vt1,[2,656]),o($Vt1,[2,657]),o($VK,[2,614],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:100,4:$V2,5:$V3,504:274,506:809},o($VK,[2,754],{74:$VC3}),o($VD3,[2,756]),o($VK,[2,759]),o($VK,[2,681],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VE3,$VI1,{186:811,195:$VJ1}),o($VE3,$VI1,{186:812,195:$VJ1}),o($VE3,$VI1,{186:813,195:$VJ1}),o($VF3,[2,1087],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,188:814,174:815,253:816,94:817,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{77:[1,819],131:$VV,196:818},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:820},o($VG3,[2,153]),o($VG3,[2,154]),o($VG3,[2,155]),o($VG3,[2,156]),o($VG3,[2,157]),o($VG3,[2,158]),o($VG3,[2,159]),o($VL1,[2,3]),o($VL1,[2,774]),o($VL1,[2,775]),o($VL1,[2,776]),o($VL1,[2,777]),o($VL1,[2,778]),o($VL1,[2,779]),o($VL1,[2,780]),o($VL1,[2,781]),o($VL1,[2,782]),o($VL1,[2,783]),o($VL1,[2,784]),o($VL1,[2,785]),o($VL1,[2,786]),o($VL1,[2,787]),o($VL1,[2,788]),o($VL1,[2,789]),o($VL1,[2,790]),o($VL1,[2,791]),o($VL1,[2,792]),o($VL1,[2,793]),o($VL1,[2,794]),o($VL1,[2,795]),o($VL1,[2,796]),o($VL1,[2,797]),o($VL1,[2,798]),o($VL1,[2,799]),o($VL1,[2,800]),o($VL1,[2,801]),o($VL1,[2,802]),o($VL1,[2,803]),o($VL1,[2,804]),o($VL1,[2,805]),o($VL1,[2,806]),o($VL1,[2,807]),o($VL1,[2,808]),o($VL1,[2,809]),o($VL1,[2,810]),o($VL1,[2,811]),o($VL1,[2,812]),o($VL1,[2,813]),o($VL1,[2,814]),o($VL1,[2,815]),o($VL1,[2,816]),o($VL1,[2,817]),o($VL1,[2,818]),o($VL1,[2,819]),o($VL1,[2,820]),o($VL1,[2,821]),o($VL1,[2,822]),o($VL1,[2,823]),o($VL1,[2,824]),o($VL1,[2,825]),o($VL1,[2,826]),o($VL1,[2,827]),o($VL1,[2,828]),o($VL1,[2,829]),o($VL1,[2,830]),o($VL1,[2,831]),o($VL1,[2,832]),o($VL1,[2,833]),o($VL1,[2,834]),o($VL1,[2,835]),o($VL1,[2,836]),o($VL1,[2,837]),o($VL1,[2,838]),o($VL1,[2,839]),o($VL1,[2,840]),o($VL1,[2,841]),o($VL1,[2,842]),o($VL1,[2,843]),o($VL1,[2,844]),o($VL1,[2,845]),o($VL1,[2,846]),o($VL1,[2,847]),o($VL1,[2,848]),o($VL1,[2,849]),o($VL1,[2,850]),o($VL1,[2,851]),o($VL1,[2,852]),o($VL1,[2,853]),o($VL1,[2,854]),o($VL1,[2,855]),o($VL1,[2,856]),o($VL1,[2,857]),o($VL1,[2,858]),o($VL1,[2,859]),o($VL1,[2,860]),o($VL1,[2,861]),o($VL1,[2,862]),o($VL1,[2,863]),o($VL1,[2,864]),o($VL1,[2,865]),o($VL1,[2,866]),o($VL1,[2,867]),o($VL1,[2,868]),o($VL1,[2,869]),o($VL1,[2,870]),o($VL1,[2,871]),o($VL1,[2,872]),o($VL1,[2,873]),o($VL1,[2,874]),o($VL1,[2,875]),o($VL1,[2,876]),o($VL1,[2,877]),o($VL1,[2,878]),o($VL1,[2,879]),o($VL1,[2,880]),o($VL1,[2,881]),o($VL1,[2,882]),o($VL1,[2,883]),o($VL1,[2,884]),o($VL1,[2,885]),o($VL1,[2,886]),o($VL1,[2,887]),o($VL1,[2,888]),o($VL1,[2,889]),o($VL1,[2,890]),o($VL1,[2,891]),o($VL1,[2,892]),o($VL1,[2,893]),o($VL1,[2,894]),o($VL1,[2,895]),o($VL1,[2,896]),o($VL1,[2,897]),o($VL1,[2,898]),o($VL1,[2,899]),o($VL1,[2,900]),o($VL1,[2,901]),o($VL1,[2,902]),o($VL1,[2,903]),o($VL1,[2,904]),o($VL1,[2,905]),o($VL1,[2,906]),o($VL1,[2,907]),o($VL1,[2,908]),o($VL1,[2,909]),o($VL1,[2,910]),o($VL1,[2,911]),o($VL1,[2,912]),o($VL1,[2,913]),o($VL1,[2,914]),o($VL1,[2,915]),o($VL1,[2,916]),o($VL1,[2,917]),o($VL1,[2,918]),o($VL1,[2,919]),o($VL1,[2,920]),o($VL1,[2,921]),o($VL1,[2,922]),o($VL1,[2,923]),o($VL1,[2,924]),o($VL1,[2,925]),o($VL1,[2,926]),o($VL1,[2,927]),o($VL1,[2,928]),o($VL1,[2,929]),o($VL1,[2,930]),o($VL1,[2,931]),o($VL1,[2,932]),o($VL1,[2,933]),o($VL1,[2,934]),o($VL1,[2,935]),o($VL1,[2,936]),o($VL1,[2,937]),o($VL1,[2,938]),o($VL1,[2,939]),o($VL1,[2,940]),o($VL1,[2,941]),o($VL1,[2,942]),o($VL1,[2,943]),o($VL1,[2,944]),o($VL1,[2,945]),o($VL1,[2,946]),o($VL1,[2,947]),o($VL1,[2,948]),o($VL1,[2,949]),o($VL1,[2,950]),o($VL1,[2,951]),o($VL1,[2,952]),o($VL1,[2,953]),o($VL1,[2,954]),o($VL1,[2,955]),o($VL1,[2,956]),o($VL1,[2,957]),o($VL1,[2,958]),o($VL1,[2,959]),o($VL1,[2,960]),o($VL1,[2,961]),o($VL1,[2,962]),o($VL1,[2,963]),o($VL1,[2,964]),o($VL1,[2,965]),o($VL1,[2,966]),o($VL1,[2,967]),o($VL1,[2,968]),o($VL1,[2,969]),o($VL1,[2,970]),o($VL1,[2,971]),o($VL1,[2,972]),o($VL1,[2,973]),o($VL1,[2,974]),o($VL1,[2,975]),o($VL1,[2,976]),o($VL1,[2,977]),o($VL1,[2,978]),o($VL1,[2,979]),o($VL1,[2,980]),o($VL1,[2,981]),o($VL1,[2,982]),o($VL1,[2,983]),o($VL1,[2,984]),o($VL1,[2,985]),o($VL1,[2,986]),o($VL1,[2,987]),o($VL1,[2,988]),o($VL1,[2,989]),o($VL1,[2,990]),o($VL1,[2,991]),o($VL1,[2,992]),o($VL1,[2,993]),o($VL1,[2,994]),o($VL1,[2,995]),o($VL1,[2,996]),o($VL1,[2,997]),o($VL1,[2,998]),o($VL1,[2,999]),o($VL1,[2,1000]),o($VL1,[2,1001]),o($VL1,[2,1002]),o($VL1,[2,1003]),o($VL1,[2,1004]),o($VL1,[2,1005]),o($VL1,[2,1006]),o($VL1,[2,1007]),o($VL1,[2,1008]),o($VL1,[2,1009]),o($VL1,[2,1010]),o($VL1,[2,1011]),o($VL1,[2,1012]),o($VL1,[2,1013]),o($VL1,[2,1014]),o($VL1,[2,1015]),o($VL1,[2,1016]),o($VL1,[2,1017]),o($VL1,[2,1018]),o($VL1,[2,1019]),o($VL1,[2,1020]),o($VL1,[2,1021]),o($VL1,[2,1022]),o($VL1,[2,1023]),o($VL1,[2,1024]),o($VL1,[2,1025]),o($VL1,[2,1026]),o($VL1,[2,1027]),o($VL1,[2,1028]),o($VL1,[2,1029]),o($VL1,[2,1030]),o($VL1,[2,1031]),o($VL1,[2,1032]),o($VL1,[2,1033]),o($VL1,[2,1034]),o($VL1,[2,1035]),o($VL1,[2,1036]),o($VL1,[2,1037]),o($VL1,[2,1038]),o($VL1,[2,1039]),o($VL1,[2,1040]),o($VJ,[2,7]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:821,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:$V1,3:826,4:$V2,5:$V3},o($VE3,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:832,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:833,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:834,4:$V2,5:$V3,132:[1,835]},{2:$V1,3:836,4:$V2,5:$V3,132:[1,837]},{2:$V1,3:838,4:$V2,5:$V3,99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:839,4:$V2,5:$V3},{154:[1,840]},o($VH3,$VP1,{350:841,156:$VQ1}),{230:[1,842]},{2:$V1,3:843,4:$V2,5:$V3},o($VK,[2,729],{74:$VI3}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:845,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD3,[2,732]),o($VJ3,[2,1143],{419:190,476:846,144:847,139:$VK3,141:$VK3,145:$VC1,420:$Vr1,424:$Vs1}),{139:[1,848],141:[1,849]},o($VL3,$VM3,{490:851,493:852,77:[1,850],137:$VS1}),o($VN3,[2,1167],{494:853,132:[1,854]}),o($VO3,[2,1171],{496:855,497:856,152:$VT1}),o($VO3,[2,747]),o($VP3,[2,739]),{2:$V1,3:857,4:$V2,5:$V3,131:[1,858]},{2:$V1,3:859,4:$V2,5:$V3},{2:$V1,3:860,4:$V2,5:$V3},o($Vt1,$VP1,{350:861,156:$VQ1}),o($Vt1,$VP1,{350:862,156:$VQ1}),o($VY1,[2,491]),o($VY1,[2,492]),{183:[1,863]},{183:[2,1142]},o($VQ3,[2,1137],{466:864,469:865,137:[1,866]}),o($VU1,[2,1136]),o($VR3,$VS3,{510:867,95:$VT3,230:[1,868],514:$VU3,515:$VV3,516:$VW3}),{76:[1,873]},{76:[1,874]},{145:$VT,450:875},{4:$VX3,7:879,76:[1,877],272:876,387:878,389:$VY3},o($VK,[2,456],{128:[1,882]}),o($VK,[2,579]),{2:$V1,3:883,4:$V2,5:$V3},{298:[1,884]},o($VH3,$VW1,{398:885,156:$VX1}),o($VK,[2,593]),{2:$V1,3:244,4:$V2,5:$V3,199:887,399:886},{2:$V1,3:244,4:$V2,5:$V3,199:887,399:888},o($VK,[2,772]),o($VJ,[2,669],{438:889,310:[1,890]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:891,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:892,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:893,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:894,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:895,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:896,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:897,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:898,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:899,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:900,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:901,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:902,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:903,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:904,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:905,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:906,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:907,4:$V2,5:$V3,77:[1,909],131:$VV,156:$VL,196:908,200:910,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:911,4:$V2,5:$V3,77:[1,913],131:$VV,156:$VL,196:912,200:914,290:$VM,291:$VN,292:$VO,293:$VP},o($VZ3,[2,440],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:915,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,441],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:916,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,442],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:917,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,443],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:918,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:919,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:920,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:921,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,[2,445],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:922,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:923,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:924,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:929,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:930,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:[1,931],111:934,145:$V$3,156:$VL,200:935,202:933,290:$VM,291:$VN,292:$VO,293:$VP,329:932},{99:[1,937],297:[1,938]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:939,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:940,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:941,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:942,387:878,389:$VY3},o($V04,[2,88]),o($V04,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vt1,$Vu1,{340:207,77:$VO1,198:$Vv1}),{78:[2,1107]},{78:[2,1108]},{134:$VR,135:$VS},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:947,152:$V$,154:$V01,156:$VL,158:167,164:[1,949],179:$V11,180:$V21,181:$V31,185:[1,948],196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:950,4:$V2,5:$V3,149:$V14,180:[1,952]},o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,416],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($V24,[2,417],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,418],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V34,[2,419],{114:625,327:637,316:$Vj2}),o($V34,[2,420],{114:625,327:637,316:$Vj2}),o($Vz2,[2,365]),o($Vz2,[2,1113]),o($Vz2,[2,1114]),o($Vz2,[2,366]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,362]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:953,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,620]),o($VD2,[2,621]),o($VD2,[2,622]),o($VD2,[2,623]),o($VD2,[2,625]),{40:954,79:75,89:$V7,184:99,189:$Vb},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,304:955,307:677,308:$VC2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{305:956,306:$V44,307:957,308:$VC2,310:$V54},o($V64,[2,372]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:959,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:960,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:961,387:878,389:$VY3},o($VD2,[2,626]),{74:[1,963],300:[1,962]},o($VD2,[2,642]),o($V74,[2,649]),o($V84,[2,627]),o($V84,[2,628]),o($V84,[2,629]),o($V84,[2,630]),o($V84,[2,631]),o($V84,[2,632]),o($V84,[2,633]),o($V84,[2,634]),o($V84,[2,635]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:964,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:$V94}),{74:$Vx3,300:[1,966]},o($Va4,[2,314],{77:$VN1}),o($VB1,[2,315]),{74:[1,968],426:[1,967]},o($VD2,[2,639]),o($Vb4,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:972,342:973,343:[1,974],344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:981,198:$Vv1}),{77:$Ve4,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,201:980,302:$Vn1,341:982,342:983,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{230:[1,986],455:985},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:987,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{231:[2,696]},{78:[1,988]},o($VI2,[2,1093],{211:989,3:990,2:$V1,4:$V2,5:$V3}),o($VH2,[2,1092]),o($VI2,[2,183]),{2:$V1,3:991,4:$V2,5:$V3},{212:[1,992]},o($VI2,[2,187]),{2:$V1,3:993,4:$V2,5:$V3},o($VI2,[2,191]),{2:$V1,3:994,4:$V2,5:$V3},o($VI2,[2,195]),{2:$V1,3:995,4:$V2,5:$V3},o($VI2,[2,198]),{2:$V1,3:996,4:$V2,5:$V3},{2:$V1,3:997,4:$V2,5:$V3},{148:[1,998]},o($Vf4,[2,172],{82:999,183:[1,1000]}),{2:$V1,3:219,4:$V2,5:$V3,132:[1,1005],143:$VY,145:[1,1006],152:$V$,156:$VL,181:$V31,199:1001,200:1002,201:1003,202:1004,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1},{2:$V1,3:1011,4:$V2,5:$V3,109:1007,110:1008,111:1009,112:$Vg4},o($VO2,[2,1058]),o($Vh4,[2,1049],{91:1012,182:1013,183:[1,1014]}),o($VA1,[2,1048],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,90],{77:[1,1019]}),{119:[1,1020]},o($Vl4,[2,93]),{2:$V1,3:1021,4:$V2,5:$V3},o($Vl4,[2,95]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1022,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1023,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1025,118:$VT2,122:$VU2,123:$VV2,124:$VW2,125:1024,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},o($Vl4,[2,104]),o($Vl4,[2,105]),o($Vl4,[2,106]),o($Vl4,[2,107]),o($Vl4,[2,108]),o($Vl4,[2,109]),{2:$V1,3:1030,4:$V2,5:$V3},{2:$V1,3:1031,4:$V2,5:$V3,133:[1,1032]},o($Vl4,[2,113]),o($Vl4,[2,114]),o($Vl4,[2,115]),o($Vl4,[2,116]),o($Vl4,[2,117]),o($Vl4,[2,118]),{2:$V1,3:1033,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},o($Vl4,[2,123]),{77:[1,1037]},{2:$V1,3:1038,4:$V2,5:$V3},{77:[1,1039]},{77:[1,1040]},{77:[1,1041]},{77:[1,1042]},{77:[1,1043],164:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047]},{77:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[2,1073]},{77:[2,1074]},{2:$V1,3:244,4:$V2,5:$V3,199:1054},{2:$V1,3:244,4:$V2,5:$V3,199:1055},{113:1056,132:$VW,296:$Vj1},o($VK,[2,596],{112:[1,1057]}),{2:$V1,3:244,4:$V2,5:$V3,199:1058},{113:1059,132:$VW,296:$Vj1},{2:$V1,3:1060,4:$V2,5:$V3},o($VK,[2,693]),o($VK,[2,68]),{2:$V1,3:236,4:$V2,5:$V3,75:1061},{77:[1,1062]},o($VK,[2,674]),o($VK,[2,586]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1063,336:1064,337:1066},{144:1069,145:$VC1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,671]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1070,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:1071,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{113:1072,132:$VW,296:$Vj1},{2:$V1,3:266,4:$V2,5:$V3,446:1073,447:$VE1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1075,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,230:$VA3,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1,429:1074,433:$VB3},o($VK,[2,651]),{114:1077,115:$V$1,116:$V02,124:[1,1076]},o($VK,[2,663]),o($VK,[2,664]),{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1078},{114:807,115:$V$1,116:$V02,124:[1,1082],430:1083},o($VK,[2,753],{74:$VC3}),{2:$V1,3:100,4:$V2,5:$V3,504:1084},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1085,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1086,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1087,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VF3,[2,151]),o($VF3,[2,1088],{74:$Vq4}),o($Vr4,[2,273]),o($Vr4,[2,280],{114:625,327:637,3:1090,113:1092,2:$V1,4:$V2,5:$V3,76:[1,1089],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,131:[1,1091],132:$VW,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,296:$Vj1,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VH1,[2,1089],{197:1093,765:[1,1094]}),{131:$VV,196:1095},{74:$VC3,78:[1,1096]},o($VJ,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},o($VK,[2,575],{76:[1,1103],77:[1,1102]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1104,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vz2,[2,346]),o($VE3,[2,1112]),o($VE3,[2,1109]),o($VE3,[2,1110]),{74:$Vx3,78:[1,1105]},{74:$Vx3,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},o($Vz2,[2,353]),o($VK,[2,580]),{298:[1,1111]},{2:$V1,3:1112,4:$V2,5:$V3,113:1113,132:$VW,296:$Vj1},{2:$V1,3:244,4:$V2,5:$V3,199:1114},{230:[1,1115]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},o($VK,[2,730],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD3,[2,1145],{477:1117,483:1118,76:$Vs4}),o($VJ3,[2,1144]),{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,144:1121,145:$VC1,152:$VT1,419:190,420:$Vr1,424:$Vs1,475:1120,493:579,497:581},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},o($VN3,[2,1163],{491:1126,132:[1,1127]}),o($VL3,[2,1162]),o($VO3,[2,1169],{495:1128,497:1129,152:$VT1}),o($VN3,[2,1168]),o($VO3,[2,746]),o($VO3,[2,1172]),o($VL3,[2,749]),o($VL3,[2,750]),o($VO3,[2,748]),o($VP3,[2,740]),{2:$V1,3:244,4:$V2,5:$V3,199:1130},{2:$V1,3:244,4:$V2,5:$V3,199:1131},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1132,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt4,[2,1139],{467:1133,113:1134,132:$VW,296:$Vj1}),o($VQ3,[2,1138]),{2:$V1,3:1135,4:$V2,5:$V3},{335:$Vu4,338:$Vv4,339:$Vw4,511:1136},{2:$V1,3:244,4:$V2,5:$V3,199:1140},o($VR3,[2,765]),o($VR3,[2,766]),o($VR3,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},o($VV1,[2,688]),o($VV1,[2,689],{124:[1,1144]}),{4:$VX3,7:879,272:1145,387:878,389:$VY3},o([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,542],{5:[1,1146]}),o([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,539],{4:[1,1148],77:[1,1147]}),{77:[1,1149]},o($Vx4,[2,4]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1150,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,588]),o($VH3,[2,568]),{2:$V1,3:1151,4:$V2,5:$V3,113:1152,132:$VW,296:$Vj1},o($VK,[2,564],{74:$Vy4}),o($VV1,[2,566]),o($VK,[2,613],{74:$Vy4}),o($VK,[2,668]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1154,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($Vz4,[2,376],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($V34,[2,377],{114:625,327:637,316:$Vj2}),o($Vz4,[2,378],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,379],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1155],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,381],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1156],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,383],{114:625,327:637}),o($V24,[2,384],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,385],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($VB4,[2,386],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,387],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,388],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,389],{114:625,327:637,115:$V$1,116:$V02,136:$V42,312:$Vg2,316:$Vj2}),o($VC4,[2,390],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,391],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,392],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,393],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($Va4,[2,394],{77:$VN1}),o($VB1,[2,395]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1157,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,397]),o($Va4,[2,398],{77:$VN1}),o($VB1,[2,399]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1158,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,401]),o($VD4,[2,402],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,403],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,404],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,405],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,266,267,290,306,310,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,407],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,408],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,409],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,410],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,411],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},o($VF4,[2,414],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,415],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2}),{2:$V1,3:168,4:$V2,5:$V3,40:1160,56:165,77:$VU,78:[1,1162],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1161,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,428]),o($VB1,[2,430]),o($VB1,[2,437]),o($VB1,[2,438]),{2:$V1,3:667,4:$V2,5:$V3,77:[1,1163]},{2:$V1,3:695,4:$V2,5:$V3,77:[1,1164],111:934,145:$V$3,156:$VL,200:935,202:1166,290:$VM,291:$VN,292:$VO,293:$VP,329:1165},o($VB1,[2,435]),o($VF4,[2,432],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($VF4,[2,433],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,434],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,436]),o($VB1,[2,306]),o($VB1,[2,307]),o($VB1,[2,308]),o($VB1,[2,421]),{74:$Vx3,78:[1,1167]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1168,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1169,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,$VG4),o($VH4,[2,286]),o($VB1,[2,282]),{78:[1,1171],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1172]},{305:1173,306:$V44,307:957,308:$VC2,310:$V54},{306:[1,1174]},o($V64,[2,371]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1175,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1176],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{76:[1,1177],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1178]},o($VD2,[2,640]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,1179],302:$Vn1,419:190,420:$Vr1,422:1180,423:686,424:$Vs1},{78:[1,1181],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1182,4:$V2,5:$V3,149:$V14},o($VB1,[2,364]),o($VD2,[2,637]),{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,426:[1,1183],428:1184},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1185,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1186,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1187,423:686,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1188,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,458],{74:$VJ4}),{149:$Vc4,341:1190,344:$Vd4},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,100:1191,111:1193,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,466]),o($VK4,[2,469]),o($VK4,[2,470]),o($VL4,[2,474]),o($VL4,[2,475]),{2:$V1,3:244,4:$V2,5:$V3,199:1195},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1196,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,462],{74:$VJ4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},{308:$VM4,456:1197,458:1198,459:1199},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1201,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{230:[2,697]},o($VI2,[2,181],{3:1202,2:$V1,4:$V2,5:$V3,76:[1,1203]}),o($VI2,[2,182]),o($VI2,[2,1094]),o($VI2,[2,184]),o($VI2,[2,186]),o($VI2,[2,188]),o($VI2,[2,192]),o($VI2,[2,196]),o($VI2,[2,199]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],[2,201]),{2:$V1,3:1204,4:$V2,5:$V3},o($VN4,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1210],132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,203:1209,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VL2,[2,164]),o($VL2,[2,165]),o($VL2,[2,166]),o($VL2,[2,167]),o($VL2,[2,168]),{2:$V1,3:667,4:$V2,5:$V3},o($Vz1,[2,83],{74:[1,1212]}),o($VO4,[2,85]),o($VO4,[2,86]),{113:1213,132:$VW,296:$Vj1},o([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vy2,{116:$V94}),o($Vh4,[2,73]),o($Vh4,[2,1050]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1214,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,126]),o($Vl4,[2,144]),o($Vl4,[2,145]),o($Vl4,[2,146]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1065],94:260,111:149,113:153,127:1215,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1216,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1217]},o($Vl4,[2,94]),o([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,96],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,97],{114:625,327:637,99:$VZ1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1218],112:$VS2,114:736,115:$V$1,116:$V02,117:1219,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1061],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1221,118:$VT2,122:$VU2,123:$VV2,124:$VW2,126:1220,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1222,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1223,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1224,4:$V2,5:$V3},o($Vl4,[2,110]),o($Vl4,[2,111]),o($Vl4,[2,112]),o($Vl4,[2,119]),{2:$V1,3:1225,4:$V2,5:$V3},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1226,336:1064,337:1066},{2:$V1,3:1227,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1228,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,125]),o($VP4,[2,1067],{155:1229}),o($VP4,[2,1069],{157:1230}),o($VP4,[2,1071],{159:1231}),o($VP4,[2,1075],{161:1232}),o($VQ4,$VR4,{163:1233,178:1234}),{77:[1,1235]},o($VP4,[2,1077],{165:1236}),o($VP4,[2,1079],{167:1237}),o($VQ4,$VR4,{178:1234,163:1238}),o($VQ4,$VR4,{178:1234,163:1239}),o($VQ4,$VR4,{178:1234,163:1240}),o($VQ4,$VR4,{178:1234,163:1241}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1242,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1243,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1081],{176:1244}),o($VK,[2,606],{183:[1,1245]}),o($VK,[2,602],{183:[1,1246]}),o($VK,[2,595]),{113:1247,132:$VW,296:$Vj1},o($VK,[2,604],{183:[1,1248]}),o($VK,[2,599]),o($VK,[2,600],{112:[1,1249]}),o($Vv3,[2,69]),{40:1250,79:75,89:$V7,184:99,189:$Vb},o($VK,[2,450],{74:$VT4,128:[1,1251]}),o($VU4,[2,451]),{124:[1,1253]},{2:$V1,3:1254,4:$V2,5:$V3},o($Vt1,[2,1115]),o($Vt1,[2,1116]),o($VK,[2,618]),o($Vy3,[2,355],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD4,$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VV1,[2,682]),o($VV1,[2,684]),o($VK,[2,650]),o($VK,[2,652],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1255,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1256},o($VV4,[2,659]),o($VV4,[2,660]),o($VV4,[2,661]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1258,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{114:1077,115:$V$1,116:$V02,124:[1,1259]},o($VD3,[2,755]),o($VF3,[2,148],{74:$Vq4}),o($VF3,[2,149],{74:$Vq4}),o($VF3,[2,150],{74:$Vq4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:1260,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1261,4:$V2,5:$V3,113:1263,131:[1,1262],132:$VW,296:$Vj1},o($Vr4,[2,275]),o($Vr4,[2,277]),o($Vr4,[2,279]),o($VH1,[2,160]),o($VH1,[2,1090]),{78:[1,1264]},o($VK1,[2,758]),{2:$V1,3:1265,4:$V2,5:$V3},{2:$V1,3:1266,4:$V2,5:$V3},{2:$V1,3:1268,4:$V2,5:$V3,384:1267},{2:$V1,3:1268,4:$V2,5:$V3,384:1269},{2:$V1,3:1270,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1271,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1272,4:$V2,5:$V3},{74:$Vx3,78:[1,1273]},o($Vz2,[2,347]),o($Vz2,[2,348]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1274,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1275,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1277,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH3,[2,504]),o($VK,$VW4,{407:1278,76:$VX4,77:[1,1279]}),o($VK,$VW4,{407:1281,76:$VX4}),{77:[1,1282]},{2:$V1,3:244,4:$V2,5:$V3,199:1283},o($VD3,[2,731]),o($VD3,[2,733]),o($VD3,[2,1146]),{143:$VF1,145:$VG1,431:1284},o($VY4,[2,1147],{419:190,479:1285,144:1286,145:$VC1,420:$Vr1,424:$Vs1}),{76:$Vs4,139:[2,1151],481:1287,483:1288},o([10,74,76,78,132,139,145,152,306,310,420,424,602,764],$VM3,{490:851,493:852,137:$VS1}),o($VD3,[2,736]),o($VD3,$VK3),{74:$VI3,78:[1,1289]},o($VO3,[2,1165],{492:1290,497:1291,152:$VT1}),o($VN3,[2,1164]),o($VO3,[2,745]),o($VO3,[2,1170]),o($VK,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,148:[1,1295],154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI4,$VZ4,{79:75,184:99,468:1296,40:1299,89:$V7,146:$V_4,189:$Vb,470:$V$4}),o($Vt4,[2,1140]),o($VQ3,[2,723]),{230:[1,1300]},o($V05,[2,769]),o($V05,[2,770]),o($V05,[2,771]),o($VR3,$VS3,{510:1301,95:$VT3,514:$VU3,515:$VV3,516:$VW3}),o($VR3,[2,768]),o($VK,[2,312]),o($VK,[2,313]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1302,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV1,[2,690],{124:[1,1303]}),o($Vx4,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},o($Vx4,[2,5]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1307,419:190,420:$Vr1,424:$Vs1},o($VK,[2,455],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,589]),o($VK,[2,590]),{2:$V1,3:244,4:$V2,5:$V3,199:1308},o($VK,[2,670]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1309,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1310,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1311],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1312],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,40:1313,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1314,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1315]},{74:$Vx3,78:[1,1316]},o($VB1,[2,426]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1317,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,40:1318,56:165,77:$VU,78:[1,1320],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1319,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,429]),o($VB1,[2,431]),o($VB1,$V15,{275:1321,276:$V25}),{78:[1,1323],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1324],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3,180:[1,1326]},o($VD2,[2,619]),o($VB1,[2,363]),{306:[1,1327]},o($VB1,[2,370]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,306:[2,374],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1328,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:1329,387:878,389:$VY3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1330,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,641]),o($V74,[2,648]),o($V84,[2,636]),o($VH4,$VG4),o($VD2,[2,638]),o($Vb4,[2,643]),o($Vb4,[2,645]),o($Vb4,[2,646]),o($Vb4,[2,647]),o($VI4,[2,457],{74:$VJ4}),{77:[1,1332],143:$VY,144:1333,145:$VC1,152:$V$,181:$V31,201:1334,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,463]),{74:$V35,78:[1,1335]},{74:$V45,78:[1,1337]},o([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,311,312,313,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333],$V55),o($V65,[2,479],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{40:1341,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1339,342:1340,344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,461],{74:$VJ4}),o($VK,[2,717],{457:1342,458:1343,459:1344,308:$VM4,464:[1,1345]}),o($V75,[2,701]),o($V75,[2,702]),{154:[1,1347],460:[1,1346]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,308:[2,698],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI2,[2,179]),{2:$V1,3:1348,4:$V2,5:$V3},o($VK,[2,574]),o($V85,[2,238],{84:1349,128:[1,1350]}),o($VN4,[2,1046]),{77:[1,1351]},{77:[1,1352]},o($Vf4,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:$V95,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,40:711,77:$Vw1,79:75,89:$V7,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,184:99,189:$Vb,199:213,200:215,201:214,202:217,203:1369,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vk5,[2,177]),{2:$V1,3:1011,4:$V2,5:$V3,110:1370,111:1009,112:$Vg4},o($VO4,[2,87]),o($Vh4,[2,147],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[1,1371]},{74:$Vx3,78:[2,1066]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,242:[1,1375],254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,98]),o($VP4,[2,1062],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1377],112:$VS2,114:736,115:$V$1,116:$V02,117:1378,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1063],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{78:[1,1379],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1380],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1381]},o($Vl4,[2,120]),{74:$VT4,78:[1,1382]},o($Vl4,[2,122]),{74:$Vx3,78:[1,1383]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1384],112:$VS2,114:736,115:$V$1,116:$V02,117:1385,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1386],112:$VS2,114:736,115:$V$1,116:$V02,117:1387,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1388],112:$VS2,114:736,115:$V$1,116:$V02,117:1389,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1390],112:$VS2,114:736,115:$V$1,116:$V02,117:1391,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1392]},o($V65,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($VQ4,$VR4,{178:1234,163:1395}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1396],112:$VS2,114:736,115:$V$1,116:$V02,117:1397,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1398],112:$VS2,114:736,115:$V$1,116:$V02,117:1399,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1400]},{74:$Vl5,78:[1,1401]},{74:$Vl5,78:[1,1402]},{74:$Vl5,78:[1,1403]},{78:[1,1404],153:1015,179:$Vi4,180:$Vj4,181:$Vk4},{74:$Vq4,78:[1,1405]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,74:[1,1406],76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1407,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1408,4:$V2,5:$V3},{2:$V1,3:1409,4:$V2,5:$V3},o($VK,[2,597]),{2:$V1,3:1410,4:$V2,5:$V3},{113:1411,132:$VW,296:$Vj1},{78:[1,1412]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1413,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,336:1414,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1415,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{124:[1,1416]},o($VK,[2,653],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VV4,[2,658]),{78:[1,1417],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,654],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1418,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vr4,[2,272]),o($Vr4,[2,274]),o($Vr4,[2,276]),o($Vr4,[2,278]),o($VH1,[2,161]),o($VK,[2,569]),{148:[1,1419]},o($VK,[2,570]),o($VD3,[2,536],{387:878,7:879,272:1420,4:$VX3,386:[1,1421],389:$VY3}),o($VK,[2,571]),o($VK,[2,573]),{74:$Vx3,78:[1,1422]},o($VK,[2,577]),o($Vz2,[2,345]),{74:[1,1423],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1424],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1425],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1426],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,581]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1427,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1428,4:$V2,5:$V3},o($VK,[2,583]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1429,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1430]},{2:$V1,3:1431,4:$V2,5:$V3},{76:$Vs4,139:[2,1149],480:1432,483:1433},o($VY4,[2,1148]),{139:[1,1434]},{139:[2,1152]},o($VD3,[2,737]),o($VO3,[2,744]),o($VO3,[2,1166]),{2:$V1,3:1268,4:$V2,5:$V3,76:[1,1437],351:1435,358:1436,384:1438},{2:$V1,3:1011,4:$V2,5:$V3,100:1439,111:1440},{40:1441,79:75,89:$V7,184:99,189:$Vb},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1442,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,722]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1443,336:1064,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1444,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,727]),{2:$V1,3:244,4:$V2,5:$V3,199:1445},{335:$Vu4,338:$Vv4,339:$Vw4,511:1446},o($VV1,[2,691],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1447,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:[1,1448],78:[1,1449]},o($V65,[2,543]),o($V65,[2,544]),{74:$V45,78:[1,1450]},o($VV1,[2,565]),o($Vz4,[2,380],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($Vz4,[2,382],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,396]),o($VB1,[2,400]),{78:[1,1451]},{74:$Vx3,78:[1,1452]},o($VB1,[2,422]),o($VB1,[2,424]),{78:[1,1453],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1454]},{74:$Vx3,78:[1,1455]},o($VB1,[2,427]),o($VB1,[2,327]),{77:[1,1456]},o($VB1,$V15,{275:1457,276:$V25}),o($VB1,$V15,{275:1458,276:$V25}),o($VH4,[2,284]),o($VB1,[2,281]),o($VB1,[2,369]),o($V64,[2,373],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1463,419:190,420:$Vr1,424:$Vs1},o($VL4,[2,477]),o($VL4,[2,478]),{40:1466,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1464,342:1465,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1467},o($VL4,[2,473]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1468,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1469,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,460],{74:$VJ4}),o($VI4,[2,467]),o($VK,[2,694]),o($V75,[2,699]),o($V75,[2,700]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1470,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{170:[1,1472],309:[1,1471]},{460:[1,1473]},o($VI2,[2,180]),o($Vm5,[2,240],{85:1474,232:[1,1475]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1476,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1477,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1478,4:$V2,5:$V3},o($Vf4,[2,170],{216:1357,221:1360,215:1479,205:1480,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:1481,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vn5,[2,205]),o($Vn5,[2,206]),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1486],143:$VY,144:1484,145:$VZ,152:$V$,156:$VL,181:$V31,199:1483,200:1487,201:1485,202:1488,217:1482,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{207:[1,1489],223:$Vo5},{207:[1,1491],223:$Vp5},o($Vq5,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vq5,[2,224]),{223:[1,1496]},{208:[1,1498],223:[1,1497]},{208:[1,1500],223:[1,1499]},{208:[1,1501]},{223:[1,1502]},{223:[1,1503]},{74:$V95,204:1504,205:1356,206:$Va5,208:$Vb5,215:1355,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($VO4,[2,84]),o($Vl4,[2,100]),{74:$Vr5,78:[1,1505]},{78:[1,1507]},o($Vs5,[2,261]),{78:[2,1060]},o($Vs5,[2,263],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,242:[1,1508],243:[1,1509],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vl4,[2,99]),o($VP4,[2,1064],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,101]),o($Vl4,[2,102]),o($Vl4,[2,103]),o($Vl4,[2,121]),o($Vl4,[2,124]),o($Vl4,[2,127]),o($VP4,[2,1068],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,128]),o($VP4,[2,1070],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,129]),o($VP4,[2,1072],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,130]),o($VP4,[2,1076],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,131]),o($VQ4,[2,1083],{177:1510}),o($VQ4,[2,1086],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{74:$Vl5,78:[1,1511]},o($Vl4,[2,133]),o($VP4,[2,1078],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,134]),o($VP4,[2,1080],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,135]),o($Vl4,[2,136]),o($Vl4,[2,137]),o($Vl4,[2,138]),o($Vl4,[2,139]),o($Vl4,[2,140]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1512,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1082],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($VK,[2,607]),o($VK,[2,603]),o($VK,[2,605]),o($VK,[2,601]),o($Vv3,[2,71]),o($VK,[2,449],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VU4,[2,452]),o($VU4,[2,453],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1513,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV4,[2,662]),o($VK,[2,655],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:1514,4:$V2,5:$V3},o($VD3,[2,545],{385:1515,391:1516,392:1517,366:1525,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($VD3,[2,535]),o($VK,[2,576],{76:[1,1529]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1530,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1531,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1532,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1533,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$Vx3,78:[1,1534]},o($VK,[2,585]),{74:$Vr5,78:[1,1535]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1536,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1538,482:582,493:579,497:581},{78:[1,1539]},{74:[1,1540],78:[2,506]},{40:1541,79:75,89:$V7,184:99,189:$Vb},o($V65,[2,532]),{74:$V35,78:[1,1542]},o($Vk5,$V55),o($VK,[2,1133],{412:1543,413:1544,72:$VD5}),o($VI4,$VZ4,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V_4,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,470:$V$4}),o($VI4,[2,725],{74:$VT4}),o($VI4,[2,726],{74:$Vx3}),o([10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],[2,1181],{512:1547,3:1548,2:$V1,4:$V2,5:$V3,76:[1,1549]}),o($VE5,[2,1183],{513:1550,76:[1,1551]}),o($VV1,[2,692],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{131:[1,1552]},o($Vx4,[2,538]),o($Vx4,[2,540]),o($VB1,[2,412]),o($VB1,[2,413]),o($VB1,[2,439]),o($VB1,[2,423]),o($VB1,[2,425]),{118:$VF5,277:1553,278:1554,279:[1,1555]},o($VB1,[2,328]),o($VB1,[2,329]),o($VB1,[2,316]),{131:[1,1557]},o($VB1,[2,318]),{131:[1,1558]},{74:$V45,78:[1,1559]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1560,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,465],{74:$VJ4}),o($VI4,[2,468]),o($Vk5,[2,488]),o($V65,[2,480],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VI4,[2,459],{74:$VJ4}),o($VK,[2,718],{74:$Vq4,198:[1,1561]}),{335:$VG5,338:$VH5,461:1562},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1565,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{119:[1,1567],170:[1,1568],309:[1,1566]},o($VI5,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},o($V85,[2,239],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{95:[1,1572],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{95:[1,1573]},o($Vn5,[2,203]),o($Vn5,[2,204]),o($Vk5,[2,178]),o($Vn5,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),o($VJ5,[2,208],{3:1577,2:$V1,4:$V2,5:$V3,76:[1,1578]}),o($VK5,[2,1095],{219:1579,76:[1,1580]}),{2:$V1,3:1581,4:$V2,5:$V3,76:[1,1582]},{40:1583,79:75,89:$V7,184:99,189:$Vb},o($VJ5,[2,216],{3:1584,2:$V1,4:$V2,5:$V3,76:[1,1585]}),o($VJ5,[2,219],{3:1586,2:$V1,4:$V2,5:$V3,76:[1,1587]}),{77:[1,1588]},o($Vq5,[2,234]),{77:[1,1589]},o($Vq5,[2,230]),o($Vq5,[2,223]),{223:$Vp5},{223:$Vo5},o($Vq5,[2,225]),o($Vq5,[2,226]),{223:[1,1590]},o($Vq5,[2,228]),{223:[1,1591]},{223:[1,1592]},o($Vq5,[2,232]),o($Vq5,[2,233]),{78:[1,1593],205:1480,206:$Va5,208:$Vb5,215:1479,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vl4,[2,91]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1594,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,92]),o($Vs5,[2,264]),{244:[1,1595]},o($V65,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($Vl4,[2,132]),{74:$Vx3,78:[1,1597]},o($VU4,[2,454],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,572]),o($VD3,[2,534]),o($VD3,[2,546],{366:1525,392:1598,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($Vw3,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:$V1,3:244,4:$V2,5:$V3,199:1601},o($Vw3,[2,554],{77:[1,1602]}),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1604],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:1605,201:254,257:252,258:253,265:$VD1,274:1603,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},o($Vw3,[2,558]),{297:[1,1606]},o($Vw3,[2,560]),o($Vw3,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:$V1,3:1609,4:$V2,5:$V3},{78:[1,1610],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1611],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1612],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1613],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,$VW4,{407:1614,76:$VX4}),o($VK,[2,591]),{74:$Vr5,78:[1,1615]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1616,482:582,493:579,497:581},o($VD3,[2,735]),o($VK,[2,493],{352:1617,354:1618,355:1619,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VP5,$VQ5,{3:1268,359:1624,384:1625,360:1626,361:1627,2:$V1,4:$V2,5:$V3,367:$VR5}),{78:[2,507]},{76:[1,1629]},o($VK,[2,609]),o($VK,[2,1134]),{368:[1,1631],414:[1,1630]},o($VI4,[2,728]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1632,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,762]),o($VE5,[2,1182]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1633,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VE5,[2,1184]),{78:[1,1634]},{78:[1,1635],118:$VF5,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},o($VL4,[2,476]),o($VI4,[2,464],{74:$VJ4}),{2:$V1,3:244,4:$V2,5:$V3,143:$VF1,145:$VG1,199:1643,431:1642},o($V75,[2,703]),o($V75,[2,705]),{146:[1,1644]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1645],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{339:$VS5,462:1646},{417:[1,1649],463:[1,1648]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1650,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VT5,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1655,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1661,4:$V2,5:$V3},{2:$V1,3:1662,4:$V2,5:$V3},o($Vn5,[2,207]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1663,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1664,111:1440},o($VJ5,[2,209]),{2:$V1,3:1665,4:$V2,5:$V3},o($VJ5,[2,1097],{220:1666,3:1667,2:$V1,4:$V2,5:$V3}),o($VK5,[2,1096]),o($VJ5,[2,212]),{2:$V1,3:1668,4:$V2,5:$V3},{78:[1,1669]},o($VJ5,[2,217]),{2:$V1,3:1670,4:$V2,5:$V3},o($VJ5,[2,220]),{2:$V1,3:1671,4:$V2,5:$V3},{40:1672,79:75,89:$V7,184:99,189:$Vb},{40:1673,79:75,89:$V7,184:99,189:$Vb},o($Vq5,[2,227]),o($Vq5,[2,229]),o($Vq5,[2,231]),o($Vf4,[2,171]),o($Vs5,[2,262]),o($Vs5,[2,265],{242:[1,1674]}),o($VQ4,[2,1084],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,141]),o($Vw3,[2,547]),o($Vw3,[2,550]),{374:[1,1675]},o($Vw3,[2,1127],{395:1676,393:1677,77:$VX5}),{131:$VV,196:1679},o($Vw3,[2,555]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1680,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vw3,[2,557]),o($Vw3,[2,559]),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1682],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:1681,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1683,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,578]),o($Vz2,[2,349]),o($Vz2,[2,350]),o($Vz2,[2,351]),o($Vz2,[2,352]),o($VK,[2,582]),o($VK,[2,592]),o($VD3,[2,734]),o($VK,[2,489]),o($VK,[2,494],{355:1684,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VY5,[2,496]),o($VY5,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},o($V65,[2,533]),o($V65,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:$Vz5,369:[1,1694],370:[1,1698],373:[1,1695]},{2:$V1,3:1699,4:$V2,5:$V3},{40:1700,79:75,89:$V7,184:99,189:$Vb},{415:[1,1701]},{416:[1,1702]},o($VK,[2,761]),o($VK,[2,763]),o($Vx4,[2,537]),o($VB1,[2,331]),{78:[1,1703]},o($VB1,[2,332]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1704,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1705,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,317]),o($VB1,[2,319]),{2:$V1,3:1706,4:$V2,5:$V3},o($VK,[2,720],{77:[1,1707]}),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1708,336:1064,337:1066},{335:$VG5,338:$VH5,461:1709},o($V75,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1717],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vh4,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:$VV,196:1722},{131:$VV,196:1723},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1724,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vm5,[2,248],{234:1725,74:$VZ5,239:[1,1727]}),o($V_5,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},o($V_5,[2,247],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},o($Vn5,[2,235],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vn5,[2,236],{74:$V35}),o($VJ5,[2,210]),o($VJ5,[2,211]),o($VJ5,[2,1098]),o($VJ5,[2,213]),{2:$V1,3:1735,4:$V2,5:$V3,76:[1,1736]},o($VJ5,[2,218]),o($VJ5,[2,221]),{78:[1,1737]},{78:[1,1738]},o($Vs5,[2,266]),{2:$V1,3:244,4:$V2,5:$V3,199:1739},o($Vw3,[2,552]),o($Vw3,[2,1128]),{2:$V1,3:1740,4:$V2,5:$V3},{74:[1,1741]},{78:[1,1742],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,562]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1743,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1744],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VY5,[2,495]),{2:$V1,3:1745,4:$V2,5:$V3},{131:$VV,196:1746},{2:$V1,3:1747,4:$V2,5:$V3},o($VP5,$VQ5,{361:1627,360:1748,367:$VR5}),o($VD3,[2,510]),o($VD3,[2,511]),o($VD3,[2,512]),o($VD3,[2,513]),o($VD3,[2,514]),{370:[1,1749]},{370:[1,1750]},o($V$5,[2,1121],{382:1751,370:[1,1752]}),{2:$V1,3:1753,4:$V2,5:$V3},{2:$V1,3:1754,4:$V2,5:$V3},o($VP5,[2,516]),o($VK,[2,1131],{411:1755,413:1756,72:$VD5}),o($VK,[2,610]),o($VK,[2,611],{367:[1,1757]}),o($VB1,[2,333]),o([78,118],[2,334],{74:$VZ5}),{74:$Vr5,78:[2,335]},o($VK,[2,719]),{2:$V1,3:1011,4:$V2,5:$V3,100:1758,111:1440},o($V75,[2,706],{74:$VT4}),o($V75,[2,704]),{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1759,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1760,111:1440},{344:[1,1761]},{339:$VS5,462:1762},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1763,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1764},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1765,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1766},o($Vh4,[2,72]),{40:1767,79:75,89:$V7,164:[1,1768],184:99,189:$Vb,240:[1,1769]},{40:1770,79:75,89:$V7,184:99,189:$Vb,240:[1,1771]},{40:1772,79:75,89:$V7,184:99,189:$Vb,240:[1,1773]},o($VT5,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},o($VI5,[2,260],{74:$Vr5}),o($Vm5,[2,241]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,235:1778,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1779,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1780]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1781,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1782,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},o($VJ5,[2,214]),{2:$V1,3:1786,4:$V2,5:$V3},{2:$V1,3:1787,4:$V2,5:$V3,76:[1,1788]},{2:$V1,3:1789,4:$V2,5:$V3,76:[1,1790]},o($Vw3,[2,1125],{394:1791,393:1792,77:$VX5}),{78:[1,1793]},{131:$VV,196:1794},o($Vw3,[2,556]),{78:[1,1795],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,517]),o($VY5,[2,498]),o($VY5,[2,499]),o($VY5,[2,500]),o($V65,[2,509]),{2:$V1,3:1797,4:$V2,5:$V3,77:[2,1117],371:1796},{77:[1,1798]},{2:$V1,3:1800,4:$V2,5:$V3,77:[2,1123],383:1799},o($V$5,[2,1122]),{77:[1,1801]},{77:[1,1802]},o($VK,[2,608]),o($VK,[2,1132]),o($VP5,$VQ5,{361:1627,360:1803,367:$VR5}),{74:$V35,78:[1,1804]},o($V75,[2,713],{74:$VJ4}),{74:$V35,78:[1,1805]},o($V75,[2,715]),o($V75,[2,708]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1806],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,711]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1807],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,709]),o($Vh4,[2,251]),{40:1808,79:75,89:$V7,184:99,189:$Vb,240:[1,1809]},{40:1810,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,253]),{40:1811,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,254]),{40:1812,79:75,89:$V7,184:99,189:$Vb},o($VT5,[2,268]),{131:$VV,196:1813},{249:[1,1814]},{249:[2,1100]},o($V_5,[2,243]),o($Vm5,[2,249],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1815,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$VZ5,78:[1,1816]},{74:$VZ5,78:[1,1817]},o($VN4,[2,1053],{97:1818,104:1819,3:1821,2:$V1,4:$V2,5:$V3,76:$V06}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,103:1822,105:1823,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1825,111:1440},o($VJ5,[2,215]),o($Vn5,[2,173]),{2:$V1,3:1826,4:$V2,5:$V3},o($Vn5,[2,175]),{2:$V1,3:1827,4:$V2,5:$V3},o($Vw3,[2,551]),o($Vw3,[2,1126]),o($Vw3,[2,549]),{78:[1,1828]},o($Vw3,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1830},{77:[1,1833]},{77:[2,1124]},{2:$V1,3:1011,4:$V2,5:$V3,100:1834,111:1440},{2:$V1,3:1011,4:$V2,5:$V3,100:1835,111:1440},o($VK,[2,612]),o($VK,[2,721]),{343:[1,1837],344:[1,1836]},{339:$VS5,462:1838},{335:$VG5,338:$VH5,461:1839},o($Vh4,[2,252]),{40:1840,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,255]),o($Vh4,[2,257]),o($Vh4,[2,258]),o($VT5,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:$VZ5,78:[1,1843]},o($V_5,[2,245]),o($V_5,[2,246]),o($VN4,[2,74]),o($VN4,[2,1054]),{2:$V1,3:1844,4:$V2,5:$V3},o($VN4,[2,78]),{74:[1,1846],78:[1,1845]},o($V65,[2,80]),o($V65,[2,81],{114:625,327:637,76:[1,1847],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:$V35,78:[1,1848]},o($Vn5,[2,174]),o($Vn5,[2,176]),o($Vw3,[2,553]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1849},{74:$V26,78:[1,1850]},o($V65,[2,528]),o($V65,[2,529]),{2:$V1,3:1011,4:$V2,5:$V3,100:1852,111:1440},{74:$V35,78:[1,1853]},{74:$V35,78:[1,1854]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1855,419:190,420:$Vr1,424:$Vs1},{344:[1,1856]},o($V75,[2,710]),o($V75,[2,712]),o($Vh4,[2,256]),{131:$VV,196:1857},{131:[2,1102]},o($V_5,[2,244]),o($VN4,[2,77]),{78:[2,76]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,105:1858,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1859,4:$V2,5:$V3},{78:[1,1860]},{74:$V26,78:[1,1861]},{374:[1,1862]},{2:$V1,3:1863,4:$V2,5:$V3,132:[1,1864]},{74:$V35,78:[1,1865]},o($VD3,[2,526]),o($VD3,[2,527]),o($V75,[2,714],{74:$VJ4}),o($V75,[2,716]),o($V36,[2,1103],{251:1866,766:[1,1867]}),o($V65,[2,79]),o($V65,[2,82]),o($VN4,[2,1055],{3:1821,101:1868,104:1869,2:$V1,4:$V2,5:$V3,76:$V06}),o($VD3,[2,518]),{2:$V1,3:244,4:$V2,5:$V3,199:1870},o($V65,[2,530]),o($V65,[2,531]),o($VD3,[2,525]),o($VT5,[2,1105],{252:1871,415:[1,1872]}),o($V36,[2,1104]),o($VN4,[2,75]),o($VN4,[2,1056]),o($V46,[2,1119],{375:1873,377:1874,77:[1,1875]}),o($VT5,[2,269]),o($VT5,[2,1106]),o($VD3,[2,521],{376:1876,378:1877,230:[1,1878]}),o($V46,[2,1120]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1879},o($VD3,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:$V26,78:[1,1883]},o($VD3,[2,522]),{335:[1,1884]},{380:[1,1885]},o($V46,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},o($VD3,[2,524])], +defaultActions: {105:[2,6],194:[2,336],195:[2,337],196:[2,338],197:[2,339],198:[2,340],199:[2,341],200:[2,342],201:[2,343],202:[2,344],209:[2,695],591:[2,1142],653:[2,1107],654:[2,1108],710:[2,696],780:[2,1073],781:[2,1074],926:[2,446],927:[2,447],928:[2,448],987:[2,697],1288:[2,1152],1375:[2,1060],1433:[2,1150],1541:[2,507],1732:[2,1052],1777:[2,1100],1797:[2,1118],1800:[2,1124],1842:[2,1102],1845:[2,76],1887:[2,523]}, +parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } +}, +parse: function parse(input) { + var self = this, + stack = [0], + tstack = [], // token stack + vstack = [null], // semantic value stack + lstack = [], // location stack + table = this.table, + yytext = '', + yylineno = 0, + yyleng = 0, + recovering = 0, + TERROR = 2, + EOF = 1; + + var args = lstack.slice.call(arguments, 1); + + //this.reductionCount = this.shiftCount = 0; + + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + // copy state + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + + var ranges = lexer.options && lexer.options.ranges; + + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + + function popStack (n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + +_token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + // if token isn't its numeric value, convert + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + } + + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + // retreive state number from top of stack + state = stack[stack.length - 1]; + + // use default actions if available + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + // read action for current state and first input + action = table[state] && table[state][symbol]; + } + +_handle_error: + // handle parse error + if (typeof action === 'undefined' || !action.length || !action[0]) { + var error_rule_depth; + var errStr = ''; + + // Return the rule stack depth where the nearest error rule can be found. + // Return FALSE when no error recovery rule was found. + var locateNearestErrorRecoveryRule = function(state) { + var stack_probe = stack.length - 1; + var depth = 0; + + // try to recover from error + for(;;) { + // check for error recovery rule in this state + if ((TERROR.toString()) in table[state]) { + return depth; + } + if (state === 0 || stack_probe < 2) { + return false; // No suitable error recovery rule available. + } + stack_probe -= 2; // popStack(1): [symbol, action] + state = stack[stack_probe]; + ++depth; + } + } + + if (!recovering) { + // first see if there's any chance at hitting an error recovery rule: + error_rule_depth = locateNearestErrorRecoveryRule(state); + + // Report error + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'"+this.terminals_[p]+"'"); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; + } else { + errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + + (symbol == EOF ? "end of input" : + ("'"+(this.terminals_[symbol] || symbol)+"'")); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: yyloc, + expected: expected, + recoverable: (error_rule_depth !== false) + }); + } else if (preErrorSymbol !== EOF) { + error_rule_depth = locateNearestErrorRecoveryRule(state); + } + + // just recovered from another error + if (recovering == 3) { + if (symbol === EOF || preErrorSymbol === EOF) { + throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); + } + + // discard current lookahead and grab another + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + symbol = lex(); + } + + // try to recover from error + if (error_rule_depth === false) { + throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); + } + popStack(error_rule_depth); + + preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token + symbol = TERROR; // insert generic error symbol as new lookahead + state = stack[stack.length-1]; + action = table[state] && table[state][TERROR]; + recovering = 3; // allow 3 real symbols to be shifted before reporting a new error + } + + // this shouldn't happen, unless resolve defaults are off + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); + } + + switch (action[0]) { + case 1: // shift + //this.shiftCount++; + + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); // push state + symbol = null; + if (!preErrorSymbol) { // normal execution/no error + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + // error just occurred, resume old lookahead f/ before error + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + + case 2: + // reduce + //this.reductionCount++; + + len = this.productions_[action[1]][1]; + + // perform semantic action + yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 + // default location, uses first token for firsts, last for lasts + yyval._$ = { + first_line: lstack[lstack.length-(len||1)].first_line, + last_line: lstack[lstack.length-1].last_line, + first_column: lstack[lstack.length-(len||1)].first_column, + last_column: lstack[lstack.length-1].last_column + }; + if (ranges) { + yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; + } + r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); + + if (typeof r !== 'undefined') { + return r; + } + + // pop off stack + if (len) { + stack = stack.slice(0,-1*len*2); + vstack = vstack.slice(0, -1*len); + lstack = lstack.slice(0, -1*len); + } + + stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) + vstack.push(yyval.$); + lstack.push(yyval._$); + // goto new state = table[STATE][NONTERMINAL] + newState = table[stack[stack.length-2]][stack[stack.length-1]]; + stack.push(newState); + break; + + case 3: + // accept + return true; + } + + } + + return true; +}}; + +// from https://www.postgresql.org/docs/current/static/sql-keywords-appendix.html +// JSON.stringify([].slice.call(document.querySelectorAll('tr')).filter(x => x.children.length == 5 && x.children[2].innerText == 'reserved').map(x => x.children[0].innerText)) + +var nonReserved = ["A","ABSENT","ABSOLUTE","ACCORDING","ACTION","ADA","ADD","ADMIN","AFTER","ALWAYS","ASC","ASSERTION","ASSIGNMENT","ATTRIBUTE","ATTRIBUTES","BASE64","BEFORE","BERNOULLI","BLOCKED","BOM","BREADTH","C","CASCADE","CATALOG","CATALOG_NAME","CHAIN","CHARACTERISTICS","CHARACTERS","CHARACTER_SET_CATALOG","CHARACTER_SET_NAME","CHARACTER_SET_SCHEMA","CLASS_ORIGIN","COBOL","COLLATION","COLLATION_CATALOG","COLLATION_NAME","COLLATION_SCHEMA","COLUMNS","COLUMN_NAME","COMMAND_FUNCTION","COMMAND_FUNCTION_CODE","COMMITTED","CONDITION_NUMBER","CONNECTION","CONNECTION_NAME","CONSTRAINTS","CONSTRAINT_CATALOG","CONSTRAINT_NAME","CONSTRAINT_SCHEMA","CONSTRUCTOR","CONTENT","CONTINUE","CONTROL","CURSOR_NAME","DATA","DATETIME_INTERVAL_CODE","DATETIME_INTERVAL_PRECISION","DB","DEFAULTS","DEFERRABLE","DEFERRED","DEFINED","DEFINER","DEGREE","DEPTH","DERIVED","DESC","DESCRIPTOR","DIAGNOSTICS","DISPATCH","DOCUMENT","DOMAIN","DYNAMIC_FUNCTION","DYNAMIC_FUNCTION_CODE","EMPTY","ENCODING","ENFORCED","EXCLUDE","EXCLUDING","EXPRESSION","FILE","FINAL","FIRST","FLAG","FOLLOWING","FORTRAN","FOUND","FS","G","GENERAL","GENERATED","GO","GOTO","GRANTED","HEX","HIERARCHY","ID","IGNORE","IMMEDIATE","IMMEDIATELY","IMPLEMENTATION","INCLUDING","INCREMENT","INDENT","INITIALLY","INPUT","INSTANCE","INSTANTIABLE","INSTEAD","INTEGRITY","INVOKER","ISOLATION","K","KEY","KEY_MEMBER","KEY_TYPE","LAST","LENGTH","LEVEL","LIBRARY","LIMIT","LINK","LOCATION","LOCATOR","M","MAP","MAPPING","MATCHED","MAXVALUE","MESSAGE_LENGTH","MESSAGE_OCTET_LENGTH","MESSAGE_TEXT","MINVALUE","MORE","MUMPS","NAME","NAMES","NAMESPACE","NESTING","NEXT","NFC","NFD","NFKC","NFKD","NIL","NORMALIZED","NULLABLE","NULLS","NUMBER","OBJECT","OCTETS","OFF","OPTION","OPTIONS","ORDERING","ORDINALITY","OTHERS","OUTPUT","OVERRIDING","P","PAD","PARAMETER_MODE","PARAMETER_NAME","PARAMETER_ORDINAL_POSITION","PARAMETER_SPECIFIC_CATALOG","PARAMETER_SPECIFIC_NAME","PARAMETER_SPECIFIC_SCHEMA","PARTIAL","PASCAL","PASSING","PASSTHROUGH","PATH","PERMISSION","PLACING","PLI","PRECEDING","PRESERVE","PRIOR","PRIVILEGES","PUBLIC","READ","RECOVERY","RELATIVE","REPEATABLE","REQUIRING","RESPECT","RESTART","RESTORE","RESTRICT","RETURNED_CARDINALITY","RETURNED_LENGTH","RETURNED_OCTET_LENGTH","RETURNED_SQLSTATE","RETURNING","ROLE","ROUTINE","ROUTINE_CATALOG","ROUTINE_NAME","ROUTINE_SCHEMA","ROW_COUNT","SCALE","SCHEMA","SCHEMA_NAME","SCOPE_CATALOG","SCOPE_NAME","SCOPE_SCHEMA","SECTION","SECURITY","SELECTIVE","SELF","SEQUENCE","SERIALIZABLE","SERVER","SERVER_NAME","SESSION","SETS","SIMPLE","SIZE","SOURCE","SPACE","SPECIFIC_NAME","STANDALONE","STATE","STATEMENT","STRIP","STRUCTURE","STYLE","SUBCLASS_ORIGIN","T","TABLE_NAME","TEMPORARY","TIES","TOKEN","TOP_LEVEL_COUNT","TRANSACTION","TRANSACTIONS_COMMITTED","TRANSACTIONS_ROLLED_BACK","TRANSACTION_ACTIVE","TRANSFORM","TRANSFORMS","TRIGGER_CATALOG","TRIGGER_NAME","TRIGGER_SCHEMA","TYPE","UNBOUNDED","UNCOMMITTED","UNDER","UNLINK","UNNAMED","UNTYPED","URI","USAGE","USER_DEFINED_TYPE_CATALOG","USER_DEFINED_TYPE_CODE","USER_DEFINED_TYPE_NAME","USER_DEFINED_TYPE_SCHEMA","VALID","VERSION","VIEW","WHITESPACE","WORK","WRAPPER","WRITE","XMLDECLARATION","XMLSCHEMA","YES","ZONE"] + +parser.parseError = function(str, hash) { + if (hash.expected && hash.expected.indexOf("'LITERAL'") > -1 && /[a-zA-Z_][a-zA-Z_0-9]*/.test(hash.token) && nonReserved.indexOf(hash.token) > -1) { + return + } + throw new SyntaxError(str) +} +/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ + +EOF:1, + +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, + +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + + this._input = this._input.slice(1); + return ch; + }, + +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, + +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + + } + return this; + }, + +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, + +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, + +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, + +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function (match, indexed_rule) { + var token, + lines, + backup; + + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; + } + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, + +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. + } else { + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + +// return next match that has a token +lex:function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin(condition) { + this.conditionStack.push(condition); + }, + +// pop the previously active lexer condition state off the condition stack +popState:function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + +// alias for begin(condition) +pushState:function pushState(condition) { + this.begin(condition); + }, + +// return the number of states currently on the stack +stateStackSize:function stateStackSize() { + return this.conditionStack.length; + }, +options: {"case-insensitive":true}, +performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { +var YYSTATE=YY_START; +switch($avoiding_name_collisions) { +case 0:return 266 +break; +case 1:return 302 +break; +case 2:return 420 +break; +case 3:return 299 +break; +case 4:return 5 +break; +case 5:return 5 +break; +case 6:return 296 +break; +case 7:return 296 +break; +case 8:return 132 +break; +case 9:return 132 +break; +case 10:return /* its a COMMENT */ +break; +case 11:/* skip whitespace */ +break; +case 12:return 316 +break; +case 13:return 319 +break; +case 14:yy_.yytext = 'VALUE';return 89 +break; +case 15:yy_.yytext = 'VALUE';return 189 +break; +case 16:yy_.yytext = 'ROW';return 189 +break; +case 17:yy_.yytext = 'COLUMN';return 189 +break; +case 18:yy_.yytext = 'MATRIX';return 189 +break; +case 19:yy_.yytext = 'INDEX';return 189 +break; +case 20:yy_.yytext = 'RECORDSET';return 189 +break; +case 21:yy_.yytext = 'TEXT';return 189 +break; +case 22:yy_.yytext = 'SELECT';return 189 +break; +case 23:return 520 +break; +case 24:return 381 +break; +case 25:return 402 +break; +case 26:return 515 +break; +case 27:return 287 +break; +case 28:return 269 +break; +case 29:return 269 +break; +case 30:return 164 +break; +case 31:return 400 +break; +case 32:return 170 +break; +case 33:return 229 +break; +case 34:return 166 +break; +case 35:return 207 +break; +case 36:return 288 +break; +case 37:return 76 +break; +case 38:return 418 +break; +case 39:return 242 +break; +case 40:return 404 +break; +case 41:return 356 +break; +case 42:return 284 +break; +case 43:return 514 +break; +case 44:return 437 +break; +case 45:return 330 +break; +case 46:return 441 +break; +case 47:return 331 +break; +case 48:return 315 +break; +case 49:return 119 +break; +case 50:return 112 +break; +case 51:return 315 +break; +case 52:return 112 +break; +case 53:return 315 +break; +case 54:return 112 +break; +case 55:return 315 +break; +case 56:return 508 +break; +case 57:return 303 +break; +case 58:return 271 +break; +case 59:return 368 +break; +case 60:return 130 +break; +case 61:return 'CLOSE' +break; +case 62:return 243 +break; +case 63:return 190 +break; +case 64:return 190 +break; +case 65:return 434 +break; +case 66:return 367 +break; +case 67:return 470 +break; +case 68:return 440 +break; +case 69:return 273 +break; +case 70:return 240 +break; +case 71:return 281 +break; +case 72:return 267 +break; +case 73:return 206 +break; +case 74:return 238 +break; +case 75:return 265 +break; +case 76:return 'CURSOR' +break; +case 77:return 405 +break; +case 78:return 291 +break; +case 79:return 292 +break; +case 80:return 448 +break; +case 81:return 343 +break; +case 82:return 338 +break; +case 83:return 'DELETED' +break; +case 84:return 242 +break; +case 85:return 406 +break; +case 86:return 185 +break; +case 87:return 396 +break; +case 88:return 447 +break; +case 89:return 135 +break; +case 90:return 306 +break; +case 91:return 389 +break; +case 92:return 310 +break; +case 93:return 314 +break; +case 94:return 169 +break; +case 95:return 508 +break; +case 96:return 508 +break; +case 97:return 298 +break; +case 98:return 14 +break; +case 99:return 295 +break; +case 100:return 249 +break; +case 101:return 285 +break; +case 102:return 95 +break; +case 103:return 373 +break; +case 104:return 183 +break; +case 105:return 227 +break; +case 106:return 268 +break; +case 107:return 313 +break; +case 108:return 602 +break; +case 109:return 472 +break; +case 110:return 232 +break; +case 111:return 236 +break; +case 112:return 239 +break; +case 113:return 156 +break; +case 114:return 356 +break; +case 115:return 332 +break; +case 116:return 99 +break; +case 117:return 193 +break; +case 118:return 212 +break; +case 119:return 224 +break; +case 120:return 516 +break; +case 121:return 339 +break; +case 122:return 213 +break; +case 123:return 168 +break; +case 124:return 293 +break; +case 125:return 198 +break; +case 126:return 223 +break; +case 127:return 370 +break; +case 128:return 286 +break; +case 129:return 'LET' +break; +case 130:return 225 +break; +case 131:return 112 +break; +case 132:return 245 +break; +case 133:return 460 +break; +case 134:return 191 +break; +case 135:return 283 +break; +case 136:return 390 +break; +case 137:return 282 +break; +case 138:return 452 +break; +case 139:return 169 +break; +case 140:return 403 +break; +case 141:return 222 +break; +case 142:return 645 +break; +case 143:return 270 +break; +case 144:return 244 +break; +case 145:return 380 +break; +case 146:return 154 +break; +case 147:return 297 +break; +case 148:return 433 +break; +case 149:return 230 +break; +case 150:return 415 +break; +case 151:return 129 +break; +case 152:return 247 +break; +case 153:return 'OPEN' +break; +case 154:return 416 +break; +case 155:return 171 +break; +case 156:return 118 +break; +case 157:return 208 +break; +case 158:return 276 +break; +case 159:return 172 +break; +case 160:return 279 +break; +case 161:return 765 +break; +case 162:return 93 +break; +case 163:return 16 +break; +case 164:return 369 +break; +case 165:return 442 +break; +case 166:return 678 +break; +case 167:return 15 +break; +case 168:return 414 +break; +case 169:return 194 +break; +case 170:return 'REDUCE' +break; +case 171:return 374 +break; +case 172:return 311 +break; +case 173:return 517 +break; +case 174:return 682 +break; +case 175:return 107 +break; +case 176:return 401 +break; +case 177:return 175 +break; +case 178:return 290 +break; +case 179:return 443 +break; +case 180:return 687 +break; +case 181:return 173 +break; +case 182:return 173 +break; +case 183:return 226 +break; +case 184:return 436 +break; +case 185:return 237 +break; +case 186:return 150 +break; +case 187:return 766 +break; +case 188:return 405 +break; +case 189:return 89 +break; +case 190:return 228 +break; +case 191:return 146 +break; +case 192:return 146 +break; +case 193:return 409 +break; +case 194:return 334 +break; +case 195:return 417 +break; +case 196:return 'STRATEGY' +break; +case 197:return 'STORE' +break; +case 198:return 280 +break; +case 199:return 353 +break; +case 200:return 353 +break; +case 201:return 463 +break; +case 202:return 357 +break; +case 203:return 357 +break; +case 204:return 192 +break; +case 205:return 309 +break; +case 206:return 'TIMEOUT' +break; +case 207:return 148 +break; +case 208:return 195 +break; +case 209:return 435 +break; +case 210:return 435 +break; +case 211:return 509 +break; +case 212:return 294 +break; +case 213:return 451 +break; +case 214:return 162 +break; +case 215:return 187 +break; +case 216:return 98 +break; +case 217:return 335 +break; +case 218:return 408 +break; +case 219:return 231 +break; +case 220:return 149 +break; +case 221:return 344 +break; +case 222:return 134 +break; +case 223:return 410 +break; +case 224:return 308 +break; +case 225:return 128 +break; +case 226:return 439 +break; +case 227:return 72 +break; +case 228:return 435 /* Is this keyword required? */ +break; +case 229:return 131 +break; +case 230:return 131 +break; +case 231:return 115 +break; +case 232:return 137 +break; +case 233:return 179 +break; +case 234:return 317 +break; +case 235:return 180 +break; +case 236:return 133 +break; +case 237:return 138 +break; +case 238:return 326 +break; +case 239:return 323 +break; +case 240:return 325 +break; +case 241:return 322 +break; +case 242:return 320 +break; +case 243:return 318 +break; +case 244:return 319 +break; +case 245:return 142 +break; +case 246:return 141 +break; +case 247:return 139 +break; +case 248:return 321 +break; +case 249:return 324 +break; +case 250:return 140 +break; +case 251:return 124 +break; +case 252:return 324 +break; +case 253:return 77 +break; +case 254:return 78 +break; +case 255:return 145 +break; +case 256:return 424 +break; +case 257:return 426 +break; +case 258:return 300 +break; +case 259:return 505 +break; +case 260:return 507 +break; +case 261:return 122 +break; +case 262:return 116 +break; +case 263:return 74 +break; +case 264:return 333 +break; +case 265:return 152 +break; +case 266:return 764 +break; +case 267:return 143 +break; +case 268:return 181 +break; +case 269:return 136 +break; +case 270:return 123 +break; +case 271:return 312 +break; +case 272:return 4 +break; +case 273:return 10 +break; +case 274:return 'INVALID' +break; +} +}, +rules: [/^(?:``([^\`])+``)/i,/^(?:\[\?\])/i,/^(?:@\[)/i,/^(?:ARRAY\[)/i,/^(?:\[([^\]])*?\])/i,/^(?:`([^\`])*?`)/i,/^(?:N(['](\\.|[^']|\\')*?['])+)/i,/^(?:X(['](\\.|[^']|\\')*?['])+)/i,/^(?:(['](\\.|[^']|\\')*?['])+)/i,/^(?:(["](\\.|[^"]|\\")*?["])+)/i,/^(?:--(.*?)($|\r\n|\r|\n))/i,/^(?:\s+)/i,/^(?:\|\|)/i,/^(?:\|)/i,/^(?:VALUE\s+OF\s+SEARCH\b)/i,/^(?:VALUE\s+OF\s+SELECT\b)/i,/^(?:ROW\s+OF\s+SELECT\b)/i,/^(?:COLUMN\s+OF\s+SELECT\b)/i,/^(?:MATRIX\s+OF\s+SELECT\b)/i,/^(?:INDEX\s+OF\s+SELECT\b)/i,/^(?:RECORDSET\s+OF\s+SELECT\b)/i,/^(?:TEXT\s+OF\s+SELECT\b)/i,/^(?:SELECT\b)/i,/^(?:ABSOLUTE\b)/i,/^(?:ACTION\b)/i,/^(?:ADD\b)/i,/^(?:AFTER\b)/i,/^(?:AGGR\b)/i,/^(?:AGGREGATE\b)/i,/^(?:AGGREGATOR\b)/i,/^(?:ALL\b)/i,/^(?:ALTER\b)/i,/^(?:AND\b)/i,/^(?:ANTI\b)/i,/^(?:ANY\b)/i,/^(?:APPLY\b)/i,/^(?:ARRAY\b)/i,/^(?:AS\b)/i,/^(?:ASSERT\b)/i,/^(?:ASC\b)/i,/^(?:ATTACH\b)/i,/^(?:AUTO(_)?INCREMENT\b)/i,/^(?:AVG\b)/i,/^(?:BEFORE\b)/i,/^(?:BEGIN\b)/i,/^(?:BETWEEN\b)/i,/^(?:BREAK\b)/i,/^(?:NOT\s+BETWEEN\b)/i,/^(?:NOT\s+LIKE\b)/i,/^(?:BY\b)/i,/^(?:~~\*)/i,/^(?:!~~\*)/i,/^(?:~~)/i,/^(?:!~~)/i,/^(?:ILIKE\b)/i,/^(?:NOT\s+ILIKE\b)/i,/^(?:CALL\b)/i,/^(?:CASE\b)/i,/^(?:CAST\b)/i,/^(?:CHECK\b)/i,/^(?:CLASS\b)/i,/^(?:CLOSE\b)/i,/^(?:COLLATE\b)/i,/^(?:COLUMN\b)/i,/^(?:COLUMNS\b)/i,/^(?:COMMIT\b)/i,/^(?:CONSTRAINT\b)/i,/^(?:CONTENT\b)/i,/^(?:CONTINUE\b)/i,/^(?:CONVERT\b)/i,/^(?:CORRESPONDING\b)/i,/^(?:COUNT\b)/i,/^(?:CREATE\b)/i,/^(?:CROSS\b)/i,/^(?:CUBE\b)/i,/^(?:CURRENT_TIMESTAMP\b)/i,/^(?:CURSOR\b)/i,/^(?:DATABASE(S)?)/i,/^(?:DATEADD\b)/i,/^(?:DATEDIFF\b)/i,/^(?:DECLARE\b)/i,/^(?:DEFAULT\b)/i,/^(?:DELETE\b)/i,/^(?:DELETED\b)/i,/^(?:DESC\b)/i,/^(?:DETACH\b)/i,/^(?:DISTINCT\b)/i,/^(?:DROP\b)/i,/^(?:ECHO\b)/i,/^(?:EDGE\b)/i,/^(?:END\b)/i,/^(?:ENUM\b)/i,/^(?:ELSE\b)/i,/^(?:ESCAPE\b)/i,/^(?:EXCEPT\b)/i,/^(?:EXEC\b)/i,/^(?:EXECUTE\b)/i,/^(?:EXISTS\b)/i,/^(?:EXPLAIN\b)/i,/^(?:FALSE\b)/i,/^(?:FETCH\b)/i,/^(?:FIRST\b)/i,/^(?:FOR\b)/i,/^(?:FOREIGN\b)/i,/^(?:FROM\b)/i,/^(?:FULL\b)/i,/^(?:FUNCTION\b)/i,/^(?:GLOB\b)/i,/^(?:GO\b)/i,/^(?:GRAPH\b)/i,/^(?:GROUP\b)/i,/^(?:GROUPING\b)/i,/^(?:HAVING\b)/i,/^(?:IF\b)/i,/^(?:IDENTITY\b)/i,/^(?:IS\b)/i,/^(?:IN\b)/i,/^(?:INDEX\b)/i,/^(?:INDEXED\b)/i,/^(?:INNER\b)/i,/^(?:INSTEAD\b)/i,/^(?:INSERT\b)/i,/^(?:INSERTED\b)/i,/^(?:INTERSECT\b)/i,/^(?:INTERVAL\b)/i,/^(?:INTO\b)/i,/^(?:JOIN\b)/i,/^(?:KEY\b)/i,/^(?:LAST\b)/i,/^(?:LET\b)/i,/^(?:LEFT\b)/i,/^(?:LIKE\b)/i,/^(?:LIMIT\b)/i,/^(?:MATCHED\b)/i,/^(?:MATRIX\b)/i,/^(?:MAX(\s+)?(?=\())/i,/^(?:MAX(\s+)?(?=(,|\))))/i,/^(?:MIN(\s+)?(?=\())/i,/^(?:MERGE\b)/i,/^(?:MINUS\b)/i,/^(?:MODIFY\b)/i,/^(?:NATURAL\b)/i,/^(?:NEXT\b)/i,/^(?:NEW\b)/i,/^(?:NOCASE\b)/i,/^(?:NO\b)/i,/^(?:NOT\b)/i,/^(?:NULL\b)/i,/^(?:OFF\b)/i,/^(?:ON\b)/i,/^(?:ONLY\b)/i,/^(?:OF\b)/i,/^(?:OFFSET\b)/i,/^(?:OPEN\b)/i,/^(?:OPTION\b)/i,/^(?:OR\b)/i,/^(?:ORDER\b)/i,/^(?:OUTER\b)/i,/^(?:OVER\b)/i,/^(?:PATH\b)/i,/^(?:PARTITION\b)/i,/^(?:PERCENT\b)/i,/^(?:PIVOT\b)/i,/^(?:PLAN\b)/i,/^(?:PRIMARY\b)/i,/^(?:PRINT\b)/i,/^(?:PRIOR\b)/i,/^(?:QUERY\b)/i,/^(?:READ\b)/i,/^(?:RECORDSET\b)/i,/^(?:REDUCE\b)/i,/^(?:REFERENCES\b)/i,/^(?:REGEXP\b)/i,/^(?:REINDEX\b)/i,/^(?:RELATIVE\b)/i,/^(?:REMOVE\b)/i,/^(?:RENAME\b)/i,/^(?:REPEAT\b)/i,/^(?:REPLACE\b)/i,/^(?:REQUIRE\b)/i,/^(?:RESTORE\b)/i,/^(?:RETURN\b)/i,/^(?:RETURNS\b)/i,/^(?:RIGHT\b)/i,/^(?:ROLLBACK\b)/i,/^(?:ROLLUP\b)/i,/^(?:ROW\b)/i,/^(?:ROWS\b)/i,/^(?:SCHEMA(S)?)/i,/^(?:SEARCH\b)/i,/^(?:SEMI\b)/i,/^(?:SET\b)/i,/^(?:SETS\b)/i,/^(?:SHOW\b)/i,/^(?:SOME\b)/i,/^(?:SOURCE\b)/i,/^(?:STRATEGY\b)/i,/^(?:STORE\b)/i,/^(?:SUM\b)/i,/^(?:TABLE\b)/i,/^(?:TABLES\b)/i,/^(?:TARGET\b)/i,/^(?:TEMP\b)/i,/^(?:TEMPORARY\b)/i,/^(?:TEXTSTRING\b)/i,/^(?:THEN\b)/i,/^(?:TIMEOUT\b)/i,/^(?:TO\b)/i,/^(?:TOP\b)/i,/^(?:TRAN\b)/i,/^(?:TRANSACTION\b)/i,/^(?:TRIGGER\b)/i,/^(?:TRUE\b)/i,/^(?:TRUNCATE\b)/i,/^(?:UNION\b)/i,/^(?:UNIQUE\b)/i,/^(?:UNPIVOT\b)/i,/^(?:UPDATE\b)/i,/^(?:USE\b)/i,/^(?:USING\b)/i,/^(?:VALUE\b)/i,/^(?:VALUES\b)/i,/^(?:VERTEX\b)/i,/^(?:VIEW\b)/i,/^(?:WHEN\b)/i,/^(?:WHERE\b)/i,/^(?:WHILE\b)/i,/^(?:WITH\b)/i,/^(?:WORK\b)/i,/^(?:(\d*[.])?\d+[eE]\d+)/i,/^(?:(\d*[.])?\d+)/i,/^(?:->)/i,/^(?:#)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?::-)/i,/^(?:\?-)/i,/^(?:\.\.)/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:!)/i,/^(?:\^)/i,/^(?:~)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); + +if (typeof require !== 'undefined' && typeof exports !== 'undefined') { +exports.parser = alasqlparser; +exports.Parser = alasqlparser.Parser; +exports.parse = function () { return alasqlparser.parse.apply(alasqlparser, arguments); }; +exports.main = function commonjsMain(args) { + if (!args[1]) { + console.log('Usage: '+args[0]+' FILE'); + process.exit(1); + } + var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); + return exports.parser.parse(source); +}; +if (typeof module !== 'undefined' && require.main === module) { + exports.main(process.argv.slice(1)); +} } -/** - 12prettyflag.js - prettify - @todo move this functionality to plugin -*/ - -/** - Pretty flag - nice HTML output or standard text without any tags - @type {boolean} -*/ - -alasql.prettyflag = false; - -/** - Pretty output of SQL functions - @function - @param {string} sql SQL statement - @param {boolean} flag value - @return {string} HTML or text string with pretty output -*/ -alasql.pretty = function(sql, flag) { - var pf = alasql.prettyflag; - alasql.prettyflag = !flag; - var s = alasql.parse(sql).toString(); - alasql.prettyflag = pf; - return s; -}; +/** + 12prettyflag.js - prettify + @todo move this functionality to plugin +*/ + +/** + Pretty flag - nice HTML output or standard text without any tags + @type {boolean} +*/ + +alasql.prettyflag = false; + +/** + Pretty output of SQL functions + @function + @param {string} sql SQL statement + @param {boolean} flag value + @return {string} HTML or text string with pretty output +*/ + +alasql.pretty = function(sql, flag) { + var pf = alasql.prettyflag; + alasql.prettyflag = !flag; + var s = alasql.parse(sql).toString(); + alasql.prettyflag = pf; + return s; +}; /*jshint unused:false*/ /* @@ -4141,13 +4142,13 @@ if (!Array.isArray) { */ var xlsnc = (utils.xlsnc = function(i) { - var addr = String.fromCharCode(65 + i % 26); + var addr = String.fromCharCode(65 + (i % 26)); if (i >= 26) { i = ((i / 26) | 0) - 1; - addr = String.fromCharCode(65 + i % 26) + addr; + addr = String.fromCharCode(65 + (i % 26)) + addr; if (i > 26) { i = ((i / 26) | 0) - 1; - addr = String.fromCharCode(65 + i % 26) + addr; + addr = String.fromCharCode(65 + (i % 26)) + addr; } } return addr; @@ -4312,90 +4313,90 @@ var getXLSX = function() { // set AlaSQl path alasql.path = alasql.utils.findAlaSQLPath(); -/** - Strip all comments. - @function - @param {string} str - @return {string} - Based om the https://github.com/lehni/uncomment.js/blob/master/uncomment.js - I just replaced JavaScript's '//' to SQL's '--' and remove other stuff - - @todo Fixed [aaa/*bbb] for column names - @todo Bug if -- comments in the last line - @todo Check if it possible to model it with Jison parser - @todo Remove unused code - */ - -/* global alasql */ - -alasql.utils.uncomment = function(str) { - // Add some padding so we can always look ahead and behind by two chars - str = ('__' + str + '__').split(''); - var quote = false, - quoteSign, - // regularExpression = false, - // characterClass = false, - blockComment = false, - lineComment = false; - // preserveComment = false; - - for (var i = 0, l = str.length; i < l; i++) { - - // When checking for quote escaping, we also need to check that the - // escape sign itself is not escaped, as otherwise '\\' would cause - // the wrong impression of an unclosed string: - var unescaped = str[i - 1] !== '\\' || str[i - 2] === '\\'; - - if (quote) { - if (str[i] === quoteSign && unescaped) { - quote = false; - } - - } else if (blockComment) { - // Is the block comment closing? - if (str[i] === '*' && str[i + 1] === '/') { - // if (!preserveComment) - str[i] = str[i + 1] = ''; - blockComment /* = preserveComment*/ = false; - // Increase by 1 to skip closing '/', as it would be mistaken - // for a regexp otherwise - i++; - } else { - //if (!preserveComment) { - str[i] = ''; - } - } else if (lineComment) { - // One-line comments end with the line-break - if (str[i + 1] === '\n' || str[i + 1] === '\r') { - lineComment = false; - } - str[i] = ''; - } else { - if (str[i] === '"' || str[i] === "'") { - quote = true; - quoteSign = str[i]; - } else if (str[i] === '[' && str[i - 1] !== '@') { - quote = true; - quoteSign = ']'; - // } else if (str[i] === '-' && str[i + 1] === '-') { - // str[i] = ''; - // lineComment = true; - } else if (str[i] === '/' && str[i + 1] === '*') { - // Do not filter out conditional comments /*@ ... */ - // and comments marked as protected /*! ... */ - // preserveComment = /[@!]/.test(str[i + 2]); - // if (!preserveComment) - str[i] = ''; - blockComment = true; - - } - } - } - // Remove padding again. - str = str.join('').slice(2, -2); - - return str; -}; +/** + Strip all comments. + @function + @param {string} str + @return {string} + Based om the https://github.com/lehni/uncomment.js/blob/master/uncomment.js + I just replaced JavaScript's '//' to SQL's '--' and remove other stuff + + @todo Fixed [aaa/*bbb] for column names + @todo Bug if -- comments in the last line + @todo Check if it possible to model it with Jison parser + @todo Remove unused code + */ + +/* global alasql */ + +alasql.utils.uncomment = function(str) { + // Add some padding so we can always look ahead and behind by two chars + str = ('__' + str + '__').split(''); + var quote = false, + quoteSign, + // regularExpression = false, + // characterClass = false, + blockComment = false, + lineComment = false; + // preserveComment = false; + + for (var i = 0, l = str.length; i < l; i++) { + + // When checking for quote escaping, we also need to check that the + // escape sign itself is not escaped, as otherwise '\\' would cause + // the wrong impression of an unclosed string: + var unescaped = str[i - 1] !== '\\' || str[i - 2] === '\\'; + + if (quote) { + if (str[i] === quoteSign && unescaped) { + quote = false; + } + + } else if (blockComment) { + // Is the block comment closing? + if (str[i] === '*' && str[i + 1] === '/') { + // if (!preserveComment) + str[i] = str[i + 1] = ''; + blockComment /* = preserveComment*/ = false; + // Increase by 1 to skip closing '/', as it would be mistaken + // for a regexp otherwise + i++; + } else { + //if (!preserveComment) { + str[i] = ''; + } + } else if (lineComment) { + // One-line comments end with the line-break + if (str[i + 1] === '\n' || str[i + 1] === '\r') { + lineComment = false; + } + str[i] = ''; + } else { + if (str[i] === '"' || str[i] === "'") { + quote = true; + quoteSign = str[i]; + } else if (str[i] === '[' && str[i - 1] !== '@') { + quote = true; + quoteSign = ']'; + // } else if (str[i] === '-' && str[i + 1] === '-') { + // str[i] = ''; + // lineComment = true; + } else if (str[i] === '/' && str[i + 1] === '*') { + // Do not filter out conditional comments /*@ ... */ + // and comments marked as protected /*! ... */ + // preserveComment = /[@!]/.test(str[i + 2]); + // if (!preserveComment) + str[i] = ''; + blockComment = true; + + } + } + } + // Remove padding again. + str = str.join('').slice(2, -2); + + return str; +}; /** Database class for Alasql.js @@ -4785,621 +4786,631 @@ alasql.compile = function(sql, databaseid) { } }; -// -// Promises for AlaSQL -// +// +// Promises for AlaSQL +// + +if (!utils.global.Promise) { + if (utils.isNode) { + //*not-for-browser/* + utils.global.Promise = require('es6-promise').Promise; + //*/ + } else { + /*! + * @overview es6-promise - a tiny implementation of Promises/A+. + * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) + * @license Licensed under MIT license + * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE + * @version 3.2.1 + */ + (function() { + 'use strict'; + function t(t) { + return 'function' == typeof t || ('object' == typeof t && null !== t); + } + function e(t) { + return 'function' == typeof t; + } + function n(t) { + G = t; + } + function r(t) { + Q = t; + } + function o() { + return function() { + process.nextTick(a); + }; + } + function i() { + return function() { + B(a); + }; + } + function s() { + var t = 0, + e = new X(a), + n = document.createTextNode(''); + return ( + e.observe(n, {characterData: !0}), + function() { + n.data = t = ++t % 2; + } + ); + } + function u() { + var t = new MessageChannel(); + return ( + (t.port1.onmessage = a), + function() { + t.port2.postMessage(0); + } + ); + } + function c() { + return function() { + setTimeout(a, 1); + }; + } + function a() { + for (var t = 0; J > t; t += 2) { + var e = tt[t], + n = tt[t + 1]; + e(n), (tt[t] = void 0), (tt[t + 1] = void 0); + } + J = 0; + } + function f() { + try { + var t = require, + e = t('vertx'); + return (B = e.runOnLoop || e.runOnContext), i(); + } catch (n) { + return c(); + } + } + function l(t, e) { + var n = this, + r = new this.constructor(p); + void 0 === r[rt] && k(r); + var o = n._state; + if (o) { + var i = arguments[o - 1]; + Q(function() { + x(o, r, i, n._result); + }); + } else E(n, r, t, e); + return r; + } + function h(t) { + var e = this; + if (t && 'object' == typeof t && t.constructor === e) return t; + var n = new e(p); + return g(n, t), n; + } + function p() {} + function _() { + return new TypeError('You cannot resolve a promise with itself'); + } + function d() { + return new TypeError('A promises callback cannot return that same promise.'); + } + function v(t) { + try { + return t.then; + } catch (e) { + return (ut.error = e), ut; + } + } + function y(t, e, n, r) { + try { + t.call(e, n, r); + } catch (o) { + return o; + } + } + function m(t, e, n) { + Q(function(t) { + var r = !1, + o = y( + n, + e, + function(n) { + r || ((r = !0), e !== n ? g(t, n) : S(t, n)); + }, + function(e) { + r || ((r = !0), j(t, e)); + }, + 'Settle: ' + (t._label || ' unknown promise') + ); + !r && o && ((r = !0), j(t, o)); + }, t); + } + function b(t, e) { + e._state === it + ? S(t, e._result) + : e._state === st + ? j(t, e._result) + : E( + e, + void 0, + function(e) { + g(t, e); + }, + function(e) { + j(t, e); + } + ); + } + function w(t, n, r) { + n.constructor === t.constructor && r === et && constructor.resolve === nt + ? b(t, n) + : r === ut + ? j(t, ut.error) + : void 0 === r + ? S(t, n) + : e(r) + ? m(t, n, r) + : S(t, n); + } + function g(e, n) { + e === n ? j(e, _()) : t(n) ? w(e, n, v(n)) : S(e, n); + } + function A(t) { + t._onerror && t._onerror(t._result), T(t); + } + function S(t, e) { + t._state === ot && + ((t._result = e), (t._state = it), 0 !== t._subscribers.length && Q(T, t)); + } + function j(t, e) { + t._state === ot && ((t._state = st), (t._result = e), Q(A, t)); + } + function E(t, e, n, r) { + var o = t._subscribers, + i = o.length; + (t._onerror = null), + (o[i] = e), + (o[i + it] = n), + (o[i + st] = r), + 0 === i && t._state && Q(T, t); + } + function T(t) { + var e = t._subscribers, + n = t._state; + if (0 !== e.length) { + for (var r, o, i = t._result, s = 0; s < e.length; s += 3) + (r = e[s]), (o = e[s + n]), r ? x(n, r, o, i) : o(i); + t._subscribers.length = 0; + } + } + function M() { + this.error = null; + } + function P(t, e) { + try { + return t(e); + } catch (n) { + return (ct.error = n), ct; + } + } + function x(t, n, r, o) { + var i, + s, + u, + c, + a = e(r); + if (a) { + if ( + ((i = P(r, o)), + i === ct ? ((c = !0), (s = i.error), (i = null)) : (u = !0), + n === i) + ) + return void j(n, d()); + } else (i = o), (u = !0); + n._state !== ot || + (a && u ? g(n, i) : c ? j(n, s) : t === it ? S(n, i) : t === st && j(n, i)); + } + function C(t, e) { + try { + e( + function(e) { + g(t, e); + }, + function(e) { + j(t, e); + } + ); + } catch (n) { + j(t, n); + } + } + function O() { + return at++; + } + function k(t) { + (t[rt] = at++), (t._state = void 0), (t._result = void 0), (t._subscribers = []); + } + function Y(t) { + return new _t(this, t).promise; + } + function q(t) { + var e = this; + return new e( + I(t) + ? function(n, r) { + for (var o = t.length, i = 0; o > i; i++) + e.resolve(t[i]).then(n, r); + } + : function(t, e) { + e(new TypeError('You must pass an array to race.')); + } + ); + } + function F(t) { + var e = this, + n = new e(p); + return j(n, t), n; + } + function D() { + throw new TypeError( + 'You must pass a resolver function as the first argument to the promise constructor' + ); + } + function K() { + throw new TypeError( + "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function." + ); + } + function L(t) { + (this[rt] = O()), + (this._result = this._state = void 0), + (this._subscribers = []), + p !== t && + ('function' != typeof t && D(), this instanceof L ? C(this, t) : K()); + } + function N(t, e) { + (this._instanceConstructor = t), + (this.promise = new t(p)), + this.promise[rt] || k(this.promise), + Array.isArray(e) + ? ((this._input = e), + (this.length = e.length), + (this._remaining = e.length), + (this._result = new Array(this.length)), + 0 === this.length + ? S(this.promise, this._result) + : ((this.length = this.length || 0), + this._enumerate(), + 0 === this._remaining && S(this.promise, this._result))) + : j(this.promise, U()); + } + function U() { + return new Error('Array Methods must be provided an Array'); + } + function W() { + var t; + if ('undefined' != typeof global) t = global; + else if ('undefined' != typeof self) t = self; + else + try { + t = Function('return this')(); + } catch (e) { + throw new Error( + 'polyfill failed because global object is unavailable in this environment' + ); + } + var n = t.Promise; + (!n || + '[object Promise]' !== Object.prototype.toString.call(n.resolve()) || + n.cast) && + (t.Promise = pt); + } + var z; + z = Array.isArray + ? Array.isArray + : function(t) { + return '[object Array]' === Object.prototype.toString.call(t); + }; + var B, + G, + H, + I = z, + J = 0, + Q = function(t, e) { + (tt[J] = t), (tt[J + 1] = e), (J += 2), 2 === J && (G ? G(a) : H()); + }, + R = 'undefined' != typeof window ? window : void 0, + V = R || {}, + X = V.MutationObserver || V.WebKitMutationObserver, + Z = + 'undefined' == typeof self && + 'undefined' != typeof process && + '[object process]' === {}.toString.call(process), + $ = + 'undefined' != typeof Uint8ClampedArray && + 'undefined' != typeof importScripts && + 'undefined' != typeof MessageChannel, + tt = new Array(1e3); + H = Z + ? o() + : X + ? s() + : $ + ? u() + : void 0 === R && 'function' == typeof require + ? f() + : c(); + var et = l, + nt = h, + rt = Math.random() + .toString(36) + .substring(16), + ot = void 0, + it = 1, + st = 2, + ut = new M(), + ct = new M(), + at = 0, + ft = Y, + lt = q, + ht = F, + pt = L; + (L.all = ft), + (L.race = lt), + (L.resolve = nt), + (L.reject = ht), + (L._setScheduler = n), + (L._setAsap = r), + (L._asap = Q), + (L.prototype = { + constructor: L, + then: et, + catch: function(t) { + return this.then(null, t); + }, + }); + var _t = N; + (N.prototype._enumerate = function() { + for (var t = this.length, e = this._input, n = 0; this._state === ot && t > n; n++) + this._eachEntry(e[n], n); + }), + (N.prototype._eachEntry = function(t, e) { + var n = this._instanceConstructor, + r = n.resolve; + if (r === nt) { + var o = v(t); + if (o === et && t._state !== ot) this._settledAt(t._state, e, t._result); + else if ('function' != typeof o) this._remaining--, (this._result[e] = t); + else if (n === pt) { + var i = new n(p); + w(i, t, o), this._willSettleAt(i, e); + } else + this._willSettleAt( + new n(function(e) { + e(t); + }), + e + ); + } else this._willSettleAt(r(t), e); + }), + (N.prototype._settledAt = function(t, e, n) { + var r = this.promise; + r._state === ot && + (this._remaining--, t === st ? j(r, n) : (this._result[e] = n)), + 0 === this._remaining && S(r, this._result); + }), + (N.prototype._willSettleAt = function(t, e) { + var n = this; + E( + t, + void 0, + function(t) { + n._settledAt(it, e, t); + }, + function(t) { + n._settledAt(st, e, t); + } + ); + }); + var dt = W, + vt = {Promise: pt, polyfill: dt}; + 'function' == typeof define && define.amd + ? define(function() { + return vt; + }) + : 'undefined' != typeof module && module.exports + ? (module.exports = vt) + : 'undefined' != typeof this && (this.ES6Promise = vt), + dt(); + }.call(this)); + + } +} -if (!utils.global.Promise) { - if (utils.isNode) { - //*not-for-browser/* - utils.global.Promise = require('es6-promise').Promise; - //*/ - } else { - /*! - * @overview es6-promise - a tiny implementation of Promises/A+. - * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) - * @license Licensed under MIT license - * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE - * @version 3.2.1 - */ - (function() { - 'use strict'; - function t(t) { - return 'function' == typeof t || ('object' == typeof t && null !== t); - } - function e(t) { - return 'function' == typeof t; - } - function n(t) { - G = t; - } - function r(t) { - Q = t; - } - function o() { - return function() { - process.nextTick(a); - }; - } - function i() { - return function() { - B(a); - }; - } - function s() { - var t = 0, - e = new X(a), - n = document.createTextNode(''); - return ( - e.observe(n, {characterData: !0}), - function() { - n.data = t = ++t % 2; - } - ); - } - function u() { - var t = new MessageChannel(); - return ( - (t.port1.onmessage = a), - function() { - t.port2.postMessage(0); - } - ); - } - function c() { - return function() { - setTimeout(a, 1); - }; - } - function a() { - for (var t = 0; J > t; t += 2) { - var e = tt[t], - n = tt[t + 1]; - e(n), (tt[t] = void 0), (tt[t + 1] = void 0); - } - J = 0; - } - function f() { - try { - var t = require, - e = t('vertx'); - return (B = e.runOnLoop || e.runOnContext), i(); - } catch (n) { - return c(); - } - } - function l(t, e) { - var n = this, - r = new this.constructor(p); - void 0 === r[rt] && k(r); - var o = n._state; - if (o) { - var i = arguments[o - 1]; - Q(function() { - x(o, r, i, n._result); - }); - } else E(n, r, t, e); - return r; - } - function h(t) { - var e = this; - if (t && 'object' == typeof t && t.constructor === e) return t; - var n = new e(p); - return g(n, t), n; - } - function p() {} - function _() { - return new TypeError('You cannot resolve a promise with itself'); - } - function d() { - return new TypeError('A promises callback cannot return that same promise.'); - } - function v(t) { - try { - return t.then; - } catch (e) { - return (ut.error = e), ut; - } - } - function y(t, e, n, r) { - try { - t.call(e, n, r); - } catch (o) { - return o; - } - } - function m(t, e, n) { - Q(function(t) { - var r = !1, - o = y( - n, - e, - function(n) { - r || ((r = !0), e !== n ? g(t, n) : S(t, n)); - }, - function(e) { - r || ((r = !0), j(t, e)); - }, - 'Settle: ' + (t._label || ' unknown promise') - ); - !r && o && ((r = !0), j(t, o)); - }, t); - } - function b(t, e) { - e._state === it - ? S(t, e._result) - : e._state === st - ? j(t, e._result) - : E( - e, - void 0, - function(e) { - g(t, e); - }, - function(e) { - j(t, e); - } - ); - } - function w(t, n, r) { - n.constructor === t.constructor && r === et && constructor.resolve === nt - ? b(t, n) - : r === ut - ? j(t, ut.error) - : void 0 === r ? S(t, n) : e(r) ? m(t, n, r) : S(t, n); - } - function g(e, n) { - e === n ? j(e, _()) : t(n) ? w(e, n, v(n)) : S(e, n); - } - function A(t) { - t._onerror && t._onerror(t._result), T(t); - } - function S(t, e) { - t._state === ot && - ((t._result = e), (t._state = it), 0 !== t._subscribers.length && Q(T, t)); - } - function j(t, e) { - t._state === ot && ((t._state = st), (t._result = e), Q(A, t)); - } - function E(t, e, n, r) { - var o = t._subscribers, - i = o.length; - (t._onerror = null), - (o[i] = e), - (o[i + it] = n), - (o[i + st] = r), - 0 === i && t._state && Q(T, t); - } - function T(t) { - var e = t._subscribers, - n = t._state; - if (0 !== e.length) { - for (var r, o, i = t._result, s = 0; s < e.length; s += 3) - (r = e[s]), (o = e[s + n]), r ? x(n, r, o, i) : o(i); - t._subscribers.length = 0; - } - } - function M() { - this.error = null; - } - function P(t, e) { - try { - return t(e); - } catch (n) { - return (ct.error = n), ct; - } - } - function x(t, n, r, o) { - var i, - s, - u, - c, - a = e(r); - if (a) { - if ( - ((i = P(r, o)), - i === ct ? ((c = !0), (s = i.error), (i = null)) : (u = !0), - n === i) - ) - return void j(n, d()); - } else (i = o), (u = !0); - n._state !== ot || - (a && u ? g(n, i) : c ? j(n, s) : t === it ? S(n, i) : t === st && j(n, i)); - } - function C(t, e) { - try { - e( - function(e) { - g(t, e); - }, - function(e) { - j(t, e); - } - ); - } catch (n) { - j(t, n); - } - } - function O() { - return at++; - } - function k(t) { - (t[rt] = at++), (t._state = void 0), (t._result = void 0), (t._subscribers = []); - } - function Y(t) { - return new _t(this, t).promise; - } - function q(t) { - var e = this; - return new e( - I(t) - ? function(n, r) { - for (var o = t.length, i = 0; o > i; i++) - e.resolve(t[i]).then(n, r); - } - : function(t, e) { - e(new TypeError('You must pass an array to race.')); - } - ); - } - function F(t) { - var e = this, - n = new e(p); - return j(n, t), n; - } - function D() { - throw new TypeError( - 'You must pass a resolver function as the first argument to the promise constructor' - ); - } - function K() { - throw new TypeError( - "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function." - ); - } - function L(t) { - (this[rt] = O()), - (this._result = this._state = void 0), - (this._subscribers = []), - p !== t && - ('function' != typeof t && D(), this instanceof L ? C(this, t) : K()); - } - function N(t, e) { - (this._instanceConstructor = t), - (this.promise = new t(p)), - this.promise[rt] || k(this.promise), - Array.isArray(e) - ? ((this._input = e), - (this.length = e.length), - (this._remaining = e.length), - (this._result = new Array(this.length)), - 0 === this.length - ? S(this.promise, this._result) - : ((this.length = this.length || 0), - this._enumerate(), - 0 === this._remaining && S(this.promise, this._result))) - : j(this.promise, U()); - } - function U() { - return new Error('Array Methods must be provided an Array'); - } - function W() { - var t; - if ('undefined' != typeof global) t = global; - else if ('undefined' != typeof self) t = self; - else - try { - t = Function('return this')(); - } catch (e) { - throw new Error( - 'polyfill failed because global object is unavailable in this environment' - ); - } - var n = t.Promise; - (!n || - '[object Promise]' !== Object.prototype.toString.call(n.resolve()) || - n.cast) && - (t.Promise = pt); - } - var z; - z = Array.isArray - ? Array.isArray - : function(t) { - return '[object Array]' === Object.prototype.toString.call(t); - }; - var B, - G, - H, - I = z, - J = 0, - Q = function(t, e) { - (tt[J] = t), (tt[J + 1] = e), (J += 2), 2 === J && (G ? G(a) : H()); - }, - R = 'undefined' != typeof window ? window : void 0, - V = R || {}, - X = V.MutationObserver || V.WebKitMutationObserver, - Z = - 'undefined' == typeof self && - 'undefined' != typeof process && - '[object process]' === {}.toString.call(process), - $ = - 'undefined' != typeof Uint8ClampedArray && - 'undefined' != typeof importScripts && - 'undefined' != typeof MessageChannel, - tt = new Array(1e3); - H = Z - ? o() - : X ? s() : $ ? u() : void 0 === R && 'function' == typeof require ? f() : c(); - var et = l, - nt = h, - rt = Math.random() - .toString(36) - .substring(16), - ot = void 0, - it = 1, - st = 2, - ut = new M(), - ct = new M(), - at = 0, - ft = Y, - lt = q, - ht = F, - pt = L; - (L.all = ft), - (L.race = lt), - (L.resolve = nt), - (L.reject = ht), - (L._setScheduler = n), - (L._setAsap = r), - (L._asap = Q), - (L.prototype = { - constructor: L, - then: et, - catch: function(t) { - return this.then(null, t); - }, - }); - var _t = N; - (N.prototype._enumerate = function() { - for (var t = this.length, e = this._input, n = 0; this._state === ot && t > n; n++) - this._eachEntry(e[n], n); - }), - (N.prototype._eachEntry = function(t, e) { - var n = this._instanceConstructor, - r = n.resolve; - if (r === nt) { - var o = v(t); - if (o === et && t._state !== ot) this._settledAt(t._state, e, t._result); - else if ('function' != typeof o) this._remaining--, (this._result[e] = t); - else if (n === pt) { - var i = new n(p); - w(i, t, o), this._willSettleAt(i, e); - } else - this._willSettleAt( - new n(function(e) { - e(t); - }), - e - ); - } else this._willSettleAt(r(t), e); - }), - (N.prototype._settledAt = function(t, e, n) { - var r = this.promise; - r._state === ot && - (this._remaining--, t === st ? j(r, n) : (this._result[e] = n)), - 0 === this._remaining && S(r, this._result); - }), - (N.prototype._willSettleAt = function(t, e) { - var n = this; - E( - t, - void 0, - function(t) { - n._settledAt(it, e, t); - }, - function(t) { - n._settledAt(st, e, t); - } - ); - }); - var dt = W, - vt = {Promise: pt, polyfill: dt}; - 'function' == typeof define && define.amd - ? define(function() { - return vt; - }) - : 'undefined' != typeof module && module.exports - ? (module.exports = vt) - : 'undefined' != typeof this && (this.ES6Promise = vt), - dt(); - }.call(this)); +var promiseExec = function(sql, params, counterStep, counterTotal) { + return new utils.global.Promise(function(resolve, reject) { + alasql(sql, params, function(data, err) { + if (err) { + reject(err); + } else { + if (counterStep && counterTotal && alasql.options.progress !== false) { + alasql.options.progress(counterStep, counterTotal); + } + resolve(data); + } + }); + }); +}; + +var promiseAll = function(sqlParamsArray) { + if (sqlParamsArray.length < 1) { + return; + } + + var active, sql, params; + + var execArray = []; + + for (var i = 0; i < sqlParamsArray.length; i++) { + active = sqlParamsArray[i]; + + if (typeof active === 'string') { + active = [active]; + } + + if (!utils.isArray(active) || active.length < 1 || 2 < active.length) { + throw new Error('Error in .promise parameter'); + } + + sql = active[0]; + params = active[1] || undefined; + + execArray.push(promiseExec(sql, params, i, sqlParamsArray.length)); + } + + return utils.global.Promise.all(execArray); +}; + +alasql.promise = function(sql, params) { + if (typeof Promise === 'undefined') { + throw new Error('Please include a Promise/A+ library'); + } + + if (typeof sql === 'string') { + return promiseExec(sql, params); + } + + if (!utils.isArray(sql) || sql.length < 1 || typeof params !== 'undefined') { + throw new Error('Error in .promise parameters'); + } + return promiseAll(sql); +}; + +/* +// +// Database class for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +// Main Database class + +/** + @class Database + */ + +var Database = (alasql.Database = function(databaseid) { + var self = this; + + // self.prototype = this; + + if (self === alasql) { + if (databaseid) { + // if(alasql.databases[databaseid]) { + self = alasql.databases[databaseid]; + // } else { + alasql.databases[databaseid] = self; + // } + if (!self) { + throw new Error('Database "' + databaseid + '" not found'); + } + } else { + // Create new database (or get alasql?) + self = alasql.databases.alasql; + // For SQL Server examples, USE tempdb + if (alasql.options.tsql) { + alasql.databases.tempdb = alasql.databases.alasql; + } + // self = new Database(databaseid); // to call without new + } + } + if (!databaseid) { + databaseid = 'db' + alasql.databasenum++; // Random name + } + + // Step 1 + self.databaseid = databaseid; + alasql.databases[databaseid] = self; + self.dbversion = 0; + + //Steps 2-5 + self.tables = {}; + self.views = {}; + self.triggers = {}; + self.indices = {}; + + // Step 6: Objects storage + self.objects = {}; + self.counter = 0; + + self.resetSqlCache(); + return self; +}); + +/** + Reset SQL statements cache + */ + +Database.prototype.resetSqlCache = function() { + this.sqlCache = {}; // Cache for compiled SQL statements + this.sqlCacheSize = 0; +}; + +// Main SQL function + +/** + Run SQL statement on database + @param {string} sql SQL statement + @param [object] params Parameters + @param {function} cb callback + */ + +Database.prototype.exec = function(sql, params, cb) { + return alasql.dexec(this.databaseid, sql, params, cb); +}; + +Database.prototype.autoval = function(tablename, colname, getNext) { + return alasql.autoval(tablename, colname, getNext, this.databaseid); +}; + +// Aliases like MS SQL - } -} +/* +// +// Transactio class for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ -var promiseExec = function(sql, params, counterStep, counterTotal) { - return new utils.global.Promise(function(resolve, reject) { - alasql(sql, params, function(data, err) { - if (err) { - reject(err); - } else { - if (counterStep && counterTotal && alasql.options.progress !== false) { - alasql.options.progress(counterStep, counterTotal); - } - resolve(data); - } - }); - }); +Database.prototype.transaction = function(cb) { + var tx = new alasql.Transaction(this.databaseid); + var res = cb(tx); + return res; }; -var promiseAll = function(sqlParamsArray) { - if (sqlParamsArray.length < 1) { - return; - } +// Transaction class (for WebSQL compatibility) - var active, sql, params; +/** + Transaction class + @class Transaction + */ - var execArray = []; +var Transaction = (alasql.Transaction = function(databaseid) { + this.transactionid = Date.now(); + this.databaseid = databaseid; + this.commited = false; + this.dbversion = alasql.databases[databaseid].dbversion; + // this.bank = cloneDeep(alasql.databases[databaseid]); + this.bank = JSON.stringify(alasql.databases[databaseid]); + // TODO CLone Tables with insertfns - for (var i = 0; i < sqlParamsArray.length; i++) { - active = sqlParamsArray[i]; + return this; +}); - if (typeof active === 'string') { - active = [active]; - } - - if (!utils.isArray(active) || active.length < 1 || 2 < active.length) { - throw new Error('Error in .promise parameter'); - } - - sql = active[0]; - params = active[1] || undefined; - - execArray.push(promiseExec(sql, params, i, sqlParamsArray.length)); - } - - return utils.global.Promise.all(execArray); -}; - -alasql.promise = function(sql, params) { - if (typeof Promise === 'undefined') { - throw new Error('Please include a Promise/A+ library'); - } - - if (typeof sql === 'string') { - return promiseExec(sql, params); - } - - if (!utils.isArray(sql) || sql.length < 1 || typeof params !== 'undefined') { - throw new Error('Error in .promise parameters'); - } - return promiseAll(sql); -}; - -/* -// -// Database class for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -// Main Database class - -/** - @class Database - */ - -var Database = (alasql.Database = function(databaseid) { - var self = this; - - // self.prototype = this; - - if (self === alasql) { - if (databaseid) { - // if(alasql.databases[databaseid]) { - self = alasql.databases[databaseid]; - // } else { - alasql.databases[databaseid] = self; - // } - if (!self) { - throw new Error('Database "' + databaseid + '" not found'); - } - } else { - // Create new database (or get alasql?) - self = alasql.databases.alasql; - // For SQL Server examples, USE tempdb - if (alasql.options.tsql) { - alasql.databases.tempdb = alasql.databases.alasql; - } - // self = new Database(databaseid); // to call without new - } - } - if (!databaseid) { - databaseid = 'db' + alasql.databasenum++; // Random name - } - - // Step 1 - self.databaseid = databaseid; - alasql.databases[databaseid] = self; - self.dbversion = 0; - - //Steps 2-5 - self.tables = {}; - self.views = {}; - self.triggers = {}; - self.indices = {}; - - // Step 6: Objects storage - self.objects = {}; - self.counter = 0; - - self.resetSqlCache(); - return self; -}); - -/** - Reset SQL statements cache - */ - -Database.prototype.resetSqlCache = function() { - this.sqlCache = {}; // Cache for compiled SQL statements - this.sqlCacheSize = 0; -}; - -// Main SQL function - -/** - Run SQL statement on database - @param {string} sql SQL statement - @param [object] params Parameters - @param {function} cb callback - */ - -Database.prototype.exec = function(sql, params, cb) { - return alasql.dexec(this.databaseid, sql, params, cb); -}; - -Database.prototype.autoval = function(tablename, colname, getNext) { - return alasql.autoval(tablename, colname, getNext, this.databaseid); -}; - -// Aliases like MS SQL - -/* -// -// Transactio class for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -Database.prototype.transaction = function(cb) { - var tx = new alasql.Transaction(this.databaseid); - var res = cb(tx); - return res; -}; - -// Transaction class (for WebSQL compatibility) - -/** - Transaction class - @class Transaction - */ - -var Transaction = (alasql.Transaction = function(databaseid) { - this.transactionid = Date.now(); - this.databaseid = databaseid; - this.commited = false; - this.dbversion = alasql.databases[databaseid].dbversion; - // this.bank = cloneDeep(alasql.databases[databaseid]); - this.bank = JSON.stringify(alasql.databases[databaseid]); - // TODO CLone Tables with insertfns - - return this; -}); - -// Main class +// Main class // Commit @@ -7225,7 +7236,7 @@ function doLimit(query) { } var limit; if (query.percent) { - limit = ((query.data.length * query.limit / 100) | 0) + offset; + limit = (((query.data.length * query.limit) / 100) | 0) + offset; } else { limit = (query.limit | 0) + offset; } @@ -7321,8 +7332,7 @@ var preIndex = function(query) { // Save index to original table alasql.databases[source.databaseid].tables[source.tableid].indices[ hash(source.onrightfns + '`' + source.srcwherefns) - ] = - source.ix; + ] = source.ix; } } @@ -7372,8 +7382,7 @@ var preIndex = function(query) { if (!alasql.databases[source.databaseid].engineid) { alasql.databases[source.databaseid].tables[source.tableid].indices[ hash(source.wxleftfns + '`') - ] = - source.ix; + ] = source.ix; } } // Apply where filter to reduces rows @@ -7576,49 +7585,45 @@ function doJoin(query, scope, h) { // STEP 2 - if (h + 1 < query.sources.length) { - if ( - nextsource.joinmode == 'OUTER' || - nextsource.joinmode == 'RIGHT' || - nextsource.joinmode == 'ANTI' - ) { - scope[source.alias] = {}; - - var j = 0; - var jlen = nextsource.data.length; - var dataw; - - while ( - (dataw = nextsource.data[j]) || - (nextsource.getfn && (dataw = nextsource.getfn(j))) || - j < jlen + if (h == 0) { + for (var nh = h + 1; nh < query.sources.length; nh++) { + if ( + nextsource.joinmode == 'OUTER' || + nextsource.joinmode == 'RIGHT' || + nextsource.joinmode == 'ANTI' ) { - if (nextsource.getfn && !nextsource.dontcache) { - nextsource.data[j] = dataw; - } + scope[source.alias] = {}; - if (dataw._rightjoin) { - delete dataw._rightjoin; - } else { - // delete dataw._rightjoin; + var j = 0; + var jlen = nextsource.data.length; + var dataw; - if (h == 0) { - scope[nextsource.alias] = dataw; - doJoin(query, scope, h + 2); + while ( + (dataw = nextsource.data[j]) || + (nextsource.getfn && (dataw = nextsource.getfn(j))) || + j < jlen + ) { + if (nextsource.getfn && !nextsource.dontcache) { + nextsource.data[j] = dataw; + } + + if (dataw._rightjoin) { + delete dataw._rightjoin; } else { - //scope[nextsource.alias] = dataw; - //doJoin(query, scope, h+2); + // delete dataw._rightjoin; + scope[nextsource.alias] = dataw; + doJoin(query, scope, nh + 1); } + j++; } - j++; - } - // debugger; - } else { + // debugger; + } else { + } + source = query.sources[nh]; + nextsource = query.sources[nh + 1]; } - } else { - } scope[tableid] = undefined; @@ -8914,109 +8919,109 @@ yy.Select.prototype.compileJoins = function(query) { }; -yy.Select.prototype.compileWhere = function(query) { - if (this.where) { - if (typeof this.where == 'function') { - return this.where; - } else { - var s = this.where.toJS('p', query.defaultTableid, query.defcols); - query.wherefns = s; - - return new Function('p,params,alasql', 'var y;return ' + s); - } - } else - return function() { - return true; - }; -}; - -yy.Select.prototype.compileWhereJoins = function(query) { - return; - - // TODO Fix Where optimization - - optimizeWhereJoin(query, this.where.expression); - - //for sources compile wherefs - query.sources.forEach(function(source) { - if (source.srcwherefns) { - source.srcwherefn = new Function( - 'p,params,alasql', - 'var y;return ' + source.srcwherefns - ); - } - if (source.wxleftfns) { - source.wxleftfn = new Function('p,params,alasql', 'var y;return ' + source.wxleftfns); - } - if (source.wxrightfns) { - source.wxrightfn = new Function('p,params,alasql', 'var y;return ' + source.wxrightfns); - } - - }); -}; - -function optimizeWhereJoin(query, ast) { - if (!ast) return false; - if (!(ast instanceof yy.Op)) return; - if (ast.op != '=' && ast.op != 'AND') return; - if (ast.allsome) return; - - var s = ast.toJS('p', query.defaultTableid, query.defcols); - var fsrc = []; - query.sources.forEach(function(source, idx) { - // Optimization allowed only for tables only - if (source.tableid) { - // This is a good place to remove all unnecessary optimizations - if (s.indexOf("p['" + source.alias + "']") > -1) fsrc.push(source); - } - }); - - // if(fsrc.length < query.sources.length) return; - - if (fsrc.length == 0) { - - return; - } else if (fsrc.length == 1) { - if ( - !(s.match(/p\[\'.*?\'\]/g) || []).every(function(s) { - return s == "p['" + fsrc[0].alias + "']"; - }) - ) { - return; - // This is means, that we have column from parent query - // So we return without optimization - } - - var src = fsrc[0]; // optmiization source - src.srcwherefns = src.srcwherefns ? src.srcwherefns + '&&' + s : s; - - if (ast instanceof yy.Op && (ast.op == '=' && !ast.allsome)) { - if (ast.left instanceof yy.Column) { - var ls = ast.left.toJS('p', query.defaultTableid, query.defcols); - var rs = ast.right.toJS('p', query.defaultTableid, query.defcols); - if (rs.indexOf("p['" + fsrc[0].alias + "']") == -1) { - fsrc[0].wxleftfns = ls; - fsrc[0].wxrightfns = rs; - } - } - if (ast.right instanceof yy.Column) { - var ls = ast.left.toJS('p', query.defaultTableid, query.defcols); - var rs = ast.right.toJS('p', query.defaultTableid, query.defcols); - if (ls.indexOf("p['" + fsrc[0].alias + "']") == -1) { - fsrc[0].wxleftfns = rs; - fsrc[0].wxrightfns = ls; - } - } - } - ast.reduced = true; // To do not duplicate wherefn and srcwherefn - return; - } else { - if ((ast.op = 'AND')) { - optimizeWhereJoin(query, ast.left); - optimizeWhereJoin(query, ast.right); - } - } -} +yy.Select.prototype.compileWhere = function(query) { + if (this.where) { + if (typeof this.where == 'function') { + return this.where; + } else { + var s = this.where.toJS('p', query.defaultTableid, query.defcols); + query.wherefns = s; + + return new Function('p,params,alasql', 'var y;return ' + s); + } + } else + return function() { + return true; + }; +}; + +yy.Select.prototype.compileWhereJoins = function(query) { + return; + + // TODO Fix Where optimization + + optimizeWhereJoin(query, this.where.expression); + + //for sources compile wherefs + query.sources.forEach(function(source) { + if (source.srcwherefns) { + source.srcwherefn = new Function( + 'p,params,alasql', + 'var y;return ' + source.srcwherefns + ); + } + if (source.wxleftfns) { + source.wxleftfn = new Function('p,params,alasql', 'var y;return ' + source.wxleftfns); + } + if (source.wxrightfns) { + source.wxrightfn = new Function('p,params,alasql', 'var y;return ' + source.wxrightfns); + } + + }); +}; + +function optimizeWhereJoin(query, ast) { + if (!ast) return false; + if (!(ast instanceof yy.Op)) return; + if (ast.op != '=' && ast.op != 'AND') return; + if (ast.allsome) return; + + var s = ast.toJS('p', query.defaultTableid, query.defcols); + var fsrc = []; + query.sources.forEach(function(source, idx) { + // Optimization allowed only for tables only + if (source.tableid) { + // This is a good place to remove all unnecessary optimizations + if (s.indexOf("p['" + source.alias + "']") > -1) fsrc.push(source); + } + }); + + // if(fsrc.length < query.sources.length) return; + + if (fsrc.length == 0) { + + return; + } else if (fsrc.length == 1) { + if ( + !(s.match(/p\[\'.*?\'\]/g) || []).every(function(s) { + return s == "p['" + fsrc[0].alias + "']"; + }) + ) { + return; + // This is means, that we have column from parent query + // So we return without optimization + } + + var src = fsrc[0]; // optmiization source + src.srcwherefns = src.srcwherefns ? src.srcwherefns + '&&' + s : s; + + if (ast instanceof yy.Op && (ast.op == '=' && !ast.allsome)) { + if (ast.left instanceof yy.Column) { + var ls = ast.left.toJS('p', query.defaultTableid, query.defcols); + var rs = ast.right.toJS('p', query.defaultTableid, query.defcols); + if (rs.indexOf("p['" + fsrc[0].alias + "']") == -1) { + fsrc[0].wxleftfns = ls; + fsrc[0].wxrightfns = rs; + } + } + if (ast.right instanceof yy.Column) { + var ls = ast.left.toJS('p', query.defaultTableid, query.defcols); + var rs = ast.right.toJS('p', query.defaultTableid, query.defcols); + if (ls.indexOf("p['" + fsrc[0].alias + "']") == -1) { + fsrc[0].wxleftfns = rs; + fsrc[0].wxrightfns = ls; + } + } + } + ast.reduced = true; // To do not duplicate wherefn and srcwherefn + return; + } else { + if ((ast.op = 'AND')) { + optimizeWhereJoin(query, ast.left); + optimizeWhereJoin(query, ast.right); + } + } +} /* // @@ -9124,7 +9129,7 @@ yy.Select.prototype.compileGroup = function(query) { } /* - */ + */ // s += self.columns.map(function(col){ s += query.selectGroup @@ -9374,10395 +9379,10395 @@ yy.Select.prototype.compileGroup = function(query) { return new Function('p,params,alasql', 'var y;' + s); }; +/* +// +// Select compiler part for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +// yy.Select.prototype.compileSources = function(query) { + +// }; + +function compileSelectStar(query, aliases, joinstar) { + var sp = '', + ss = [], + columnIds = {}; + + aliases.forEach(function(alias) { + + // if(!alias) { + // sp += 'for(var k1 in p) var w=p[k1];for(var k2 in w){r[k2]=w[k2]};'; + // } else { + + // TODO move this out of this function + query.ixsources = {}; + query.sources.forEach(function(source) { + query.ixsources[source.alias] = source; + }); + + // Fixed + var columns; + if (query.ixsources[alias]) { + var columns = query.ixsources[alias].columns; + } + + // if(columns.length == 0 && query.aliases[alias].tableid) { + // var columns = alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns; + // }; + + // Check if this is a Table or other + if (joinstar && alasql.options.joinstar == 'json') { + sp += "r['" + alias + "']={};"; + } + + if (columns && columns.length > 0) { + columns.forEach(function(tcol) { + if (joinstar && alasql.options.joinstar == 'underscore') { + ss.push( + "'" + + alias + + '_' + + tcol.columnid + + "':p['" + + alias + + "']['" + + tcol.columnid + + "']" + ); + } else if (joinstar && alasql.options.joinstar == 'json') { + // ss.push('\''+alias+'_'+tcol.columnid+'\':p[\''+alias+'\'][\''+tcol.columnid+'\']'); + sp += + "r['" + + alias + + "']['" + + tcol.columnid + + "']=p['" + + alias + + "']['" + + tcol.columnid + + "'];"; + } else { + var value = "p['" + alias + "']['" + tcol.columnid + "']"; + if (!columnIds[tcol.columnid]) { + var key = "'" + tcol.columnid + "':"; + ss.push(key + value); + columnIds[tcol.columnid] = { + id: ss.length - 1, + value: value, + key: key, + }; + } else { + var newValue = + value + + ' !== undefined ? ' + + value + + ' : ' + + columnIds[tcol.columnid].value; + ss[columnIds[tcol.columnid].id] = columnIds[tcol.columnid].key + newValue; + columnIds[tcol.columnid].value = newValue; + } + } + + query.selectColumns[escapeq(tcol.columnid)] = true; + + var coldef = { + columnid: tcol.columnid, + dbtypeid: tcol.dbtypeid, + dbsize: tcol.dbsize, + dbprecision: tcol.dbprecision, + dbenum: tcol.dbenum, + }; + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + }); + + } else { + + // if column not exist, then copy all + sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};'; + + query.dirtyColumns = true; + } + // } + + }); + + return {s: ss.join(','), sp: sp}; +} + +yy.Select.prototype.compileSelect1 = function(query, params) { + var self = this; + query.columns = []; + query.xcolumns = {}; + query.selectColumns = {}; + query.dirtyColumns = false; + var s = 'var r={'; + var sp = ''; + var ss = []; + + this.columns.forEach(function(col) { + + if (col instanceof yy.Column) { + if (col.columnid === '*') { + if (col.func) { + sp += + "r=params['" + + col.param + + "'](p['" + + query.sources[0].alias + + "'],p,params,alasql);"; + } else if (col.tableid) { + //Copy all + var ret = compileSelectStar(query, [col.tableid], false); + if (ret.s) { + ss = ss.concat(ret.s); + } + sp += ret.sp; + } else { + + var ret = compileSelectStar(query, Object.keys(query.aliases), true); //query.aliases[alias].tableid); + if (ret.s) { + ss = ss.concat(ret.s); + } + sp += ret.sp; + + // TODO Remove these lines + // In case of no information + // sp += 'for(var k1 in p){var w=p[k1];'+ + // 'for(k2 in w) {r[k2]=w[k2]}}' + } + } else { + // If field, otherwise - expression + var tbid = col.tableid; + + var dbid = + col.databaseid || query.sources[0].databaseid || query.database.databaseid; + if (!tbid) tbid = query.defcols[col.columnid]; + if (!tbid) tbid = query.defaultTableid; + if (col.columnid !== '_') { + if ( + false && + tbid && + !query.defcols['.'][col.tableid] && + !query.defcols[col.columnid] + ) { + ss.push( + "'" + + escapeq(col.as || col.columnid) + + "':p['" + + query.defaultTableid + + "']['" + + col.tableid + + "']['" + + col.columnid + + "']" + ); + } else { + // workaround for multisheet xlsx export with custom COLUMNS + var isMultisheetParam = + params && + params.length > 1 && + Array.isArray(params[0]) && + params[0].length >= 1 && + params[0][0].hasOwnProperty('sheetid'); + if (isMultisheetParam) { + sp = + 'var r={};var w=p["' + + tbid + + '"];' + + 'var cols=[' + + self.columns + .map(function(col) { + return "'" + col.columnid + "'"; + }) + .join(',') + + '];var colas=[' + + self.columns + .map(function(col) { + return "'" + (col.as || col.columnid) + "'"; + }) + .join(',') + + '];' + + "for (var i=0;i 0) { + + var tcol = xcolumns[col.columnid]; + + if (undefined === tcol) { + throw new Error('Column does not exist: ' + col.columnid); + } + + var coldef = { + columnid: col.as || col.columnid, + dbtypeid: tcol.dbtypeid, + dbsize: tcol.dbsize, + dbpecision: tcol.dbprecision, + dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + } else { + var coldef = { + columnid: col.as || col.columnid, + // dbtypeid:tcol.dbtypeid, + // dbsize:tcol.dbsize, + // dbpecision:tcol.dbprecision, + // dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + + query.dirtyColumns = true; + } + } else { + var coldef = { + columnid: col.as || col.columnid, + // dbtypeid:tcol.dbtypeid, + // dbsize:tcol.dbsize, + // dbpecision:tcol.dbprecision, + // dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + // This is a subquery? + // throw new Error('There is now such table \''+col.tableid+'\''); + } + } + } else if (col instanceof yy.AggrValue) { + if (!self.group) { + // self.group=[new yy.Column({columnid:'q',as:'q' })]; + self.group = ['']; + } + if (!col.as) { + col.as = escapeq(col.toString()); + } + + if ( + col.aggregatorid === 'SUM' || + col.aggregatorid === 'MAX' || + col.aggregatorid === 'MIN' || + col.aggregatorid === 'FIRST' || + col.aggregatorid === 'LAST' || + col.aggregatorid === 'AVG' || + col.aggregatorid === 'ARRAY' || + col.aggregatorid === 'REDUCE' + ) { + ss.push( + "'" + + escapeq(col.as) + + "':" + + n2u(col.expression.toJS('p', query.defaultTableid, query.defcols)) + ); + } else if (col.aggregatorid === 'COUNT') { + ss.push("'" + escapeq(col.as) + "':1"); + // Nothing + } + // todo: confirm that no default action must be implemented + + // query.selectColumns[col.aggregatorid+'('+escapeq(col.expression.toString())+')'] = thtd; + + var coldef = { + columnid: col.as || col.columnid || col.toString(), + // dbtypeid:tcol.dbtypeid, + // dbsize:tcol.dbsize, + // dbpecision:tcol.dbprecision, + // dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + + // else if (col.aggregatorid == 'MAX') { + // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid)) + // } else if (col.aggregatorid == 'MIN') { + // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid)) + // } + } else { + + ss.push( + "'" + + escapeq(col.as || col.columnid || col.toString()) + + "':" + + n2u(col.toJS('p', query.defaultTableid, query.defcols)) + ); + // ss.push('\''+escapeq(col.toString())+'\':'+col.toJS("p",query.defaultTableid)); + //if(col instanceof yy.Expression) { + query.selectColumns[escapeq(col.as || col.columnid || col.toString())] = true; + + var coldef = { + columnid: col.as || col.columnid || col.toString(), + // dbtypeid:tcol.dbtypeid, + // dbsize:tcol.dbsize, + // dbpecision:tcol.dbprecision, + // dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + } + }); + s += ss.join(',') + '};' + sp; + return s; + +}; +yy.Select.prototype.compileSelect2 = function(query) { + var s = query.selectfns; + if (this.orderColumns && this.orderColumns.length > 0) { + this.orderColumns.forEach(function(v, idx) { + var key = '$$$' + idx; + if (v instanceof yy.Column && query.xcolumns[v.columnid]) { + s += "r['" + key + "']=r['" + v.columnid + "'];"; + } else { + s += "r['" + key + "']=" + v.toJS('p', query.defaultTableid, query.defcols) + ';'; + } + query.removeKeys.push(key); + }); + } + + return new Function('p,params,alasql', 'var y;' + s + 'return r'); +}; + +yy.Select.prototype.compileSelectGroup0 = function(query) { + var self = this; + self.columns.forEach(function(col, idx) { + if (!(col instanceof yy.Column && col.columnid === '*')) { + var colas; + // = col.as; + if (col instanceof yy.Column) { + colas = escapeq(col.columnid); + } else { + colas = escapeq(col.toString(true)); + + } + for (var i = 0; i < idx; i++) { + if (colas === self.columns[i].nick) { + colas = self.columns[i].nick + ':' + idx; + break; + } + } + // } + col.nick = colas; + if ( + col.funcid && + (col.funcid.toUpperCase() === 'ROWNUM' || col.funcid.toUpperCase() === 'ROW_NUMBER') + ) { + query.rownums.push(col.as); + } + + // } + } else { + query.groupStar = col.tableid || 'default'; + } + }); + + this.columns.forEach(function(col) { + if (col.findAggregator) { + col.findAggregator(query); + } + }); + + if (this.having) { + if (this.having.findAggregator) { + this.having.findAggregator(query); + } + } +}; + +yy.Select.prototype.compileSelectGroup1 = function(query) { + var self = this; + var s = 'var r = {};'; + + self.columns.forEach(function(col) { + + if (col instanceof yy.Column && col.columnid === '*') { + // s += 'for(var k in g){r[k]=g[k]};'; + // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};'; + + s += 'for(var k in g) {r[k]=g[k]};'; + return ''; + + } else { + // var colas = col.as; + var colas = col.as; + if (colas === undefined) { + if (col instanceof yy.Column) { + colas = escapeq(col.columnid); + } else { + colas = col.nick; + } + } + query.groupColumns[colas] = col.nick; + + // if(col.as) { + s += "r['" + colas + "']="; + // // } else { + // // s += 'r[\''+escapeq()+'\']='; + // // }; + // // s += ';'; + + s += n2u(col.toJS('g', '')) + ';'; + + for (var i = 0; i < query.removeKeys.length; i++) { + // THis part should be intellectual + if (query.removeKeys[i] === colas) { + query.removeKeys.splice(i, 1); + break; + } + } + } + }); + // return new Function('g,params,alasql',s+'return r'); + return s; +}; + +yy.Select.prototype.compileSelectGroup2 = function(query) { + var self = this; + var s = query.selectgfns; + self.columns.forEach(function(col) { + + if (query.ingroup.indexOf(col.nick) > -1) { + s += "r['" + (col.as || col.nick) + "']=g['" + col.nick + "'];"; + } + }); + + if (this.orderColumns && this.orderColumns.length > 0) { + this.orderColumns.forEach(function(v, idx) { + + var key = '$$$' + idx; + + if (v instanceof yy.Column && query.groupColumns[v.columnid]) { + s += "r['" + key + "']=r['" + v.columnid + "'];"; + } else { + s += "r['" + key + "']=" + v.toJS('g', '') + ';'; + } + query.removeKeys.push(key); + }); + } + + return new Function('g,params,alasql', 'var y;' + s + 'return r'); +}; + +// SELECY * REMOVE [COLUMNS] col-list, LIKE '' +yy.Select.prototype.compileRemoveColumns = function(query) { + var self = this; + if (typeof this.removecolumns !== 'undefined') { + query.removeKeys = query.removeKeys.concat( + this.removecolumns + .filter(function(column) { + return typeof column.like === 'undefined'; + }) + .map(function(column) { + return column.columnid; + }) + ); + + query.removeLikeKeys = this.removecolumns + .filter(function(column) { + return typeof column.like !== 'undefined'; + }) + .map(function(column) { + // return new RegExp((column.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'); + return column.like.value; + }); + } +}; + +/* global yy */ + +yy.Select.prototype.compileHaving = function(query) { + if (this.having) { + var s = this.having.toJS('g', -1); + query.havingfns = s; + + return new Function('g,params,alasql', 'var y;return ' + s); + } + + return function() { + return true; + }; +}; + +yy.Select.prototype.compileOrder = function(query) { + var self = this; + self.orderColumns = []; + if (this.order) { + + if ( + this.order && + this.order.length == 1 && + this.order[0].expression && + typeof this.order[0].expression == 'function' + ) { + + var func = this.order[0].expression; + + return function(a, b) { + var ra = func(a), + rb = func(b); + if (ra > rb) return 1; + if (ra == rb) return 0; + return -1; + }; + } + + var s = ''; + var sk = ''; + this.order.forEach(function(ord, idx) { + + if (ord.expression instanceof yy.NumValue) { + var v = self.columns[ord.expression.value - 1]; + } else { + var v = ord.expression; + } + self.orderColumns.push(v); + + var key = '$$$' + idx; + + // Date conversion + var dg = ''; + //if(alasql.options.valueof) + if (ord.expression instanceof yy.Column) { + var columnid = ord.expression.columnid; + if (query.xcolumns[columnid]) { + var dbtypeid = query.xcolumns[columnid].dbtypeid; + if (dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') + dg = '.valueOf()'; + // TODO Add other types mapping + } else { + if (alasql.options.valueof) dg = '.valueOf()'; // TODO Check + } + // dg = '.valueOf()'; + } + // COLLATE NOCASE + if (ord.nocase) dg += '.toUpperCase()'; + s += + "if((a['" + + key + + "']||'')" + + dg + + (ord.direction == 'ASC' ? '>' : '<') + + "(b['" + + key + + "']||'')" + + dg + + ')return 1;'; + s += "if((a['" + key + "']||'')" + dg + "==(b['" + key + "']||'')" + dg + '){'; + + /* +if(false) { + + if(ord.expression instanceof yy.NumValue) { + ord.expression = self.columns[ord.expression.value-1]; + + ord.expression = new yy.Column({columnid:ord.expression.nick}); + }; + + if(ord.expression instanceof yy.Column) { + var columnid = ord.expression.columnid; + if(query.xcolumns[columnid]) { + var dbtypeid = query.xcolumns[columnid].dbtypeid; + if( dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') dg = '.valueOf()'; + // TODO Add other types mapping + } else { + if(alasql.options.valueof) dg = '.valueOf()'; // TODO Check + } + // COLLATE NOCASE + if(ord.nocase) dg += '.toUpperCase()'; + + s += 'if((a[\''+columnid+"']||'')"+dg+(ord.direction == 'ASC'?'>':'<')+'(b[\''+columnid+"']||'')"+dg+')return 1;'; + s += 'if((a[\''+columnid+"']||'')"+dg+'==(b[\''+columnid+"']||'')"+dg+'){'; + + } else { + dg = '.valueOf()'; + // COLLATE NOCASE + if(ord.nocase) dg += '.toUpperCase()'; + s += 'if(('+ord.toJS('a','')+"||'')"+dg+(ord.direction == 'ASC'?'>(':'<(')+ord.toJS('b','')+"||'')"+dg+')return 1;'; + s += 'if(('+ord.toJS('a','')+"||'')"+dg+'==('+ord.toJS('b','')+"||'')"+dg+'){'; + } + + // TODO Add date comparision + +} +*/ + sk += '}'; + }); + s += 'return 0;'; + s += sk + 'return -1'; + query.orderfns = s; + + return new Function('a,b', 'var y;' + s); + } +}; + +// Pivot functions +/** + Compile Pivot functions + @param {object} query Source query + @return {function} Pivoting functions +*/ +yy.Select.prototype.compilePivot = function(query) { + var self = this; + /** @type {string} Main pivoting column */ + + var columnid = self.pivot.columnid; + var exprcolid = self.pivot.expr.expression.columnid; + var aggr = self.pivot.expr.aggregatorid; + var inlist = self.pivot.inlist; + + if (inlist) { + inlist = inlist.map(function(l) { + return l.expr.columnid; + }); + } + + // Function for PIVOT post production + return function() { + var query = this; + var cols = query.columns + .filter(function(col) { + return col.columnid != columnid && col.columnid != exprcolid; + }) + .map(function(col) { + return col.columnid; + }); + + var newcols = []; + var gnewcols = {}; + var gr = {}; + var ga = {}; + var data = []; + query.data.forEach(function(d) { + if (!inlist || inlist.indexOf(d[columnid]) > -1) { + var gx = cols + .map(function(colid) { + return d[colid]; + }) + .join('`'); + var g = gr[gx]; + if (!g) { + g = {}; + gr[gx] = g; + data.push(g); + cols.forEach(function(colid) { + g[colid] = d[colid]; + }); + } + + if (!ga[gx]) { + ga[gx] = {}; + } + + if (ga[gx][d[columnid]]) { + ga[gx][d[columnid]]++; + } else { + ga[gx][d[columnid]] = 1; + } + + if (!gnewcols[d[columnid]]) { + gnewcols[d[columnid]] = true; + newcols.push(d[columnid]); + } + + if (aggr == 'SUM' || aggr == 'AVG') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0; + g[d[columnid]] += d[exprcolid]; + } else if (aggr == 'COUNT') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0; + g[d[columnid]]++; + } else if (aggr == 'MIN') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = Infinity; + if (d[exprcolid] < g[d[columnid]]) g[d[columnid]] = d[exprcolid]; + } else if (aggr == 'MAX') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = -Infinity; + if (d[exprcolid] > g[d[columnid]]) g[d[columnid]] = d[exprcolid]; + } else if (aggr == 'FIRST') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid]; + } else if (aggr == 'LAST') { + g[d[columnid]] = d[exprcolid]; + } else if (alasql.aggr[aggr]) { + // Custom aggregator + alasql.aggr[aggr](g[d[columnid]], d[exprcolid]); + } else { + throw new Error('Wrong aggregator in PIVOT clause'); + } + } + }); + + if (aggr == 'AVG') { + for (var gx in gr) { + var d = gr[gx]; + for (var colid in d) { + if (cols.indexOf(colid) == -1 && colid != exprcolid) { + d[colid] = d[colid] / ga[gx][colid]; + } + } + } + } + + // columns + query.data = data; + + if (inlist) newcols = inlist; + + var ncol = query.columns.filter(function(col) { + return col.columnid == exprcolid; + })[0]; + query.columns = query.columns.filter(function(col) { + return !(col.columnid == columnid || col.columnid == exprcolid); + }); + newcols.forEach(function(colid) { + var nc = cloneDeep(ncol); + nc.columnid = colid; + query.columns.push(nc); + }); + }; +}; + +// var columnid = this.pivot.columnid; + +// return function(data){ + +// if(false) { + +// } + +// if(false) { + +// } +// }; + +/** + Compile UNPIVOT clause + @param {object} query Query object + @return {function} Function for unpivoting +*/ +yy.Select.prototype.compileUnpivot = function(query) { + var self = this; + var tocolumnid = self.unpivot.tocolumnid; + var forcolumnid = self.unpivot.forcolumnid; + var inlist = self.unpivot.inlist.map(function(l) { + return l.columnid; + }); + + return function() { + var data = []; + + var xcols = query.columns + .map(function(col) { + return col.columnid; + }) + .filter(function(colid) { + return inlist.indexOf(colid) == -1 && colid != forcolumnid && colid != tocolumnid; + }); + + query.data.forEach(function(d) { + inlist.forEach(function(colid) { + var nd = {}; + xcols.forEach(function(xcolid) { + nd[xcolid] = d[xcolid]; + }); + nd[forcolumnid] = colid; + nd[tocolumnid] = d[colid]; + data.push(nd); + }); + }); + + query.data = data; + + // }); + }; +}; + /* // -// Select compiler part for Alasql.js +// ROLLUP(), CUBE(), GROUPING SETS() for Alasql.js // Date: 03.11.2014 // (c) 2014, Andrey Gershun // */ -// yy.Select.prototype.compileSources = function(query) { +/** + Calculate ROLLUP() combination + */ -// }; +var rollup = function(a, query) { + var rr = []; + var mask = 0; + var glen = a.length; + for (var g = 0; g < glen + 1; g++) { + var ss = []; + for (var i = 0; i < glen; i++) { + if (a[i] instanceof yy.Column) { + a[i].nick = escapeq(a[i].columnid); -function compileSelectStar(query, aliases, joinstar) { - var sp = '', - ss = [], - columnIds = {}; + query.groupColumns[escapeq(a[i].columnid)] = a[i].nick; + var aaa = a[i].nick + '\t' + a[i].toJS('p', query.sources[0].alias, query.defcols); + } else { + query.groupColumns[escapeq(a[i].toString())] = escapeq(a[i].toString()); + var aaa = + escapeq(a[i].toString()) + + '\t' + + a[i].toJS('p', query.sources[0].alias, query.defcols); + } - aliases.forEach(function(alias) { + if (mask & (1 << i)) ss.push(aaa); + } + rr.push(ss); + mask = (mask << 1) + 1; + } + return rr; +}; - // if(!alias) { - // sp += 'for(var k1 in p) var w=p[k1];for(var k2 in w){r[k2]=w[k2]};'; - // } else { +/** + Calculate CUBE() + */ +var cube = function(a, query) { + var rr = []; + var glen = a.length; + var glenCube = 1 << glen; + for (var g = 0; g < glenCube; g++) { + var ss = []; + for (var i = 0; i < glen; i++) { + if (g & (1 << i)) + //ss.push(a[i]); + //ss = cartes(ss,decartes(a[i])); - // TODO move this out of this function - query.ixsources = {}; - query.sources.forEach(function(source) { - query.ixsources[source.alias] = source; - }); + // var aaa = a[i].toString()+'\t' + // +a[i].toJS('p',query.sources[0].alias,query.defcols); - // Fixed - var columns; - if (query.ixsources[alias]) { - var columns = query.ixsources[alias].columns; + ss = ss.concat(decartes(a[i], query)); + // } + rr.push(ss); + } + return rr; +}; - // if(columns.length == 0 && query.aliases[alias].tableid) { - // var columns = alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns; - // }; +/** + GROUPING SETS() + */ +var groupingsets = function(a, query) { + return a.reduce(function(acc, d) { + acc = acc.concat(decartes(d, query)); + return acc; + }, []); +}; - // Check if this is a Table or other - if (joinstar && alasql.options.joinstar == 'json') { - sp += "r['" + alias + "']={};"; +/** + Cartesian production + */ +var cartes = function(a1, a2) { + var rrr = []; + for (var i1 = 0; i1 < a1.length; i1++) { + for (var i2 = 0; i2 < a2.length; i2++) { + rrr.push(a1[i1].concat(a2[i2])); } + } + return rrr; +}; - if (columns && columns.length > 0) { - columns.forEach(function(tcol) { - if (joinstar && alasql.options.joinstar == 'underscore') { - ss.push( - "'" + - alias + - '_' + - tcol.columnid + - "':p['" + - alias + - "']['" + - tcol.columnid + - "']" - ); - } else if (joinstar && alasql.options.joinstar == 'json') { - // ss.push('\''+alias+'_'+tcol.columnid+'\':p[\''+alias+'\'][\''+tcol.columnid+'\']'); - sp += - "r['" + - alias + - "']['" + - tcol.columnid + - "']=p['" + - alias + - "']['" + - tcol.columnid + - "'];"; - } else { - var value = "p['" + alias + "']['" + tcol.columnid + "']"; - if (!columnIds[tcol.columnid]) { - var key = "'" + tcol.columnid + "':"; - ss.push(key + value); - columnIds[tcol.columnid] = { - id: ss.length - 1, - value: value, - key: key, - }; - } else { - var newValue = - value + - ' !== undefined ? ' + - value + - ' : ' + - columnIds[tcol.columnid].value; - ss[columnIds[tcol.columnid].id] = columnIds[tcol.columnid].key + newValue; - columnIds[tcol.columnid].value = newValue; - } - } +/** + Prepare groups function + */ +function decartes(gv, query) { - query.selectColumns[escapeq(tcol.columnid)] = true; + if (Array.isArray(gv)) { + var res = [[]]; + for (var t = 0; t < gv.length; t++) { + if (gv[t] instanceof yy.Column) { - var coldef = { - columnid: tcol.columnid, - dbtypeid: tcol.dbtypeid, - dbsize: tcol.dbsize, - dbprecision: tcol.dbprecision, - dbenum: tcol.dbenum, - }; - query.columns.push(coldef); - query.xcolumns[coldef.columnid] = coldef; - }); + gv[t].nick = escapeq(gv[t].columnid); + query.groupColumns[gv[t].nick] = gv[t].nick; + res = res.map(function(r) { + return r.concat( + gv[t].nick + '\t' + gv[t].toJS('p', query.sources[0].alias, query.defcols) + ); + }); + // res = res.map(function(r){return r.concat(gv[t].columnid)}); + } else if (gv[t] instanceof yy.FuncValue) { + query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString()); + res = res.map(function(r) { + return r.concat( + escapeq(gv[t].toString()) + + '\t' + + gv[t].toJS('p', query.sources[0].alias, query.defcols) + ); + }); + // to be defined + } else if (gv[t] instanceof yy.GroupExpression) { + if (gv[t].type == 'ROLLUP') res = cartes(res, rollup(gv[t].group, query)); + else if (gv[t].type == 'CUBE') res = cartes(res, cube(gv[t].group, query)); + else if (gv[t].type == 'GROUPING SETS') + res = cartes(res, groupingsets(gv[t].group, query)); + else throw new Error('Unknown grouping function'); + } else if (gv[t] === '') { - } else { + res = [['1\t1']]; + } else { + // if(gv[t]) - // if column not exist, then copy all - sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};'; + res = res.map(function(r) { + query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString()); + return r.concat( + escapeq(gv[t].toString()) + + '\t' + + gv[t].toJS('p', query.sources[0].alias, query.defcols) + ); + }); + // res = res.concat(gv[t]); + } - query.dirtyColumns = true; } - // } + return res; + } else if (gv instanceof yy.FuncValue) { - }); + query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString()); + return [gv.toString() + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; + } else if (gv instanceof yy.Column) { + gv.nick = escapeq(gv.columnid); + query.groupColumns[gv.nick] = gv.nick; + return [gv.nick + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; // Is this ever happened? + // } else if(gv instanceof yy.Expression) { + // return [gv.columnid]; // Is this ever happened? + } else { + query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString()); + return [ + escapeq(gv.toString()) + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols), + ]; + // throw new Error('Single argument in the group without array'); + } - return {s: ss.join(','), sp: sp}; } -yy.Select.prototype.compileSelect1 = function(query, params) { - var self = this; - query.columns = []; - query.xcolumns = {}; - query.selectColumns = {}; - query.dirtyColumns = false; - var s = 'var r={'; - var sp = ''; - var ss = []; - - this.columns.forEach(function(col) { - - if (col instanceof yy.Column) { - if (col.columnid === '*') { - if (col.func) { - sp += - "r=params['" + - col.param + - "'](p['" + - query.sources[0].alias + - "'],p,params,alasql);"; - } else if (col.tableid) { - //Copy all - var ret = compileSelectStar(query, [col.tableid], false); - if (ret.s) { - ss = ss.concat(ret.s); - } - sp += ret.sp; - } else { - - var ret = compileSelectStar(query, Object.keys(query.aliases), true); //query.aliases[alias].tableid); - if (ret.s) { - ss = ss.concat(ret.s); - } - sp += ret.sp; - - // TODO Remove these lines - // In case of no information - // sp += 'for(var k1 in p){var w=p[k1];'+ - // 'for(k2 in w) {r[k2]=w[k2]}}' - } - } else { - // If field, otherwise - expression - var tbid = col.tableid; - - var dbid = - col.databaseid || query.sources[0].databaseid || query.database.databaseid; - if (!tbid) tbid = query.defcols[col.columnid]; - if (!tbid) tbid = query.defaultTableid; - if (col.columnid !== '_') { - if ( - false && - tbid && - !query.defcols['.'][col.tableid] && - !query.defcols[col.columnid] - ) { - ss.push( - "'" + - escapeq(col.as || col.columnid) + - "':p['" + - query.defaultTableid + - "']['" + - col.tableid + - "']['" + - col.columnid + - "']" - ); - } else { - // workaround for multisheet xlsx export with custom COLUMNS - var isMultisheetParam = - params && - params.length > 1 && - Array.isArray(params[0]) && - params[0].length >= 1 && - params[0][0].hasOwnProperty('sheetid'); - if (isMultisheetParam) { - sp = - 'var r={};var w=p["' + - tbid + - '"];' + - 'var cols=[' + - self.columns - .map(function(col) { - return "'" + col.columnid + "'"; - }) - .join(',') + - '];var colas=[' + - self.columns - .map(function(col) { - return "'" + (col.as || col.columnid) + "'"; - }) - .join(',') + - '];' + - "for (var i=0;i 0) { - - var tcol = xcolumns[col.columnid]; - - if (undefined === tcol) { - throw new Error('Column does not exist: ' + col.columnid); - } - - var coldef = { - columnid: col.as || col.columnid, - dbtypeid: tcol.dbtypeid, - dbsize: tcol.dbsize, - dbpecision: tcol.dbprecision, - dbenum: tcol.dbenum, - }; - - query.columns.push(coldef); - query.xcolumns[coldef.columnid] = coldef; - } else { - var coldef = { - columnid: col.as || col.columnid, - // dbtypeid:tcol.dbtypeid, - // dbsize:tcol.dbsize, - // dbpecision:tcol.dbprecision, - // dbenum: tcol.dbenum, - }; - - query.columns.push(coldef); - query.xcolumns[coldef.columnid] = coldef; +/* +// +// Select run-time part for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.Select.prototype.compileDefCols = function(query, databaseid) { + + var defcols = {'.': {}}; + if (this.from) { + this.from.forEach(function(fr) { + defcols['.'][fr.as || fr.tableid] = true; + if (fr instanceof yy.Table) { + var alias = fr.as || fr.tableid; + + var table = alasql.databases[fr.databaseid || databaseid].tables[fr.tableid]; + + if (undefined === table) { + throw new Error('Table does not exist: ' + fr.tableid); + } + + if (table.columns) { + table.columns.forEach(function(col) { + if (defcols[col.columnid]) { + defcols[col.columnid] = '-'; // Ambigous + } else { + defcols[col.columnid] = alias; + } + }); + } + } else if (fr instanceof yy.Select) { + } else if (fr instanceof yy.Search) { + } else if (fr instanceof yy.ParamValue) { + } else if (fr instanceof yy.VarValue) { + } else if (fr instanceof yy.FuncValue) { + } else if (fr instanceof yy.FromData) { + } else if (fr instanceof yy.Json) { + } else if (fr.inserted) { + } else { + + throw new Error('Unknown type of FROM clause'); + } + }); + } + + if (this.joins) { + this.joins.forEach(function(jn) { + defcols['.'][jn.as || jn.table.tableid] = true; + + if (jn.table) { + var alias = jn.table.tableid; + if (jn.as) alias = jn.as; + var alias = jn.as || jn.table.tableid; + var table = + alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid]; + + if (table.columns) { + table.columns.forEach(function(col) { + if (defcols[col.columnid]) { + defcols[col.columnid] = '-'; // Ambigous + } else { + defcols[col.columnid] = alias; + } + }); + } + } else if (jn.select) { + } else if (jn.param) { + } else if (jn.func) { + } else { + throw new Error('Unknown type of FROM clause'); + } + }); + } + // for(var k in defcols) { + // if(defcols[k] == '-') defcols[k] = undefined; + // } + + return defcols; +}; - query.dirtyColumns = true; - } - } else { - var coldef = { - columnid: col.as || col.columnid, - // dbtypeid:tcol.dbtypeid, - // dbsize:tcol.dbsize, - // dbpecision:tcol.dbprecision, - // dbenum: tcol.dbenum, - }; +/* +// +// UNION for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ - query.columns.push(coldef); - query.xcolumns[coldef.columnid] = coldef; - // This is a subquery? - // throw new Error('There is now such table \''+col.tableid+'\''); - } - } - } else if (col instanceof yy.AggrValue) { - if (!self.group) { - // self.group=[new yy.Column({columnid:'q',as:'q' })]; - self.group = ['']; - } - if (!col.as) { - col.as = escapeq(col.toString()); - } +// SELECT UNION statement - if ( - col.aggregatorid === 'SUM' || - col.aggregatorid === 'MAX' || - col.aggregatorid === 'MIN' || - col.aggregatorid === 'FIRST' || - col.aggregatorid === 'LAST' || - col.aggregatorid === 'AVG' || - col.aggregatorid === 'ARRAY' || - col.aggregatorid === 'REDUCE' - ) { - ss.push( - "'" + - escapeq(col.as) + - "':" + - n2u(col.expression.toJS('p', query.defaultTableid, query.defcols)) - ); - } else if (col.aggregatorid === 'COUNT') { - ss.push("'" + escapeq(col.as) + "':1"); - // Nothing - } - // todo: confirm that no default action must be implemented +yy.Union = function(params) { + return yy.extend(this, params); +}; +yy.Union.prototype.toString = function() { + return 'UNION'; +}; - // query.selectColumns[col.aggregatorid+'('+escapeq(col.expression.toString())+')'] = thtd; +yy.Union.prototype.compile = function(tableid) { + return null; +}; - var coldef = { - columnid: col.as || col.columnid || col.toString(), - // dbtypeid:tcol.dbtypeid, - // dbsize:tcol.dbsize, - // dbpecision:tcol.dbprecision, - // dbenum: tcol.dbenum, - }; +/* +// +// CROSS AND OUTER APPLY for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ - query.columns.push(coldef); - query.xcolumns[coldef.columnid] = coldef; +yy.Apply = function(params) { + return yy.extend(this, params); +}; - // else if (col.aggregatorid == 'MAX') { - // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid)) - // } else if (col.aggregatorid == 'MIN') { - // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid)) - // } - } else { +yy.Apply.prototype.toString = function() { + var s = this.applymode + ' APPLY (' + this.select.toString() + ')'; - ss.push( - "'" + - escapeq(col.as || col.columnid || col.toString()) + - "':" + - n2u(col.toJS('p', query.defaultTableid, query.defcols)) - ); - // ss.push('\''+escapeq(col.toString())+'\':'+col.toJS("p",query.defaultTableid)); - //if(col instanceof yy.Expression) { - query.selectColumns[escapeq(col.as || col.columnid || col.toString())] = true; - - var coldef = { - columnid: col.as || col.columnid || col.toString(), - // dbtypeid:tcol.dbtypeid, - // dbsize:tcol.dbsize, - // dbpecision:tcol.dbprecision, - // dbenum: tcol.dbenum, - }; + if (this.as) s += ' AS ' + this.as; - query.columns.push(coldef); - query.xcolumns[coldef.columnid] = coldef; - } - }); - s += ss.join(',') + '};' + sp; return s; +}; + +/* +// +// CROSS AND OUTER APPLY for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ +yy.Over = function(params) { + return yy.extend(this, params); }; -yy.Select.prototype.compileSelect2 = function(query) { - var s = query.selectfns; - if (this.orderColumns && this.orderColumns.length > 0) { - this.orderColumns.forEach(function(v, idx) { - var key = '$$$' + idx; - if (v instanceof yy.Column && query.xcolumns[v.columnid]) { - s += "r['" + key + "']=r['" + v.columnid + "'];"; - } else { - s += "r['" + key + "']=" + v.toJS('p', query.defaultTableid, query.defcols) + ';'; - } - query.removeKeys.push(key); - }); +yy.Over.prototype.toString = function() { + var s = 'OVER ('; + if (this.partition) { + s += 'PARTITION BY ' + this.partition.toString(); + if (this.order) s += ' '; } - - return new Function('p,params,alasql', 'var y;' + s + 'return r'); + if (this.order) { + s += 'ORDER BY ' + this.order.toString(); + } + s += ')'; + return s; }; -yy.Select.prototype.compileSelectGroup0 = function(query) { - var self = this; - self.columns.forEach(function(col, idx) { - if (!(col instanceof yy.Column && col.columnid === '*')) { - var colas; - // = col.as; - if (col instanceof yy.Column) { - colas = escapeq(col.columnid); - } else { - colas = escapeq(col.toString(true)); - - } - for (var i = 0; i < idx; i++) { - if (colas === self.columns[i].nick) { - colas = self.columns[i].nick + ':' + idx; - break; - } - } - // } - col.nick = colas; - if ( - col.funcid && - (col.funcid.toUpperCase() === 'ROWNUM' || col.funcid.toUpperCase() === 'ROW_NUMBER') - ) { - query.rownums.push(col.as); - } +/* +// +// Expressions for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ - // } - } else { - query.groupStar = col.tableid || 'default'; - } - }); +/** + Expression statement ( = 2*2; ) + @class + @param {object} params Initial parameters +*/ +yy.ExpressionStatement = function(params) { + return yy.extend(this, params); +}; - this.columns.forEach(function(col) { - if (col.findAggregator) { - col.findAggregator(query); - } - }); +/** + Convert AST to string + @this ExpressionStatement + @return {string} +*/ +yy.ExpressionStatement.prototype.toString = function() { + return this.expression.toString(); +}; +/** + Execute statement + @param {string} databaseid Database identificatro + @param {object} params Statement parameters + @param {statement-callback} cb Callback + @return {object} Result value +*/ +yy.ExpressionStatement.prototype.execute = function(databaseid, params, cb) { + if (this.expression) { - if (this.having) { - if (this.having.findAggregator) { - this.having.findAggregator(query); + alasql.precompile(this, databaseid, params); // Precompile queries + var exprfn = new Function( + 'params,alasql,p', + 'var y;return ' + this.expression.toJS('({})', '', null) + ).bind(this); + var res = exprfn(params, alasql); + if (cb) { + res = cb(res); } + return res; } }; -yy.Select.prototype.compileSelectGroup1 = function(query) { - var self = this; - var s = 'var r = {};'; - - self.columns.forEach(function(col) { - - if (col instanceof yy.Column && col.columnid === '*') { - // s += 'for(var k in g){r[k]=g[k]};'; - // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};'; - - s += 'for(var k in g) {r[k]=g[k]};'; - return ''; - - } else { - // var colas = col.as; - var colas = col.as; - if (colas === undefined) { - if (col instanceof yy.Column) { - colas = escapeq(col.columnid); - } else { - colas = col.nick; - } - } - query.groupColumns[colas] = col.nick; - - // if(col.as) { - s += "r['" + colas + "']="; - // // } else { - // // s += 'r[\''+escapeq()+'\']='; - // // }; - // // s += ';'; - - s += n2u(col.toJS('g', '')) + ';'; +/** + Expression class + @class + @param {object} params Initial parameters +*/ - for (var i = 0; i < query.removeKeys.length; i++) { - // THis part should be intellectual - if (query.removeKeys[i] === colas) { - query.removeKeys.splice(i, 1); - break; - } - } - } - }); - // return new Function('g,params,alasql',s+'return r'); - return s; +yy.Expression = function(params) { + return yy.extend(this, params); }; -yy.Select.prototype.compileSelectGroup2 = function(query) { - var self = this; - var s = query.selectgfns; - self.columns.forEach(function(col) { - - if (query.ingroup.indexOf(col.nick) > -1) { - s += "r['" + (col.as || col.nick) + "']=g['" + col.nick + "'];"; - } - }); - - if (this.orderColumns && this.orderColumns.length > 0) { - this.orderColumns.forEach(function(v, idx) { - - var key = '$$$' + idx; - - if (v instanceof yy.Column && query.groupColumns[v.columnid]) { - s += "r['" + key + "']=r['" + v.columnid + "'];"; - } else { - s += "r['" + key + "']=" + v.toJS('g', '') + ';'; - } - query.removeKeys.push(key); - }); +/** + Convert AST to string + @this ExpressionStatement + @return {string} +*/ +yy.Expression.prototype.toString = function(dontas) { + var s = this.expression.toString(dontas); + if (this.order) { + s += ' ' + this.order.toString(); } - - return new Function('g,params,alasql', 'var y;' + s + 'return r'); + if (this.nocase) { + s += ' COLLATE NOCASE'; + } + if (this.direction) { + s += ' ' + this.direction; + } + return s; }; -// SELECY * REMOVE [COLUMNS] col-list, LIKE '' -yy.Select.prototype.compileRemoveColumns = function(query) { - var self = this; - if (typeof this.removecolumns !== 'undefined') { - query.removeKeys = query.removeKeys.concat( - this.removecolumns - .filter(function(column) { - return typeof column.like === 'undefined'; - }) - .map(function(column) { - return column.columnid; - }) - ); - - query.removeLikeKeys = this.removecolumns - .filter(function(column) { - return typeof column.like !== 'undefined'; - }) - .map(function(column) { - // return new RegExp((column.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'); - return column.like.value; - }); +/** + Find aggregator in AST subtree + @this ExpressionStatement + @param {object} query Query object +*/ +yy.Expression.prototype.findAggregator = function(query) { + if (this.expression.findAggregator) { + this.expression.findAggregator(query); } }; -/* global yy */ +/** + Convert AST to JavaScript expression + @this ExpressionStatement + @param {string} context Context string, e.g. 'p','g', or 'x' + @param {string} tableid Default table name + @param {object} defcols Default columns dictionary + @return {string} JavaScript expression +*/ -yy.Select.prototype.compileHaving = function(query) { - if (this.having) { - var s = this.having.toJS('g', -1); - query.havingfns = s; +yy.Expression.prototype.toJS = function(context, tableid, defcols) { - return new Function('g,params,alasql', 'var y;return ' + s); + if (this.expression.reduced) { + return 'true'; } - - return function() { - return true; - }; + return this.expression.toJS(context, tableid, defcols); }; -yy.Select.prototype.compileOrder = function(query) { - var self = this; - self.orderColumns = []; - if (this.order) { - - if ( - this.order && - this.order.length == 1 && - this.order[0].expression && - typeof this.order[0].expression == 'function' - ) { - - var func = this.order[0].expression; - - return function(a, b) { - var ra = func(a), - rb = func(b); - if (ra > rb) return 1; - if (ra == rb) return 0; - return -1; - }; - } - - var s = ''; - var sk = ''; - this.order.forEach(function(ord, idx) { +/** + Compile AST to JavaScript expression + @this ExpressionStatement + @param {string} context Context string, e.g. 'p','g', or 'x' + @param {string} tableid Default table name + @param {object} defcols Default columns dictionary + @return {string} JavaScript expression +*/ - if (ord.expression instanceof yy.NumValue) { - var v = self.columns[ord.expression.value - 1]; - } else { - var v = ord.expression; - } - self.orderColumns.push(v); +yy.Expression.prototype.compile = function(context, tableid, defcols) { - var key = '$$$' + idx; + if (this.reduced) { + return returnTrue(); + } + return new Function('p', 'var y;return ' + this.toJS(context, tableid, defcols)); +}; - // Date conversion - var dg = ''; - //if(alasql.options.valueof) - if (ord.expression instanceof yy.Column) { - var columnid = ord.expression.columnid; - if (query.xcolumns[columnid]) { - var dbtypeid = query.xcolumns[columnid].dbtypeid; - if (dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') - dg = '.valueOf()'; - // TODO Add other types mapping - } else { - if (alasql.options.valueof) dg = '.valueOf()'; // TODO Check - } - // dg = '.valueOf()'; - } - // COLLATE NOCASE - if (ord.nocase) dg += '.toUpperCase()'; - s += - "if((a['" + - key + - "']||'')" + - dg + - (ord.direction == 'ASC' ? '>' : '<') + - "(b['" + - key + - "']||'')" + - dg + - ')return 1;'; - s += "if((a['" + key + "']||'')" + dg + "==(b['" + key + "']||'')" + dg + '){'; +/** + JavaScript class + @class +*/ +yy.JavaScript = function(params) { + return yy.extend(this, params); +}; +yy.JavaScript.prototype.toString = function() { + var s = '``' + this.value + '``'; + return s; +}; - /* -if(false) { +yy.JavaScript.prototype.toJS = function(/* context, tableid, defcols*/) { - if(ord.expression instanceof yy.NumValue) { - ord.expression = self.columns[ord.expression.value-1]; + return '(' + this.value + ')'; +}; +yy.JavaScript.prototype.execute = function(databaseid, params, cb) { + var res = 1; + var expr = new Function('params,alasql,p', this.value); + expr(params, alasql); + if (cb) { + res = cb(res); + } + return res; +}; - ord.expression = new yy.Column({columnid:ord.expression.nick}); - }; +/** + Literal class + @class + @example + MyVar, [My vairable], `MySQL variable` +*/ - if(ord.expression instanceof yy.Column) { - var columnid = ord.expression.columnid; - if(query.xcolumns[columnid]) { - var dbtypeid = query.xcolumns[columnid].dbtypeid; - if( dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') dg = '.valueOf()'; - // TODO Add other types mapping - } else { - if(alasql.options.valueof) dg = '.valueOf()'; // TODO Check - } - // COLLATE NOCASE - if(ord.nocase) dg += '.toUpperCase()'; +yy.Literal = function(params) { + return yy.extend(this, params); +}; +yy.Literal.prototype.toString = function(dontas) { + var s = this.value; + if (this.value1) { + s = this.value1 + '.' + s; + } + if (this.alias && !dontas) s += ' AS ' + this.alias; + // else s = tableid+'.'+s; + return s; +}; - s += 'if((a[\''+columnid+"']||'')"+dg+(ord.direction == 'ASC'?'>':'<')+'(b[\''+columnid+"']||'')"+dg+')return 1;'; - s += 'if((a[\''+columnid+"']||'')"+dg+'==(b[\''+columnid+"']||'')"+dg+'){'; +/** + Join class + @class +*/ - } else { - dg = '.valueOf()'; - // COLLATE NOCASE - if(ord.nocase) dg += '.toUpperCase()'; - s += 'if(('+ord.toJS('a','')+"||'')"+dg+(ord.direction == 'ASC'?'>(':'<(')+ord.toJS('b','')+"||'')"+dg+')return 1;'; - s += 'if(('+ord.toJS('a','')+"||'')"+dg+'==('+ord.toJS('b','')+"||'')"+dg+'){'; - } +yy.Join = function(params) { + return yy.extend(this, params); +}; +yy.Join.prototype.toString = function() { + var s = ' '; + if (this.joinmode) { + s += this.joinmode + ' '; + } + s += 'JOIN ' + this.table.toString(); + return s; +}; - // TODO Add date comparision +// } -} +/** + Table class + @class */ - sk += '}'; - }); - s += 'return 0;'; - s += sk + 'return -1'; - query.orderfns = s; - return new Function('a,b', 'var y;' + s); +yy.Table = function(params) { + return yy.extend(this, params); +}; +yy.Table.prototype.toString = function() { + var s = this.tableid; + // if(this.joinmode) + if (this.databaseid) { + s = this.databaseid + '.' + s; } + return s; }; -// Pivot functions /** - Compile Pivot functions - @param {object} query Source query - @return {function} Pivoting functions + View class + @class */ -yy.Select.prototype.compilePivot = function(query) { - var self = this; - /** @type {string} Main pivoting column */ - var columnid = self.pivot.columnid; - var exprcolid = self.pivot.expr.expression.columnid; - var aggr = self.pivot.expr.aggregatorid; - var inlist = self.pivot.inlist; +yy.View = function(params) { + return yy.extend(this, params); +}; +yy.View.prototype.toString = function() { + var s = this.viewid; + // if(this.joinmode) + if (this.databaseid) { + s = this.databaseid + '.' + s; + } + return s; +}; - if (inlist) { - inlist = inlist.map(function(l) { - return l.expr.columnid; - }); +/** + Binary operation class + @class +*/ +yy.Op = function(params) { + return yy.extend(this, params); +}; +yy.Op.prototype.toString = function() { + if (this.op === 'IN' || this.op === 'NOT IN') { + return this.left.toString() + ' ' + this.op + ' (' + this.right.toString() + ')'; } + if (this.allsome) { + return ( + this.left.toString() + + ' ' + + this.op + + ' ' + + this.allsome + + ' (' + + this.right.toString() + + ')' + ); + } + if (this.op === '->' || this.op === '!') { + var s = this.left.toString() + this.op; - // Function for PIVOT post production - return function() { - var query = this; - var cols = query.columns - .filter(function(col) { - return col.columnid != columnid && col.columnid != exprcolid; - }) - .map(function(col) { - return col.columnid; - }); + if (typeof this.right !== 'string' && typeof this.right !== 'number') { + s += '('; + } - var newcols = []; - var gnewcols = {}; - var gr = {}; - var ga = {}; - var data = []; - query.data.forEach(function(d) { - if (!inlist || inlist.indexOf(d[columnid]) > -1) { - var gx = cols - .map(function(colid) { - return d[colid]; - }) - .join('`'); - var g = gr[gx]; - if (!g) { - g = {}; - gr[gx] = g; - data.push(g); - cols.forEach(function(colid) { - g[colid] = d[colid]; - }); - } + s += this.right.toString(); - if (!ga[gx]) { - ga[gx] = {}; - } + if (typeof this.right !== 'string' && typeof this.right !== 'number') { + s += ')'; + } - if (ga[gx][d[columnid]]) { - ga[gx][d[columnid]]++; - } else { - ga[gx][d[columnid]] = 1; - } + return s; + } + return ( + this.left.toString() + + ' ' + + this.op + + ' ' + + (this.allsome ? this.allsome + ' ' : '') + + this.right.toString() + ); +}; - if (!gnewcols[d[columnid]]) { - gnewcols[d[columnid]] = true; - newcols.push(d[columnid]); - } +yy.Op.prototype.findAggregator = function(query) { - if (aggr == 'SUM' || aggr == 'AVG') { - if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0; - g[d[columnid]] += d[exprcolid]; - } else if (aggr == 'COUNT') { - if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0; - g[d[columnid]]++; - } else if (aggr == 'MIN') { - if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = Infinity; - if (d[exprcolid] < g[d[columnid]]) g[d[columnid]] = d[exprcolid]; - } else if (aggr == 'MAX') { - if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = -Infinity; - if (d[exprcolid] > g[d[columnid]]) g[d[columnid]] = d[exprcolid]; - } else if (aggr == 'FIRST') { - if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid]; - } else if (aggr == 'LAST') { - g[d[columnid]] = d[exprcolid]; - } else if (alasql.aggr[aggr]) { - // Custom aggregator - alasql.aggr[aggr](g[d[columnid]], d[exprcolid]); - } else { - throw new Error('Wrong aggregator in PIVOT clause'); - } - } - }); - - if (aggr == 'AVG') { - for (var gx in gr) { - var d = gr[gx]; - for (var colid in d) { - if (cols.indexOf(colid) == -1 && colid != exprcolid) { - d[colid] = d[colid] / ga[gx][colid]; - } - } - } - } - - // columns - query.data = data; - - if (inlist) newcols = inlist; - - var ncol = query.columns.filter(function(col) { - return col.columnid == exprcolid; - })[0]; - query.columns = query.columns.filter(function(col) { - return !(col.columnid == columnid || col.columnid == exprcolid); - }); - newcols.forEach(function(colid) { - var nc = cloneDeep(ncol); - nc.columnid = colid; - query.columns.push(nc); - }); - }; + if (this.left && this.left.findAggregator) { + this.left.findAggregator(query); + } + // Do not go in > ALL + if (this.right && this.right.findAggregator && !this.allsome) { + this.right.findAggregator(query); + } }; -// var columnid = this.pivot.columnid; - -// return function(data){ - -// if(false) { - -// } - -// if(false) { +yy.Op.prototype.toType = function(tableid) { + if (['-', '*', '/', '%', '^'].indexOf(this.op) > -1) { + return 'number'; + } + if (['||'].indexOf(this.op) > -1) { + return 'string'; + } + if (this.op === '+') { + if (this.left.toType(tableid) === 'string' || this.right.toType(tableid) === 'string') { + return 'string'; + } + if (this.left.toType(tableid) === 'number' || this.right.toType(tableid) === 'number') { + return 'number'; + } + } -// } -// }; + if ( + [ + 'AND', + 'OR', + 'NOT', + '=', + '==', + '===', + '!=', + '!==', + '!===', + '>', + '>=', + '<', + '<=', + 'IN', + 'NOT IN', + 'LIKE', + 'NOT LIKE', + 'REGEXP', + 'GLOB', + ].indexOf(this.op) > -1 + ) { + return 'boolean'; + } -/** - Compile UNPIVOT clause - @param {object} query Query object - @return {function} Function for unpivoting -*/ -yy.Select.prototype.compileUnpivot = function(query) { - var self = this; - var tocolumnid = self.unpivot.tocolumnid; - var forcolumnid = self.unpivot.forcolumnid; - var inlist = self.unpivot.inlist.map(function(l) { - return l.columnid; - }); + if ( + this.op === 'BETWEEN' || + this.op === 'NOT BETWEEN' || + this.op === 'IS NULL' || + this.op === 'IS NOT NULL' + ) { + return 'boolean'; + } - return function() { - var data = []; + if (this.allsome) { + return 'boolean'; + } - var xcols = query.columns - .map(function(col) { - return col.columnid; - }) - .filter(function(colid) { - return inlist.indexOf(colid) == -1 && colid != forcolumnid && colid != tocolumnid; - }); + if (!this.op) { + return this.left.toType(); + } - query.data.forEach(function(d) { - inlist.forEach(function(colid) { - var nd = {}; - xcols.forEach(function(xcolid) { - nd[xcolid] = d[xcolid]; - }); - nd[forcolumnid] = colid; - nd[tocolumnid] = d[colid]; - data.push(nd); - }); - }); + return 'unknown'; +}; - query.data = data; +yy.Op.prototype.toJS = function(context, tableid, defcols) { - // }); + var s; + var refs = []; + var op = this.op; + var _this = this; + //var leftJS = function(){return _this.left.toJS(context,tableid, defcols)}; + //var rightJS = function(){return _this.right.toJS(context,tableid, defcols)}; + var accessedLeft = false, + accessedRight = false; + var ref = function(expr) { + if (expr.toJS) { + expr = expr.toJS(context, tableid, defcols); + } + var i = refs.push(expr) - 1; + return 'y[' + i + ']'; + }; + var leftJS = function() { + return ref(_this.left); + }; + var rightJS = function() { + return ref(_this.right); }; -}; - -/* -// -// ROLLUP(), CUBE(), GROUPING SETS() for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ -/** - Calculate ROLLUP() combination - */ + if (this.op === '=') { + op = '==='; + } else if (this.op === '<>') { + op = '!='; + } else if (this.op === 'OR') { + op = '||'; + } -var rollup = function(a, query) { - var rr = []; - var mask = 0; - var glen = a.length; - for (var g = 0; g < glen + 1; g++) { - var ss = []; - for (var i = 0; i < glen; i++) { - if (a[i] instanceof yy.Column) { - a[i].nick = escapeq(a[i].columnid); + // Arrow operator + if (this.op === '->') { + // Expression to prevent error if object is empty (#344) + var ljs = '(' + leftJS() + '||{})'; - query.groupColumns[escapeq(a[i].columnid)] = a[i].nick; - var aaa = a[i].nick + '\t' + a[i].toJS('p', query.sources[0].alias, query.defcols); - } else { - query.groupColumns[escapeq(a[i].toString())] = escapeq(a[i].toString()); - var aaa = - escapeq(a[i].toString()) + - '\t' + - a[i].toJS('p', query.sources[0].alias, query.defcols); + if (typeof this.right === 'string') { + s = ljs + '["' + this.right + '"]'; + } else if (typeof this.right === 'number') { + s = ljs + '[' + this.right + ']'; + } else if (this.right instanceof yy.FuncValue) { + var ss = []; + if (!(!this.right.args || 0 === this.right.args.length)) { + var ss = this.right.args.map(ref); } - - if (mask & (1 << i)) ss.push(aaa); + s = '' + ljs + "['" + this.right.funcid + "'](" + ss.join(',') + ')'; + } else { + s = '' + ljs + '[' + rightJS() + ']'; } - rr.push(ss); - mask = (mask << 1) + 1; } - return rr; -}; - -/** - Calculate CUBE() - */ -var cube = function(a, query) { - var rr = []; - var glen = a.length; - var glenCube = 1 << glen; - for (var g = 0; g < glenCube; g++) { - var ss = []; - for (var i = 0; i < glen; i++) { - if (g & (1 << i)) - //ss.push(a[i]); - //ss = cartes(ss,decartes(a[i])); - - // var aaa = a[i].toString()+'\t' - // +a[i].toJS('p',query.sources[0].alias,query.defcols); - ss = ss.concat(decartes(a[i], query)); - // + if (this.op === '!') { + if (typeof this.right === 'string') { + s = + '' + + 'alasql.databases[alasql.useid].objects[' + + leftJS() + + ']["' + + this.right + + '"]'; } - rr.push(ss); + // TODO - add other cases } - return rr; -}; - -/** - GROUPING SETS() - */ -var groupingsets = function(a, query) { - return a.reduce(function(acc, d) { - acc = acc.concat(decartes(d, query)); - return acc; - }, []); -}; -/** - Cartesian production - */ -var cartes = function(a1, a2) { - var rrr = []; - for (var i1 = 0; i1 < a1.length; i1++) { - for (var i2 = 0; i2 < a2.length; i2++) { - rrr.push(a1[i1].concat(a2[i2])); - } + if (this.op === 'IS') { + s = + '' + + '(' + + '(' + + leftJS() + + '==null)' + // Cant be === + ' === ' + + '(' + + rightJS() + + '==null)' + // Cant be === + ')'; } - return rrr; -}; - -/** - Prepare groups function - */ -function decartes(gv, query) { - if (Array.isArray(gv)) { - var res = [[]]; - for (var t = 0; t < gv.length; t++) { - if (gv[t] instanceof yy.Column) { + if (this.op === '==') { + s = '' + 'alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + ')'; + } - gv[t].nick = escapeq(gv[t].columnid); - query.groupColumns[gv[t].nick] = gv[t].nick; - res = res.map(function(r) { - return r.concat( - gv[t].nick + '\t' + gv[t].toJS('p', query.sources[0].alias, query.defcols) - ); - }); - // res = res.map(function(r){return r.concat(gv[t].columnid)}); - } else if (gv[t] instanceof yy.FuncValue) { - query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString()); - res = res.map(function(r) { - return r.concat( - escapeq(gv[t].toString()) + - '\t' + - gv[t].toJS('p', query.sources[0].alias, query.defcols) - ); - }); - // to be defined - } else if (gv[t] instanceof yy.GroupExpression) { - if (gv[t].type == 'ROLLUP') res = cartes(res, rollup(gv[t].group, query)); - else if (gv[t].type == 'CUBE') res = cartes(res, cube(gv[t].group, query)); - else if (gv[t].type == 'GROUPING SETS') - res = cartes(res, groupingsets(gv[t].group, query)); - else throw new Error('Unknown grouping function'); - } else if (gv[t] === '') { - - res = [['1\t1']]; - } else { - // if(gv[t]) - - res = res.map(function(r) { - query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString()); - return r.concat( - escapeq(gv[t].toString()) + - '\t' + - gv[t].toJS('p', query.sources[0].alias, query.defcols) - ); - }); - // res = res.concat(gv[t]); - } + if (this.op === '===' || this.op === '!===') { + s = + '' + + '(' + + (this.op === '!===' ? '!' : '') + + '(' + + '(' + + leftJS() + + ').valueOf()' + + '===' + + '(' + + rightJS() + + ').valueOf()' + + ')' + + ')'; + } + if (this.op === '!==') { + s = '' + '(!alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + '))'; + } + if (this.op === '||') { + s = '' + "(''+(" + leftJS() + "||'')+(" + rightJS() + '||""))'; + } + if (this.op === 'LIKE' || this.op === 'NOT LIKE') { + var s = + '(' + + (this.op === 'NOT LIKE' ? '!' : '') + + 'alasql.utils.like(' + + rightJS() + + ',' + + leftJS(); + if (this.escape) { + s += ',' + ref(this.escape); } - return res; - } else if (gv instanceof yy.FuncValue) { + s += '))'; + } + if (this.op === 'REGEXP') { + s = 'alasql.stdfn.REGEXP_LIKE(' + leftJS() + ',' + rightJS() + ')'; + } + if (this.op === 'GLOB') { + s = 'alasql.utils.glob(' + leftJS() + ',' + rightJS() + ')'; + } + + if (this.op === 'BETWEEN' || this.op === 'NOT BETWEEN') { + var left = leftJS(); + s = + '' + + '(' + + (this.op === 'NOT BETWEEN' ? '!' : '') + + '(' + + '(' + + ref(this.right1) + + '<=' + + left + + ') && (' + + left + + '<=' + + ref(this.right2) + + ')' + + ')' + + ')'; - query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString()); - return [gv.toString() + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; - } else if (gv instanceof yy.Column) { - gv.nick = escapeq(gv.columnid); - query.groupColumns[gv.nick] = gv.nick; - return [gv.nick + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; // Is this ever happened? - // } else if(gv instanceof yy.Expression) { - // return [gv.columnid]; // Is this ever happened? - } else { - query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString()); - return [ - escapeq(gv.toString()) + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols), - ]; - // throw new Error('Single argument in the group without array'); } -} + if (this.op === 'IN') { + if (this.right instanceof yy.Select) { + s = '('; + // s += 'this.query.queriesdata['+this.queriesidx+']'; + // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,context))'; + s += + 'alasql.utils.flatArray(this.queriesfn[' + + this.queriesidx + + '](params,null,' + + context + + '))'; + s += '.indexOf('; + s += leftJS() + ')>-1)'; + } else if (Array.isArray(this.right)) { + // if(this.right.length == 0) return 'false'; + s = '([' + this.right.map(ref).join(',') + '].indexOf(' + leftJS() + ')>-1)'; -/* -// -// Select run-time part for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ + } else { + s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)'; -yy.Select.prototype.compileDefCols = function(query, databaseid) { + // } else { + // throw new Error('Wrong IN operator without SELECT part'); + } + } - var defcols = {'.': {}}; - if (this.from) { - this.from.forEach(function(fr) { - defcols['.'][fr.as || fr.tableid] = true; - if (fr instanceof yy.Table) { - var alias = fr.as || fr.tableid; + if (this.op === 'NOT IN') { + if (this.right instanceof yy.Select) { + s = '('; + //this.query.queriesdata['+this.queriesidx+'] + // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,p))'; + s += 'alasql.utils.flatArray(this.queriesfn[' + this.queriesidx + '](params,null,p))'; + s += '.indexOf('; + s += leftJS() + ')<0)'; + } else if (Array.isArray(this.right)) { + // if(this.right.length == 0) return 'true'; + s = '([' + this.right.map(ref).join(',') + '].indexOf('; + s += leftJS() + ')<0)'; + } else { + s = '(' + rightJS() + '.indexOf('; + s += leftJS() + ')==-1)'; - var table = alasql.databases[fr.databaseid || databaseid].tables[fr.tableid]; + // throw new Error('Wrong NOT IN operator without SELECT part'); + } + } - if (undefined === table) { - throw new Error('Table does not exist: ' + fr.tableid); - } + if (this.allsome === 'ALL') { + var s; + if (this.right instanceof yy.Select) { + // var s = 'this.query.queriesdata['+this.queriesidx+']'; + s = + 'alasql.utils.flatArray(this.query.queriesfn[' + + this.queriesidx + + '](params,null,p))'; - if (table.columns) { - table.columns.forEach(function(col) { - if (defcols[col.columnid]) { - defcols[col.columnid] = '-'; // Ambigous - } else { - defcols[col.columnid] = alias; - } - }); - } - } else if (fr instanceof yy.Select) { - } else if (fr instanceof yy.Search) { - } else if (fr instanceof yy.ParamValue) { - } else if (fr instanceof yy.VarValue) { - } else if (fr instanceof yy.FuncValue) { - } else if (fr instanceof yy.FromData) { - } else if (fr instanceof yy.Json) { - } else if (fr.inserted) { - } else { + s += '.every(function(b){return ('; + s += leftJS() + ')' + op + 'b})'; + } else if (Array.isArray(this.right)) { + s = + '' + + (this.right.length == 1 + ? ref(this.right[0]) + : '[' + this.right.map(ref).join(',') + ']'); + s += '.every(function(b){return ('; + s += leftJS() + ')' + op + 'b})'; + } else { + throw new Error('NOT IN operator without SELECT'); + } + } - throw new Error('Unknown type of FROM clause'); - } - }); + if (this.allsome === 'SOME' || this.allsome === 'ANY') { + var s; + if (this.right instanceof yy.Select) { + // var s = 'this.query.queriesdata['+this.queriesidx+']'; + s = + 'alasql.utils.flatArray(this.query.queriesfn[' + + this.queriesidx + + '](params,null,p))'; + s += '.some(function(b){return ('; + s += leftJS() + ')' + op + 'b})'; + } else if (Array.isArray(this.right)) { + s = + '' + + (this.right.length == 1 + ? ref(this.right[0]) + : '[' + this.right.map(ref).join(',') + ']'); + s += '.some(function(b){return ('; + s += leftJS() + ')' + op + 'b})'; + } else { + throw new Error('SOME/ANY operator without SELECT'); + } } - if (this.joins) { - this.joins.forEach(function(jn) { - defcols['.'][jn.as || jn.table.tableid] = true; - - if (jn.table) { - var alias = jn.table.tableid; - if (jn.as) alias = jn.as; - var alias = jn.as || jn.table.tableid; - var table = - alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid]; - - if (table.columns) { - table.columns.forEach(function(col) { - if (defcols[col.columnid]) { - defcols[col.columnid] = '-'; // Ambigous - } else { - defcols[col.columnid] = alias; - } - }); - } - } else if (jn.select) { - } else if (jn.param) { - } else if (jn.func) { + // Special case for AND optimization (if reduced) + if (this.op === 'AND') { + if (this.left.reduced) { + if (this.right.reduced) { + return 'true'; } else { - throw new Error('Unknown type of FROM clause'); + s = rightJS(); } - }); + } else if (this.right.reduced) { + s = leftJS(); + } + + // Otherwise process as regular operation (see below) + op = '&&'; } - // for(var k in defcols) { - // if(defcols[k] == '-') defcols[k] = undefined; + + // if(this.op === '^') { + // // return 'Math.pow(' + // // + leftJS() + // // + ',' + // // + rightJS() + // // + ')'; // } - return defcols; -}; + // Change names -/* -// -// UNION for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ + var expr = s || '(' + leftJS() + op + rightJS() + ')'; -// SELECT UNION statement + var declareRefs = 'y=[(' + refs.join('), (') + ')]'; -yy.Union = function(params) { - return yy.extend(this, params); -}; -yy.Union.prototype.toString = function() { - return 'UNION'; + if (op === '&&' || op === '||' || op === 'IS' || op === 'IS NULL' || op === 'IS NOT NULL') { + return '(' + declareRefs + ', ' + expr + ')'; + } + + return ( + '(' + declareRefs + ', ' + 'y.some(function(e){return e == null}) ? void 0 : ' + expr + ')' + ); }; -yy.Union.prototype.compile = function(tableid) { - return null; -}; - -/* -// -// CROSS AND OUTER APPLY for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Apply = function(params) { +yy.VarValue = function(params) { return yy.extend(this, params); }; +yy.VarValue.prototype.toString = function() { + return '@' + this.variable; +}; -yy.Apply.prototype.toString = function() { - var s = this.applymode + ' APPLY (' + this.select.toString() + ')'; - - if (this.as) s += ' AS ' + this.as; - - return s; +yy.VarValue.prototype.toType = function() { + return 'unknown'; }; -/* -// -// CROSS AND OUTER APPLY for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ +yy.VarValue.prototype.toJS = function() { + return "alasql.vars['" + this.variable + "']"; +}; -yy.Over = function(params) { +yy.NumValue = function(params) { return yy.extend(this, params); }; -yy.Over.prototype.toString = function() { - var s = 'OVER ('; - if (this.partition) { - s += 'PARTITION BY ' + this.partition.toString(); - if (this.order) s += ' '; - } - if (this.order) { - s += 'ORDER BY ' + this.order.toString(); - } - s += ')'; - return s; +yy.NumValue.prototype.toString = function() { + return this.value.toString(); }; -/* -// -// Expressions for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ +yy.NumValue.prototype.toType = function() { + return 'number'; +}; -/** - Expression statement ( = 2*2; ) - @class - @param {object} params Initial parameters -*/ -yy.ExpressionStatement = function(params) { - return yy.extend(this, params); +yy.NumValue.prototype.toJS = function() { + return '' + this.value; }; -/** - Convert AST to string - @this ExpressionStatement - @return {string} -*/ -yy.ExpressionStatement.prototype.toString = function() { - return this.expression.toString(); +yy.StringValue = function(params) { + return yy.extend(this, params); +}; +yy.StringValue.prototype.toString = function() { + return "'" + this.value.toString() + "'"; }; -/** - Execute statement - @param {string} databaseid Database identificatro - @param {object} params Statement parameters - @param {statement-callback} cb Callback - @return {object} Result value -*/ -yy.ExpressionStatement.prototype.execute = function(databaseid, params, cb) { - if (this.expression) { - alasql.precompile(this, databaseid, params); // Precompile queries - var exprfn = new Function( - 'params,alasql,p', - 'var y;return ' + this.expression.toJS('({})', '', null) - ).bind(this); - var res = exprfn(params, alasql); - if (cb) { - res = cb(res); - } - return res; - } +yy.StringValue.prototype.toType = function() { + return 'string'; }; -/** - Expression class - @class - @param {object} params Initial parameters -*/ +yy.StringValue.prototype.toJS = function() { -yy.Expression = function(params) { - return yy.extend(this, params); + // return "'"+doubleqq(this.value)+"'"; + return "'" + escapeq(this.value) + "'"; }; -/** - Convert AST to string - @this ExpressionStatement - @return {string} -*/ -yy.Expression.prototype.toString = function(dontas) { - var s = this.expression.toString(dontas); - if (this.order) { - s += ' ' + this.order.toString(); - } - if (this.nocase) { - s += ' COLLATE NOCASE'; - } - if (this.direction) { - s += ' ' + this.direction; - } - return s; +yy.DomainValueValue = function(params) { + return yy.extend(this, params); +}; +yy.DomainValueValue.prototype.toString = function() { + return 'VALUE'; }; -/** - Find aggregator in AST subtree - @this ExpressionStatement - @param {object} query Query object -*/ -yy.Expression.prototype.findAggregator = function(query) { - if (this.expression.findAggregator) { - this.expression.findAggregator(query); - } +yy.DomainValueValue.prototype.toType = function() { + return 'object'; }; -/** - Convert AST to JavaScript expression - @this ExpressionStatement - @param {string} context Context string, e.g. 'p','g', or 'x' - @param {string} tableid Default table name - @param {object} defcols Default columns dictionary - @return {string} JavaScript expression -*/ +yy.DomainValueValue.prototype.toJS = function(context, tableid, defcols) { -yy.Expression.prototype.toJS = function(context, tableid, defcols) { + // return "'"+doubleqq(this.value)+"'"; + return context; +}; - if (this.expression.reduced) { - return 'true'; - } - return this.expression.toJS(context, tableid, defcols); +yy.ArrayValue = function(params) { + return yy.extend(this, params); +}; +yy.ArrayValue.prototype.toString = function() { + return 'ARRAY[]'; }; -/** - Compile AST to JavaScript expression - @this ExpressionStatement - @param {string} context Context string, e.g. 'p','g', or 'x' - @param {string} tableid Default table name - @param {object} defcols Default columns dictionary - @return {string} JavaScript expression -*/ +yy.ArrayValue.prototype.toType = function() { + return 'object'; +}; -yy.Expression.prototype.compile = function(context, tableid, defcols) { +yy.ArrayValue.prototype.toJS = function(context, tableid, defcols) { - if (this.reduced) { - return returnTrue(); - } - return new Function('p', 'var y;return ' + this.toJS(context, tableid, defcols)); + // return "'"+doubleqq(this.value)+"'"; + return ( + '[(' + + this.value + .map(function(el) { + return el.toJS(context, tableid, defcols); + }) + .join('), (') + + ')]' + ); }; -/** - JavaScript class - @class -*/ -yy.JavaScript = function(params) { +yy.LogicValue = function(params) { return yy.extend(this, params); }; -yy.JavaScript.prototype.toString = function() { - var s = '``' + this.value + '``'; - return s; +yy.LogicValue.prototype.toString = function() { + return this.value ? 'TRUE' : 'FALSE'; }; -yy.JavaScript.prototype.toJS = function(/* context, tableid, defcols*/) { - - return '(' + this.value + ')'; -}; -yy.JavaScript.prototype.execute = function(databaseid, params, cb) { - var res = 1; - var expr = new Function('params,alasql,p', this.value); - expr(params, alasql); - if (cb) { - res = cb(res); - } - return res; +yy.LogicValue.prototype.toType = function() { + return 'boolean'; }; -/** - Literal class - @class - @example - MyVar, [My vairable], `MySQL variable` -*/ +yy.LogicValue.prototype.toJS = function() { + return this.value ? 'true' : 'false'; +}; -yy.Literal = function(params) { +yy.NullValue = function(params) { return yy.extend(this, params); }; -yy.Literal.prototype.toString = function(dontas) { - var s = this.value; - if (this.value1) { - s = this.value1 + '.' + s; - } - if (this.alias && !dontas) s += ' AS ' + this.alias; - // else s = tableid+'.'+s; - return s; +yy.NullValue.prototype.toString = function() { + return 'NULL'; +}; +yy.NullValue.prototype.toJS = function() { + return 'undefined'; + // return 'undefined'; }; -/** - Join class - @class -*/ - -yy.Join = function(params) { +yy.ParamValue = function(params) { return yy.extend(this, params); }; -yy.Join.prototype.toString = function() { - var s = ' '; - if (this.joinmode) { - s += this.joinmode + ' '; - } - s += 'JOIN ' + this.table.toString(); - return s; -}; - -// } - -/** - Table class - @class -*/ - -yy.Table = function(params) { - return yy.extend(this, params); +yy.ParamValue.prototype.toString = function() { + return '$' + this.param; }; -yy.Table.prototype.toString = function() { - var s = this.tableid; - // if(this.joinmode) - if (this.databaseid) { - s = this.databaseid + '.' + s; +yy.ParamValue.prototype.toJS = function() { + if (typeof this.param === 'string') { + return "params['" + this.param + "']"; } - return s; -}; - -/** - View class - @class -*/ -yy.View = function(params) { - return yy.extend(this, params); -}; -yy.View.prototype.toString = function() { - var s = this.viewid; - // if(this.joinmode) - if (this.databaseid) { - s = this.databaseid + '.' + s; - } - return s; + return 'params[' + this.param + ']'; }; -/** - Binary operation class - @class -*/ -yy.Op = function(params) { +yy.UniOp = function(params) { return yy.extend(this, params); }; -yy.Op.prototype.toString = function() { - if (this.op === 'IN' || this.op === 'NOT IN') { - return this.left.toString() + ' ' + this.op + ' (' + this.right.toString() + ')'; +yy.UniOp.prototype.toString = function() { + var s; + s = void 0; + if (this.op === '~') { + s = this.op + this.right.toString(); } - if (this.allsome) { - return ( - this.left.toString() + - ' ' + - this.op + - ' ' + - this.allsome + - ' (' + - this.right.toString() + - ')' - ); + if (this.op === '-') { + s = this.op + this.right.toString(); } - if (this.op === '->' || this.op === '!') { - var s = this.left.toString() + this.op; - - if (typeof this.right !== 'string' && typeof this.right !== 'number') { - s += '('; - } - - s += this.right.toString(); - - if (typeof this.right !== 'string' && typeof this.right !== 'number') { - s += ')'; - } - - return s; + if (this.op === '+') { + s = this.op + this.right.toString(); } - return ( - this.left.toString() + - ' ' + - this.op + - ' ' + - (this.allsome ? this.allsome + ' ' : '') + - this.right.toString() - ); + if (this.op === '#') { + s = this.op + this.right.toString(); + } + if (this.op === 'NOT') { + s = this.op + '(' + this.right.toString() + ')'; + } + if (this.op === null) { + s = '(' + this.right.toString() + ')'; + } + if (!s) { + s = '(' + this.right.toString() + ')'; + } + return s; }; -yy.Op.prototype.findAggregator = function(query) { - - if (this.left && this.left.findAggregator) { - this.left.findAggregator(query); - } - // Do not go in > ALL - if (this.right && this.right.findAggregator && !this.allsome) { +yy.UniOp.prototype.findAggregator = function(query) { + if (this.right.findAggregator) { this.right.findAggregator(query); } }; -yy.Op.prototype.toType = function(tableid) { - if (['-', '*', '/', '%', '^'].indexOf(this.op) > -1) { +yy.UniOp.prototype.toType = function() { + if (this.op === '-') { return 'number'; } - if (['||'].indexOf(this.op) > -1) { - return 'string'; - } + if (this.op === '+') { - if (this.left.toType(tableid) === 'string' || this.right.toType(tableid) === 'string') { - return 'string'; - } - if (this.left.toType(tableid) === 'number' || this.right.toType(tableid) === 'number') { - return 'number'; - } + return 'number'; } - if ( - [ - 'AND', - 'OR', - 'NOT', - '=', - '==', - '===', - '!=', - '!==', - '!===', - '>', - '>=', - '<', - '<=', - 'IN', - 'NOT IN', - 'LIKE', - 'NOT LIKE', - 'REGEXP', - 'GLOB', - ].indexOf(this.op) > -1 - ) { + if (this.op === 'NOT') { return 'boolean'; } - if ( - this.op === 'BETWEEN' || - this.op === 'NOT BETWEEN' || - this.op === 'IS NULL' || - this.op === 'IS NOT NULL' - ) { - return 'boolean'; - } + // Todo: implement default case +}; - if (this.allsome) { - return 'boolean'; +yy.UniOp.prototype.toJS = function(context, tableid, defcols) { + if (this.op === '~') { + return '(~(' + this.right.toJS(context, tableid, defcols) + '))'; } - if (!this.op) { - return this.left.toType(); + if (this.op === '-') { + return '(-(' + this.right.toJS(context, tableid, defcols) + '))'; } - return 'unknown'; -}; - -yy.Op.prototype.toJS = function(context, tableid, defcols) { - - var s; - var refs = []; - var op = this.op; - var _this = this; - //var leftJS = function(){return _this.left.toJS(context,tableid, defcols)}; - //var rightJS = function(){return _this.right.toJS(context,tableid, defcols)}; - var accessedLeft = false, - accessedRight = false; - var ref = function(expr) { - if (expr.toJS) { - expr = expr.toJS(context, tableid, defcols); - } - var i = refs.push(expr) - 1; - return 'y[' + i + ']'; - }; - var leftJS = function() { - return ref(_this.left); - }; - var rightJS = function() { - return ref(_this.right); - }; - - if (this.op === '=') { - op = '==='; - } else if (this.op === '<>') { - op = '!='; - } else if (this.op === 'OR') { - op = '||'; + if (this.op === '+') { + return '(' + this.right.toJS(context, tableid, defcols) + ')'; } - // Arrow operator - if (this.op === '->') { - // Expression to prevent error if object is empty (#344) - var ljs = '(' + leftJS() + '||{})'; + if (this.op === 'NOT') { + return '!(' + this.right.toJS(context, tableid, defcols) + ')'; + } - if (typeof this.right === 'string') { - s = ljs + '["' + this.right + '"]'; - } else if (typeof this.right === 'number') { - s = ljs + '[' + this.right + ']'; - } else if (this.right instanceof yy.FuncValue) { - var ss = []; - if (!(!this.right.args || 0 === this.right.args.length)) { - var ss = this.right.args.map(ref); - } - s = '' + ljs + "['" + this.right.funcid + "'](" + ss.join(',') + ')'; + if (this.op === '#') { + if (this.right instanceof yy.Column) { + return "(alasql.databases[alasql.useid].objects['" + this.right.columnid + "'])"; } else { - s = '' + ljs + '[' + rightJS() + ']'; + return ( + '(alasql.databases[alasql.useid].objects[' + + this.right.toJS(context, tableid, defcols) + + '])' + ); } } - if (this.op === '!') { - if (typeof this.right === 'string') { - s = - '' + - 'alasql.databases[alasql.useid].objects[' + - leftJS() + - ']["' + - this.right + - '"]'; - } - // TODO - add other cases + // Please avoid === here + if (this.op == null) { + // jshint ignore:line + return '(' + this.right.toJS(context, tableid, defcols) + ')'; } - if (this.op === 'IS') { - s = - '' + - '(' + - '(' + - leftJS() + - '==null)' + // Cant be === - ' === ' + - '(' + - rightJS() + - '==null)' + // Cant be === - ')'; - } - - if (this.op === '==') { - s = '' + 'alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + ')'; - } - - if (this.op === '===' || this.op === '!===') { - s = - '' + - '(' + - (this.op === '!===' ? '!' : '') + - '(' + - '(' + - leftJS() + - ').valueOf()' + - '===' + - '(' + - rightJS() + - ').valueOf()' + - ')' + - ')'; - } + // Todo: implement default case. +}; - if (this.op === '!==') { - s = '' + '(!alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + '))'; - } - if (this.op === '||') { - s = '' + "(''+(" + leftJS() + "||'')+(" + rightJS() + '||""))'; +yy.Column = function(params) { + return yy.extend(this, params); +}; +yy.Column.prototype.toString = function(dontas) { + var s; + if (this.columnid == +this.columnid) { + // jshint ignore:line + s = '[' + this.columnid + ']'; + } else { + s = this.columnid; } - if (this.op === 'LIKE' || this.op === 'NOT LIKE') { - var s = - '(' + - (this.op === 'NOT LIKE' ? '!' : '') + - 'alasql.utils.like(' + - rightJS() + - ',' + - leftJS(); - if (this.escape) { - s += ',' + ref(this.escape); + if (this.tableid) { + if (+this.columnid === this.columnid) { + s = this.tableid + s; + } else { + s = this.tableid + '.' + s; + } + if (this.databaseid) { + s = this.databaseid + '.' + s; } - s += '))'; - } - if (this.op === 'REGEXP') { - s = 'alasql.stdfn.REGEXP_LIKE(' + leftJS() + ',' + rightJS() + ')'; - } - if (this.op === 'GLOB') { - s = 'alasql.utils.glob(' + leftJS() + ',' + rightJS() + ')'; } + if (this.alias && !dontas) s += ' AS ' + this.alias; + return s; +}; - if (this.op === 'BETWEEN' || this.op === 'NOT BETWEEN') { - var left = leftJS(); - s = - '' + - '(' + - (this.op === 'NOT BETWEEN' ? '!' : '') + - '(' + - '(' + - ref(this.right1) + - '<=' + - left + - ') && (' + - left + - '<=' + - ref(this.right2) + - ')' + - ')' + - ')'; +yy.Column.prototype.toJS = function(context, tableid, defcols) { - } + var s = ''; + if (!this.tableid && tableid === '' && !defcols) { + if (this.columnid !== '_') { + s = context + "['" + this.columnid + "']"; + } else { + if (context === 'g') { + s = "g['_']"; + } else { + s = context; + } + } + } else { + if (context === 'g') { + // if(this.columnid == '_') { + // } else { + s = "g['" + this.nick + "']"; + // } + } else if (this.tableid) { + if (this.columnid !== '_') { + // if() { + // s = context+'[\''+tableid + '\'][\''+this.tableid+'\'][\''+this.columnid+'\']'; + // } else { + s = context + "['" + this.tableid + "']['" + this.columnid + "']"; + // } + } else { + if (context === 'g') { + s = "g['_']"; + } else { + s = context + "['" + this.tableid + "']"; + } + } + } else if (defcols) { + var tbid = defcols[this.columnid]; + if (tbid === '-') { + throw new Error( + 'Cannot resolve column "' + + this.columnid + + '" because it exists in two source tables' + ); + } else if (tbid) { + if (this.columnid !== '_') { + s = context + "['" + tbid + "']['" + this.columnid + "']"; + } else { + s = context + "['" + tbid + "']"; + } - if (this.op === 'IN') { - if (this.right instanceof yy.Select) { - s = '('; - // s += 'this.query.queriesdata['+this.queriesidx+']'; - // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,context))'; - s += - 'alasql.utils.flatArray(this.queriesfn[' + - this.queriesidx + - '](params,null,' + - context + - '))'; - s += '.indexOf('; - s += leftJS() + ')>-1)'; - } else if (Array.isArray(this.right)) { - // if(this.right.length == 0) return 'false'; - s = '([' + this.right.map(ref).join(',') + '].indexOf(' + leftJS() + ')>-1)'; + } else { + if (this.columnid !== '_') { + // if(defcols['.'][this.tableid]) { + // s = context+'[\''+tableid + '\'][\''+this.tableid + '\'][\''+this.columnid+'\']'; + // } else { + s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']"; + // } + } else { + s = context + "['" + (this.tableid || tableid) + "']"; + } + } + } else if (tableid === -1) { + // if(this.columnid != '') { + s = context + "['" + this.columnid + "']"; + // } else { + // s = context; + // } } else { - s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)'; - - // } else { - // throw new Error('Wrong IN operator without SELECT part'); + if (this.columnid !== '_') { + s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']"; + } else { + s = context + "['" + (this.tableid || tableid) + "']"; + } } } - if (this.op === 'NOT IN') { - if (this.right instanceof yy.Select) { - s = '('; - //this.query.queriesdata['+this.queriesidx+'] - // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,p))'; - s += 'alasql.utils.flatArray(this.queriesfn[' + this.queriesidx + '](params,null,p))'; - s += '.indexOf('; - s += leftJS() + ')<0)'; - } else if (Array.isArray(this.right)) { - // if(this.right.length == 0) return 'true'; - s = '([' + this.right.map(ref).join(',') + '].indexOf('; - s += leftJS() + ')<0)'; - } else { - s = '(' + rightJS() + '.indexOf('; - s += leftJS() + ')==-1)'; + // console.trace(new Error()); - // throw new Error('Wrong NOT IN operator without SELECT part'); - } - } + return s; +}; - if (this.allsome === 'ALL') { - var s; - if (this.right instanceof yy.Select) { - // var s = 'this.query.queriesdata['+this.queriesidx+']'; - s = - 'alasql.utils.flatArray(this.query.queriesfn[' + - this.queriesidx + - '](params,null,p))'; +yy.AggrValue = function(params) { + return yy.extend(this, params); +}; +yy.AggrValue.prototype.toString = function(dontas) { + var s = ''; + if (this.aggregatorid === 'REDUCE') { + s += this.funcid + '('; + } else { + s += this.aggregatorid + '('; + } - s += '.every(function(b){return ('; - s += leftJS() + ')' + op + 'b})'; - } else if (Array.isArray(this.right)) { - s = - '' + - (this.right.length == 1 - ? ref(this.right[0]) - : '[' + this.right.map(ref).join(',') + ']'); - s += '.every(function(b){return ('; - s += leftJS() + ')' + op + 'b})'; - } else { - throw new Error('NOT IN operator without SELECT'); - } + if (this.distinct) { + s += 'DISTINCT '; } - if (this.allsome === 'SOME' || this.allsome === 'ANY') { - var s; - if (this.right instanceof yy.Select) { - // var s = 'this.query.queriesdata['+this.queriesidx+']'; - s = - 'alasql.utils.flatArray(this.query.queriesfn[' + - this.queriesidx + - '](params,null,p))'; - s += '.some(function(b){return ('; - s += leftJS() + ')' + op + 'b})'; - } else if (Array.isArray(this.right)) { - s = - '' + - (this.right.length == 1 - ? ref(this.right[0]) - : '[' + this.right.map(ref).join(',') + ']'); - s += '.some(function(b){return ('; - s += leftJS() + ')' + op + 'b})'; - } else { - throw new Error('SOME/ANY operator without SELECT'); - } + if (this.expression) { + s += this.expression.toString(); } - // Special case for AND optimization (if reduced) - if (this.op === 'AND') { - if (this.left.reduced) { - if (this.right.reduced) { - return 'true'; - } else { - s = rightJS(); - } - } else if (this.right.reduced) { - s = leftJS(); - } + s += ')'; - // Otherwise process as regular operation (see below) - op = '&&'; + if (this.over) { + s += ' ' + this.over.toString(); } - // if(this.op === '^') { - // // return 'Math.pow(' - // // + leftJS() - // // + ',' - // // + rightJS() - // // + ')'; - // } + if (this.alias && !dontas) s += ' AS ' + this.alias; + // if(this.alias) s += ' AS '+this.alias; + return s; +}; - // Change names +yy.AggrValue.prototype.findAggregator = function(query) { - var expr = s || '(' + leftJS() + op + rightJS() + ')'; + // var colas = this.as || this.toString(); - var declareRefs = 'y=[(' + refs.join('), (') + ')]'; + var colas = escapeq(this.toString()) + ':' + query.selectGroup.length; - if (op === '&&' || op === '||' || op === 'IS' || op === 'IS NULL' || op === 'IS NOT NULL') { - return '(' + declareRefs + ', ' + expr + ')'; - } + // if(!query.selectColumns[colas]) { + // } - return ( - '(' + declareRefs + ', ' + 'y.some(function(e){return e == null}) ? void 0 : ' + expr + ')' - ); -}; + var found = false; -yy.VarValue = function(params) { - return yy.extend(this, params); -}; -yy.VarValue.prototype.toString = function() { - return '@' + this.variable; -}; + if (!found) { + if (!this.nick) { + this.nick = colas; + var found = false; + for (var i = 0; i < query.removeKeys.length; i++) { + if (query.removeKeys[i] === colas) { + found = true; + break; + } + } + if (!found) { + query.removeKeys.push(colas); + } + } + query.selectGroup.push(this); + } -yy.VarValue.prototype.toType = function() { - return 'unknown'; + // this.reduced = true; + return; }; -yy.VarValue.prototype.toJS = function() { - return "alasql.vars['" + this.variable + "']"; -}; +yy.AggrValue.prototype.toType = function() { + if ( + ['SUM', 'COUNT', 'AVG', 'MIN', 'MAX', 'AGGR', 'VAR', 'STDDEV'].indexOf(this.aggregatorid) > + -1 + ) { + return 'number'; + } -yy.NumValue = function(params) { - return yy.extend(this, params); -}; -yy.NumValue.prototype.toString = function() { - return this.value.toString(); -}; + if (['ARRAY'].indexOf(this.aggregatorid) > -1) { + return 'array'; + } -yy.NumValue.prototype.toType = function() { - return 'number'; -}; + if (['FIRST', 'LAST'].indexOf(this.aggregatorid) > -1) { + return this.expression.toType(); + } -yy.NumValue.prototype.toJS = function() { - return '' + this.value; + // todo: implement default; }; -yy.StringValue = function(params) { - return yy.extend(this, params); -}; -yy.StringValue.prototype.toString = function() { - return "'" + this.value.toString() + "'"; -}; +yy.AggrValue.prototype.toJS = function(/*context, tableid, defcols*/) { -yy.StringValue.prototype.toType = function() { - return 'string'; + var colas = this.nick; + if (colas === undefined) { + colas = this.toString(); + } + return "g['" + colas + "']"; }; -yy.StringValue.prototype.toJS = function() { - - // return "'"+doubleqq(this.value)+"'"; - return "'" + escapeq(this.value) + "'"; +yy.OrderExpression = function(params) { + return yy.extend(this, params); }; +yy.OrderExpression.prototype.toString = yy.Expression.prototype.toString; -yy.DomainValueValue = function(params) { +yy.GroupExpression = function(params) { return yy.extend(this, params); }; -yy.DomainValueValue.prototype.toString = function() { - return 'VALUE'; -}; - -yy.DomainValueValue.prototype.toType = function() { - return 'object'; +yy.GroupExpression.prototype.toString = function() { + return this.type + '(' + this.group.toString() + ')'; }; -yy.DomainValueValue.prototype.toJS = function(context, tableid, defcols) { - - // return "'"+doubleqq(this.value)+"'"; - return context; -}; +// Alasql Linq library -yy.ArrayValue = function(params) { +yy.FromData = function(params) { return yy.extend(this, params); }; -yy.ArrayValue.prototype.toString = function() { - return 'ARRAY[]'; +yy.FromData.prototype.toString = function() { + if (this.data) return 'DATA(' + ((Math.random() * 10e15) | 0) + ')'; + else return '?'; }; +yy.FromData.prototype.toJS = function() { -yy.ArrayValue.prototype.toType = function() { - return 'object'; }; -yy.ArrayValue.prototype.toJS = function(context, tableid, defcols) { +yy.Select.prototype.exec = function(params, cb) { + if (this.preparams) params = this.preparams.concat(params); - // return "'"+doubleqq(this.value)+"'"; - return ( - '[(' + - this.value - .map(function(el) { - return el.toJS(context, tableid, defcols); - }) - .join('), (') + - ')]' - ); -}; + var databaseid = alasql.useid; + db = alasql.databases[databaseid]; + var sql = this.toString(); + var hh = hash(sql); -yy.LogicValue = function(params) { - return yy.extend(this, params); -}; -yy.LogicValue.prototype.toString = function() { - return this.value ? 'TRUE' : 'FALSE'; -}; + var statement = this.compile(databaseid); + if (!statement) return; + statement.sql = sql; + statement.dbversion = db.dbversion; -yy.LogicValue.prototype.toType = function() { - return 'boolean'; + // Secure sqlCache size + if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) { + db.resetSqlCache(); + } + db.sqlCacheSize++; + db.sqlCache[hh] = statement; + var res = (alasql.res = statement(params, cb)); + return res; }; -yy.LogicValue.prototype.toJS = function() { - return this.value ? 'true' : 'false'; -}; +yy.Select.prototype.Select = function() { + var self = this; + var agrs = []; + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } else if (arguments.length == 1) { + if (Array.isArray(arguments[0])) { + args = arguments[0]; + } else { + args = [arguments[0]]; + } + } else { + throw new Error('Wrong number of arguments of Select() function'); + } -yy.NullValue = function(params) { - return yy.extend(this, params); -}; -yy.NullValue.prototype.toString = function() { - return 'NULL'; -}; -yy.NullValue.prototype.toJS = function() { - return 'undefined'; - // return 'undefined'; -}; + self.columns = []; -yy.ParamValue = function(params) { - return yy.extend(this, params); -}; -yy.ParamValue.prototype.toString = function() { - return '$' + this.param; + args.forEach(function(arg) { + if (typeof arg == 'string') { + self.columns.push(new yy.Column({columnid: arg})); + } else if (typeof arg == 'function') { + var pari = 0; + if (self.preparams) { + pari = self.preparams.length; + } else { + self.preparams = []; + } + self.preparams.push(arg); + self.columns.push(new yy.Column({columnid: '*', func: arg, param: pari})); + } else { + // Unknown type + } + }); + + return self; }; -yy.ParamValue.prototype.toJS = function() { - if (typeof this.param === 'string') { - return "params['" + this.param + "']"; - } - return 'params[' + this.param + ']'; +yy.Select.prototype.From = function(tableid) { + var self = this; + if (!self.from) self.from = []; + if (Array.isArray(tableid)) { + var pari = 0; + if (self.preparams) { + pari = self.preparams.length; + } else { + self.preparams = []; + } + self.preparams.push(tableid); + self.from.push(new yy.ParamValue({param: pari})); + } else if (typeof tableid == 'string') { + self.from.push(new yy.Table({tableid: tableid})); + } else { + throw new Error('Unknown arguments in From() function'); + } + return self; }; -yy.UniOp = function(params) { - return yy.extend(this, params); -}; -yy.UniOp.prototype.toString = function() { - var s; - s = void 0; - if (this.op === '~') { - s = this.op + this.right.toString(); - } - if (this.op === '-') { - s = this.op + this.right.toString(); - } - if (this.op === '+') { - s = this.op + this.right.toString(); - } - if (this.op === '#') { - s = this.op + this.right.toString(); - } - if (this.op === 'NOT') { - s = this.op + '(' + this.right.toString() + ')'; - } - if (this.op === null) { - s = '(' + this.right.toString() + ')'; +yy.Select.prototype.OrderBy = function() { + var self = this; + var agrs = []; + + self.order = []; + + if (arguments.length == 0) { + // self.order.push(new yy.OrderExpression({expression: new yy.Column({columnid:"_"}), direction:'ASC'})); + args = ['_']; + } else if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } else if (arguments.length == 1) { + if (Array.isArray(arguments[0])) { + args = arguments[0]; + } else { + args = [arguments[0]]; + } + } else { + throw new Error('Wrong number of arguments of Select() function'); } - if (!s) { - s = '(' + this.right.toString() + ')'; + + if (args.length > 0) { + args.forEach(function(arg) { + var expr = new yy.Column({columnid: arg}); + if (typeof arg == 'function') { + expr = arg; + } + self.order.push(new yy.OrderExpression({expression: expr, direction: 'ASC'})); + }); } - return s; + return self; }; -yy.UniOp.prototype.findAggregator = function(query) { - if (this.right.findAggregator) { - this.right.findAggregator(query); - } +yy.Select.prototype.Top = function(topnum) { + var self = this; + self.top = new yy.NumValue({value: topnum}); + return self; }; -yy.UniOp.prototype.toType = function() { - if (this.op === '-') { - return 'number'; - } +yy.Select.prototype.GroupBy = function() { + var self = this; + var agrs = []; - if (this.op === '+') { - return 'number'; + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } else if (arguments.length == 1) { + if (Array.isArray(arguments[0])) { + args = arguments[0]; + } else { + args = [arguments[0]]; + } + } else { + throw new Error('Wrong number of arguments of Select() function'); } - if (this.op === 'NOT') { - return 'boolean'; - } + self.group = []; - // Todo: implement default case + args.forEach(function(arg) { + var expr = new yy.Column({columnid: arg}); + self.group.push(expr); + }); + + return self; }; -yy.UniOp.prototype.toJS = function(context, tableid, defcols) { - if (this.op === '~') { - return '(~(' + this.right.toJS(context, tableid, defcols) + '))'; +yy.Select.prototype.Where = function(expr) { + var self = this; + if (typeof expr == 'function') { + self.where = expr; } + return self; +}; - if (this.op === '-') { - return '(-(' + this.right.toJS(context, tableid, defcols) + '))'; - } +/* +// +// Functions for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ - if (this.op === '+') { - return '(' + this.right.toJS(context, tableid, defcols) + ')'; - } +yy.FuncValue = function(params) { + return yy.extend(this, params); +}; +yy.FuncValue.prototype.toString = function(dontas) { + var s = ''; - if (this.op === 'NOT') { - return '!(' + this.right.toJS(context, tableid, defcols) + ')'; - } + if (alasql.fn[this.funcid]) s += this.funcid; + else if (alasql.aggr[this.funcid]) s += this.funcid; + else if (alasql.stdlib[this.funcid.toUpperCase()] || alasql.stdfn[this.funcid.toUpperCase()]) + s += this.funcid.toUpperCase(); - if (this.op === '#') { - if (this.right instanceof yy.Column) { - return "(alasql.databases[alasql.useid].objects['" + this.right.columnid + "'])"; - } else { - return ( - '(alasql.databases[alasql.useid].objects[' + - this.right.toJS(context, tableid, defcols) + - '])' - ); - } + s += '('; + if (this.args && this.args.length > 0) { + s += this.args + .map(function(arg) { + return arg.toString(); + }) + .join(','); } + s += ')'; + if (this.as && !dontas) s += ' AS ' + this.as.toString(); + // if(this.alias) s += ' AS '+this.alias; + return s; +}; - // Please avoid === here - if (this.op == null) { - // jshint ignore:line - return '(' + this.right.toJS(context, tableid, defcols) + ')'; - } +yy.FuncValue.prototype.execute = function(databaseid, params, cb) { + var res = 1; + alasql.precompile(this, databaseid, params); // Precompile queries - // Todo: implement default case. + var expr = new Function('params,alasql', 'var y;return ' + this.toJS('', '', null)); + expr(params, alasql); + if (cb) res = cb(res); + return res; }; -yy.Column = function(params) { - return yy.extend(this, params); -}; -yy.Column.prototype.toString = function(dontas) { - var s; - if (this.columnid == +this.columnid) { - // jshint ignore:line - s = '[' + this.columnid + ']'; - } else { - s = this.columnid; +yy.FuncValue.prototype.findAggregator = function(query) { + if (this.args && this.args.length > 0) { + this.args.forEach(function(arg) { + if (arg.findAggregator) arg.findAggregator(query); + }); } - if (this.tableid) { - if (+this.columnid === this.columnid) { - s = this.tableid + s; +}; + +yy.FuncValue.prototype.toJS = function(context, tableid, defcols) { + var s = ''; + var funcid = this.funcid; + // IF this is standard compile functions + if (!alasql.fn[funcid] && alasql.stdlib[funcid.toUpperCase()]) { + if (this.args && this.args.length > 0) { + s += alasql.stdlib[funcid.toUpperCase()].apply( + this, + this.args.map(function(arg) { + return arg.toJS(context, tableid); + }) + ); } else { - s = this.tableid + '.' + s; + s += alasql.stdlib[funcid.toUpperCase()](); } - if (this.databaseid) { - s = this.databaseid + '.' + s; + } else if (!alasql.fn[funcid] && alasql.stdfn[funcid.toUpperCase()]) { + if (this.newid) s += 'new '; + s += 'alasql.stdfn.' + this.funcid.toUpperCase() + '('; + // if(this.args) s += this.args.toJS(context, tableid); + if (this.args && this.args.length > 0) { + s += this.args + .map(function(arg) { + return arg.toJS(context, tableid, defcols); + }) + .join(','); } + s += ')'; + } else { + // This is user-defined run-time function + // TODO arguments!!! + // var s = ''; + if (this.newid) s += 'new '; + s += 'alasql.fn.' + this.funcid + '('; + // if(this.args) s += this.args.toJS(context, tableid); + if (this.args && this.args.length > 0) { + s += this.args + .map(function(arg) { + return arg.toJS(context, tableid, defcols); + }) + .join(','); + } + s += ')'; } - if (this.alias && !dontas) s += ' AS ' + this.alias; + + // if(this.alias) s += ' AS '+this.alias; return s; }; -yy.Column.prototype.toJS = function(context, tableid, defcols) { +var stdlib = (alasql.stdlib = {}); +var stdfn = (alasql.stdfn = {}); - var s = ''; - if (!this.tableid && tableid === '' && !defcols) { - if (this.columnid !== '_') { - s = context + "['" + this.columnid + "']"; - } else { - if (context === 'g') { - s = "g['_']"; - } else { - s = context; - } - } - } else { - if (context === 'g') { - // if(this.columnid == '_') { - // } else { - s = "g['" + this.nick + "']"; - // } - } else if (this.tableid) { - if (this.columnid !== '_') { - // if() { - // s = context+'[\''+tableid + '\'][\''+this.tableid+'\'][\''+this.columnid+'\']'; - // } else { - s = context + "['" + this.tableid + "']['" + this.columnid + "']"; - // } - } else { - if (context === 'g') { - s = "g['_']"; - } else { - s = context + "['" + this.tableid + "']"; - } - } - } else if (defcols) { - var tbid = defcols[this.columnid]; - if (tbid === '-') { - throw new Error( - 'Cannot resolve column "' + - this.columnid + - '" because it exists in two source tables' - ); - } else if (tbid) { - if (this.columnid !== '_') { - s = context + "['" + tbid + "']['" + this.columnid + "']"; - } else { - s = context + "['" + tbid + "']"; - } - - } else { - if (this.columnid !== '_') { - // if(defcols['.'][this.tableid]) { - - // s = context+'[\''+tableid + '\'][\''+this.tableid + '\'][\''+this.columnid+'\']'; - // } else { - s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']"; - // } - } else { - s = context + "['" + (this.tableid || tableid) + "']"; - } - } - } else if (tableid === -1) { - // if(this.columnid != '') { - s = context + "['" + this.columnid + "']"; - // } else { - // s = context; - // } - } else { - if (this.columnid !== '_') { - s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']"; - } else { - s = context + "['" + (this.tableid || tableid) + "']"; - } - } - } - - // console.trace(new Error()); - - return s; +stdlib.ABS = function(a) { + return 'Math.abs(' + a + ')'; }; - -yy.AggrValue = function(params) { - return yy.extend(this, params); +stdlib.CLONEDEEP = function(a) { + return 'alasql.utils.cloneDeep(' + a + ')'; }; -yy.AggrValue.prototype.toString = function(dontas) { - var s = ''; - if (this.aggregatorid === 'REDUCE') { - s += this.funcid + '('; - } else { - s += this.aggregatorid + '('; - } - if (this.distinct) { - s += 'DISTINCT '; - } +stdfn.CONCAT = function() { + return Array.prototype.slice.call(arguments).join(''); +}; +stdlib.EXP = function(a) { + return 'Math.pow(Math.E,' + a + ')'; +}; - if (this.expression) { - s += this.expression.toString(); +stdlib.IIF = function(a, b, c) { + if (arguments.length == 3) { + return '((' + a + ')?(' + b + '):(' + c + '))'; + } else { + throw new Error('Number of arguments of IFF is not equals to 3'); } +}; +stdlib.IFNULL = function(a, b) { + return '(' + a + '||' + b + ')'; +}; +stdlib.INSTR = function(s, p) { + return '((' + s + ').indexOf(' + p + ')+1)'; +}; - s += ')'; +//stdlib.LEN = stdlib.LENGTH = function(s) {return '('+s+'+"").length';}; - if (this.over) { - s += ' ' + this.over.toString(); - } +stdlib.LEN = stdlib.LENGTH = function(s) { + return und(s, 'y.length'); +}; +//stdlib.LENGTH = function(s) {return '('+s+').length'}; - if (this.alias && !dontas) s += ' AS ' + this.alias; - // if(this.alias) s += ' AS '+this.alias; - return s; +stdlib.LOWER = stdlib.LCASE = function(s) { + return und(s, 'String(y).toLowerCase()'); }; +//stdlib.LCASE = function(s) {return '('+s+').toLowerCase()';} -yy.AggrValue.prototype.findAggregator = function(query) { +// Returns a character expression after it removes leading blanks. +// see https://docs.microsoft.com/en-us/sql/t-sql/functions/ltrim-transact-sql +stdlib.LTRIM = function(s) { + return und(s, 'y.replace(/^[ ]+/,"")'); +}; - // var colas = this.as || this.toString(); +// Returns a character string after truncating all trailing spaces. +// see https://docs.microsoft.com/en-us/sql/t-sql/functions/rtrim-transact-sql +stdlib.RTRIM = function(s) { + return und(s, 'y.replace(/[ ]+$/,"")'); +}; - var colas = escapeq(this.toString()) + ':' + query.selectGroup.length; +stdlib.MAX = stdlib.GREATEST = function() { + return 'Math.max(' + Array.prototype.join.call(arguments, ',') + ')'; +}; - // if(!query.selectColumns[colas]) { - // } +stdlib.MIN = stdlib.LEAST = function() { + return 'Math.min(' + Array.prototype.join.call(arguments, ',') + ')'; +}; - var found = false; +stdlib.SUBSTRING = stdlib.SUBSTR = stdlib.MID = function(a, b, c) { + if (arguments.length == 2) return und(a, 'y.substr(' + b + '-1)'); + else if (arguments.length == 3) return und(a, 'y.substr(' + b + '-1,' + c + ')'); +}; - if (!found) { - if (!this.nick) { - this.nick = colas; - var found = false; - for (var i = 0; i < query.removeKeys.length; i++) { - if (query.removeKeys[i] === colas) { - found = true; - break; - } - } - if (!found) { - query.removeKeys.push(colas); - } - } - query.selectGroup.push(this); - } +stdfn.REGEXP_LIKE = function(a, b, c) { - // this.reduced = true; - return; + return (a || '').search(RegExp(b, c)) > -1; }; -yy.AggrValue.prototype.toType = function() { - if ( - ['SUM', 'COUNT', 'AVG', 'MIN', 'MAX', 'AGGR', 'VAR', 'STDDEV'].indexOf(this.aggregatorid) > - -1 - ) { - return 'number'; - } +// Here we uses undefined instead of null +stdlib.ISNULL = stdlib.NULLIF = function(a, b) { + return '(' + a + '==' + b + '?undefined:' + a + ')'; +}; - if (['ARRAY'].indexOf(this.aggregatorid) > -1) { - return 'array'; - } +stdlib.POWER = function(a, b) { + return 'Math.pow(' + a + ',' + b + ')'; +}; - if (['FIRST', 'LAST'].indexOf(this.aggregatorid) > -1) { - return this.expression.toType(); +stdlib.RANDOM = function(r) { + if (arguments.length == 0) { + return 'Math.random()'; + } else { + return '(Math.random()*(' + r + ')|0)'; } - - // todo: implement default; }; - -yy.AggrValue.prototype.toJS = function(/*context, tableid, defcols*/) { - - var colas = this.nick; - if (colas === undefined) { - colas = this.toString(); +stdlib.ROUND = function(s, d) { + if (arguments.length == 2) { + return 'Math.round((' + s + ')*Math.pow(10,(' + d + ')))/Math.pow(10,(' + d + '))'; + } else { + return 'Math.round(' + s + ')'; } - return "g['" + colas + "']"; }; - -yy.OrderExpression = function(params) { - return yy.extend(this, params); +stdlib.CEIL = stdlib.CEILING = function(s) { + return 'Math.ceil(' + s + ')'; +}; +stdlib.FLOOR = function(s) { + return 'Math.floor(' + s + ')'; }; -yy.OrderExpression.prototype.toString = yy.Expression.prototype.toString; -yy.GroupExpression = function(params) { - return yy.extend(this, params); +stdlib.ROWNUM = function() { + return '1'; }; -yy.GroupExpression.prototype.toString = function() { - return this.type + '(' + this.group.toString() + ')'; +stdlib.ROW_NUMBER = function() { + return '1'; }; -// Alasql Linq library - -yy.FromData = function(params) { - return yy.extend(this, params); -}; -yy.FromData.prototype.toString = function() { - if (this.data) return 'DATA(' + ((Math.random() * 10e15) | 0) + ')'; - else return '?'; +stdlib.SQRT = function(s) { + return 'Math.sqrt(' + s + ')'; }; -yy.FromData.prototype.toJS = function() { +stdlib.TRIM = function(s) { + return und(s, 'y.trim()'); }; -yy.Select.prototype.exec = function(params, cb) { - if (this.preparams) params = this.preparams.concat(params); +stdlib.UPPER = stdlib.UCASE = function(s) { + return und(s, 'String(y).toUpperCase()'); +}; - var databaseid = alasql.useid; - db = alasql.databases[databaseid]; - var sql = this.toString(); - var hh = hash(sql); +// Concatination of strings +stdfn.CONCAT_WS = function() { + var args = Array.prototype.slice.call(arguments); + return args.slice(1, args.length).join(args[0]); +}; - var statement = this.compile(databaseid); - if (!statement) return; - statement.sql = sql; - statement.dbversion = db.dbversion; +//stdlib.UCASE = function(s) {return '('+s+').toUpperCase()';} +//REPLACE +// RTRIM +// SUBSTR +// TRIM +//REPLACE +// RTRIM +// SUBSTR +// TRIM - // Secure sqlCache size - if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) { - db.resetSqlCache(); +// Aggregator for joining strings +alasql.aggr.GROUP_CONCAT = function(v, s, stage) { + if (stage === 1) { + return '' + v; + } else if (stage === 2) { + s += ',' + v; + return s; } - db.sqlCacheSize++; - db.sqlCache[hh] = statement; - var res = (alasql.res = statement(params, cb)); - return res; + return s; }; -yy.Select.prototype.Select = function() { - var self = this; - var agrs = []; - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } else if (arguments.length == 1) { - if (Array.isArray(arguments[0])) { - args = arguments[0]; - } else { - args = [arguments[0]]; +alasql.aggr.MEDIAN = function(v, s, stage) { + if (stage === 2) { + if (v !== null) { + s.push(v); } + return s; + } else if (stage === 1) { + if (v === null) { + return []; + } + return [v]; } else { - throw new Error('Wrong number of arguments of Select() function'); - } - - self.columns = []; + if (!s.length) { + return s; + } - args.forEach(function(arg) { - if (typeof arg == 'string') { - self.columns.push(new yy.Column({columnid: arg})); - } else if (typeof arg == 'function') { - var pari = 0; - if (self.preparams) { - pari = self.preparams.length; - } else { - self.preparams = []; - } - self.preparams.push(arg); - self.columns.push(new yy.Column({columnid: '*', func: arg, param: pari})); - } else { - // Unknown type + var r = s.sort(); + var p = (r.length + 1) / 2; + if (Number.isInteger(p)) { + return r[p - 1]; } - }); - return self; + return (r[Math.floor(p - 1)] + r[Math.ceil(p - 1)]) / 2; + } }; -yy.Select.prototype.From = function(tableid) { - var self = this; - if (!self.from) self.from = []; - if (Array.isArray(tableid)) { - var pari = 0; - if (self.preparams) { - pari = self.preparams.length; - } else { - self.preparams = []; +alasql.aggr.QUART = function(v, s, stage, nth) { + //Quartile (first quartile per default or input param) + if (stage === 2) { + if (v !== null) { + s.push(v); } - self.preparams.push(tableid); - self.from.push(new yy.ParamValue({param: pari})); - } else if (typeof tableid == 'string') { - self.from.push(new yy.Table({tableid: tableid})); + return s; + } else if (stage === 1) { + if (v === null) { + return []; + } + return [v]; } else { - throw new Error('Unknown arguments in From() function'); + if (!s.length) { + return s; + } + + nth = !nth ? 1 : nth; + var r = s.sort(); + var p = (nth * (r.length + 1)) / 4; + if (Number.isInteger(p)) { + return r[p - 1]; //Integer value + } + return r[Math.floor(p)]; //Math.ceil -1 or Math.floor } - return self; }; -yy.Select.prototype.OrderBy = function() { - var self = this; - var agrs = []; - - self.order = []; +alasql.aggr.QUART2 = function(v, s, stage) { + //Second Quartile + return alasql.aggr.QUART(v, s, stage, 2); +}; +alasql.aggr.QUART3 = function(v, s, stage) { + //Third Quartile + return alasql.aggr.QUART(v, s, stage, 3); +}; - if (arguments.length == 0) { - // self.order.push(new yy.OrderExpression({expression: new yy.Column({columnid:"_"}), direction:'ASC'})); - args = ['_']; - } else if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } else if (arguments.length == 1) { - if (Array.isArray(arguments[0])) { - args = arguments[0]; - } else { - args = [arguments[0]]; +// Standard deviation +alasql.aggr.VAR = function(v, s, stage) { + if (stage === 1) { + if (v === null) { + return {arr: [], sum: 0}; + } + return {arr: [v], sum: v}; + } else if (stage === 2) { + if (v === null) { + return s; } + s.arr.push(v); + s.sum += v; + return s; } else { - throw new Error('Wrong number of arguments of Select() function'); + var N = s.arr.length; + var avg = s.sum / N; + var std = 0; + for (var i = 0; i < N; i++) { + std += (s.arr[i] - avg) * (s.arr[i] - avg); + } + std = std / (N - 1); + return std; } +}; - if (args.length > 0) { - args.forEach(function(arg) { - var expr = new yy.Column({columnid: arg}); - if (typeof arg == 'function') { - expr = arg; - } - self.order.push(new yy.OrderExpression({expression: expr, direction: 'ASC'})); - }); +alasql.aggr.STDEV = function(v, s, stage) { + if (stage === 1 || stage === 2) { + return alasql.aggr.VAR(v, s, stage); + } else { + return Math.sqrt(alasql.aggr.VAR(v, s, stage)); } - return self; }; -yy.Select.prototype.Top = function(topnum) { - var self = this; - self.top = new yy.NumValue({value: topnum}); - return self; -}; +// Standard deviation +// alasql.aggr.VARP = function(v,s,acc){ -yy.Select.prototype.GroupBy = function() { - var self = this; - var agrs = []; +// }; - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } else if (arguments.length == 1) { - if (Array.isArray(arguments[0])) { - args = arguments[0]; - } else { - args = [arguments[0]]; - } +alasql.aggr.VARP = function(v, s, stage) { + if (stage == 1) { + return {arr: [v], sum: v}; + } else if (stage == 2) { + s.arr.push(v); + s.sum += v; + return s; } else { - throw new Error('Wrong number of arguments of Select() function'); + var N = s.arr.length; + var avg = s.sum / N; + var std = 0; + for (var i = 0; i < N; i++) { + std += (s.arr[i] - avg) * (s.arr[i] - avg); + } + std = std / N; + return std; } +}; - self.group = []; +alasql.aggr.STD = alasql.aggr.STDDEV = alasql.aggr.STDEVP = function(v, s, stage) { + if (stage == 1 || stage == 2) { + return alasql.aggr.VARP(v, s, stage); + } else { + return Math.sqrt(alasql.aggr.VARP(v, s, stage)); + } +}; - args.forEach(function(arg) { - var expr = new yy.Column({columnid: arg}); - self.group.push(expr); - }); +alasql._aggrOriginal = alasql.aggr; +alasql.aggr = {}; +Object.keys(alasql._aggrOriginal).forEach(function(k) { + alasql.aggr[k] = function(v, s, stage) { + if (stage === 3 && typeof s === 'undefined') return undefined; + return alasql._aggrOriginal[k].apply(null, arguments); + }; +}); - return self; +// String functions +stdfn.REPLACE = function(target, pattern, replacement) { + return (target || '').split(pattern).join(replacement); }; -yy.Select.prototype.Where = function(expr) { - var self = this; - if (typeof expr == 'function') { - self.where = expr; - } - return self; +// This array is required for fast GUID generation +var lut = []; +for (var i = 0; i < 256; i++) { + lut[i] = (i < 16 ? '0' : '') + i.toString(16); +} + +stdfn.NEWID = stdfn.UUID = stdfn.GEN_RANDOM_UUID = function() { + var d0 = (Math.random() * 0xffffffff) | 0; + var d1 = (Math.random() * 0xffffffff) | 0; + var d2 = (Math.random() * 0xffffffff) | 0; + var d3 = (Math.random() * 0xffffffff) | 0; + return ( + lut[d0 & 0xff] + + lut[(d0 >> 8) & 0xff] + + lut[(d0 >> 16) & 0xff] + + lut[(d0 >> 24) & 0xff] + + '-' + + lut[d1 & 0xff] + + lut[(d1 >> 8) & 0xff] + + '-' + + lut[((d1 >> 16) & 0x0f) | 0x40] + + lut[(d1 >> 24) & 0xff] + + '-' + + lut[(d2 & 0x3f) | 0x80] + + lut[(d2 >> 8) & 0xff] + + '-' + + lut[(d2 >> 16) & 0xff] + + lut[(d2 >> 24) & 0xff] + + lut[d3 & 0xff] + + lut[(d3 >> 8) & 0xff] + + lut[(d3 >> 16) & 0xff] + + lut[(d3 >> 24) & 0xff] + ); }; /* // -// Functions for Alasql.js +// CASE for Alasql.js // Date: 03.11.2014 // (c) 2014, Andrey Gershun // */ -yy.FuncValue = function(params) { +yy.CaseValue = function(params) { return yy.extend(this, params); }; -yy.FuncValue.prototype.toString = function(dontas) { - var s = ''; - - if (alasql.fn[this.funcid]) s += this.funcid; - else if (alasql.aggr[this.funcid]) s += this.funcid; - else if (alasql.stdlib[this.funcid.toUpperCase()] || alasql.stdfn[this.funcid.toUpperCase()]) - s += this.funcid.toUpperCase(); - - s += '('; - if (this.args && this.args.length > 0) { - s += this.args - .map(function(arg) { - return arg.toString(); +yy.CaseValue.prototype.toString = function() { + var s = 'CASE '; + if (this.expression) s += this.expression.toString(); + if (this.whens) { + s += this.whens + .map(function(w) { + return ' WHEN ' + w.when.toString() + ' THEN ' + w.then.toString(); }) - .join(','); + .join(); } - s += ')'; - if (this.as && !dontas) s += ' AS ' + this.as.toString(); - // if(this.alias) s += ' AS '+this.alias; + s += ' END'; return s; }; -yy.FuncValue.prototype.execute = function(databaseid, params, cb) { - var res = 1; - alasql.precompile(this, databaseid, params); // Precompile queries - - var expr = new Function('params,alasql', 'var y;return ' + this.toJS('', '', null)); - expr(params, alasql); - if (cb) res = cb(res); - return res; -}; +yy.CaseValue.prototype.findAggregator = function(query) { -yy.FuncValue.prototype.findAggregator = function(query) { - if (this.args && this.args.length > 0) { - this.args.forEach(function(arg) { - if (arg.findAggregator) arg.findAggregator(query); + if (this.expression && this.expression.findAggregator) this.expression.findAggregator(query); + if (this.whens && this.whens.length > 0) { + this.whens.forEach(function(w) { + if (w.when.findAggregator) w.when.findAggregator(query); + if (w.then.findAggregator) w.then.findAggregator(query); }); } + if (this.elses && this.elses.findAggregator) this.elses.findAggregator(query); }; -yy.FuncValue.prototype.toJS = function(context, tableid, defcols) { - var s = ''; - var funcid = this.funcid; - // IF this is standard compile functions - if (!alasql.fn[funcid] && alasql.stdlib[funcid.toUpperCase()]) { - if (this.args && this.args.length > 0) { - s += alasql.stdlib[funcid.toUpperCase()].apply( - this, - this.args.map(function(arg) { - return arg.toJS(context, tableid); - }) - ); - } else { - s += alasql.stdlib[funcid.toUpperCase()](); - } - } else if (!alasql.fn[funcid] && alasql.stdfn[funcid.toUpperCase()]) { - if (this.newid) s += 'new '; - s += 'alasql.stdfn.' + this.funcid.toUpperCase() + '('; - // if(this.args) s += this.args.toJS(context, tableid); - if (this.args && this.args.length > 0) { - s += this.args - .map(function(arg) { - return arg.toJS(context, tableid, defcols); - }) - .join(','); - } - s += ')'; +yy.CaseValue.prototype.toJS = function(context, tableid, defcols) { + var s = '((function(' + context + ',params,alasql){var y,r;'; + if (this.expression) { + // this.expression.toJS(context, tableid) + s += 'v=' + this.expression.toJS(context, tableid, defcols) + ';'; + s += (this.whens || []) + .map(function(w) { + return ( + ' if(v==' + + w.when.toJS(context, tableid, defcols) + + ') {r=' + + w.then.toJS(context, tableid, defcols) + + '}' + ); + }) + .join(' else '); + if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}'; } else { - // This is user-defined run-time function - // TODO arguments!!! - // var s = ''; - if (this.newid) s += 'new '; - s += 'alasql.fn.' + this.funcid + '('; - // if(this.args) s += this.args.toJS(context, tableid); - if (this.args && this.args.length > 0) { - s += this.args - .map(function(arg) { - return arg.toJS(context, tableid, defcols); - }) - .join(','); - } - s += ')'; + s += (this.whens || []) + .map(function(w) { + return ( + ' if(' + + w.when.toJS(context, tableid, defcols) + + ') {r=' + + w.then.toJS(context, tableid, defcols) + + '}' + ); + }) + .join(' else '); + if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}'; } + // TODO remove bind from CASE + s += ';return r;}).bind(this))(' + context + ',params,alasql)'; - // if(this.alias) s += ' AS '+this.alias; return s; }; -var stdlib = (alasql.stdlib = {}); -var stdfn = (alasql.stdfn = {}); +/* +// +// JSON for Alasql.js +// Date: 19.11.2014 +// (c) 2014, Andrey Gershun +// +*/ -stdlib.ABS = function(a) { - return 'Math.abs(' + a + ')'; +yy.Json = function(params) { + return yy.extend(this, params); }; -stdlib.CLONEDEEP = function(a) { - return 'alasql.utils.cloneDeep(' + a + ')'; +yy.Json.prototype.toString = function() { + var s = ''; // '@' + s += JSONtoString(this.value); + s += ''; + return s; }; -stdfn.CONCAT = function() { - return Array.prototype.slice.call(arguments).join(''); -}; -stdlib.EXP = function(a) { - return 'Math.pow(Math.E,' + a + ')'; -}; +var JSONtoString = (alasql.utils.JSONtoString = function(obj) { + var s = ''; + if (typeof obj == 'string') s = '"' + obj + '"'; + else if (typeof obj == 'number') s = obj; + else if (typeof obj == 'boolean') s = obj; + else if (typeof obj == 'object') { + if (Array.isArray(obj)) { + s += + '[' + + obj + .map(function(b) { + return JSONtoString(b); + }) + .join(',') + + ']'; + } else if (!obj.toJS || obj instanceof yy.Json) { + // to prevent recursion + s = '{'; + var ss = []; + for (var k in obj) { + var s1 = ''; + if (typeof k == 'string') s1 += '"' + k + '"'; + else if (typeof k == 'number') s1 += k; + else if (typeof k == 'boolean') s1 += k; + else { + throw new Error('THis is not ES6... no expressions on left side yet'); + } + s1 += ':' + JSONtoString(obj[k]); + ss.push(s1); + } + s += ss.join(',') + '}'; + } else if (obj.toString) { + s = obj.toString(); + } else { + throw new Error('1Can not show JSON object ' + JSON.stringify(obj)); + } + } else { + throw new Error('2Can not show JSON object ' + JSON.stringify(obj)); + } -stdlib.IIF = function(a, b, c) { - if (arguments.length == 3) { - return '((' + a + ')?(' + b + '):(' + c + '))'; + return s; +}); + +function JSONtoJS(obj, context, tableid, defcols) { + var s = ''; + if (typeof obj == 'string') s = '"' + obj + '"'; + else if (typeof obj == 'number') s = '(' + obj + ')'; + else if (typeof obj == 'boolean') s = obj; + else if (typeof obj == 'object') { + if (Array.isArray(obj)) { + s += + '[' + + obj + .map(function(b) { + return JSONtoJS(b, context, tableid, defcols); + }) + .join(',') + + ']'; + } else if (!obj.toJS || obj instanceof yy.Json) { + // to prevent recursion + s = '{'; + var ss = []; + for (var k in obj) { + var s1 = ''; + if (typeof k == 'string') s1 += '"' + k + '"'; + else if (typeof k == 'number') s1 += k; + else if (typeof k == 'boolean') s1 += k; + else { + throw new Error('THis is not ES6... no expressions on left side yet'); + } + s1 += ':' + JSONtoJS(obj[k], context, tableid, defcols); + ss.push(s1); + } + s += ss.join(',') + '}'; + } else if (obj.toJS) { + s = obj.toJS(context, tableid, defcols); + } else { + throw new Error('1Can not parse JSON object ' + JSON.stringify(obj)); + } } else { - throw new Error('Number of arguments of IFF is not equals to 3'); + throw new Error('2Can not parse JSON object ' + JSON.stringify(obj)); } -}; -stdlib.IFNULL = function(a, b) { - return '(' + a + '||' + b + ')'; -}; -stdlib.INSTR = function(s, p) { - return '((' + s + ').indexOf(' + p + ')+1)'; -}; -//stdlib.LEN = stdlib.LENGTH = function(s) {return '('+s+'+"").length';}; + return s; +} -stdlib.LEN = stdlib.LENGTH = function(s) { - return und(s, 'y.length'); +yy.Json.prototype.toJS = function(context, tableid, defcols) { + // TODO redo + return JSONtoJS(this.value, context, tableid, defcols); }; -//stdlib.LENGTH = function(s) {return '('+s+').length'}; -stdlib.LOWER = stdlib.LCASE = function(s) { - return und(s, 'String(y).toLowerCase()'); -}; -//stdlib.LCASE = function(s) {return '('+s+').toLowerCase()';} +/* +// +// CAST and CONVERT functions +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ -// Returns a character expression after it removes leading blanks. -// see https://docs.microsoft.com/en-us/sql/t-sql/functions/ltrim-transact-sql -stdlib.LTRIM = function(s) { - return und(s, 'y.replace(/^[ ]+/,"")'); +yy.Convert = function(params) { + return yy.extend(this, params); }; - -// Returns a character string after truncating all trailing spaces. -// see https://docs.microsoft.com/en-us/sql/t-sql/functions/rtrim-transact-sql -stdlib.RTRIM = function(s) { - return und(s, 'y.replace(/[ ]+$/,"")'); -}; - -stdlib.MAX = stdlib.GREATEST = function() { - return 'Math.max(' + Array.prototype.join.call(arguments, ',') + ')'; -}; - -stdlib.MIN = stdlib.LEAST = function() { - return 'Math.min(' + Array.prototype.join.call(arguments, ',') + ')'; -}; - -stdlib.SUBSTRING = stdlib.SUBSTR = stdlib.MID = function(a, b, c) { - if (arguments.length == 2) return und(a, 'y.substr(' + b + '-1)'); - else if (arguments.length == 3) return und(a, 'y.substr(' + b + '-1,' + c + ')'); -}; - -stdfn.REGEXP_LIKE = function(a, b, c) { - - return (a || '').search(RegExp(b, c)) > -1; -}; - -// Here we uses undefined instead of null -stdlib.ISNULL = stdlib.NULLIF = function(a, b) { - return '(' + a + '==' + b + '?undefined:' + a + ')'; -}; - -stdlib.POWER = function(a, b) { - return 'Math.pow(' + a + ',' + b + ')'; -}; - -stdlib.RANDOM = function(r) { - if (arguments.length == 0) { - return 'Math.random()'; - } else { - return '(Math.random()*(' + r + ')|0)'; - } -}; -stdlib.ROUND = function(s, d) { - if (arguments.length == 2) { - return 'Math.round((' + s + ')*Math.pow(10,(' + d + ')))/Math.pow(10,(' + d + '))'; - } else { - return 'Math.round(' + s + ')'; - } -}; -stdlib.CEIL = stdlib.CEILING = function(s) { - return 'Math.ceil(' + s + ')'; -}; -stdlib.FLOOR = function(s) { - return 'Math.floor(' + s + ')'; -}; - -stdlib.ROWNUM = function() { - return '1'; -}; -stdlib.ROW_NUMBER = function() { - return '1'; -}; - -stdlib.SQRT = function(s) { - return 'Math.sqrt(' + s + ')'; -}; - -stdlib.TRIM = function(s) { - return und(s, 'y.trim()'); -}; - -stdlib.UPPER = stdlib.UCASE = function(s) { - return und(s, 'String(y).toUpperCase()'); -}; - -// Concatination of strings -stdfn.CONCAT_WS = function() { - var args = Array.prototype.slice.call(arguments); - return args.slice(1, args.length).join(args[0]); -}; - -//stdlib.UCASE = function(s) {return '('+s+').toUpperCase()';} -//REPLACE -// RTRIM -// SUBSTR -// TRIM -//REPLACE -// RTRIM -// SUBSTR -// TRIM - -// Aggregator for joining strings -alasql.aggr.GROUP_CONCAT = function(v, s, stage) { - if (stage === 1) { - return '' + v; - } else if (stage === 2) { - s += ',' + v; - return s; +yy.Convert.prototype.toString = function() { + var s = 'CONVERT('; + s += this.dbtypeid; + if (typeof this.dbsize != 'undefined') { + s += '(' + this.dbsize; + if (this.dbprecision) s += ',' + this.dbprecision; + s += ')'; } + s += ',' + this.expression.toString(); + if (this.style) s += ',' + this.style; + s += ')'; return s; }; +yy.Convert.prototype.toJS = function(context, tableid, defcols) { + // if(this.style) { + return ( + 'alasql.stdfn.CONVERT(' + + this.expression.toJS(context, tableid, defcols) + + ',{dbtypeid:"' + + this.dbtypeid + + '",dbsize:' + + this.dbsize + + ',dbprecision:' + + this.dbprecision + + ',style:' + + this.style + + '})' + ); + // } -alasql.aggr.MEDIAN = function(v, s, stage) { - if (stage === 2) { - if (v !== null) { - s.push(v); - } - return s; - } else if (stage === 1) { - if (v === null) { - return []; - } - return [v]; - } else { - if (!s.length) { - return s; - } - - var r = s.sort(); - var p = (r.length + 1) / 2; - if (Number.isInteger(p)) { - return r[p - 1]; - } - - return (r[Math.floor(p - 1)] + r[Math.ceil(p - 1)]) / 2; - } -}; - -alasql.aggr.QUART = function(v, s, stage, nth) { - //Quartile (first quartile per default or input param) - if (stage === 2) { - if (v !== null) { - s.push(v); - } - return s; - } else if (stage === 1) { - if (v === null) { - return []; - } - return [v]; - } else { - if (!s.length) { - return s; - } - - nth = !nth ? 1 : nth; - var r = s.sort(); - var p = nth * (r.length + 1) / 4; - if (Number.isInteger(p)) { - return r[p - 1]; //Integer value - } - return r[Math.floor(p)]; //Math.ceil -1 or Math.floor - } -}; - -alasql.aggr.QUART2 = function(v, s, stage) { - //Second Quartile - return alasql.aggr.QUART(v, s, stage, 2); -}; -alasql.aggr.QUART3 = function(v, s, stage) { - //Third Quartile - return alasql.aggr.QUART(v, s, stage, 3); -}; - -// Standard deviation -alasql.aggr.VAR = function(v, s, stage) { - if (stage === 1) { - if (v === null) { - return {arr: [], sum: 0}; - } - return {arr: [v], sum: v}; - } else if (stage === 2) { - if (v === null) { - return s; - } - s.arr.push(v); - s.sum += v; - return s; - } else { - var N = s.arr.length; - var avg = s.sum / N; - var std = 0; - for (var i = 0; i < N; i++) { - std += (s.arr[i] - avg) * (s.arr[i] - avg); - } - std = std / (N - 1); - return std; - } -}; - -alasql.aggr.STDEV = function(v, s, stage) { - if (stage === 1 || stage === 2) { - return alasql.aggr.VAR(v, s, stage); - } else { - return Math.sqrt(alasql.aggr.VAR(v, s, stage)); - } + throw new Error('There is not such type conversion for ' + this.toString()); }; -// Standard deviation -// alasql.aggr.VARP = function(v,s,acc){ - -// }; +/** + Convert one type to another + */ +alasql.stdfn.CONVERT = function(value, args) { + var val = value; -alasql.aggr.VARP = function(v, s, stage) { - if (stage == 1) { - return {arr: [v], sum: v}; - } else if (stage == 2) { - s.arr.push(v); - s.sum += v; - return s; - } else { - var N = s.arr.length; - var avg = s.sum / N; - var std = 0; - for (var i = 0; i < N; i++) { - std += (s.arr[i] - avg) * (s.arr[i] - avg); + if (args.style) { + // TODO 9,109, 20,120,21,121,126,130,131 conversions + var t; + if (/\d{8}/.test(val)) { + t = new Date(+val.substr(0, 4), +val.substr(4, 2) - 1, +val.substr(6, 2)); + } else { + t = new Date(val); } - std = std / N; - return std; - } -}; - -alasql.aggr.STD = alasql.aggr.STDDEV = alasql.aggr.STDEVP = function(v, s, stage) { - if (stage == 1 || stage == 2) { - return alasql.aggr.VARP(v, s, stage); - } else { - return Math.sqrt(alasql.aggr.VARP(v, s, stage)); - } -}; - -alasql._aggrOriginal = alasql.aggr; -alasql.aggr = {}; -Object.keys(alasql._aggrOriginal).forEach(function(k) { - alasql.aggr[k] = function(v, s, stage) { - if (stage === 3 && typeof s === 'undefined') return undefined; - return alasql._aggrOriginal[k].apply(null, arguments); - }; -}); - -// String functions -stdfn.REPLACE = function(target, pattern, replacement) { - return (target || '').split(pattern).join(replacement); -}; - -// This array is required for fast GUID generation -var lut = []; -for (var i = 0; i < 256; i++) { - lut[i] = (i < 16 ? '0' : '') + i.toString(16); -} - -stdfn.NEWID = stdfn.UUID = stdfn.GEN_RANDOM_UUID = function() { - var d0 = (Math.random() * 0xffffffff) | 0; - var d1 = (Math.random() * 0xffffffff) | 0; - var d2 = (Math.random() * 0xffffffff) | 0; - var d3 = (Math.random() * 0xffffffff) | 0; - return ( - lut[d0 & 0xff] + - lut[(d0 >> 8) & 0xff] + - lut[(d0 >> 16) & 0xff] + - lut[(d0 >> 24) & 0xff] + - '-' + - lut[d1 & 0xff] + - lut[(d1 >> 8) & 0xff] + - '-' + - lut[((d1 >> 16) & 0x0f) | 0x40] + - lut[(d1 >> 24) & 0xff] + - '-' + - lut[(d2 & 0x3f) | 0x80] + - lut[(d2 >> 8) & 0xff] + - '-' + - lut[(d2 >> 16) & 0xff] + - lut[(d2 >> 24) & 0xff] + - lut[d3 & 0xff] + - lut[(d3 >> 8) & 0xff] + - lut[(d3 >> 16) & 0xff] + - lut[(d3 >> 24) & 0xff] - ); -}; - -/* -// -// CASE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.CaseValue = function(params) { - return yy.extend(this, params); -}; -yy.CaseValue.prototype.toString = function() { - var s = 'CASE '; - if (this.expression) s += this.expression.toString(); - if (this.whens) { - s += this.whens - .map(function(w) { - return ' WHEN ' + w.when.toString() + ' THEN ' + w.then.toString(); - }) - .join(); - } - s += ' END'; - return s; -}; - -yy.CaseValue.prototype.findAggregator = function(query) { - - if (this.expression && this.expression.findAggregator) this.expression.findAggregator(query); - if (this.whens && this.whens.length > 0) { - this.whens.forEach(function(w) { - if (w.when.findAggregator) w.when.findAggregator(query); - if (w.then.findAggregator) w.then.findAggregator(query); - }); - } - if (this.elses && this.elses.findAggregator) this.elses.findAggregator(query); -}; - -yy.CaseValue.prototype.toJS = function(context, tableid, defcols) { - var s = '((function(' + context + ',params,alasql){var y,r;'; - if (this.expression) { - // this.expression.toJS(context, tableid) - s += 'v=' + this.expression.toJS(context, tableid, defcols) + ';'; - s += (this.whens || []) - .map(function(w) { - return ( - ' if(v==' + - w.when.toJS(context, tableid, defcols) + - ') {r=' + - w.then.toJS(context, tableid, defcols) + - '}' - ); - }) - .join(' else '); - if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}'; - } else { - s += (this.whens || []) - .map(function(w) { - return ( - ' if(' + - w.when.toJS(context, tableid, defcols) + - ') {r=' + - w.then.toJS(context, tableid, defcols) + - '}' - ); - }) - .join(' else '); - if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}'; - } - // TODO remove bind from CASE - s += ';return r;}).bind(this))(' + context + ',params,alasql)'; - - return s; -}; - -/* -// -// JSON for Alasql.js -// Date: 19.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Json = function(params) { - return yy.extend(this, params); -}; -yy.Json.prototype.toString = function() { - var s = ''; // '@' - s += JSONtoString(this.value); - s += ''; - return s; -}; - -var JSONtoString = (alasql.utils.JSONtoString = function(obj) { - var s = ''; - if (typeof obj == 'string') s = '"' + obj + '"'; - else if (typeof obj == 'number') s = obj; - else if (typeof obj == 'boolean') s = obj; - else if (typeof obj == 'object') { - if (Array.isArray(obj)) { - s += - '[' + - obj - .map(function(b) { - return JSONtoString(b); - }) - .join(',') + - ']'; - } else if (!obj.toJS || obj instanceof yy.Json) { - // to prevent recursion - s = '{'; - var ss = []; - for (var k in obj) { - var s1 = ''; - if (typeof k == 'string') s1 += '"' + k + '"'; - else if (typeof k == 'number') s1 += k; - else if (typeof k == 'boolean') s1 += k; - else { - throw new Error('THis is not ES6... no expressions on left side yet'); - } - s1 += ':' + JSONtoString(obj[k]); - ss.push(s1); - } - s += ss.join(',') + '}'; - } else if (obj.toString) { - s = obj.toString(); - } else { - throw new Error('1Can not show JSON object ' + JSON.stringify(obj)); - } - } else { - throw new Error('2Can not show JSON object ' + JSON.stringify(obj)); - } - - return s; -}); - -function JSONtoJS(obj, context, tableid, defcols) { - var s = ''; - if (typeof obj == 'string') s = '"' + obj + '"'; - else if (typeof obj == 'number') s = '(' + obj + ')'; - else if (typeof obj == 'boolean') s = obj; - else if (typeof obj == 'object') { - if (Array.isArray(obj)) { - s += - '[' + - obj - .map(function(b) { - return JSONtoJS(b, context, tableid, defcols); - }) - .join(',') + - ']'; - } else if (!obj.toJS || obj instanceof yy.Json) { - // to prevent recursion - s = '{'; - var ss = []; - for (var k in obj) { - var s1 = ''; - if (typeof k == 'string') s1 += '"' + k + '"'; - else if (typeof k == 'number') s1 += k; - else if (typeof k == 'boolean') s1 += k; - else { - throw new Error('THis is not ES6... no expressions on left side yet'); - } - s1 += ':' + JSONtoJS(obj[k], context, tableid, defcols); - ss.push(s1); - } - s += ss.join(',') + '}'; - } else if (obj.toJS) { - s = obj.toJS(context, tableid, defcols); - } else { - throw new Error('1Can not parse JSON object ' + JSON.stringify(obj)); - } - } else { - throw new Error('2Can not parse JSON object ' + JSON.stringify(obj)); - } - - return s; -} - -yy.Json.prototype.toJS = function(context, tableid, defcols) { - // TODO redo - return JSONtoJS(this.value, context, tableid, defcols); -}; - -/* -// -// CAST and CONVERT functions -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Convert = function(params) { - return yy.extend(this, params); -}; -yy.Convert.prototype.toString = function() { - var s = 'CONVERT('; - s += this.dbtypeid; - if (typeof this.dbsize != 'undefined') { - s += '(' + this.dbsize; - if (this.dbprecision) s += ',' + this.dbprecision; - s += ')'; - } - s += ',' + this.expression.toString(); - if (this.style) s += ',' + this.style; - s += ')'; - return s; -}; -yy.Convert.prototype.toJS = function(context, tableid, defcols) { - // if(this.style) { - return ( - 'alasql.stdfn.CONVERT(' + - this.expression.toJS(context, tableid, defcols) + - ',{dbtypeid:"' + - this.dbtypeid + - '",dbsize:' + - this.dbsize + - ',dbprecision:' + - this.dbprecision + - ',style:' + - this.style + - '})' - ); - // } - - throw new Error('There is not such type conversion for ' + this.toString()); -}; - -/** - Convert one type to another - */ -alasql.stdfn.CONVERT = function(value, args) { - var val = value; - - if (args.style) { - // TODO 9,109, 20,120,21,121,126,130,131 conversions - var t; - if (/\d{8}/.test(val)) { - t = new Date(+val.substr(0, 4), +val.substr(4, 2) - 1, +val.substr(6, 2)); - } else { - t = new Date(val); - } - switch (args.style) { - case 1: // mm/dd/yy - val = - ('0' + (t.getMonth() + 1)).substr(-2) + - '/' + - ('0' + t.getDate()).substr(-2) + - '/' + - ('0' + t.getYear()).substr(-2); - break; - case 2: // yy.mm.dd - val = - ('0' + t.getYear()).substr(-2) + - '.' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '.' + - ('0' + t.getDate()).substr(-2); - break; - case 3: // dd/mm/yy - val = - ('0' + t.getDate()).substr(-2) + - '/' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '/' + - ('0' + t.getYear()).substr(-2); - break; - case 4: // dd.mm.yy - val = - ('0' + t.getDate()).substr(-2) + - '.' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '.' + - ('0' + t.getYear()).substr(-2); - break; - case 5: // dd-mm-yy - val = - ('0' + t.getDate()).substr(-2) + - '-' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '-' + - ('0' + t.getYear()).substr(-2); - break; - case 6: // dd mon yy - val = - ('0' + t.getDate()).substr(-2) + - ' ' + - t - .toString() - .substr(4, 3) - .toLowerCase() + - ' ' + - ('0' + t.getYear()).substr(-2); - break; - case 7: // Mon dd,yy - val = - t.toString().substr(4, 3) + - ' ' + - ('0' + t.getDate()).substr(-2) + - ',' + - ('0' + t.getYear()).substr(-2); - break; - case 8: // hh:mm:ss - case 108: // hh:mm:ss - val = - ('0' + t.getHours()).substr(-2) + - ':' + - ('0' + t.getMinutes()).substr(-2) + - ':' + - ('0' + t.getSeconds()).substr(-2); - break; - case 10: // mm-dd-yy - val = - ('0' + (t.getMonth() + 1)).substr(-2) + - '-' + - ('0' + t.getDate()).substr(-2) + - '-' + - ('0' + t.getYear()).substr(-2); - break; - case 11: // yy/mm/dd - val = - ('0' + t.getYear()).substr(-2) + - '/' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '/' + - ('0' + t.getDate()).substr(-2); - break; - case 12: // yymmdd - val = - ('0' + t.getYear()).substr(-2) + - ('0' + (t.getMonth() + 1)).substr(-2) + - ('0' + t.getDate()).substr(-2); - break; - case 101: // mm/dd/yyyy - val = - ('0' + (t.getMonth() + 1)).substr(-2) + - '/' + - ('0' + t.getDate()).substr(-2) + - '/' + - t.getFullYear(); - break; - case 102: // yyyy.mm.dd - val = - t.getFullYear() + - '.' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '.' + - ('0' + t.getDate()).substr(-2); - break; - case 103: // dd/mm/yyyy - val = - ('0' + t.getDate()).substr(-2) + - '/' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '/' + - t.getFullYear(); - break; - case 104: // dd.mm.yyyy - val = - ('0' + t.getDate()).substr(-2) + - '.' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '.' + - t.getFullYear(); - break; - case 105: // dd-mm-yyyy - val = - ('0' + t.getDate()).substr(-2) + - '-' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '-' + - t.getFullYear(); - break; - case 106: // dd mon yyyy - val = - ('0' + t.getDate()).substr(-2) + - ' ' + - t - .toString() - .substr(4, 3) - .toLowerCase() + - ' ' + - t.getFullYear(); - break; - case 107: // Mon dd,yyyy - val = - t.toString().substr(4, 3) + - ' ' + - ('0' + t.getDate()).substr(-2) + - ',' + - t.getFullYear(); - break; - case 110: // mm-dd-yyyy - val = - ('0' + (t.getMonth() + 1)).substr(-2) + - '-' + - ('0' + t.getDate()).substr(-2) + - '-' + - t.getFullYear(); - break; - case 111: // yyyy/mm/dd - val = - t.getFullYear() + - '/' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '/' + - ('0' + t.getDate()).substr(-2); - break; - - case 112: // yyyymmdd - val = - t.getFullYear() + - ('0' + (t.getMonth() + 1)).substr(-2) + - ('0' + t.getDate()).substr(-2); - break; - default: - throw new Error('The CONVERT style ' + args.style + ' is not realized yet.'); - } - } - - var udbtypeid = args.dbtypeid.toUpperCase(); - - if (args.dbtypeid == 'Date') { - return new Date(val); - } else if (udbtypeid == 'DATE') { - var d = new Date(val); - var s = - d.getFullYear() + - '.' + - ('0' + (d.getMonth() + 1)).substr(-2) + - '.' + - ('0' + d.getDate()).substr(-2); - return s; - } else if (udbtypeid == 'DATETIME' || udbtypeid == 'DATETIME2') { - var d = new Date(val); - var s = - d.getFullYear() + - '.' + - ('0' + (d.getMonth() + 1)).substr(-2) + - '.' + - ('0' + d.getDate()).substr(-2); - s += - ' ' + - ('0' + d.getHours()).substr(-2) + - ':' + - ('0' + d.getMinutes()).substr(-2) + - ':' + - ('0' + d.getSeconds()).substr(-2); - s += '.' + ('00' + d.getMilliseconds()).substr(-3); - return s; - } else if (['MONEY'].indexOf(udbtypeid) > -1) { - var m = +val; - return (m | 0) + ((m * 100) % 100) / 100; - } else if (['BOOLEAN'].indexOf(udbtypeid) > -1) { - return !!val; - } else if ( - ['INT', 'INTEGER', 'SMALLINT', 'BIGINT', 'SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf( - args.dbtypeid.toUpperCase() - ) > -1 - ) { - return val | 0; - } else if ( - ['STRING', 'VARCHAR', 'NVARCHAR', 'CHARACTER VARIABLE'].indexOf( - args.dbtypeid.toUpperCase() - ) > -1 - ) { - if (args.dbsize) return ('' + val).substr(0, args.dbsize); - else return '' + val; - } else if (['CHAR', 'CHARACTER', 'NCHAR'].indexOf(udbtypeid) > -1) { - return (val + new Array(args.dbsize + 1).join(' ')).substr(0, args.dbsize); - //else return ""+val.substr(0,1); - } else if (['NUMBER', 'FLOAT', 'DECIMAL', 'NUMERIC'].indexOf(udbtypeid) > -1) { - var m = +val; - //toPrecision sets the number of numbers total in the result - m = args.dbsize !== undefined ? parseFloat(m.toPrecision(args.dbsize)) : m; - //toFixed sets the number of numbers to the right of the decimal - m = args.dbprecision !== undefined ? parseFloat(m.toFixed(args.dbprecision)) : m; - return m; - } else if (['JSON'].indexOf(udbtypeid) > -1) { - if (typeof val == 'object') return val; - try { - return JSON.parse(val); - } catch (err) { - throw new Error('Cannot convert string to JSON'); - } - } - return val; -}; - -/* -// -// CREATE TABLE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* global alasql, yy, hash */ - -yy.ColumnDef = function(params) { - return yy.extend(this, params); -}; -yy.ColumnDef.prototype.toString = function() { - var s = this.columnid; - if (this.dbtypeid) { - s += ' ' + this.dbtypeid; - } - - if (this.dbsize) { - s += '(' + this.dbsize; - if (this.dbprecision) { - s += ',' + this.dbprecision; - } - s += ')'; - } - - if (this.primarykey) { - s += ' PRIMARY KEY'; - } - - if (this.notnull) { - s += ' NOT NULL'; - } - - return s; -}; - -yy.CreateTable = function(params) { - return yy.extend(this, params); -}; -yy.CreateTable.prototype.toString = function() { - var s = 'CREATE'; - if (this.temporary) { - s += ' TEMPORARY'; - } - - if (this.view) { - s += ' VIEW'; - } else { - s += ' ' + (this.class ? 'CLASS' : 'TABLE'); - } - if (this.ifnotexists) { - s += ' IF NOT EXISTS'; - } - s += ' ' + this.table.toString(); - if (this.viewcolumns) { - s += - '(' + - this.viewcolumns - .map(function(vcol) { - return vcol.toString(); - }) - .join(',') + - ')'; - } - if (this.as) { - s += ' AS ' + this.as; - } else { - var ss = this.columns.map(function(col) { - return col.toString(); - }); - s += ' (' + ss.join(',') + ')'; - } - - if (this.view && this.select) { - s += ' AS ' + this.select.toString(); - } - - return s; -}; - -// CREATE TABLE -//yy.CreateTable.prototype.compile = returnUndefined; -yy.CreateTable.prototype.execute = function(databaseid, params, cb) { - // var self = this; - var db = alasql.databases[this.table.databaseid || databaseid]; - - var tableid = this.table.tableid; - if (!tableid) { - throw new Error('Table name is not defined'); - } - - // var ifnotexists = this.ifnotexists; - var columns = this.columns; - // if(false) { - // if(!columns) { - // throw new Error('Columns are not defined'); - // } - // } - var constraints = this.constraints || []; - - // IF NOT EXISTS - if (this.ifnotexists && db.tables[tableid]) { - return cb ? cb(0) : 0; - } - - if (db.tables[tableid]) { - throw new Error( - "Can not create table '" + - tableid + - "', because it already exists in the database '" + - db.databaseid + - "'" - ); - } - - var table = (db.tables[tableid] = new alasql.Table()); // TODO Can use special object? - // If this is a class - if (this.class) { - table.isclass = true; - } - - var ss = []; // DEFAULT function components - var uss = []; // ON UPDATE function components - if (columns) { - columns.forEach(function(col) { - var dbtypeid = col.dbtypeid; - if (!alasql.fn[dbtypeid]) { - dbtypeid = dbtypeid.toUpperCase(); - } - - // Process SERIAL data type like Postgress - if (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(dbtypeid) > -1) { - col.identity = {value: 1, step: 1}; - } - - var newcol = { - columnid: col.columnid, - dbtypeid: dbtypeid, - dbsize: col.dbsize, // Fixed issue #150 - dbprecision: col.dbprecision, // Fixed issue #150 - notnull: col.notnull, - identity: col.identity, - }; - if (col.identity) { - table.identities[col.columnid] = { - value: +col.identity.value, - step: +col.identity.step, - }; - // ss.push('\''+col.columnid+'\':(alasql.databases[\''+db.databaseid+'\'].tables[\'' - // +tableid+'\'].identities[\''+col.columnid+'\'].value)'); - } - if (col.check) { - table.checks.push({ - id: col.check.constrantid, - fn: new Function('r', 'var y;return ' + col.check.expression.toJS('r', '')), - }); - } - - if (col.default) { - ss.push("'" + col.columnid + "':" + col.default.toJS('r', '')); - } - - // Check for primary key - if (col.primarykey) { - var pk = (table.pk = {}); - pk.columns = [col.columnid]; - pk.onrightfns = "r['" + col.columnid + "']"; - pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns); - pk.hh = hash(pk.onrightfns); - table.uniqs[pk.hh] = {}; - } - - // UNIQUE clause - if (col.unique) { - var uk = {}; - table.uk = table.uk || []; - table.uk.push(uk); - uk.columns = [col.columnid]; - uk.onrightfns = "r['" + col.columnid + "']"; - uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns); - uk.hh = hash(uk.onrightfns); - table.uniqs[uk.hh] = {}; - } - - // UNIQUE clause - if (col.foreignkey) { - - var fk = col.foreignkey.table; - var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid]; - if (typeof fk.columnid === 'undefined') { - if (fktable.pk.columns && fktable.pk.columns.length > 0) { - fk.columnid = fktable.pk.columns[0]; - } else { - throw new Error('FOREIGN KEY allowed only to tables with PRIMARY KEYs'); - } - } - - var fkfn = function(r) { - var rr = {}; - if (typeof r[col.columnid] === 'undefined') { - return true; - } - rr[fk.columnid] = r[col.columnid]; - var addr = fktable.pk.onrightfn(rr); - - if (!fktable.uniqs[fktable.pk.hh][addr]) { - throw new Error( - 'Foreign key "' + - r[col.columnid] + - '" is not found in table ' + - fktable.tableid - ); - } - return true; - }; - table.checks.push({fn: fkfn}); - - } - - if (col.onupdate) { - uss.push("r['" + col.columnid + "']=" + col.onupdate.toJS('r', '')); - } - - table.columns.push(newcol); - table.xcolumns[newcol.columnid] = newcol; - }); - } - table.defaultfns = ss.join(','); - table.onupdatefns = uss.join(';'); - - // if(constraints) { - constraints.forEach(function(con) { - - var checkfn; - - if (con.type === 'PRIMARY KEY') { - if (table.pk) { - throw new Error('Primary key already exists'); - } - var pk = (table.pk = {}); - pk.columns = con.columns; - pk.onrightfns = pk.columns - .map(function(columnid) { - return "r['" + columnid + "']"; - }) - .join("+'`'+"); - pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns); - pk.hh = hash(pk.onrightfns); - table.uniqs[pk.hh] = {}; - } else if (con.type === 'CHECK') { - - checkfn = new Function('r', 'var y;return ' + con.expression.toJS('r', '')); - } else if (con.type === 'UNIQUE') { - - var uk = {}; - table.uk = table.uk || []; - table.uk.push(uk); - uk.columns = con.columns; - uk.onrightfns = uk.columns - .map(function(columnid) { - return "r['" + columnid + "']"; - }) - .join("+'`'+"); - uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns); - uk.hh = hash(uk.onrightfns); - table.uniqs[uk.hh] = {}; - } else if (con.type === 'FOREIGN KEY') { - - var col = table.xcolumns[con.columns[0]]; - var fk = con.fktable; - if (con.fkcolumns && con.fkcolumns.length > 0) { - fk.columnid = con.fkcolumns[0]; - } - var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid]; - if (typeof fk.columnid === 'undefined') { - fk.columnid = fktable.pk.columns[0]; - } - - checkfn = function(r) { - var rr = {}; - if (typeof r[col.columnid] === 'undefined') { - return true; - } - rr[fk.columnid] = r[col.columnid]; - var addr = fktable.pk.onrightfn(rr); - - if (!fktable.uniqs[fktable.pk.hh][addr]) { - - throw new Error( - 'Foreign key "' + - r[col.columnid] + - '" is not found in table ' + - fktable.tableid - ); - } - return true; - }; - } - if (checkfn) { - table.checks.push({fn: checkfn, id: con.constraintid, fk: con.type === 'FOREIGN KEY'}); - } - }); - - if (this.view && this.viewcolumns) { - var self = this; - this.viewcolumns.forEach(function(vcol, idx) { - self.select.columns[idx].as = vcol.columnid; - }); - } - - //Used in 420from queryfn when table.view = true! - if (this.view && this.select) { - table.view = true; - - table.select = this.select.compile(this.table.databaseid || databaseid); - } - - if (db.engineid) { - - return alasql.engines[db.engineid].createTable( - this.table.databaseid || databaseid, - tableid, - this.ifnotexists, - cb - ); - - // return res1; - } - - // } - // if(table.pk) { - - table.insert = function(r, orreplace) { - var oldinserted = alasql.inserted; - alasql.inserted = [r]; - - var table = this; - - var toreplace = false; // For INSERT OR REPLACE - - /* - // IDENTINY or AUTO_INCREMENT - // if(table.identities && table.identities.length>0) { - // table.identities.forEach(function(ident){ - // r[ident.columnid] = ident.value; - // }); - // } -*/ - // Trigger prevent functionality - var prevent = false; - for (var tr in table.beforeinsert) { - var trigger = table.beforeinsert[tr]; - if (trigger) { - if (trigger.funcid) { - if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true; - } else if (trigger.statement) { - if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; - } - } - } - if (prevent) return; - - // Trigger prevent functionality - var escape = false; - for (tr in table.insteadofinsert) { - escape = true; - trigger = table.insteadofinsert[tr]; - if (trigger) { - if (trigger.funcid) { - alasql.fn[trigger.funcid](r); - } else if (trigger.statement) { - trigger.statement.execute(databaseid); - } - } - } - if (escape) return; - - for (var columnid in table.identities) { - var ident = table.identities[columnid]; - - r[columnid] = ident.value; - - } - - if (table.checks && table.checks.length > 0) { - table.checks.forEach(function(check) { - if (!check.fn(r)) { - // if(orreplace) toreplace=true; else - throw new Error('Violation of CHECK constraint ' + (check.id || '')); - } - }); - } - - table.columns.forEach(function(column) { - if (column.notnull && typeof r[column.columnid] === 'undefined') { - throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid); - } - }); - if (table.pk) { - var pk = table.pk; - var addr = pk.onrightfn(r); - - if (typeof table.uniqs[pk.hh][addr] !== 'undefined') { - - if (orreplace) toreplace = table.uniqs[pk.hh][addr]; - else - throw new Error( - 'Cannot insert record, because it already exists in primary key index' - ); - } - // table.uniqs[pk.hh][addr]=r; - } - - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - var ukaddr = uk.onrightfn(r); - if (typeof table.uniqs[uk.hh][ukaddr] !== 'undefined') { - if (orreplace) toreplace = table.uniqs[uk.hh][ukaddr]; - else - throw new Error( - 'Cannot insert record, because it already exists in unique index' - ); - } - // table.uniqs[uk.hh][ukaddr]=r; - }); - } - - if (toreplace) { - // Do UPDATE!!! - - table.update( - function(t) { - for (var f in r) t[f] = r[f]; - }, - table.data.indexOf(toreplace), - params - ); - } else { - table.data.push(r); - - // Final change before insert - - // Update indices - - for (var columnid in table.identities) { - var ident = table.identities[columnid]; - - ident.value += ident.step; - - } - - if (table.pk) { - var pk = table.pk; - var addr = pk.onrightfn(r); - table.uniqs[pk.hh][addr] = r; - } - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - var ukaddr = uk.onrightfn(r); - table.uniqs[uk.hh][ukaddr] = r; - }); - } - } - - // Trigger prevent functionality - for (var tr in table.afterinsert) { - var trigger = table.afterinsert[tr]; - if (trigger) { - if (trigger.funcid) { - alasql.fn[trigger.funcid](r); - } else if (trigger.statement) { - trigger.statement.execute(databaseid); - } - } - } - alasql.inserted = oldinserted; - }; - - table.delete = function(index) { - var table = this; - var r = table.data[index]; - - // Prevent trigger - var prevent = false; - for (var tr in table.beforedelete) { - var trigger = table.beforedelete[tr]; - if (trigger) { - if (trigger.funcid) { - if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true; - } else if (trigger.statement) { - if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; - } - } - } - if (prevent) return false; - - // Trigger prevent functionality - var escape = false; - for (var tr in table.insteadofdelete) { - escape = true; - var trigger = table.insteadofdelete[tr]; - if (trigger) { - if (trigger.funcid) { - alasql.fn[trigger.funcid](r); - } else if (trigger.statement) { - trigger.statement.execute(databaseid); - } - } - } - if (escape) return; - - if (this.pk) { - var pk = this.pk; - var addr = pk.onrightfn(r); - if (typeof this.uniqs[pk.hh][addr] === 'undefined') { - throw new Error('Something wrong with primary key index on table'); - } else { - this.uniqs[pk.hh][addr] = undefined; - } - } - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - var ukaddr = uk.onrightfn(r); - if (typeof table.uniqs[uk.hh][ukaddr] === 'undefined') { - throw new Error('Something wrong with unique index on table'); - } - table.uniqs[uk.hh][ukaddr] = undefined; - }); - } - }; - - table.deleteall = function() { - this.data.length = 0; - if (this.pk) { - // var r = this.data[i]; - this.uniqs[this.pk.hh] = {}; - } - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - table.uniqs[uk.hh] = {}; - }); - } - }; - - table.update = function(assignfn, i, params) { - // TODO: Analyze the speed - var r = cloneDeep(this.data[i]); - - var pk; - // PART 1 - PRECHECK - if (this.pk) { - pk = this.pk; - pk.pkaddr = pk.onrightfn(r, params); - if (typeof this.uniqs[pk.hh][pk.pkaddr] === 'undefined') { - throw new Error('Something wrong with index on table'); - } - } - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - uk.ukaddr = uk.onrightfn(r); - if (typeof table.uniqs[uk.hh][uk.ukaddr] === 'undefined') { - throw new Error('Something wrong with unique index on table'); - } - }); - } - - assignfn(r, params, alasql); - - // Prevent trigger - var prevent = false; - for (var tr in table.beforeupdate) { - var trigger = table.beforeupdate[tr]; - if (trigger) { - if (trigger.funcid) { - if (alasql.fn[trigger.funcid](this.data[i], r) === false) - prevent = prevent || true; - } else if (trigger.statement) { - if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; - } - } - } - if (prevent) return false; - - // Trigger prevent functionality - var escape = false; - for (var tr in table.insteadofupdate) { - escape = true; - var trigger = table.insteadofupdate[tr]; - if (trigger) { - if (trigger.funcid) { - alasql.fn[trigger.funcid](this.data[i], r); - } else if (trigger.statement) { - trigger.statement.execute(databaseid); - } - } - } - if (escape) return; - - // PART 2 - POST CHECK - if (table.checks && table.checks.length > 0) { - table.checks.forEach(function(check) { - if (!check.fn(r)) { - throw new Error('Violation of CHECK constraint ' + (check.id || '')); - } - }); - } - - table.columns.forEach(function(column) { - if (column.notnull && typeof r[column.columnid] === 'undefined') { - throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid); - } - }); - if (this.pk) { - pk.newpkaddr = pk.onrightfn(r); - if ( - typeof this.uniqs[pk.hh][pk.newpkaddr] !== 'undefined' && - pk.newpkaddr !== pk.pkaddr - ) { - throw new Error('Record already exists'); - } - } - - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - uk.newukaddr = uk.onrightfn(r); - if ( - typeof table.uniqs[uk.hh][uk.newukaddr] !== 'undefined' && - uk.newukaddr !== uk.ukaddr - ) { - throw new Error('Record already exists'); - } - }); - } - - // PART 3 UPDATE - if (this.pk) { - this.uniqs[pk.hh][pk.pkaddr] = undefined; - this.uniqs[pk.hh][pk.newpkaddr] = r; - } - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - table.uniqs[uk.hh][uk.ukaddr] = undefined; - table.uniqs[uk.hh][uk.newukaddr] = r; - }); - } - - this.data[i] = r; - - // Trigger prevent functionality - for (var tr in table.afterupdate) { - var trigger = table.afterupdate[tr]; - if (trigger) { - if (trigger.funcid) { - alasql.fn[trigger.funcid](this.data[i], r); - } else if (trigger.statement) { - trigger.statement.execute(databaseid); - } - } - } - }; - - var res; - - if (!alasql.options.nocount) { - res = 1; - } - - if (cb) res = cb(res); - return res; -}; - -// -// Date functions -// -// (c) 2014, Andrey Gershun -// - -/** Standard JavaScript data types */ - -alasql.fn.Date = Object; -alasql.fn.Date = Date; -alasql.fn.Number = Number; -alasql.fn.String = String; -alasql.fn.Boolean = Boolean; - -/** Extend Object with properties */ -stdfn.EXTEND = alasql.utils.extend; - -stdfn.CHAR = String.fromCharCode.bind(String); -stdfn.ASCII = function(a) { - return a.charCodeAt(0); -}; - -/** - Return first non-null argument - See https://msdn.microsoft.com/en-us/library/ms190349.aspx -*/ -stdfn.COALESCE = function() { - for (var i = 0; i < arguments.length; i++) { - if (typeof arguments[i] == 'undefined') continue; - if (typeof arguments[i] == 'number' && isNaN(arguments[i])) continue; - return arguments[i]; - } - return undefined; -}; - -stdfn.USER = function() { - return 'alasql'; -}; - -stdfn.OBJECT_ID = function(objid) { - return !!alasql.tables[objid]; -}; - -stdfn.DATE = function(d) { - if (/\d{8}/.test(d)) return new Date(+d.substr(0, 4), +d.substr(4, 2) - 1, +d.substr(6, 2)); - return new Date(d); -}; - -stdfn.NOW = function() { - var d = new Date(); - var s = - d.getFullYear() + - '.' + - ('0' + (d.getMonth() + 1)).substr(-2) + - '.' + - ('0' + d.getDate()).substr(-2); - s += - ' ' + - ('0' + d.getHours()).substr(-2) + - ':' + - ('0' + d.getMinutes()).substr(-2) + - ':' + - ('0' + d.getSeconds()).substr(-2); - s += '.' + ('00' + d.getMilliseconds()).substr(-3); - return s; -}; - -stdfn.GETDATE = stdfn.NOW; -stdfn.CURRENT_TIMESTAMP = stdfn.NOW; - -stdfn.SECOND = function(d) { - var d = new Date(d); - return d.getSeconds(); -}; - -stdfn.MINUTE = function(d) { - var d = new Date(d); - return d.getMinutes(); -}; - -stdfn.HOUR = function(d) { - var d = new Date(d); - return d.getHours(); -}; - -stdfn.DAYOFWEEK = stdfn.WEEKDAY = function(d) { - var d = new Date(d); - return d.getDay(); -}; - -stdfn.DAY = stdfn.DAYOFMONTH = function(d) { - var d = new Date(d); - return d.getDate(); -}; - -stdfn.MONTH = function(d) { - var d = new Date(d); - return d.getMonth() + 1; -}; - -stdfn.YEAR = function(d) { - var d = new Date(d); - return d.getFullYear(); -}; - -var PERIODS = { - year: 1000 * 3600 * 24 * 365, - quarter: 1000 * 3600 * 24 * 365 / 4, - month: 1000 * 3600 * 24 * 30, - week: 1000 * 3600 * 24 * 7, - day: 1000 * 3600 * 24, - dayofyear: 1000 * 3600 * 24, - weekday: 1000 * 3600 * 24, - hour: 1000 * 3600, - minute: 1000 * 60, - second: 1000, - millisecond: 1, - microsecond: 0.001, -}; - -alasql.stdfn.DATEDIFF = function(period, d1, d2) { - var interval = new Date(d2).getTime() - new Date(d1).getTime(); - return interval / PERIODS[period.toLowerCase()]; -}; - -alasql.stdfn.DATEADD = function(period, interval, d) { - var nd = new Date(d).getTime() + interval * PERIODS[period.toLowerCase()]; - return new Date(nd); -}; - -alasql.stdfn.INTERVAL = function(interval, period) { - return interval * PERIODS[period.toLowerCase()]; -}; - -alasql.stdfn.DATE_ADD = alasql.stdfn.ADDDATE = function(d, interval) { - var nd = new Date(d).getTime() + interval; - return new Date(nd); -}; - -alasql.stdfn.DATE_SUB = alasql.stdfn.SUBDATE = function(d, interval) { - var nd = new Date(d).getTime() - interval; - return new Date(nd); -}; - -/* -// -// DROP TABLE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.DropTable = function(params) { - return yy.extend(this, params); -}; -yy.DropTable.prototype.toString = function() { - var s = 'DROP' + ' '; - if (this.view) s += 'VIEW'; - else s += 'TABLE'; - if (this.ifexists) s += ' IF EXISTS'; - s += ' ' + this.tables.toString(); - return s; -}; - -// DROP TABLE -/** - Drop tables - @param {string} databaseid Database id - @param {object} params Parameters - @param {callback} cb Callback function - @return Number of dropped tables - @example - DROP TABLE one; - DROP TABLE IF NOT EXISTS two, three; -*/ -yy.DropTable.prototype.execute = function(databaseid, params, cb) { - var ifexists = this.ifexists; - var res = 0; // No tables removed - var count = 0; - var tlen = this.tables.length; - - // For each table in the list - this.tables.forEach(function(table) { - var db = alasql.databases[table.databaseid || databaseid]; - var tableid = table.tableid; - - /** @todo Test with AUTOCOMMIT flag is ON */ - /** @todo Test with IndexedDB and multiple tables */ - - if (!ifexists || (ifexists && db.tables[tableid])) { - if (!db.tables[tableid]) { - if (!alasql.options.dropifnotexists) { - throw new Error( - "Can not drop table '" + - table.tableid + - "', because it does not exist in the database." - ); - } - } else { - if (db.engineid /*&& alasql.options.autocommit*/) { - alasql.engines[db.engineid].dropTable( - table.databaseid || databaseid, - tableid, - ifexists, - function(res1) { - delete db.tables[tableid]; - res += res1; - count++; - if (count == tlen && cb) cb(res); - } - ); - } else { - delete db.tables[tableid]; - res++; - count++; - if (count == tlen && cb) cb(res); - } - } - } else { - count++; - if (count == tlen && cb) cb(res); - } - }); - // if(cb) res = cb(res); - return res; -}; - -yy.TruncateTable = function(params) { - return yy.extend(this, params); -}; -yy.TruncateTable.prototype.toString = function() { - var s = 'TRUNCATE TABLE'; - s += ' ' + this.table.toString(); - return s; -}; - -yy.TruncateTable.prototype.execute = function(databaseid, params, cb) { - var db = alasql.databases[this.table.databaseid || databaseid]; - var tableid = this.table.tableid; - if (db.engineid) { - return alasql.engines[db.engineid].truncateTable( - this.table.databaseid || databaseid, - tableid, - this.ifexists, - cb - ); - } - if (db.tables[tableid]) { - db.tables[tableid].data = []; - } else { - throw new Error('Cannot truncate table becaues it does not exist'); - } - return cb ? cb(0) : 0; -}; - -/* -// -// CREATE VERTEX for AlaSQL -// Date: 21.04.2015 -// (c) 2015, Andrey Gershun -// -*/ - -yy.CreateVertex = function(params) { - return yy.extend(this, params); -}; -yy.CreateVertex.prototype.toString = function() { - var s = 'CREATE VERTEX '; - if (this.class) { - s += this.class + ' '; - } - if (this.sharp) { - s += '#' + this.sharp + ' '; - } - if (this.sets) { - s += this.sets.toString(); - } else if (this.content) { - s += this.content.toString(); - } else if (this.select) { - s += this.select.toString(); - } - - return s; -}; - -yy.CreateVertex.prototype.toJS = function(context) { - - var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; - // var s = ''; - return s; -}; - -// CREATE TABLE - -yy.CreateVertex.prototype.compile = function(databaseid) { - var dbid = databaseid; - - // CREATE VERTEX #id - var sharp = this.sharp; - - // CREATE VERTEX "Name" - if (typeof this.name !== 'undefined') { - var s = 'x.name=' + this.name.toJS(); - var namefn = new Function('x', s); - } - - if (this.sets && this.sets.length > 0) { - var s = this.sets - .map(function(st) { - return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); - }) - .join(';'); - var setfn = new Function('x,params,alasql', s); - } - - // Todo: check for content, select and default - - var statement = function(params, cb) { - var res; - - // CREATE VERTEX without parameters - var db = alasql.databases[dbid]; - var id; - if (typeof sharp !== 'undefined') { - id = sharp; - } else { - id = db.counter++; - } - var vertex = {$id: id, $node: 'VERTEX'}; - db.objects[vertex.$id] = vertex; - res = vertex; - if (namefn) { - namefn(vertex); - } - if (setfn) { - setfn(vertex, params, alasql); - } - - if (cb) { - res = cb(res); - } - return res; - }; - return statement; -}; - -yy.CreateEdge = function(params) { - return yy.extend(this, params); -}; -yy.CreateEdge.prototype.toString = function() { - - var s = 'CREATE EDGE' + ' '; - if (this.class) { - s += this.class + ' '; - } - // todo: SET - // todo: CONTENT - // todo: SELECT - return s; -}; - -yy.CreateEdge.prototype.toJS = function(context) { - var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; - return s; -}; - -// CREATE TABLE - -yy.CreateEdge.prototype.compile = function(databaseid) { - var dbid = databaseid; - var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS()); - var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS()); - - // CREATE VERTEX "Name" - if (typeof this.name !== 'undefined') { - var s = 'x.name=' + this.name.toJS(); - var namefn = new Function('x', s); - } - - if (this.sets && this.sets.length > 0) { - var s = this.sets - .map(function(st) { - return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); - }) - .join(';'); - var setfn = new Function('x,params,alasql', 'var y;' + s); - } - - /* - todo: handle content, select and default - else if(this.content) { - - } else if(this.select) { - - } else { - } - */ - - var statement = function(params, cb) { - var res = 0; - // CREATE VERTEX without parameters - var db = alasql.databases[dbid]; - var edge = {$id: db.counter++, $node: 'EDGE'}; - var v1 = fromfn(params, alasql); - var v2 = tofn(params, alasql); - // Set link - edge.$in = [v1.$id]; - edge.$out = [v2.$id]; - // Set sides - if (v1.$out === undefined) { - v1.$out = []; - } - v1.$out.push(edge.$id); - - if (typeof v2.$in === undefined) { - v2.$in = []; - } - v2.$in.push(edge.$id); - - // Save in objects - db.objects[edge.$id] = edge; - res = edge; - if (namefn) { - namefn(edge); - } - - if (setfn) { - setfn(edge, params, alasql); - } - - if (cb) { - res = cb(res); - } - - return res; - }; - return statement; -}; - -yy.CreateGraph = function(params) { - return yy.extend(this, params); -}; -yy.CreateGraph.prototype.toString = function() { - var s = 'CREATE GRAPH' + ' '; - if (this.class) { - s += this.class + ' '; - } - return s; -}; - -yy.CreateGraph.prototype.execute = function(databaseid, params, cb) { - var res = []; - if (this.from) { - if (alasql.from[this.from.funcid]) { - this.graph = alasql.from[this.from.funcid.toUpperCase()]; - } - } - - // stop; - this.graph.forEach(function(g) { - if (g.source) { - // GREATE EDGE - var e = {}; - if (typeof g.as !== 'undefined') { - alasql.vars[g.as] = e; - } - - if (typeof g.prop !== 'undefined') { - // e[g.prop] = e; - // v.$id = g.prop; // We do not create $id for edge automatically - e.name = g.prop; - } - if (typeof g.sharp !== 'undefined') { - e.$id = g.sharp; - } - if (typeof g.name !== 'undefined') { - e.name = g.name; - } - if (typeof g.class !== 'undefined') { - e.$class = g.class; - } - - var db = alasql.databases[databaseid]; - if (typeof e.$id === 'undefined') { - e.$id = db.counter++; - } - e.$node = 'EDGE'; - if (typeof g.json !== 'undefined') { - extend( - e, - new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql) - ); - } - - var v1; - if (g.source.vars) { - var vo = alasql.vars[g.source.vars]; - if (typeof vo === 'object') { - v1 = vo; - } else { - v1 = db.objects[vo]; - } - } else { - var av1 = g.source.sharp; - if (typeof av1 === 'undefined') { - av1 = g.source.prop; - } - v1 = alasql.databases[databaseid].objects[av1]; - if ( - typeof v1 === 'undefined' && - alasql.options.autovertex && - (typeof g.source.prop !== 'undefined' || typeof g.source.name !== 'undefined') - ) { - v1 = findVertex(g.source.prop || g.source.name); - if (typeof v1 === 'undefined') { - v1 = createVertex(g.source); - } - } - } - - var v2; - if (g.source.vars) { - var vo = alasql.vars[g.target.vars]; - if (typeof vo === 'object') { - v2 = vo; - } else { - v2 = db.objects[vo]; - } - } else { - var av2 = g.target.sharp; - if (typeof av2 === 'undefined') { - av2 = g.target.prop; - } - v2 = alasql.databases[databaseid].objects[av2]; - if ( - typeof v2 === 'undefined' && - alasql.options.autovertex && - (typeof g.target.prop !== 'undefined' || typeof g.target.name !== 'undefined') - ) { - v2 = findVertex(g.target.prop || g.target.name); - if (typeof v2 === 'undefined') { - v2 = createVertex(g.target); - } - } - } - - // Set link - e.$in = [v1.$id]; - e.$out = [v2.$id]; - // Set sides - if (typeof v1.$out === 'undefined') { - v1.$out = []; - } - v1.$out.push(e.$id); - if (typeof v2.$in === 'undefined') { - v2.$in = []; - } - v2.$in.push(e.$id); - - db.objects[e.$id] = e; - if (typeof e.$class !== 'undefined') { - if (typeof alasql.databases[databaseid].tables[e.$class] === 'undefined') { - throw new Error('No such class. Pleace use CREATE CLASS'); - } else { - // TODO - add insert() - alasql.databases[databaseid].tables[e.$class].data.push(e); - } - } - - res.push(e.$id); - } else { - createVertex(g); - } - }); - - if (cb) { - res = cb(res); - } - return res; - - // Find vertex by name - function findVertex(name) { - var objects = alasql.databases[alasql.useid].objects; - for (var k in objects) { - if (objects[k].name === name) { - return objects[k]; - } - } - return undefined; - } - - function createVertex(g) { - // GREATE VERTEX - var v = {}; - if (typeof g.as !== 'undefined') { - alasql.vars[g.as] = v; - } - - if (typeof g.prop !== 'undefined') { - // v[g.prop] = true; - v.$id = g.prop; - v.name = g.prop; - } - - if (typeof g.sharp !== 'undefined') { - v.$id = g.sharp; - } - if (typeof g.name !== 'undefined') { - v.name = g.name; - } - if (typeof g.class !== 'undefined') { - v.$class = g.class; - } - - var db = alasql.databases[databaseid]; - if (typeof v.$id === 'undefined') { - v.$id = db.counter++; - } - v.$node = 'VERTEX'; - if (typeof g.json !== 'undefined') { - extend( - v, - new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql) - ); - } - db.objects[v.$id] = v; - if (typeof v.$class !== 'undefined') { - if (typeof alasql.databases[databaseid].tables[v.$class] === 'undefined') { - throw new Error('No such class. Pleace use CREATE CLASS'); - } else { - // TODO - add insert() - alasql.databases[databaseid].tables[v.$class].data.push(v); - } - } - - res.push(v.$id); - return v; - } -}; - -yy.CreateGraph.prototype.compile1 = function(databaseid) { - var dbid = databaseid; - var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS()); - var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS()); - - // CREATE VERTEX "Name" - if (typeof this.name !== 'undefined') { - var s = 'x.name=' + this.name.toJS(); - var namefn = new Function('x', s); - } - - if (this.sets && this.sets.length > 0) { - var s = this.sets - .map(function(st) { - return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); - }) - .join(';'); - var setfn = new Function('x,params,alasql', 'var y;' + s); - } - - // Todo: handle content, select and default - - var statement = function(params, cb) { - var res = 0; - // CREATE VERTEX without parameters - var db = alasql.databases[dbid]; - var edge = {$id: db.counter++, $node: 'EDGE'}; - var v1 = fromfn(params, alasql); - var v2 = tofn(params, alasql); - // Set link - edge.$in = [v1.$id]; - edge.$out = [v2.$id]; - // Set sides - if (typeof v1.$out === 'undefined') { - v1.$out = []; - } - v1.$out.push(edge.$id); - - if (typeof v2.$in === 'undefined') { - v2.$in = []; - } - v2.$in.push(edge.$id); - // Save in objects - db.objects[edge.$id] = edge; - res = edge; - if (namefn) { - namefn(edge); - } - if (setfn) { - setfn(edge, params, alasql); - } - - if (cb) { - res = cb(res); - } - return res; - }; - return statement; -}; - -/* -// -// ALTER TABLE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ -/* global alasql yy */ - -// ALTER TABLE table1 RENAME TO table2 -yy.AlterTable = function(params) { - return yy.extend(this, params); -}; -yy.AlterTable.prototype.toString = function() { - var s = 'ALTER TABLE ' + this.table.toString(); - if (this.renameto) s += ' RENAME TO ' + this.renameto; - return s; -}; - -yy.AlterTable.prototype.execute = function(databaseid, params, cb) { - var db = alasql.databases[databaseid]; - db.dbversion = Date.now(); - - if (this.renameto) { - var oldtableid = this.table.tableid; - var newtableid = this.renameto; - var res = 1; - if (db.tables[newtableid]) { - throw new Error( - "Can not rename a table '" + - oldtableid + - "' to '" + - newtableid + - "', because the table with this name already exists" - ); - } else if (newtableid === oldtableid) { - throw new Error("Can not rename a table '" + oldtableid + "' to itself"); - } else { - db.tables[newtableid] = db.tables[oldtableid]; - delete db.tables[oldtableid]; - res = 1; - } - if (cb) cb(res); - return res; - } else if (this.addcolumn) { - db = alasql.databases[this.table.databaseid || databaseid]; - db.dbversion++; - var tableid = this.table.tableid; - var table = db.tables[tableid]; - var columnid = this.addcolumn.columnid; - if (table.xcolumns[columnid]) { - throw new Error( - 'Cannot add column "' + - columnid + - '", because it already exists in the table "' + - tableid + - '"' - ); - } - - var col = { - columnid: columnid, - dbtypeid: this.dbtypeid, - dbsize: this.dbsize, - dbprecision: this.dbprecision, - dbenum: this.dbenum, - defaultfns: null, // TODO defaultfns!!! - }; - - var defaultfn = function() {}; - - table.columns.push(col); - table.xcolumns[columnid] = col; - - for (var i = 0, ilen = table.data.length; i < ilen; i++) { - - table.data[i][columnid] = defaultfn(); - } - - // TODO - return cb ? cb(1) : 1; - } else if (this.modifycolumn) { - var db = alasql.databases[this.table.databaseid || databaseid]; - db.dbversion++; - var tableid = this.table.tableid; - var table = db.tables[tableid]; - var columnid = this.modifycolumn.columnid; - - if (!table.xcolumns[columnid]) { - throw new Error( - 'Cannot modify column "' + - columnid + - '", because it was not found in the table "' + - tableid + - '"' - ); - } - - col = table.xcolumns[columnid]; - col.dbtypeid = this.dbtypeid; - col.dbsize = this.dbsize; - col.dbprecision = this.dbprecision; - col.dbenum = this.dbenum; - - // TODO - return cb ? cb(1) : 1; - } else if (this.renamecolumn) { - var db = alasql.databases[this.table.databaseid || databaseid]; - db.dbversion++; - - var tableid = this.table.tableid; - var table = db.tables[tableid]; - var columnid = this.renamecolumn; - var tocolumnid = this.to; - - var col; - if (!table.xcolumns[columnid]) { - throw new Error( - 'Column "' + columnid + '" is not found in the table "' + tableid + '"' - ); - } - if (table.xcolumns[tocolumnid]) { - throw new Error( - 'Column "' + tocolumnid + '" already exists in the table "' + tableid + '"' - ); - } - - if (columnid != tocolumnid) { - for (var j = 0; j < table.columns.length; j++) { - if (table.columns[j].columnid == columnid) { - table.columns[j].columnid = tocolumnid; - } - } - - table.xcolumns[tocolumnid] = table.xcolumns[columnid]; - delete table.xcolumns[columnid]; - - for (var i = 0, ilen = table.data.length; i < ilen; i++) { - - table.data[i][tocolumnid] = table.data[i][columnid]; - delete table.data[i][columnid]; - } - return table.data.length; - } else { - return cb ? cb(0) : 0; - } - } else if (this.dropcolumn) { - var db = alasql.databases[this.table.databaseid || databaseid]; - db.dbversion++; - var tableid = this.table.tableid; - var table = db.tables[tableid]; - var columnid = this.dropcolumn; - - var found = false; - for (var j = 0; j < table.columns.length; j++) { - if (table.columns[j].columnid == columnid) { - found = true; - table.columns.splice(j, 1); - break; - } - } - - if (!found) { - throw new Error( - 'Cannot drop column "' + - columnid + - '", because it was not found in the table "' + - tableid + - '"' - ); - } - - delete table.xcolumns[columnid]; - - for (i = 0, ilen = table.data.length; i < ilen; i++) { - delete table.data[i][columnid]; - } - return cb ? cb(table.data.length) : table.data.length; - } else { - throw Error('Unknown ALTER TABLE method'); - } -}; - -/* -// -// CREATE TABLE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.CreateIndex = function(params) { - return yy.extend(this, params); -}; -yy.CreateIndex.prototype.toString = function() { - var s = 'CREATE'; - if (this.unique) s += ' UNIQUE'; - s += ' INDEX ' + this.indexid + ' ON ' + this.table.toString(); - s += '(' + this.columns.toString() + ')'; - return s; -}; - -// CREATE TABLE -yy.CreateIndex.prototype.execute = function(databaseid, params, cb) { - // var self = this; - var db = alasql.databases[databaseid]; - var tableid = this.table.tableid; - var table = db.tables[tableid]; - var indexid = this.indexid; - db.indices[indexid] = tableid; - - var rightfns = this.columns - .map(function(expr) { - return expr.expression.toJS('r', ''); - }) - .join("+'`'+"); - - var rightfn = new Function('r,params,alasql', 'return ' + rightfns); - - if (this.unique) { - table.uniqdefs[indexid] = { - rightfns: rightfns, - }; - var ux = (table.uniqs[indexid] = {}); - if (table.data.length > 0) { - for (var i = 0, ilen = table.data.length; i < ilen; i++) { - var addr = rightfns(table.data[i]); - if (!ux[addr]) { - ux[addr] = {num: 0}; - } - ux[addr].num++; - } - } - } else { - var hh = hash(rightfns); - table.inddefs[indexid] = {rightfns: rightfns, hh: hh}; - table.indices[hh] = {}; - - var ix = (table.indices[hh] = {}); - if (table.data.length > 0) { - for (var i = 0, ilen = table.data.length; i < ilen; i++) { - var addr = rightfn(table.data[i], params, alasql); - if (!ix[addr]) { - ix[addr] = []; - } - ix[addr].push(table.data[i]); - } - } - } - var res = 1; - if (cb) res = cb(res); - return res; -}; - -yy.Reindex = function(params) { - return yy.extend(this, params); -}; -yy.Reindex.prototype.toString = function() { - var s = 'REINDEX ' + this.indexid; - return s; -}; - -// CREATE TABLE -yy.Reindex.prototype.execute = function(databaseid, params, cb) { - // var self = this; - var db = alasql.databases[databaseid]; - var indexid = this.indexid; - - var tableid = db.indices[indexid]; - var table = db.tables[tableid]; - table.indexColumns(); - var res = 1; - if (cb) res = cb(res); - return res; -}; - -/* -// -// DROP TABLE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.DropIndex = function(params) { - return yy.extend(this, params); -}; -yy.DropIndex.prototype.toString = function() { - return 'DROP INDEX' + this.indexid; -}; - -// DROP TABLE -yy.DropIndex.prototype.compile = function(db) { - var indexid = this.indexid; - return function() { - return 1; - }; -}; - -/* -// -// WITH SELECT for Alasql.js -// Date: 11.01.2015 -// (c) 2015, Andrey Gershun -// -*/ - -yy.WithSelect = function(params) { - return yy.extend(this, params); -}; -yy.WithSelect.prototype.toString = function() { - var s = 'WITH '; - s += - this.withs - .map(function(w) { - return w.name + ' AS (' + w.select.toString() + ')'; - }) - .join(',') + ' '; - s += this.select.toString(); - return s; -}; - -yy.WithSelect.prototype.execute = function(databaseid, params, cb) { - var self = this; - // Create temporary tables - var savedTables = []; - self.withs.forEach(function(w) { - savedTables.push(alasql.databases[databaseid].tables[w.name]); - var tb = (alasql.databases[databaseid].tables[w.name] = new Table({tableid: w.name})); - tb.data = w.select.execute(databaseid, params); - }); - - var res = 1; - res = this.select.execute(databaseid, params, function(data) { - // Clear temporary tables - // setTimeout(function(){ - self.withs.forEach(function(w, idx) { - if (savedTables[idx]) alasql.databases[databaseid].tables[w.name] = savedTables[idx]; - else delete alasql.databases[databaseid].tables[w.name]; - }); - // },0); - - if (cb) data = cb(data); - return data; - }); - return res; -}; - -/* -// -// IF for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.If = function(params) { - return yy.extend(this, params); -}; -yy.If.prototype.toString = function() { - var s = 'IF' + ' '; - s += this.expression.toString(); - s += ' ' + this.thenstat.toString(); - if (this.elsestat) s += ' ELSE ' + this.thenstat.toString(); - return s; -}; - -// CREATE TABLE - -yy.If.prototype.execute = function(databaseid, params, cb) { - var res; - - var fn = new Function( - 'params,alasql,p', - 'var y;return ' + this.expression.toJS('({})', '', null) - ).bind(this); - - if (fn(params, alasql)) res = this.thenstat.execute(databaseid, params, cb); - else { - if (this.elsestat) res = this.elsestat.execute(databaseid, params, cb); - else { - if (cb) res = cb(res); - } - } - // else res = this.elsestat.execute(databaseid,params,cb,scope); - return res; -}; - -/* -// -// CREATE VIEW for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.While = function(params) { - return yy.extend(this, params); -}; -yy.While.prototype.toString = function() { - var s = 'WHILE '; - s += this.expression.toString(); - s += ' ' + this.loopstat.toString(); - return s; -}; - -yy.While.prototype.execute = function(databaseid, params, cb) { - var self = this; - var res = []; - - var fn = new Function('params,alasql,p', 'var y;return ' + this.expression.toJS()); - - if (cb) { - var first = false; - loop(); - function loop(data) { - if (first) { - res.push(data); - } else { - first = true; - } - setTimeout(function() { - if (fn(params, alasql)) { - self.loopstat.execute(databaseid, params, loop); - } else { - res = cb(res); - } - }, 0); - } - } else { - while (fn(params, alasql)) { - var res1 = self.loopstat.execute(databaseid, params); - res.push(res1); - } - } - return res; -}; - -yy.Break = function(params) { - return yy.extend(this, params); -}; -yy.Break.prototype.toString = function() { - var s = 'BREAK'; - return s; -}; - -yy.Break.prototype.execute = function(databaseid, params, cb, scope) { - var res = 1; - if (cb) res = cb(res); - return res; -}; - -yy.Continue = function(params) { - return yy.extend(this, params); -}; -yy.Continue.prototype.toString = function() { - var s = 'CONTINUE'; - return s; -}; - -yy.Continue.prototype.execute = function(databaseid, params, cb, scope) { - var res = 1; - if (cb) res = cb(res); - return res; -}; - -yy.BeginEnd = function(params) { - return yy.extend(this, params); -}; -yy.BeginEnd.prototype.toString = function() { - var s = 'BEGIN ' + this.statements.toString() + ' END'; - return s; -}; - -yy.BeginEnd.prototype.execute = function(databaseid, params, cb, scope) { - var self = this; - var res = []; - - var idx = 0; - runone(); - function runone() { - self.statements[idx].execute(databaseid, params, function(data) { - res.push(data); - idx++; - if (idx < self.statements.length) return runone(); - if (cb) res = cb(res); - }); - } - return res; -}; - -/* -// -// INSERT for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* global yy alasql*/ -yy.Insert = function(params) { - return yy.extend(this, params); -}; -yy.Insert.prototype.toString = function() { - var s = 'INSERT '; - if (this.orreplace) s += 'OR REPLACE '; - if (this.replaceonly) s = 'REPLACE '; - s += 'INTO ' + this.into.toString(); - if (this.columns) s += '(' + this.columns.toString() + ')'; - if (this.values) s += ' VALUES ' + this.values.toString(); - if (this.select) s += ' ' + this.select.toString(); - return s; -}; - -yy.Insert.prototype.toJS = function(context, tableid, defcols) { - - // if(this.expression.reduced) return 'true'; - // return this.expression.toJS(context, tableid, defcols); - - // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]'; - - var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; - - return s; -}; - -yy.Insert.prototype.compile = function(databaseid) { - var self = this; - databaseid = self.into.databaseid || databaseid; - var db = alasql.databases[databaseid]; - - var tableid = self.into.tableid; - var table = db.tables[tableid]; - - if (!table) { - throw "Table '" + tableid + "' could not be found"; - } - - // Check, if this dirty flag is required - var s = ''; - var sw = ''; - var s = "db.tables['" + tableid + "'].dirty=true;"; - var s3 = 'var a,aa=[],x;'; - - var s33; - - // INSERT INTO table VALUES - if (this.values) { - if (this.exists) { - this.existsfn = this.exists.map(function(ex) { - var nq = ex.compile(databaseid); - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - if (this.queries) { - this.queriesfn = this.queries.map(function(q) { - var nq = q.compile(databaseid); - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - - self.values.forEach(function(values) { - var ss = []; - - // s += 'db.tables[\''+tableid+'\'].data.push({'; - - // s += ''; - if (self.columns) { - self.columns.forEach(function(col, idx) { - - // ss.push(col.columnid +':'+ self.values[idx].value.toString()); - - // if(rec[f.name.value] == "NULL") rec[f.name.value] = undefined; - - // if(table.xflds[f.name.value].dbtypeid == "INT") rec[f.name.value] = +rec[f.name.value]|0; - // else if(table.xflds[f.name.value].dbtypeid == "FLOAT") rec[f.name.value] = +rec[f.name.value]; - var q = "'" + col.columnid + "':"; - if (table.xcolumns && table.xcolumns[col.columnid]) { - if ( - ['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf( - table.xcolumns[col.columnid].dbtypeid - ) >= 0 - ) { - //q += '' - q += '(x=' + values[idx].toJS() + ',x==undefined?undefined:+x)'; - } else if (alasql.fn[table.xcolumns[col.columnid].dbtypeid]) { - q += '(new ' + table.xcolumns[col.columnid].dbtypeid + '('; - q += values[idx].toJS(); - q += '))'; - } else { - q += values[idx].toJS(); - } - } else { - q += values[idx].toJS(); - } - ss.push(q); - }); - } else { - // var table = db.tables[tableid]; - - if (Array.isArray(values) && table.columns && table.columns.length > 0) { - table.columns.forEach(function(col, idx) { - var q = "'" + col.columnid + "':"; - // var val = values[idx].toJS(); - - if (['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(col.dbtypeid) >= 0) { - q += '+' + values[idx].toJS(); - } else if (alasql.fn[col.dbtypeid]) { - q += '(new ' + col.dbtypeid + '('; - q += values[idx].toJS(); - q += '))'; - } else { - q += values[idx].toJS(); - } - - ss.push(q); - - }); - } else { - - // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};'; - sw = JSONtoJS(values); - } - } - - if (db.tables[tableid].defaultfns) { - ss.unshift(db.tables[tableid].defaultfns); - } - if (sw) { - s += 'a=' + sw + ';'; - } else { - s += 'a={' + ss.join(',') + '};'; - } - - // If this is a class - if (db.tables[tableid].isclass) { - s += "var db=alasql.databases['" + databaseid + "'];"; - s += 'a.$class="' + tableid + '";'; - s += 'a.$id=db.counter++;'; - s += 'db.objects[a.$id]=a;'; - } - // s += 'db.tables[\''+tableid+'\'].insert(r);'; - if (db.tables[tableid].insert) { - s += "var db=alasql.databases['" + databaseid + "'];"; - s += - "db.tables['" + - tableid + - "'].insert(a," + - (self.orreplace ? 'true' : 'false') + - ');'; - } else { - s += 'aa.push(a);'; - } - }); - - s33 = s3 + s; - - if (db.tables[tableid].insert) { - // s += 'alasql.databases[\''+databaseid+'\'].tables[\''+tableid+'\'].insert(r);'; - } else { - s += - "alasql.databases['" + - databaseid + - "'].tables['" + - tableid + - "'].data=" + - "alasql.databases['" + - databaseid + - "'].tables['" + - tableid + - "'].data.concat(aa);"; - } - - if (db.tables[tableid].insert) { - if (db.tables[tableid].isclass) { - s += 'return a.$id;'; - } else { - s += 'return ' + self.values.length; - } - } else { - s += 'return ' + self.values.length; - } - - var insertfn = new Function('db, params, alasql', 'var y;' + s3 + s).bind(this); - - // INSERT INTO table SELECT - } else if (this.select) { - this.select.modifier = 'RECORDSET'; - var selectfn = this.select.compile(databaseid); - if (db.engineid && alasql.engines[db.engineid].intoTable) { - var statement = function(params, cb) { - var aa = selectfn(params); - var res = alasql.engines[db.engineid].intoTable( - db.databaseid, - tableid, - aa.data, - null, - cb - ); - return res; - }; - return statement; - } else { - - var defaultfns = 'return alasql.utils.extend(r,{' + table.defaultfns + '})'; - var defaultfn = new Function('r,db,params,alasql', defaultfns); - var insertfn = function(db, params, alasql) { - var res = selectfn(params).data; - if (db.tables[tableid].insert) { - // If insert() function exists (issue #92) - for (var i = 0, ilen = res.length; i < ilen; i++) { - var r = cloneDeep(res[i]); - defaultfn(r, db, params, alasql); - db.tables[tableid].insert(r, self.orreplace); - } - } else { - db.tables[tableid].data = db.tables[tableid].data.concat(res); - } - if (alasql.options.nocount) return; - else return res.length; - }; - } - } else if (this.default) { - var insertfns = - "db.tables['" + tableid + "'].data.push({" + table.defaultfns + '});return 1;'; - var insertfn = new Function('db,params,alasql', insertfns); - } else { - throw new Error('Wrong INSERT parameters'); - } - - if (db.engineid && alasql.engines[db.engineid].intoTable && alasql.options.autocommit) { - var statement = function(params, cb) { - var aa = new Function('db,params', 'var y;' + s33 + 'return aa;')(db, params); - - var res = alasql.engines[db.engineid].intoTable(db.databaseid, tableid, aa, null, cb); - // if(cb) cb(res); - return res; - }; - } else { - var statement = function(params, cb) { - - var db = alasql.databases[databaseid]; - - if (alasql.options.autocommit && db.engineid) { - alasql.engines[db.engineid].loadTableData(databaseid, tableid); - } - - var res = insertfn(db, params, alasql); - - if (alasql.options.autocommit && db.engineid) { - alasql.engines[db.engineid].saveTableData(databaseid, tableid); - } - // var res = insertfn(db, params); - if (alasql.options.nocount) res = undefined; - if (cb) cb(res); - return res; - }; - } - - return statement; -}; - -yy.Insert.prototype.execute = function(databaseid, params, cb) { - return this.compile(databaseid)(params, cb); - // throw new Error('Insert statement is should be compiled') -}; - -/* -// -// TRIGGER for Alasql.js -// Date: 29.12.2015 -// -*/ - -yy.CreateTrigger = function(params) { - return yy.extend(this, params); -}; -yy.CreateTrigger.prototype.toString = function() { - var s = 'CREATE TRIGGER ' + this.trigger + ' '; - if (this.when) s += this.when + ' '; - s += this.action + ' ON '; - if (this.table.databaseid) s += this.table.databaseid + '.'; - s += this.table.tableid + ' '; - s += this.statement.toString(); - return s; -}; - -yy.CreateTrigger.prototype.execute = function(databaseid, params, cb) { - var res = 1; // No tables removed - var triggerid = this.trigger; - databaseid = this.table.databaseid || databaseid; - var db = alasql.databases[databaseid]; - var tableid = this.table.tableid; - - var trigger = { - action: this.action, - when: this.when, - statement: this.statement, - funcid: this.funcid, - }; - - db.triggers[triggerid] = trigger; - if (trigger.action == 'INSERT' && trigger.when == 'BEFORE') { - db.tables[tableid].beforeinsert[triggerid] = trigger; - } else if (trigger.action == 'INSERT' && trigger.when == 'AFTER') { - db.tables[tableid].afterinsert[triggerid] = trigger; - } else if (trigger.action == 'INSERT' && trigger.when == 'INSTEADOF') { - db.tables[tableid].insteadofinsert[triggerid] = trigger; - } else if (trigger.action == 'DELETE' && trigger.when == 'BEFORE') { - db.tables[tableid].beforedelete[triggerid] = trigger; - } else if (trigger.action == 'DELETE' && trigger.when == 'AFTER') { - db.tables[tableid].afterdelete[triggerid] = trigger; - } else if (trigger.action == 'DELETE' && trigger.when == 'INSTEADOF') { - db.tables[tableid].insteadofdelete[triggerid] = trigger; - } else if (trigger.action == 'UPDATE' && trigger.when == 'BEFORE') { - db.tables[tableid].beforeupdate[triggerid] = trigger; - } else if (trigger.action == 'UPDATE' && trigger.when == 'AFTER') { - db.tables[tableid].afterupdate[triggerid] = trigger; - } else if (trigger.action == 'UPDATE' && trigger.when == 'INSTEADOF') { - db.tables[tableid].insteadofupdate[triggerid] = trigger; - } - - if (cb) res = cb(res); - return res; -}; - -yy.DropTrigger = function(params) { - return yy.extend(this, params); -}; -yy.DropTrigger.prototype.toString = function() { - var s = 'DROP TRIGGER ' + this.trigger; - return s; -}; - -/** - Drop trigger - @param {string} databaseid Database id - @param {object} params Parameters - @param {callback} cb Callback function - @return Number of dropped triggers - @example - DROP TRIGGER one; -*/ -yy.DropTrigger.prototype.execute = function(databaseid, params, cb) { - var res = 0; // No tables removed - var db = alasql.databases[databaseid]; - var triggerid = this.trigger; - // For each table in the list - var tableid = db.triggers[triggerid]; - if (tableid) { - res = 1; - delete db.tables[tableid].beforeinsert[triggerid]; - delete db.tables[tableid].afterinsert[triggerid]; - delete db.tables[tableid].insteadofinsert[triggerid]; - delete db.tables[tableid].beforedelte[triggerid]; - delete db.tables[tableid].afterdelete[triggerid]; - delete db.tables[tableid].insteadofdelete[triggerid]; - delete db.tables[tableid].beforeupdate[triggerid]; - delete db.tables[tableid].afterupdate[triggerid]; - delete db.tables[tableid].insteadofupdate[triggerid]; - delete db.triggers[triggerid]; - } else { - throw new Error('Trigger not found'); - } - if (cb) res = cb(res); - return res; -}; - -/* -// -// DELETE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Delete = function(params) { - return yy.extend(this, params); -}; -yy.Delete.prototype.toString = function() { - var s = 'DELETE FROM ' + this.table.toString(); - if (this.where) s += ' WHERE ' + this.where.toString(); - return s; -}; - -yy.Delete.prototype.compile = function(databaseid) { - - databaseid = this.table.databaseid || databaseid; - var tableid = this.table.tableid; - var statement; - var db = alasql.databases[databaseid]; - - if (this.where) { - - // this.query = {}; - - if (this.exists) { - this.existsfn = this.exists.map(function(ex) { - var nq = ex.compile(databaseid); - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - if (this.queries) { - this.queriesfn = this.queries.map(function(q) { - var nq = q.compile(databaseid); - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - - // try { - - // var query = {}; - - var wherefn = new Function( - 'r,params,alasql', - 'var y;return (' + this.where.toJS('r', '') + ')' - ).bind(this); - - statement = function(params, cb) { - if (db.engineid && alasql.engines[db.engineid].deleteFromTable) { - return alasql.engines[db.engineid].deleteFromTable( - databaseid, - tableid, - wherefn, - params, - cb - ); - } - - if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') { - alasql.engines[db.engineid].loadTableData(databaseid, tableid); - } - - var table = db.tables[tableid]; - // table.dirty = true; - var orignum = table.data.length; - - var newtable = []; - for (var i = 0, ilen = table.data.length; i < ilen; i++) { - if (wherefn(table.data[i], params, alasql)) { - // Check for transaction - if it is not possible then return all back - if (table.delete) { - table.delete(i, params, alasql); - } else { - // Simply do not push - } - } else newtable.push(table.data[i]); - } - // table.data = table.data.filter(function(r){return !;}); - table.data = newtable; - - // Trigger prevent functionality - for (var tr in table.afterdelete) { - var trigger = table.afterdelete[tr]; - if (trigger) { - if (trigger.funcid) { - alasql.fn[trigger.funcid](); - } else if (trigger.statement) { - trigger.statement.execute(databaseid); - } - } - } - - var res = orignum - table.data.length; - if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') { - alasql.engines[db.engineid].saveTableData(databaseid, tableid); - } - - if (cb) cb(res); - return res; - }; - // .bind(query); - - // if(!this.queries) return; - // query.queriesfn = this.queries.map(function(q) { - // return q.compile(alasql.useid); - // }); - } else { - statement = function(params, cb) { - if (alasql.options.autocommit && db.engineid) { - alasql.engines[db.engineid].loadTableData(databaseid, tableid); - } - - var table = db.tables[tableid]; - table.dirty = true; - var orignum = db.tables[tableid].data.length; - //table.deleteall(); - // Delete all records from the array - db.tables[tableid].data.length = 0; - - // Reset PRIMARY KEY and indexes - for (var ix in db.tables[tableid].uniqs) { - db.tables[tableid].uniqs[ix] = {}; - } - - for (var ix in db.tables[tableid].indices) { - db.tables[tableid].indices[ix] = {}; - } - - if (alasql.options.autocommit && db.engineid) { - alasql.engines[db.engineid].saveTableData(databaseid, tableid); - } - - if (cb) cb(orignum); - return orignum; - }; - } - - return statement; -}; - -yy.Delete.prototype.execute = function(databaseid, params, cb) { - return this.compile(databaseid)(params, cb); -}; - -/* -// -// UPDATE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* global yy alasql */ - -yy.Update = function(params) { - return yy.extend(this, params); -}; -yy.Update.prototype.toString = function() { - var s = 'UPDATE ' + this.table.toString(); - if (this.columns) s += ' SET ' + this.columns.toString(); - if (this.where) s += ' WHERE ' + this.where.toString(); - return s; -}; - -yy.SetColumn = function(params) { - return yy.extend(this, params); -}; -yy.SetColumn.prototype.toString = function() { - return this.column.toString() + '=' + this.expression.toString(); -}; - -yy.Update.prototype.compile = function(databaseid) { - - databaseid = this.table.databaseid || databaseid; - var tableid = this.table.tableid; - - if (this.where) { - if (this.exists) { - this.existsfn = this.exists.map(function(ex) { - var nq = ex.compile(databaseid); - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - if (this.queries) { - this.queriesfn = this.queries.map(function(q) { - var nq = q.compile(databaseid); - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - - var wherefn = new Function( - 'r,params,alasql', - 'var y;return ' + this.where.toJS('r', '') - ).bind(this); - } - - // Construct update function - var s = alasql.databases[databaseid].tables[tableid].onupdatefns || ''; - s += ';'; - this.columns.forEach(function(col) { - s += "r['" + col.column.columnid + "']=" + col.expression.toJS('r', '') + ';'; - }); - - var assignfn = new Function('r,params,alasql', 'var y;' + s); - - var statement = function(params, cb) { - var db = alasql.databases[databaseid]; - - if (db.engineid && alasql.engines[db.engineid].updateTable) { - - return alasql.engines[db.engineid].updateTable( - databaseid, - tableid, - assignfn, - wherefn, - params, - cb - ); - } - - if (alasql.options.autocommit && db.engineid) { - alasql.engines[db.engineid].loadTableData(databaseid, tableid); - } - - var table = db.tables[tableid]; - if (!table) { - throw new Error("Table '" + tableid + "' not exists"); - } - // table.dirty = true; - var numrows = 0; - for (var i = 0, ilen = table.data.length; i < ilen; i++) { - if (!wherefn || wherefn(table.data[i], params, alasql)) { - if (table.update) { - table.update(assignfn, i, params); - } else { - assignfn(table.data[i], params, alasql); - } - numrows++; - } - } - - if (alasql.options.autocommit && db.engineid) { - alasql.engines[db.engineid].saveTableData(databaseid, tableid); - } - - if (cb) cb(numrows); - return numrows; - }; - return statement; -}; - -yy.Update.prototype.execute = function(databaseid, params, cb) { - return this.compile(databaseid)(params, cb); -}; - -/* -// -// SET for Alasql.js -// Date: 01.12.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* global alasql, yy */ - -yy.Merge = function(params) { - return yy.extend(this, params); -}; -yy.Merge.prototype.toString = function() { - var s = 'MERGE '; - s += this.into.tableid + ' '; - if (this.into.as) s += 'AS ' + this.into.as + ' '; - s += 'USING ' + this.using.tableid + ' '; - if (this.using.as) s += 'AS ' + this.using.as + ' '; - s += 'ON ' + this.on.toString() + ' '; - this.matches.forEach(function(m) { - s += 'WHEN '; - if (!m.matched) s += 'NOT '; - s += 'MATCHED '; - if (m.bytarget) s += 'BY TARGET '; - if (m.bysource) s += 'BY SOURCE '; - if (m.expr) s += 'AND' + ' ' + m.expr.toString() + ' '; - s += 'THEN '; - if (m.action.delete) s += 'DELETE '; - if (m.action.insert) { - s += 'INSERT '; - if (m.action.columns) s += '(' + m.action.columns.toString() + ') '; - if (m.action.values) s += 'VALUES (' + m.action.values.toString() + ') '; - if (m.action.defaultvalues) s += 'DEFAULT VALUES '; - } - if (m.action.update) { - s += 'UPDATE '; - s += - m.action.update - .map(function(u) { - return u.toString(); - }) - .join(',') + ' '; - } - }); - - return s; -}; - -yy.Merge.prototype.execute = function(databaseid, params, cb) { - var res = 1; - - if (cb) res = cb(res); - return res; -}; - -/* -// -// UPDATE for Alasql.js -// Date: 03.11.2014 -// Modified: 16.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* global yy alasql */ - -// CREATE DATABASE databaseid -yy.CreateDatabase = function(params) { - return yy.extend(this, params); -}; -yy.CreateDatabase.prototype.toString = function() { - var s = 'CREATE'; - if (this.engineid) s += ' ' + this.engineid; - s += ' DATABASE'; - if (this.ifnotexists) s += ' IF NOT EXISTS'; - s += ' ' + this.databaseid; - if (this.args && this.args.length > 0) { - s += - '(' + - this.args - .map(function(arg) { - return arg.toString(); - }) - .join(', ') + - ')'; - } - if (this.as) s += ' AS ' + this.as; - return s; -}; -//yy.CreateDatabase.prototype.compile = returnUndefined; -yy.CreateDatabase.prototype.execute = function(databaseid, params, cb) { - var args; - if (this.args && this.args.length > 0) { - args = this.args.map(function(arg) { - - return new Function('params,alasql', 'var y;return ' + arg.toJS())(params, alasql); - }); - } - if (this.engineid) { - var res = alasql.engines[this.engineid].createDatabase( - this.databaseid, - this.args, - this.ifnotexists, - this.as, - cb - ); - return res; - } else { - var dbid = this.databaseid; - if (alasql.databases[dbid]) { - throw new Error("Database '" + dbid + "' already exists"); - } - var a = new alasql.Database(dbid); - var res = 1; - if (cb) return cb(res); - return res; - } -}; - -// CREATE DATABASE databaseid -yy.AttachDatabase = function(params) { - return yy.extend(this, params); -}; -yy.AttachDatabase.prototype.toString = function(args) { - var s = 'ATTACH'; - if (this.engineid) s += ' ' + this.engineid; - s += ' DATABASE' + ' ' + this.databaseid; - // TODO add params - if (args) { - s += '('; - if (args.length > 0) { - s += args - .map(function(arg) { - return arg.toString(); - }) - .join(', '); - } - s += ')'; - } - if (this.as) s += ' AS' + ' ' + this.as; - return s; -}; -//yy.CreateDatabase.prototype.compile = returnUndefined; -yy.AttachDatabase.prototype.execute = function(databaseid, params, cb) { - if (!alasql.engines[this.engineid]) { - throw new Error('Engine "' + this.engineid + '" is not defined.'); - } - var res = alasql.engines[this.engineid].attachDatabase( - this.databaseid, - this.as, - this.args, - params, - cb - ); - return res; -}; - -// CREATE DATABASE databaseid -yy.DetachDatabase = function(params) { - return yy.extend(this, params); -}; -yy.DetachDatabase.prototype.toString = function() { - var s = 'DETACH'; - s += ' DATABASE' + ' ' + this.databaseid; - return s; -}; -//yy.CreateDatabase.prototype.compile = returnUndefined; -yy.DetachDatabase.prototype.execute = function(databaseid, params, cb) { - if (!alasql.databases[this.databaseid].engineid) { - throw new Error( - 'Cannot detach database "' + this.engineid + '", because it was not attached.' - ); - } - var res; - - var dbid = this.databaseid; - - if (dbid === alasql.DEFAULTDATABASEID) { - throw new Error('Drop of default database is prohibited'); - } - - if (!alasql.databases[dbid]) { - if (!this.ifexists) { - throw new Error("Database '" + dbid + "' does not exist"); - } else { - res = 0; - } - } else { - delete alasql.databases[dbid]; - if (dbid === alasql.useid) { - alasql.use(); - } - res = 1; - } - if (cb) cb(res); - return res; - // var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, cb); - // return res; -}; - -// USE DATABSE databaseid -// USE databaseid -yy.UseDatabase = function(params) { - return yy.extend(this, params); -}; -yy.UseDatabase.prototype.toString = function() { - return 'USE' + ' ' + 'DATABASE' + ' ' + this.databaseid; -}; -//yy.UseDatabase.prototype.compile = returnUndefined; -yy.UseDatabase.prototype.execute = function(databaseid, params, cb) { - var dbid = this.databaseid; - if (!alasql.databases[dbid]) { - throw new Error("Database '" + dbid + "' does not exist"); - } - alasql.use(dbid); - var res = 1; - if (cb) cb(res); - return res; -}; - -// DROP DATABASE databaseid -yy.DropDatabase = function(params) { - return yy.extend(this, params); -}; -yy.DropDatabase.prototype.toString = function() { - var s = 'DROP'; - if (this.ifexists) s += ' IF EXISTS'; - s += ' DATABASE ' + this.databaseid; - return s; -}; -//yy.DropDatabase.prototype.compile = returnUndefined; -yy.DropDatabase.prototype.execute = function(databaseid, params, cb) { - if (this.engineid) { - return alasql.engines[this.engineid].dropDatabase(this.databaseid, this.ifexists, cb); - } - var res; - - var dbid = this.databaseid; - - if (dbid === alasql.DEFAULTDATABASEID) { - throw new Error('Drop of default database is prohibited'); - } - if (!alasql.databases[dbid]) { - if (!this.ifexists) { - throw new Error("Database '" + dbid + "' does not exist"); - } else { - res = 0; - } - } else { - if (alasql.databases[dbid].engineid) { - throw new Error( - "Cannot drop database '" + dbid + "', because it is attached. Detach it." - ); - } - - delete alasql.databases[dbid]; - if (dbid === alasql.useid) { - alasql.use(); - } - res = 1; - } - if (cb) cb(res); - return res; -}; - -/* -// -// SET for Alasql.js -// Date: 01.12.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Declare = function(params) { - return yy.extend(this, params); -}; -yy.Declare.prototype.toString = function() { - var s = 'DECLARE '; - if (this.declares && this.declares.length > 0) { - s = this.declares - .map(function(declare) { - var s = ''; - s += '@' + declare.variable + ' '; - s += declare.dbtypeid; - if (this.dbsize) { - s += '(' + this.dbsize; - if (this.dbprecision) { - s += ',' + this.dbprecision; - } - s += ')'; - } - if (declare.expression) { - s += ' = ' + declare.expression.toString(); - } - return s; - }) - .join(','); - } - return s; -}; - -yy.Declare.prototype.execute = function(databaseid, params, cb) { - var res = 1; - if (this.declares && this.declares.length > 0) { - this.declares.map(function(declare) { - var dbtypeid = declare.dbtypeid; - if (!alasql.fn[dbtypeid]) { - dbtypeid = dbtypeid.toUpperCase(); - } - alasql.declares[declare.variable] = { - dbtypeid: dbtypeid, - dbsize: declare.dbsize, - dbprecision: declare.dbprecision, - }; - - // Set value - if (declare.expression) { - - alasql.vars[declare.variable] = new Function( - 'params,alasql', - 'return ' + declare.expression.toJS('({})', '', null) - )(params, alasql); - if (alasql.declares[declare.variable]) { - alasql.vars[declare.variable] = alasql.stdfn.CONVERT( - alasql.vars[declare.variable], - alasql.declares[declare.variable] - ); - } - } - }); - } - if (cb) { - res = cb(res); - } - return res; -}; - -/* -// -// SHOW for Alasql.js -// Date: 19.11.2014 -// (c) 2014, Andrey Gershun -// -*/ + switch (args.style) { + case 1: // mm/dd/yy + val = + ('0' + (t.getMonth() + 1)).substr(-2) + + '/' + + ('0' + t.getDate()).substr(-2) + + '/' + + ('0' + t.getYear()).substr(-2); + break; + case 2: // yy.mm.dd + val = + ('0' + t.getYear()).substr(-2) + + '.' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '.' + + ('0' + t.getDate()).substr(-2); + break; + case 3: // dd/mm/yy + val = + ('0' + t.getDate()).substr(-2) + + '/' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '/' + + ('0' + t.getYear()).substr(-2); + break; + case 4: // dd.mm.yy + val = + ('0' + t.getDate()).substr(-2) + + '.' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '.' + + ('0' + t.getYear()).substr(-2); + break; + case 5: // dd-mm-yy + val = + ('0' + t.getDate()).substr(-2) + + '-' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '-' + + ('0' + t.getYear()).substr(-2); + break; + case 6: // dd mon yy + val = + ('0' + t.getDate()).substr(-2) + + ' ' + + t + .toString() + .substr(4, 3) + .toLowerCase() + + ' ' + + ('0' + t.getYear()).substr(-2); + break; + case 7: // Mon dd,yy + val = + t.toString().substr(4, 3) + + ' ' + + ('0' + t.getDate()).substr(-2) + + ',' + + ('0' + t.getYear()).substr(-2); + break; + case 8: // hh:mm:ss + case 108: // hh:mm:ss + val = + ('0' + t.getHours()).substr(-2) + + ':' + + ('0' + t.getMinutes()).substr(-2) + + ':' + + ('0' + t.getSeconds()).substr(-2); + break; + case 10: // mm-dd-yy + val = + ('0' + (t.getMonth() + 1)).substr(-2) + + '-' + + ('0' + t.getDate()).substr(-2) + + '-' + + ('0' + t.getYear()).substr(-2); + break; + case 11: // yy/mm/dd + val = + ('0' + t.getYear()).substr(-2) + + '/' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '/' + + ('0' + t.getDate()).substr(-2); + break; + case 12: // yymmdd + val = + ('0' + t.getYear()).substr(-2) + + ('0' + (t.getMonth() + 1)).substr(-2) + + ('0' + t.getDate()).substr(-2); + break; + case 101: // mm/dd/yyyy + val = + ('0' + (t.getMonth() + 1)).substr(-2) + + '/' + + ('0' + t.getDate()).substr(-2) + + '/' + + t.getFullYear(); + break; + case 102: // yyyy.mm.dd + val = + t.getFullYear() + + '.' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '.' + + ('0' + t.getDate()).substr(-2); + break; + case 103: // dd/mm/yyyy + val = + ('0' + t.getDate()).substr(-2) + + '/' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '/' + + t.getFullYear(); + break; + case 104: // dd.mm.yyyy + val = + ('0' + t.getDate()).substr(-2) + + '.' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '.' + + t.getFullYear(); + break; + case 105: // dd-mm-yyyy + val = + ('0' + t.getDate()).substr(-2) + + '-' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '-' + + t.getFullYear(); + break; + case 106: // dd mon yyyy + val = + ('0' + t.getDate()).substr(-2) + + ' ' + + t + .toString() + .substr(4, 3) + .toLowerCase() + + ' ' + + t.getFullYear(); + break; + case 107: // Mon dd,yyyy + val = + t.toString().substr(4, 3) + + ' ' + + ('0' + t.getDate()).substr(-2) + + ',' + + t.getFullYear(); + break; + case 110: // mm-dd-yyyy + val = + ('0' + (t.getMonth() + 1)).substr(-2) + + '-' + + ('0' + t.getDate()).substr(-2) + + '-' + + t.getFullYear(); + break; + case 111: // yyyy/mm/dd + val = + t.getFullYear() + + '/' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '/' + + ('0' + t.getDate()).substr(-2); + break; -yy.ShowDatabases = function(params) { - return yy.extend(this, params); -}; -yy.ShowDatabases.prototype.toString = function() { - var s = 'SHOW DATABASES'; - if (this.like) s += 'LIKE ' + this.like.toString(); - return s; -}; -yy.ShowDatabases.prototype.execute = function(databaseid, params, cb) { - if (this.engineid) { - return alasql.engines[this.engineid].showDatabases(this.like, cb); - } else { - var self = this; - var res = []; - for (var dbid in alasql.databases) { - res.push({databaseid: dbid}); - } - if (self.like && res && res.length > 0) { - res = res.filter(function(d) { - // return d.databaseid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g')); - return alasql.utils.like(self.like.value, d.databaseid); - }); + case 112: // yyyymmdd + val = + t.getFullYear() + + ('0' + (t.getMonth() + 1)).substr(-2) + + ('0' + t.getDate()).substr(-2); + break; + default: + throw new Error('The CONVERT style ' + args.style + ' is not realized yet.'); } - if (cb) cb(res); - return res; } -}; -yy.ShowTables = function(params) { - return yy.extend(this, params); -}; -yy.ShowTables.prototype.toString = function() { - var s = 'SHOW TABLES'; - if (this.databaseid) s += ' FROM ' + this.databaseid; - if (this.like) s += ' LIKE ' + this.like.toString(); - return s; -}; -yy.ShowTables.prototype.execute = function(databaseid, params, cb) { - var db = alasql.databases[this.databaseid || databaseid]; + var udbtypeid = args.dbtypeid.toUpperCase(); - var self = this; - var res = []; - for (var tableid in db.tables) { - res.push({tableid: tableid}); - } - if (self.like && res && res.length > 0) { - res = res.filter(function(d) { - //return d.tableid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g')); - return alasql.utils.like(self.like.value, d.tableid); - }); + if (args.dbtypeid == 'Date') { + return new Date(val); + } else if (udbtypeid == 'DATE') { + var d = new Date(val); + var s = + d.getFullYear() + + '.' + + ('0' + (d.getMonth() + 1)).substr(-2) + + '.' + + ('0' + d.getDate()).substr(-2); + return s; + } else if (udbtypeid == 'DATETIME' || udbtypeid == 'DATETIME2') { + var d = new Date(val); + var s = + d.getFullYear() + + '.' + + ('0' + (d.getMonth() + 1)).substr(-2) + + '.' + + ('0' + d.getDate()).substr(-2); + s += + ' ' + + ('0' + d.getHours()).substr(-2) + + ':' + + ('0' + d.getMinutes()).substr(-2) + + ':' + + ('0' + d.getSeconds()).substr(-2); + s += '.' + ('00' + d.getMilliseconds()).substr(-3); + return s; + } else if (['MONEY'].indexOf(udbtypeid) > -1) { + var m = +val; + return (m | 0) + ((m * 100) % 100) / 100; + } else if (['BOOLEAN'].indexOf(udbtypeid) > -1) { + return !!val; + } else if ( + ['INT', 'INTEGER', 'SMALLINT', 'BIGINT', 'SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf( + args.dbtypeid.toUpperCase() + ) > -1 + ) { + return val | 0; + } else if ( + ['STRING', 'VARCHAR', 'NVARCHAR', 'CHARACTER VARIABLE'].indexOf( + args.dbtypeid.toUpperCase() + ) > -1 + ) { + if (args.dbsize) return ('' + val).substr(0, args.dbsize); + else return '' + val; + } else if (['CHAR', 'CHARACTER', 'NCHAR'].indexOf(udbtypeid) > -1) { + return (val + new Array(args.dbsize + 1).join(' ')).substr(0, args.dbsize); + //else return ""+val.substr(0,1); + } else if (['NUMBER', 'FLOAT', 'DECIMAL', 'NUMERIC'].indexOf(udbtypeid) > -1) { + var m = +val; + //toPrecision sets the number of numbers total in the result + m = args.dbsize !== undefined ? parseFloat(m.toPrecision(args.dbsize)) : m; + //toFixed sets the number of numbers to the right of the decimal + m = args.dbprecision !== undefined ? parseFloat(m.toFixed(args.dbprecision)) : m; + return m; + } else if (['JSON'].indexOf(udbtypeid) > -1) { + if (typeof val == 'object') return val; + try { + return JSON.parse(val); + } catch (err) { + throw new Error('Cannot convert string to JSON'); + } } - if (cb) cb(res); - return res; + return val; }; -yy.ShowColumns = function(params) { +/* +// +// CREATE TABLE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/* global alasql, yy, hash */ + +yy.ColumnDef = function(params) { return yy.extend(this, params); }; -yy.ShowColumns.prototype.toString = function() { - var s = 'SHOW COLUMNS'; - if (this.table.tableid) s += ' FROM ' + this.table.tableid; - if (this.databaseid) s += ' FROM ' + this.databaseid; - return s; -}; +yy.ColumnDef.prototype.toString = function() { + var s = this.columnid; + if (this.dbtypeid) { + s += ' ' + this.dbtypeid; + } -yy.ShowColumns.prototype.execute = function(databaseid, params, cb) { - var db = alasql.databases[this.databaseid || databaseid]; - var table = db.tables[this.table.tableid]; + if (this.dbsize) { + s += '(' + this.dbsize; + if (this.dbprecision) { + s += ',' + this.dbprecision; + } + s += ')'; + } - if (table && table.columns) { - var res = table.columns.map(function(col) { - return {columnid: col.columnid, dbtypeid: col.dbtypeid, dbsize: col.dbsize}; - }); - if (cb) cb(res); - return res; - } else { - if (cb) cb([]); - return []; + if (this.primarykey) { + s += ' PRIMARY KEY'; } -}; -yy.ShowIndex = function(params) { - return yy.extend(this, params); -}; -yy.ShowIndex.prototype.toString = function() { - var s = 'SHOW INDEX'; - if (this.table.tableid) s += ' FROM ' + this.table.tableid; - if (this.databaseid) s += ' FROM ' + this.databaseid; - return s; -}; -yy.ShowIndex.prototype.execute = function(databaseid, params, cb) { - var db = alasql.databases[this.databaseid || databaseid]; - var table = db.tables[this.table.tableid]; - var res = []; - if (table && table.indices) { - for (var ind in table.indices) { - res.push({hh: ind, len: Object.keys(table.indices[ind]).length}); - } + if (this.notnull) { + s += ' NOT NULL'; } - if (cb) cb(res); - return res; + return s; }; -yy.ShowCreateTable = function(params) { +yy.CreateTable = function(params) { return yy.extend(this, params); }; -yy.ShowCreateTable.prototype.toString = function() { - var s = 'SHOW CREATE TABLE ' + this.table.tableid; - if (this.databaseid) s += ' FROM ' + this.databaseid; - return s; -}; -yy.ShowCreateTable.prototype.execute = function(databaseid) { - var db = alasql.databases[this.databaseid || databaseid]; - var table = db.tables[this.table.tableid]; - if (table) { - var s = 'CREATE TABLE ' + this.table.tableid + ' ('; - var ss = []; - if (table.columns) { - table.columns.forEach(function(col) { - var a = col.columnid + ' ' + col.dbtypeid; - if (col.dbsize) a += '(' + col.dbsize + ')'; - if (col.primarykey) a += ' PRIMARY KEY'; - // TODO extend - ss.push(a); - }); - s += ss.join(', '); - } - s += ')'; - return s; +yy.CreateTable.prototype.toString = function() { + var s = 'CREATE'; + if (this.temporary) { + s += ' TEMPORARY'; + } + + if (this.view) { + s += ' VIEW'; } else { - throw new Error('There is no such table "' + this.table.tableid + '"'); + s += ' ' + (this.class ? 'CLASS' : 'TABLE'); + } + if (this.ifnotexists) { + s += ' IF NOT EXISTS'; + } + s += ' ' + this.table.toString(); + if (this.viewcolumns) { + s += + '(' + + this.viewcolumns + .map(function(vcol) { + return vcol.toString(); + }) + .join(',') + + ')'; + } + if (this.as) { + s += ' AS ' + this.as; + } else { + var ss = this.columns.map(function(col) { + return col.toString(); + }); + s += ' (' + ss.join(',') + ')'; } -}; -/* -// -// SET for Alasql.js -// Date: 01.12.2014 -// (c) 2014, Andrey Gershun -// -*/ + if (this.view && this.select) { + s += ' AS ' + this.select.toString(); + } -yy.SetVariable = function(params) { - return yy.extend(this, params); -}; -yy.SetVariable.prototype.toString = function() { - var s = 'SET '; - if (typeof this.value != 'undefined') - s += this.variable.toUpperCase() + ' ' + (this.value ? 'ON' : 'OFF'); - if (this.expression) s += this.method + this.variable + ' = ' + this.expression.toString(); return s; }; -yy.SetVariable.prototype.execute = function(databaseid, params, cb) { - - if (typeof this.value != 'undefined') { - var val = this.value; - if (val == 'ON') val = true; - else if (val == 'OFF') val = false; - // if(this.method == '@') { - alasql.options[this.variable] = val; - // } else { - // params[this.variable] = val; - // } - } else if (this.expression) { - if (this.exists) { - this.existsfn = this.exists.map(function(ex) { - var nq = ex.compile(databaseid); - if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET'; - return nq; - // return ex.compile(databaseid); - // TODO Include modifier - }); - } - if (this.queries) { - this.queriesfn = this.queries.map(function(q) { - var nq = q.compile(databaseid); - if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET'; - return nq; - // TODO Include modifier - }); - } - - var res = new Function( - 'params,alasql', - 'return ' + this.expression.toJS('({})', '', null) - ).bind(this)(params, alasql); - if (alasql.declares[this.variable]) { - res = alasql.stdfn.CONVERT(res, alasql.declares[this.variable]); - } - if (this.props && this.props.length > 0) { - if (this.method == '@') { - var fs = "alasql.vars['" + this.variable + "']"; - } else { - var fs = "params['" + this.variable + "']"; - } - fs += this.props - .map(function(prop) { - if (typeof prop == 'string') { - return "['" + prop + "']"; - } else if (typeof prop == 'number') { - return '[' + prop + ']'; - } else { - - return '[' + prop.toJS() + ']'; - // } else { - - // throw new Error('Wrong SET property'); - } - }) - .join(); +// CREATE TABLE +//yy.CreateTable.prototype.compile = returnUndefined; +yy.CreateTable.prototype.execute = function(databaseid, params, cb) { + // var self = this; + var db = alasql.databases[this.table.databaseid || databaseid]; - new Function('value,params,alasql', 'var y;' + fs + '=value')(res, params, alasql); - } else { - if (this.method == '@') { - alasql.vars[this.variable] = res; - } else { - params[this.variable] = res; - } - } + var tableid = this.table.tableid; + if (!tableid) { + throw new Error('Table name is not defined'); } - var res = 1; - if (cb) res = cb(res); - return res; -}; -// Console functions - -/* global alasql, yy */ + // var ifnotexists = this.ifnotexists; + var columns = this.columns; + // if(false) { + // if(!columns) { + // throw new Error('Columns are not defined'); + // } + // } + var constraints = this.constraints || []; -alasql.test = function(name, times, fn) { - if (arguments.length === 0) { - alasql.log(alasql.con.results); - return; + // IF NOT EXISTS + if (this.ifnotexists && db.tables[tableid]) { + return cb ? cb(0) : 0; } - var tm = Date.now(); - - if (arguments.length === 1) { - fn(); - alasql.con.log(Date.now() - tm); - return; + if (db.tables[tableid]) { + throw new Error( + "Can not create table '" + + tableid + + "', because it already exists in the database '" + + db.databaseid + + "'" + ); } - if (arguments.length === 2) { - fn = times; - times = 1; + var table = (db.tables[tableid] = new alasql.Table()); // TODO Can use special object? + // If this is a class + if (this.class) { + table.isclass = true; } - for (var i = 0; i < times; i++) { - fn(); - } - alasql.con.results[name] = Date.now() - tm; -}; + var ss = []; // DEFAULT function components + var uss = []; // ON UPDATE function components + if (columns) { + columns.forEach(function(col) { + var dbtypeid = col.dbtypeid; + if (!alasql.fn[dbtypeid]) { + dbtypeid = dbtypeid.toUpperCase(); + } -// Console -// alasql.log = function(sql, params) { + // Process SERIAL data type like Postgress + if (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(dbtypeid) > -1) { + col.identity = {value: 1, step: 1}; + } -// }; + var newcol = { + columnid: col.columnid, + dbtypeid: dbtypeid, + dbsize: col.dbsize, // Fixed issue #150 + dbprecision: col.dbprecision, // Fixed issue #150 + notnull: col.notnull, + identity: col.identity, + }; + if (col.identity) { + table.identities[col.columnid] = { + value: +col.identity.value, + step: +col.identity.step, + }; + // ss.push('\''+col.columnid+'\':(alasql.databases[\''+db.databaseid+'\'].tables[\'' + // +tableid+'\'].identities[\''+col.columnid+'\'].value)'); + } + if (col.check) { + table.checks.push({ + id: col.check.constrantid, + fn: new Function('r', 'var y;return ' + col.check.expression.toJS('r', '')), + }); + } -/* global alasql, yy, utils */ + if (col.default) { + ss.push("'" + col.columnid + "':" + col.default.toJS('r', '')); + } -// Console -alasql.log = function(sql, params) { - var olduseid = alasql.useid; - var target = alasql.options.logtarget; - // For node other - if (utils.isNode) { - target = 'console'; - } + // Check for primary key + if (col.primarykey) { + var pk = (table.pk = {}); + pk.columns = [col.columnid]; + pk.onrightfns = "r['" + col.columnid + "']"; + pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns); + pk.hh = hash(pk.onrightfns); + table.uniqs[pk.hh] = {}; + } - var res; - if (typeof sql === 'string') { - res = alasql(sql, params); - } else { - res = sql; - } + // UNIQUE clause + if (col.unique) { + var uk = {}; + table.uk = table.uk || []; + table.uk.push(uk); + uk.columns = [col.columnid]; + uk.onrightfns = "r['" + col.columnid + "']"; + uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns); + uk.hh = hash(uk.onrightfns); + table.uniqs[uk.hh] = {}; + } - // For Node and console.output - if (target === 'console' || utils.isNode) { - if (typeof sql === 'string' && alasql.options.logprompt) { - console.log(olduseid + '>', sql); - } + // UNIQUE clause + if (col.foreignkey) { - if (Array.isArray(res)) { - if (console.table) { - // For Chrome and other consoles - console.table(res); - } else { - // Add print procedure - console.log(JSONtoString(res)); - } - } else { - console.log(JSONtoString(res)); - } - } else { - var el; - if (target === 'output') { - el = document.getElementsByTagName('output')[0]; - } else { - if (typeof target === 'string') { - el = document.getElementById(target); - } else { - // in case of DOM - el = target; - } - } + var fk = col.foreignkey.table; + var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid]; + if (typeof fk.columnid === 'undefined') { + if (fktable.pk.columns && fktable.pk.columns.length > 0) { + fk.columnid = fktable.pk.columns[0]; + } else { + throw new Error('FOREIGN KEY allowed only to tables with PRIMARY KEYs'); + } + } - var s = ''; + var fkfn = function(r) { + var rr = {}; + if (typeof r[col.columnid] === 'undefined') { + return true; + } + rr[fk.columnid] = r[col.columnid]; + var addr = fktable.pk.onrightfn(rr); - if (typeof sql === 'string' && alasql.options.logprompt) { - // s += '

'+olduseid+'> '+alasql.pretty(sql)+'

'; - s += '
' + alasql.pretty(sql) + '
'; - } + if (!fktable.uniqs[fktable.pk.hh][addr]) { + throw new Error( + 'Foreign key "' + + r[col.columnid] + + '" is not found in table ' + + fktable.tableid + ); + } + return true; + }; + table.checks.push({fn: fkfn}); - if (Array.isArray(res)) { - if (res.length === 0) { - s += '

[ ]

'; - } else if (typeof res[0] !== 'object' || Array.isArray(res[0])) { - for (var i = 0, ilen = res.length; i < ilen; i++) { - s += '

' + loghtml(res[i]) + '

'; - } - } else { - s += loghtml(res); } - } else { - s += loghtml(res); - } - el.innerHTML += s; + + if (col.onupdate) { + uss.push("r['" + col.columnid + "']=" + col.onupdate.toJS('r', '')); + } + + table.columns.push(newcol); + table.xcolumns[newcol.columnid] = newcol; + }); } -}; + table.defaultfns = ss.join(','); + table.onupdatefns = uss.join(';'); -alasql.clear = function() { - var target = alasql.options.logtarget; - // For node other + // if(constraints) { + constraints.forEach(function(con) { - if (utils.isNode || utils.isMeteorServer) { - if (console.clear) { - console.clear(); - } - } else { - var el; - if (target === 'output') { - el = document.getElementsByTagName('output')[0]; - } else { - if (typeof target === 'string') { - el = document.getElementById(target); - } else { - // in case of DOM - el = target; + var checkfn; + + if (con.type === 'PRIMARY KEY') { + if (table.pk) { + throw new Error('Primary key already exists'); } - } - el.innerHTML = ''; - } -}; + var pk = (table.pk = {}); + pk.columns = con.columns; + pk.onrightfns = pk.columns + .map(function(columnid) { + return "r['" + columnid + "']"; + }) + .join("+'`'+"); + pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns); + pk.hh = hash(pk.onrightfns); + table.uniqs[pk.hh] = {}; + } else if (con.type === 'CHECK') { -alasql.write = function(s) { + checkfn = new Function('r', 'var y;return ' + con.expression.toJS('r', '')); + } else if (con.type === 'UNIQUE') { - var target = alasql.options.logtarget; - // For node other - if (utils.isNode || utils.isMeteorServer) { - if (console.log) { - console.log(s); - } - } else { - var el; - if (target === 'output') { - el = document.getElementsByTagName('output')[0]; - } else { - if (typeof target === 'string') { - el = document.getElementById(target); - } else { - // in case of DOM - el = target; + var uk = {}; + table.uk = table.uk || []; + table.uk.push(uk); + uk.columns = con.columns; + uk.onrightfns = uk.columns + .map(function(columnid) { + return "r['" + columnid + "']"; + }) + .join("+'`'+"); + uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns); + uk.hh = hash(uk.onrightfns); + table.uniqs[uk.hh] = {}; + } else if (con.type === 'FOREIGN KEY') { + + var col = table.xcolumns[con.columns[0]]; + var fk = con.fktable; + if (con.fkcolumns && con.fkcolumns.length > 0) { + fk.columnid = con.fkcolumns[0]; + } + var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid]; + if (typeof fk.columnid === 'undefined') { + fk.columnid = fktable.pk.columns[0]; } - } - el.innerHTML += s; - } -}; -function loghtml(res) { + checkfn = function(r) { + var rr = {}; + if (typeof r[col.columnid] === 'undefined') { + return true; + } + rr[fk.columnid] = r[col.columnid]; + var addr = fktable.pk.onrightfn(rr); - var s = ''; - if (res === undefined) { - s += 'undefined'; - } else if (Array.isArray(res)) { - s += ''; - s += ''; - var cols = []; - for (var colid in res[0]) { - cols.push(colid); - } - s += '
#'; - cols.forEach(function(colid) { - s += '' + colid; - }); - for (var i = 0, ilen = res.length; i < ilen; i++) { - s += '
' + (i + 1); - cols.forEach(function(colid) { - s += ' '; - if (res[i][colid] == +res[i][colid]) { - // jshint ignore:line - s += '
'; - if (typeof res[i][colid] === 'undefined') { - s += 'NULL'; - } else { - s += res[i][colid]; - } - s += '
'; - } else { - if (typeof res[i][colid] === 'undefined') { - s += 'NULL'; - } else if (typeof res[i][colid] === 'string') { - s += res[i][colid]; - } else { - s += JSONtoString(res[i][colid]); - } - // s += res[i][colid]; + if (!fktable.uniqs[fktable.pk.hh][addr]) { + + throw new Error( + 'Foreign key "' + + r[col.columnid] + + '" is not found in table ' + + fktable.tableid + ); } - }); + return true; + }; } + if (checkfn) { + table.checks.push({fn: checkfn, id: con.constraintid, fk: con.type === 'FOREIGN KEY'}); + } + }); - s += '
'; - } else { - s += '

' + JSONtoString(res) + '

'; + if (this.view && this.viewcolumns) { + var self = this; + this.viewcolumns.forEach(function(vcol, idx) { + self.select.columns[idx].as = vcol.columnid; + }); } - // if() {} - // if(typeof res == 'object') { - // s += '

'+JSON.stringify(res)+'

'; - // } else { - // } - return s; -} + //Used in 420from queryfn when table.view = true! + if (this.view && this.select) { + table.view = true; -function scrollTo(element, to, duration) { - if (duration <= 0) { - return; + table.select = this.select.compile(this.table.databaseid || databaseid); } - var difference = to - element.scrollTop; - var perTick = difference / duration * 10; - - setTimeout(function() { - if (element.scrollTop === to) { - return; - } - element.scrollTop = element.scrollTop + perTick; - scrollTo(element, to, duration - 10); - }, 10); -} -alasql.prompt = function(el, useidel, firstsql) { - if (utils.isNode) { - throw new Error('The prompt not realized for Node.js'); - } + if (db.engineid) { - var prompti = 0; + return alasql.engines[db.engineid].createTable( + this.table.databaseid || databaseid, + tableid, + this.ifnotexists, + cb + ); - if (typeof el === 'string') { - el = document.getElementById(el); + // return res1; } - if (typeof useidel === 'string') { - useidel = document.getElementById(useidel); - } + // } + // if(table.pk) { - useidel.textContent = alasql.useid; + table.insert = function(r, orreplace) { + var oldinserted = alasql.inserted; + alasql.inserted = [r]; - if (firstsql) { - alasql.prompthistory.push(firstsql); - prompti = alasql.prompthistory.length; - try { - var tm = Date.now(); - alasql.log(firstsql); - alasql.write('

' + (Date.now() - tm) + ' ms

'); - } catch (err) { - alasql.write('

' + olduseid + '> ' + sql + '

'); - alasql.write('

' + err + '

'); - } - } + var table = this; - var y = el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop; - scrollTo(document.getElementsByTagName('body')[0], y, 500); + var toreplace = false; // For INSERT OR REPLACE - el.onkeydown = function(event) { - if (event.which === 13) { - var sql = el.value; - var olduseid = alasql.useid; - el.value = ''; - alasql.prompthistory.push(sql); - prompti = alasql.prompthistory.length; - try { - var tm = Date.now(); - alasql.log(sql); - alasql.write('

' + (Date.now() - tm) + ' ms

'); - } catch (err) { - alasql.write('

' + olduseid + '> ' + alasql.pretty(sql, false) + '

'); - alasql.write('

' + err + '

'); + /* + // IDENTINY or AUTO_INCREMENT + // if(table.identities && table.identities.length>0) { + // table.identities.forEach(function(ident){ + // r[ident.columnid] = ident.value; + // }); + // } +*/ + // Trigger prevent functionality + var prevent = false; + for (var tr in table.beforeinsert) { + var trigger = table.beforeinsert[tr]; + if (trigger) { + if (trigger.funcid) { + if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true; + } else if (trigger.statement) { + if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; + } } - el.focus(); + } + if (prevent) return; - useidel.textContent = alasql.useid; - var y = - el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop; - scrollTo(document.getElementsByTagName('body')[0], y, 500); - } else if (event.which === 38) { - prompti--; - if (prompti < 0) { - prompti = 0; + // Trigger prevent functionality + var escape = false; + for (tr in table.insteadofinsert) { + escape = true; + trigger = table.insteadofinsert[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } } - if (alasql.prompthistory[prompti]) { - el.value = alasql.prompthistory[prompti]; - event.preventDefault(); + } + if (escape) return; + + for (var columnid in table.identities) { + var ident = table.identities[columnid]; + + r[columnid] = ident.value; + + } + + if (table.checks && table.checks.length > 0) { + table.checks.forEach(function(check) { + if (!check.fn(r)) { + // if(orreplace) toreplace=true; else + throw new Error('Violation of CHECK constraint ' + (check.id || '')); + } + }); + } + + table.columns.forEach(function(column) { + if (column.notnull && typeof r[column.columnid] === 'undefined') { + throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid); } - } else if (event.which === 40) { - prompti++; - if (prompti >= alasql.prompthistory.length) { - prompti = alasql.prompthistory.length; - el.value = ''; - } else if (alasql.prompthistory[prompti]) { - el.value = alasql.prompthistory[prompti]; - event.preventDefault(); + }); + if (table.pk) { + var pk = table.pk; + var addr = pk.onrightfn(r); + + if (typeof table.uniqs[pk.hh][addr] !== 'undefined') { + + if (orreplace) toreplace = table.uniqs[pk.hh][addr]; + else + throw new Error( + 'Cannot insert record, because it already exists in primary key index' + ); } + // table.uniqs[pk.hh][addr]=r; } - }; -}; -/* -// -// Commit for Alasql.js -// Date: 01.12.2014 -// (c) 2014, Andrey Gershun -// -*/ -yy.BeginTransaction = function(params) { - return yy.extend(this, params); -}; -yy.BeginTransaction.prototype.toString = function() { - return 'BEGIN TRANSACTION'; -}; + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + var ukaddr = uk.onrightfn(r); + if (typeof table.uniqs[uk.hh][ukaddr] !== 'undefined') { + if (orreplace) toreplace = table.uniqs[uk.hh][ukaddr]; + else + throw new Error( + 'Cannot insert record, because it already exists in unique index' + ); + } + // table.uniqs[uk.hh][ukaddr]=r; + }); + } -yy.BeginTransaction.prototype.execute = function(databaseid, params, cb) { - var res = 1; - if (alasql.databases[databaseid].engineid) { - return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid, cb); - } else { - // alasql commit!!! - } - if (cb) cb(res); - return res; -}; + if (toreplace) { + // Do UPDATE!!! -yy.CommitTransaction = function(params) { - return yy.extend(this, params); -}; -yy.CommitTransaction.prototype.toString = function() { - return 'COMMIT TRANSACTION'; -}; + table.update( + function(t) { + for (var f in r) t[f] = r[f]; + }, + table.data.indexOf(toreplace), + params + ); + } else { + table.data.push(r); -yy.CommitTransaction.prototype.execute = function(databaseid, params, cb) { - var res = 1; - if (alasql.databases[databaseid].engineid) { - return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid, cb); - } else { - // alasql commit!!! - } - if (cb) cb(res); - return res; -}; + // Final change before insert -yy.RollbackTransaction = function(params) { - return yy.extend(this, params); -}; -yy.RollbackTransaction.prototype.toString = function() { - return 'ROLLBACK TRANSACTION'; -}; + // Update indices -yy.RollbackTransaction.prototype.execute = function(databaseid, params, cb) { - var res = 1; - if (alasql.databases[databaseid].engineid) { - return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid, cb); - } else { - // alasql commit!!! - } - if (cb) cb(res); - return res; -}; + for (var columnid in table.identities) { + var ident = table.identities[columnid]; -if (alasql.options.tsql) { - // - // Check tables and views - // IF OBJECT_ID('dbo.Employees') IS NOT NULL - // DROP TABLE dbo.Employees; - // IF OBJECT_ID('dbo.VSortedOrders', 'V') IS NOT NULL - // DROP VIEW dbo.VSortedOrders; - - alasql.stdfn.OBJECT_ID = function(name, type) { - if (typeof type == 'undefined') type = 'T'; - type = type.toUpperCase(); - - var sname = name.split('.'); - var dbid = alasql.useid; - var objname = sname[0]; - if (sname.length == 2) { - dbid = sname[0]; - objname = sname[1]; - } + ident.value += ident.step; - var tables = alasql.databases[dbid].tables; - dbid = alasql.databases[dbid].databaseid; - for (var tableid in tables) { - if (tableid == objname) { - // TODO: What OBJECT_ID actually returns + } - if (tables[tableid].view && type == 'V') return dbid + '.' + tableid; - if (!tables[tableid].view && type == 'T') return dbid + '.' + tableid; - return undefined; + if (table.pk) { + var pk = table.pk; + var addr = pk.onrightfn(r); + table.uniqs[pk.hh][addr] = r; + } + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + var ukaddr = uk.onrightfn(r); + table.uniqs[uk.hh][ukaddr] = r; + }); } } - return undefined; + // Trigger prevent functionality + for (var tr in table.afterinsert) { + var trigger = table.afterinsert[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + alasql.inserted = oldinserted; }; -} -if (alasql.options.mysql) { -} + table.delete = function(index) { + var table = this; + var r = table.data[index]; -if (alasql.options.mysql || alasql.options.sqlite) { - // Pseudo INFORMATION_SCHEMA function - alasql.from.INFORMATION_SCHEMA = function(filename, opts, cb, idx, query) { - if (filename == 'VIEWS' || filename == 'TABLES') { - var res = []; - for (var databaseid in alasql.databases) { - var tables = alasql.databases[databaseid].tables; - for (var tableid in tables) { - if ( - (tables[tableid].view && filename == 'VIEWS') || - (!tables[tableid].view && filename == 'TABLES') - ) { - res.push({TABLE_CATALOG: databaseid, TABLE_NAME: tableid}); - } + // Prevent trigger + var prevent = false; + for (var tr in table.beforedelete) { + var trigger = table.beforedelete[tr]; + if (trigger) { + if (trigger.funcid) { + if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true; + } else if (trigger.statement) { + if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; } } - if (cb) res = cb(res, idx, query); - return res; } - throw new Error('Unknown INFORMATION_SCHEMA table'); - }; -} - -if (alasql.options.postgres) { -} + if (prevent) return false; -if (alasql.options.oracle) { -} + // Trigger prevent functionality + var escape = false; + for (var tr in table.insteadofdelete) { + escape = true; + var trigger = table.insteadofdelete[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + if (escape) return; -if (alasql.options.sqlite) { -} + if (this.pk) { + var pk = this.pk; + var addr = pk.onrightfn(r); + if (typeof this.uniqs[pk.hh][addr] === 'undefined') { + throw new Error('Something wrong with primary key index on table'); + } else { + this.uniqs[pk.hh][addr] = undefined; + } + } + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + var ukaddr = uk.onrightfn(r); + if (typeof table.uniqs[uk.hh][ukaddr] === 'undefined') { + throw new Error('Something wrong with unique index on table'); + } + table.uniqs[uk.hh][ukaddr] = undefined; + }); + } + }; -// -// into functions -// -// (c) 2014 Andrey Gershun -// + table.deleteall = function() { + this.data.length = 0; + if (this.pk) { + // var r = this.data[i]; + this.uniqs[this.pk.hh] = {}; + } + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + table.uniqs[uk.hh] = {}; + }); + } + }; -alasql.into.SQL = function(filename, opts, data, columns, cb) { - var res; - if (typeof filename === 'object') { - opts = filename; - filename = undefined; - } - var opt = {}; - alasql.utils.extend(opt, opts); - if (typeof opt.tableid === 'undefined') { - throw new Error('Table for INSERT TO is not defined.'); - } + table.update = function(assignfn, i, params) { + // TODO: Analyze the speed + var r = cloneDeep(this.data[i]); - var s = ''; - if (columns.length === 0) { - if (typeof data[0] === 'object') { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; + var pk; + // PART 1 - PRECHECK + if (this.pk) { + pk = this.pk; + pk.pkaddr = pk.onrightfn(r, params); + if (typeof this.uniqs[pk.hh][pk.pkaddr] === 'undefined') { + throw new Error('Something wrong with index on table'); + } + } + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + uk.ukaddr = uk.onrightfn(r); + if (typeof table.uniqs[uk.hh][uk.ukaddr] === 'undefined') { + throw new Error('Something wrong with unique index on table'); + } }); - } else { - // What should I do? - // columns = [{columnid:"_"}]; } - } - for (var i = 0, ilen = data.length; i < ilen; i++) { - s += 'INSERT INTO ' + opts.tableid + '('; - s += columns - .map(function(col) { - return col.columnid; - }) - .join(','); - s += ') VALUES ('; - s += columns.map(function(col) { - var val = data[i][col.columnid]; - if (col.typeid) { - if ( - col.typeid === 'STRING' || - col.typeid === 'VARCHAR' || - col.typeid === 'NVARCHAR' || - col.typeid === 'CHAR' || - col.typeid === 'NCHAR' - ) { - val = "'" + escapeqq(val) + "'"; + assignfn(r, params, alasql); + + // Prevent trigger + var prevent = false; + for (var tr in table.beforeupdate) { + var trigger = table.beforeupdate[tr]; + if (trigger) { + if (trigger.funcid) { + if (alasql.fn[trigger.funcid](this.data[i], r) === false) + prevent = prevent || true; + } else if (trigger.statement) { + if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; } - } else { - if (typeof val == 'string') { - val = "'" + escapeqq(val) + "'"; + } + } + if (prevent) return false; + + // Trigger prevent functionality + var escape = false; + for (var tr in table.insteadofupdate) { + escape = true; + var trigger = table.insteadofupdate[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](this.data[i], r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); } } - return val; - }); - s += ');\n'; - } - // if(filename === '') { - // res = s; - // } else { - // res = data.length; - filename = alasql.utils.autoExtFilename(filename, 'sql', opts); - res = alasql.utils.saveFile(filename, s); - if (cb) { - res = cb(res); - } - return res; -}; + } + if (escape) return; -alasql.into.HTML = function(selector, opts, data, columns, cb) { - var res = 1; - if (typeof exports !== 'object') { - var opt = {headers: true}; - alasql.utils.extend(opt, opts); + // PART 2 - POST CHECK + if (table.checks && table.checks.length > 0) { + table.checks.forEach(function(check) { + if (!check.fn(r)) { + throw new Error('Violation of CHECK constraint ' + (check.id || '')); + } + }); + } - var sel = document.querySelector(selector); - if (!sel) { - throw new Error('Selected HTML element is not found'); + table.columns.forEach(function(column) { + if (column.notnull && typeof r[column.columnid] === 'undefined') { + throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid); + } + }); + if (this.pk) { + pk.newpkaddr = pk.onrightfn(r); + if ( + typeof this.uniqs[pk.hh][pk.newpkaddr] !== 'undefined' && + pk.newpkaddr !== pk.pkaddr + ) { + throw new Error('Record already exists'); + } } - if (columns.length === 0) { - if (typeof data[0] === 'object') { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); - } else { - // What should I do? - // columns = [{columnid:"_"}]; - } + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + uk.newukaddr = uk.onrightfn(r); + if ( + typeof table.uniqs[uk.hh][uk.newukaddr] !== 'undefined' && + uk.newukaddr !== uk.ukaddr + ) { + throw new Error('Record already exists'); + } + }); } - var tbe = document.createElement('table'); - var thead = document.createElement('thead'); - tbe.appendChild(thead); - if (opt.headers) { - var tre = document.createElement('tr'); - for (var i = 0; i < columns.length; i++) { - var the = document.createElement('th'); - the.textContent = columns[i].columnid; - tre.appendChild(the); - } - thead.appendChild(tre); + // PART 3 UPDATE + if (this.pk) { + this.uniqs[pk.hh][pk.pkaddr] = undefined; + this.uniqs[pk.hh][pk.newpkaddr] = r; + } + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + table.uniqs[uk.hh][uk.ukaddr] = undefined; + table.uniqs[uk.hh][uk.newukaddr] = r; + }); } - var tbody = document.createElement('tbody'); - tbe.appendChild(tbody); - for (var j = 0; j < data.length; j++) { - var tre = document.createElement('tr'); - for (var i = 0; i < columns.length; i++) { - var the = document.createElement('td'); - the.textContent = data[j][columns[i].columnid]; - tre.appendChild(the); + this.data[i] = r; + + // Trigger prevent functionality + for (var tr in table.afterupdate) { + var trigger = table.afterupdate[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](this.data[i], r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } } - tbody.appendChild(tre); } - alasql.utils.domEmptyChildren(sel); + }; - sel.appendChild(tbe); - } - if (cb) { - res = cb(res); - } - return res; -}; + var res; -alasql.into.JSON = function(filename, opts, data, columns, cb) { - var res = 1; - if (typeof filename === 'object') { - opts = filename; - filename = undefined; + if (!alasql.options.nocount) { + res = 1; } - var s = JSON.stringify(data); - filename = alasql.utils.autoExtFilename(filename, 'json', opts); - res = alasql.utils.saveFile(filename, s); - if (cb) { - res = cb(res); - } + if (cb) res = cb(res); return res; }; -alasql.into.TXT = function(filename, opts, data, columns, cb) { - // If columns is empty - if (columns.length === 0 && data.length > 0) { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); - } - // If one parameter - if (typeof filename === 'object') { - opts = filename; - filename = undefined; - } - - var res = data.length; - var s = ''; - if (data.length > 0) { - var key = columns[0].columnid; - s += data - .map(function(d) { - return d[key]; - }) - .join('\n'); - } +// +// Date functions +// +// (c) 2014, Andrey Gershun +// + +/** Standard JavaScript data types */ + +alasql.fn.Date = Object; +alasql.fn.Date = Date; +alasql.fn.Number = Number; +alasql.fn.String = String; +alasql.fn.Boolean = Boolean; + +/** Extend Object with properties */ +stdfn.EXTEND = alasql.utils.extend; + +stdfn.CHAR = String.fromCharCode.bind(String); +stdfn.ASCII = function(a) { + return a.charCodeAt(0); +}; + +/** + Return first non-null argument + See https://msdn.microsoft.com/en-us/library/ms190349.aspx +*/ +stdfn.COALESCE = function() { + for (var i = 0; i < arguments.length; i++) { + if (typeof arguments[i] == 'undefined') continue; + if (typeof arguments[i] == 'number' && isNaN(arguments[i])) continue; + return arguments[i]; + } + return undefined; +}; + +stdfn.USER = function() { + return 'alasql'; +}; + +stdfn.OBJECT_ID = function(objid) { + return !!alasql.tables[objid]; +}; + +stdfn.DATE = function(d) { + if (/\d{8}/.test(d)) return new Date(+d.substr(0, 4), +d.substr(4, 2) - 1, +d.substr(6, 2)); + return new Date(d); +}; + +stdfn.NOW = function() { + var d = new Date(); + var s = + d.getFullYear() + + '.' + + ('0' + (d.getMonth() + 1)).substr(-2) + + '.' + + ('0' + d.getDate()).substr(-2); + s += + ' ' + + ('0' + d.getHours()).substr(-2) + + ':' + + ('0' + d.getMinutes()).substr(-2) + + ':' + + ('0' + d.getSeconds()).substr(-2); + s += '.' + ('00' + d.getMilliseconds()).substr(-3); + return s; +}; + +stdfn.GETDATE = stdfn.NOW; +stdfn.CURRENT_TIMESTAMP = stdfn.NOW; + +stdfn.SECOND = function(d) { + var d = new Date(d); + return d.getSeconds(); +}; + +stdfn.MINUTE = function(d) { + var d = new Date(d); + return d.getMinutes(); +}; + +stdfn.HOUR = function(d) { + var d = new Date(d); + return d.getHours(); +}; + +stdfn.DAYOFWEEK = stdfn.WEEKDAY = function(d) { + var d = new Date(d); + return d.getDay(); +}; + +stdfn.DAY = stdfn.DAYOFMONTH = function(d) { + var d = new Date(d); + return d.getDate(); +}; + +stdfn.MONTH = function(d) { + var d = new Date(d); + return d.getMonth() + 1; +}; + +stdfn.YEAR = function(d) { + var d = new Date(d); + return d.getFullYear(); +}; + +var PERIODS = { + year: 1000 * 3600 * 24 * 365, + quarter: (1000 * 3600 * 24 * 365) / 4, + month: 1000 * 3600 * 24 * 30, + week: 1000 * 3600 * 24 * 7, + day: 1000 * 3600 * 24, + dayofyear: 1000 * 3600 * 24, + weekday: 1000 * 3600 * 24, + hour: 1000 * 3600, + minute: 1000 * 60, + second: 1000, + millisecond: 1, + microsecond: 0.001, +}; + +alasql.stdfn.DATEDIFF = function(period, d1, d2) { + var interval = new Date(d2).getTime() - new Date(d1).getTime(); + return interval / PERIODS[period.toLowerCase()]; +}; + +alasql.stdfn.DATEADD = function(period, interval, d) { + var nd = new Date(d).getTime() + interval * PERIODS[period.toLowerCase()]; + return new Date(nd); +}; + +alasql.stdfn.INTERVAL = function(interval, period) { + return interval * PERIODS[period.toLowerCase()]; +}; + +alasql.stdfn.DATE_ADD = alasql.stdfn.ADDDATE = function(d, interval) { + var nd = new Date(d).getTime() + interval; + return new Date(nd); +}; + +alasql.stdfn.DATE_SUB = alasql.stdfn.SUBDATE = function(d, interval) { + var nd = new Date(d).getTime() - interval; + return new Date(nd); +}; - // } else { - // if(utils.isNode) { - // process.stdout.write(s); - // } else { +/* +// +// DROP TABLE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ - // }; - // } - filename = alasql.utils.autoExtFilename(filename, 'txt', opts); - res = alasql.utils.saveFile(filename, s); - if (cb) { - res = cb(res); - } - return res; +yy.DropTable = function(params) { + return yy.extend(this, params); }; - -alasql.into.TAB = alasql.into.TSV = function(filename, opts, data, columns, cb) { - var opt = {}; - alasql.utils.extend(opt, opts); - opt.separator = '\t'; - filename = alasql.utils.autoExtFilename(filename, 'tab', opts); - opt.autoExt = false; - return alasql.into.CSV(filename, opt, data, columns, cb); +yy.DropTable.prototype.toString = function() { + var s = 'DROP' + ' '; + if (this.view) s += 'VIEW'; + else s += 'TABLE'; + if (this.ifexists) s += ' IF EXISTS'; + s += ' ' + this.tables.toString(); + return s; }; -alasql.into.CSV = function(filename, opts, data, columns, cb) { - if (columns.length === 0 && data.length > 0) { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); - } - if (typeof filename === 'object') { - opts = filename; - filename = undefined; - } - - var opt = {headers: true}; - //opt.separator = ','; - opt.separator = ';'; - opt.quote = '"'; - - opt.utf8Bom = true; - if (opts && !opts.headers && typeof opts.headers !== 'undefined') { - opt.utf8Bom = false; - } - - alasql.utils.extend(opt, opts); - var res = data.length; - var s = opt.utf8Bom ? '\ufeff' : ''; - if (opt.headers) { - s += - opt.quote + - columns - .map(function(col) { - return col.columnid.trim(); - }) - .join(opt.quote + opt.separator + opt.quote) + - opt.quote + - '\r\n'; - } +// DROP TABLE +/** + Drop tables + @param {string} databaseid Database id + @param {object} params Parameters + @param {callback} cb Callback function + @return Number of dropped tables + @example + DROP TABLE one; + DROP TABLE IF NOT EXISTS two, three; +*/ +yy.DropTable.prototype.execute = function(databaseid, params, cb) { + var ifexists = this.ifexists; + var res = 0; // No tables removed + var count = 0; + var tlen = this.tables.length; - data.forEach(function(d) { - s += - columns - .map(function(col) { - var s = d[col.columnid]; - // escape the character wherever it appears in the field - if (opt.quote !== '') { - s = (s + '').replace( - new RegExp('\\' + opt.quote, 'g'), - opt.quote + opt.quote - ); - } - // if((s+"").indexOf(opt.separator) > -1 || (s+"").indexOf(opt.quote) > -1) s = opt.quote + s + opt.quote; + // For each table in the list + this.tables.forEach(function(table) { + var db = alasql.databases[table.databaseid || databaseid]; + var tableid = table.tableid; - //Excel 2013 needs quotes around strings - thanks for _not_ complying with RFC for CSV - if (+s != s) { - // jshint ignore:line - s = opt.quote + s + opt.quote; - } + /** @todo Test with AUTOCOMMIT flag is ON */ + /** @todo Test with IndexedDB and multiple tables */ - return s; - }) - .join(opt.separator) + '\r\n'; + if (!ifexists || (ifexists && db.tables[tableid])) { + if (!db.tables[tableid]) { + if (!alasql.options.dropifnotexists) { + throw new Error( + "Can not drop table '" + + table.tableid + + "', because it does not exist in the database." + ); + } + } else { + if (db.engineid /*&& alasql.options.autocommit*/) { + alasql.engines[db.engineid].dropTable( + table.databaseid || databaseid, + tableid, + ifexists, + function(res1) { + delete db.tables[tableid]; + res += res1; + count++; + if (count == tlen && cb) cb(res); + } + ); + } else { + delete db.tables[tableid]; + res++; + count++; + if (count == tlen && cb) cb(res); + } + } + } else { + count++; + if (count == tlen && cb) cb(res); + } }); - - filename = alasql.utils.autoExtFilename(filename, 'csv', opts); - res = alasql.utils.saveFile(filename, s, null, {disableAutoBom: true}); - if (cb) { - res = cb(res); - } + // if(cb) res = cb(res); return res; }; -// -// 831xl.js - Coloring Excel -// 18.04.2015 -// Generate XLS file with colors and styles -// with Excel - -alasql.into.XLS = function(filename, opts, data, columns, cb) { - // If filename is not defined then output to the result - if (typeof filename == 'object') { - opts = filename; - filename = undefined; - } +yy.TruncateTable = function(params) { + return yy.extend(this, params); +}; +yy.TruncateTable.prototype.toString = function() { + var s = 'TRUNCATE TABLE'; + s += ' ' + this.table.toString(); + return s; +}; - // Set sheets - var sheets = {}; - if (opts && opts.sheets) { - sheets = opts.sheets; +yy.TruncateTable.prototype.execute = function(databaseid, params, cb) { + var db = alasql.databases[this.table.databaseid || databaseid]; + var tableid = this.table.tableid; + if (db.engineid) { + return alasql.engines[db.engineid].truncateTable( + this.table.databaseid || databaseid, + tableid, + this.ifexists, + cb + ); } - - // Default sheet - var sheet = {headers: true}; - if (typeof sheets['Sheet1'] != 'undefined') { - sheet = sheets[0]; + if (db.tables[tableid]) { + db.tables[tableid].data = []; } else { - if (typeof opts != 'undefined') { - sheet = opts; - } + throw new Error('Cannot truncate table becaues it does not exist'); } + return cb ? cb(0) : 0; +}; - // Set sheet name and default is 'Sheet1' - if (typeof sheet.sheetid == 'undefined') { - sheet.sheetid = 'Sheet1'; - } +/* +// +// CREATE VERTEX for AlaSQL +// Date: 21.04.2015 +// (c) 2015, Andrey Gershun +// +*/ - var s = toHTML(); +yy.CreateVertex = function(params) { + return yy.extend(this, params); +}; +yy.CreateVertex.prototype.toString = function() { + var s = 'CREATE VERTEX '; + if (this.class) { + s += this.class + ' '; + } + if (this.sharp) { + s += '#' + this.sharp + ' '; + } + if (this.sets) { + s += this.sets.toString(); + } else if (this.content) { + s += this.content.toString(); + } else if (this.select) { + s += this.select.toString(); + } - // File is ready to save - filename = alasql.utils.autoExtFilename(filename, 'xls', opts); - var res = alasql.utils.saveFile(filename, s); - if (cb) res = cb(res); - return res; + return s; +}; - function toHTML() { - // Generate prologue - var s = - ' \ - \ - '; - - // Generate body - s += ' 0) { - if (typeof data[0] == 'object') { - if (Array.isArray(data[0])) { - columns = data[0].map(function(d, columnidx) { - return {columnid: columnidx}; - }); - } else { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); - } - } - } - } + // CREATE VERTEX #id + var sharp = this.sharp; - // Prepare columns - columns.forEach(function(column, columnidx) { - if (typeof sheet.column != 'undefined') { - extend(column, sheet.column); - } + // CREATE VERTEX "Name" + if (typeof this.name !== 'undefined') { + var s = 'x.name=' + this.name.toJS(); + var namefn = new Function('x', s); + } - if (typeof column.width == 'undefined') { - if (sheet.column && sheet.column.width != 'undefined') { - column.width = sheet.column.width; - } else { - column.width = '120px'; - } - } - if (typeof column.width == 'number') column.width = column.width + 'px'; - if (typeof column.columnid == 'undefined') column.columnid = columnidx; - if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim(); - if (sheet.headers && Array.isArray(sheet.headers)) - column.title = sheet.headers[columnidx]; - }); + if (this.sets && this.sets.length > 0) { + var s = this.sets + .map(function(st) { + return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); + }) + .join(';'); + var setfn = new Function('x,params,alasql', s); + } - // Set columns widths - s += ''; - columns.forEach(function(column) { - s += ''; - }); - s += ''; - - // Headers - if (sheet.headers) { - s += ''; - s += ''; - - // TODO: Skip columns to body - - // Headers - columns.forEach(function(column, columnidx) { - s += ' 0) { - // TODO: Skip columns to body +yy.CreateEdge = function(params) { + return yy.extend(this, params); +}; +yy.CreateEdge.prototype.toString = function() { - // Loop over data rows - data.forEach(function(row, rowidx) { - // Limit number of rows on the sheet - if (rowidx > sheet.limit) return; - // Create row - s += ' 0) { + var s = this.sets + .map(function(st) { + return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); + }) + .join(';'); + var setfn = new Function('x,params,alasql', 'var y;' + s); + } - if (typeid == 'money') { - typestyle = - 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;'; - } else if (typeid == 'number') { - typestyle = ' '; - } else if (typeid == 'date') { - typestyle = 'mso-number-format:"Short Date";'; - } else { - // FOr other types is saved - if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) { - typestyle = opts.types[typeid].typestyle; - } - } + /* + todo: handle content, select and default + else if(this.content) { - // TODO Replace with extend... - typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style + } else if(this.select) { - s += " \ - \ - \ - \ - \ - \ - \ - \ - 0 \ - \ - \ - '; - - var s2 = ''; // for styles - - var s3 = ' '; - - var styles = {}; // hash based storage for styles - var stylesn = 62; // First style - - // Generate style - function hstyle(st) { - // Prepare string - var s = ''; - for (var key in st) { - s += '<' + key; - for (var attr in st[key]) { - s += ' '; - if (attr.substr(0, 2) == 'x:') { - s += attr; - } else { - s += 'ss:'; - } - s += attr + '="' + st[key][attr] + '"'; - } - s += '/>'; + // stop; + this.graph.forEach(function(g) { + if (g.source) { + // GREATE EDGE + var e = {}; + if (typeof g.as !== 'undefined') { + alasql.vars[g.as] = e; } - var hh = hash(s); - // Store in hash - if (styles[hh]) { - } else { - styles[hh] = {styleid: stylesn}; - s2 += ''; - stylesn++; + if (typeof g.prop !== 'undefined') { + // e[g.prop] = e; + // v.$id = g.prop; // We do not create $id for edge automatically + e.name = g.prop; + } + if (typeof g.sharp !== 'undefined') { + e.$id = g.sharp; + } + if (typeof g.name !== 'undefined') { + e.name = g.name; + } + if (typeof g.class !== 'undefined') { + e.$class = g.class; } - return 's' + styles[hh].styleid; - } - function values(obj) { - try { - return Object.values(obj); - } catch (e) { - // support for older runtimes - return Object.keys(obj).map(function(e) { - return obj[e]; - }); + var db = alasql.databases[databaseid]; + if (typeof e.$id === 'undefined') { + e.$id = db.counter++; + } + e.$node = 'EDGE'; + if (typeof g.json !== 'undefined') { + extend( + e, + new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql) + ); } - } - var sheetidx = 0; - for (var sheetid in sheets) { - var sheet = sheets[sheetid]; - var idx = typeof sheet.dataidx != 'undefined' ? sheet.dataidx : sheetidx++; - var data = values(sheetsdata[idx]); - // If columns defined in sheet, then take them - var columns = undefined; - if (typeof sheet.columns != 'undefined') { - columns = sheet.columns; + var v1; + if (g.source.vars) { + var vo = alasql.vars[g.source.vars]; + if (typeof vo === 'object') { + v1 = vo; + } else { + v1 = db.objects[vo]; + } } else { - // Autogenerate columns if they are passed as parameters - columns = sheetscolumns[idx]; - if (columns === undefined || (columns.length == 0 && data.length > 0)) { - if (typeof data[0] == 'object') { - if (Array.isArray(data[0])) { - columns = data[0].map(function(d, columnidx) { - return {columnid: columnidx}; - }); - } else { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); - } + var av1 = g.source.sharp; + if (typeof av1 === 'undefined') { + av1 = g.source.prop; + } + v1 = alasql.databases[databaseid].objects[av1]; + if ( + typeof v1 === 'undefined' && + alasql.options.autovertex && + (typeof g.source.prop !== 'undefined' || typeof g.source.name !== 'undefined') + ) { + v1 = findVertex(g.source.prop || g.source.name); + if (typeof v1 === 'undefined') { + v1 = createVertex(g.source); } } } - // Prepare columns - columns.forEach(function(column, columnidx) { - if (typeof sheet.column != 'undefined') { - extend(column, sheet.column); - } - - if (typeof column.width == 'undefined') { - if (sheet.column && typeof sheet.column.width != 'undefined') { - column.width = sheet.column.width; - } else { - column.width = 120; - } + var v2; + if (g.source.vars) { + var vo = alasql.vars[g.target.vars]; + if (typeof vo === 'object') { + v2 = vo; + } else { + v2 = db.objects[vo]; } - if (typeof column.width == 'number') column.width = column.width; - if (typeof column.columnid == 'undefined') column.columnid = columnidx; - if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim(); - if (sheet.headers && Array.isArray(sheet.headers)) - column.title = sheet.headers[columnidx]; - }); - - // Header - s3 += - ' \ - '; - - columns.forEach(function(column, columnidx) { - s3 += - ''; - }); - - // Headers - if (sheet.headers) { - s3 += ''; - - // TODO: Skip columns to body - - // Headers - columns.forEach(function(column, columnidx) { - s3 += ' 0) { - // Loop over data rows - data.forEach(function(row, rowidx) { - // Limit number of rows on the sheet - if (rowidx > sheet.limit) return; - - // Extend row properties - var srow = {}; - extend(srow, sheet.row); - if (sheet.rows && sheet.rows[rowidx]) { - extend(srow, sheet.rows[rowidx]); - } - - s3 += '' - - // Data - columns.forEach(function(column, columnidx) { - // Parameters - var cell = {}; - extend(cell, sheet.cell); - extend(cell, srow.cell); - if (typeof sheet.column != 'undefined') { - extend(cell, sheet.column.cell); - } - extend(cell, column.cell); - if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) { - extend(cell, sheet.cells[rowidx][columnidx]); - } + // Set link + e.$in = [v1.$id]; + e.$out = [v2.$id]; + // Set sides + if (typeof v1.$out === 'undefined') { + v1.$out = []; + } + v1.$out.push(e.$id); + if (typeof v2.$in === 'undefined') { + v2.$in = []; + } + v2.$in.push(e.$id); - // Create value - var value = row[column.columnid]; - if (typeof cell.value == 'function') { - value = cell.value(value, sheet, row, column, cell, rowidx, columnidx); - } + db.objects[e.$id] = e; + if (typeof e.$class !== 'undefined') { + if (typeof alasql.databases[databaseid].tables[e.$class] === 'undefined') { + throw new Error('No such class. Pleace use CREATE CLASS'); + } else { + // TODO - add insert() + alasql.databases[databaseid].tables[e.$class].data.push(e); + } + } - // Define cell type - var typeid = cell.typeid; - if (typeof typeid == 'function') { - typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx); - } + res.push(e.$id); + } else { + createVertex(g); + } + }); - if (typeof typeid == 'undefined') { - if (typeof value == 'number') typeid = 'number'; - else if (typeof value == 'string') typeid = 'string'; - else if (typeof value == 'boolean') typeid = 'boolean'; - else if (typeof value == 'object') { - if (value instanceof Date) typeid = 'date'; - } - } + if (cb) { + res = cb(res); + } + return res; - var Type = 'String'; - if (typeid == 'number') Type = 'Number'; - else if (typeid == 'date') Type = 'Date'; - // TODO: What else? - - // Prepare Data types styles - var typestyle = ''; - - if (typeid == 'money') { - typestyle = - 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;'; - } else if (typeid == 'number') { - typestyle = ' '; - } else if (typeid == 'date') { - typestyle = 'mso-number-format:"Short Date";'; - } else { - // For other types is saved - if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) { - typestyle = opts.types[typeid].typestyle; - } - } + // Find vertex by name + function findVertex(name) { + var objects = alasql.databases[alasql.useid].objects; + for (var k in objects) { + if (objects[k].name === name) { + return objects[k]; + } + } + return undefined; + } - // TODO Replace with extend... - typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style - - s3 += ''; - - // TODO Replace with extend... - var format = cell.format; - if (typeof value == 'undefined') { - s3 += ''; - } else if (typeof format != 'undefined') { - if (typeof format == 'function') { - s3 += format(value); - } else if (typeof format == 'string') { - s3 += value; // TODO - add string format - } else { - throw new Error( - 'Unknown format type. Should be function or string' - ); - } - } else { - if (typeid == 'number' || typeid == 'date') { - s3 += value.toString(); - } else if (typeid == 'money') { - s3 += (+value).toFixed(2); - } else { - s3 += value; - } - } + if (typeof g.prop !== 'undefined') { + // v[g.prop] = true; + v.$id = g.prop; + v.name = g.prop; + } - // s3 += row[column.columnid]; - s3 += ''; - }); + if (typeof g.sharp !== 'undefined') { + v.$id = g.sharp; + } + if (typeof g.name !== 'undefined') { + v.name = g.name; + } + if (typeof g.class !== 'undefined') { + v.$class = g.class; + } - s3 += ''; - }); + var db = alasql.databases[databaseid]; + if (typeof v.$id === 'undefined') { + v.$id = db.counter++; + } + v.$node = 'VERTEX'; + if (typeof g.json !== 'undefined') { + extend( + v, + new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql) + ); + } + db.objects[v.$id] = v; + if (typeof v.$class !== 'undefined') { + if (typeof alasql.databases[databaseid].tables[v.$class] === 'undefined') { + throw new Error('No such class. Pleace use CREATE CLASS'); + } else { + // TODO - add insert() + alasql.databases[databaseid].tables[v.$class].data.push(v); } - // Finish - s3 += '
'; } - s3 += '
'; - - return s1 + s2 + s3; + res.push(v.$id); + return v; } }; -/** - Export to XLSX function - @function - @param {string|object} filename Filename or options - @param {object|undefined} opts Options or undefined - @param {array} data Data - @param {array} columns Columns - @parab {callback} cb Callback function - @return {number} Number of files processed -*/ - -alasql.into.XLSX = function(filename, opts, data, columns, cb) { - /** @type {number} result */ - var res = 1; - - if (deepEqual(columns, [{columnid: '_'}])) { - data = data.map(function(dat) { - return dat._; - }); - columns = undefined; - // res = [{_:1}]; - } else { - // data = data1; - } - - filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts); - - var XLSX = getXLSX(); +yy.CreateGraph.prototype.compile1 = function(databaseid) { + var dbid = databaseid; + var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS()); + var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS()); - /* If called without filename, use opts */ - if (typeof filename == 'object') { - opts = filename; - filename = undefined; + // CREATE VERTEX "Name" + if (typeof this.name !== 'undefined') { + var s = 'x.name=' + this.name.toJS(); + var namefn = new Function('x', s); } - /** @type {object} Workbook */ - var wb = {SheetNames: [], Sheets: {}}; - - // ToDo: check if cb must be treated differently here - if (opts.sourcefilename) { - alasql.utils.loadBinaryFile(opts.sourcefilename, !!cb, function(data) { - wb = XLSX.read(data, {type: 'binary'}); - doExport(); - }); - } else { - doExport(); + if (this.sets && this.sets.length > 0) { + var s = this.sets + .map(function(st) { + return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); + }) + .join(';'); + var setfn = new Function('x,params,alasql', 'var y;' + s); } - /* Return result */ - if (cb) res = cb(res); - return res; + // Todo: handle content, select and default - /** - Export workbook - @function - */ - function doExport() { - /* - If opts is array of arrays then this is a - multisheet workboook, else it is a singlesheet - */ - if (typeof opts == 'object' && Array.isArray(opts)) { - if (data && data.length > 0) { - data.forEach(function(dat, idx) { - prepareSheet(opts[idx], dat, undefined, idx + 1); - }); - } - } else { - prepareSheet(opts, data, columns, 1); + var statement = function(params, cb) { + var res = 0; + // CREATE VERTEX without parameters + var db = alasql.databases[dbid]; + var edge = {$id: db.counter++, $node: 'EDGE'}; + var v1 = fromfn(params, alasql); + var v2 = tofn(params, alasql); + // Set link + edge.$in = [v1.$id]; + edge.$out = [v2.$id]; + // Set sides + if (typeof v1.$out === 'undefined') { + v1.$out = []; } + v1.$out.push(edge.$id); - saveWorkbook(cb); - } - - /** - Prepare sheet - @params {object} opts - @params {array|object} data - @params {array} columns Columns - */ - function prepareSheet(opts, data, columns, idx) { - /** Default options for sheet */ - var opt = {sheetid: 'Sheet ' + idx, headers: true}; - alasql.utils.extend(opt, opts); - - var dataLength = Object.keys(data).length; - - // Generate columns if they are not defined - if ((!columns || columns.length == 0) && dataLength > 0) { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); + if (typeof v2.$in === 'undefined') { + v2.$in = []; } - - var cells = {}; - - if (wb.SheetNames.indexOf(opt.sheetid) > -1) { - cells = wb.Sheets[opt.sheetid]; - } else { - wb.SheetNames.push(opt.sheetid); - wb.Sheets[opt.sheetid] = {}; - cells = wb.Sheets[opt.sheetid]; + v2.$in.push(edge.$id); + // Save in objects + db.objects[edge.$id] = edge; + res = edge; + if (namefn) { + namefn(edge); + } + if (setfn) { + setfn(edge, params, alasql); } - var range = 'A1'; - if (opt.range) range = opt.range; - - var col0 = alasql.utils.xlscn(range.match(/[A-Z]+/)[0]); - var row0 = +range.match(/[0-9]+/)[0] - 1; - - if (wb.Sheets[opt.sheetid]['!ref']) { - var rangem = wb.Sheets[opt.sheetid]['!ref']; - var colm = alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]); - var rowm = +rangem.match(/[0-9]+/)[0] - 1; - } else { - var colm = 1, - rowm = 1; + if (cb) { + res = cb(res); } - var colmax = Math.max(col0 + columns.length, colm); - var rowmax = Math.max(row0 + dataLength + 2, rowm); + return res; + }; + return statement; +}; - var i = row0 + 1; +/* +// +// ALTER TABLE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ +/* global alasql yy */ - wb.Sheets[opt.sheetid]['!ref'] = 'A1:' + alasql.utils.xlsnc(colmax) + rowmax; - // var i = 1; +// ALTER TABLE table1 RENAME TO table2 +yy.AlterTable = function(params) { + return yy.extend(this, params); +}; +yy.AlterTable.prototype.toString = function() { + var s = 'ALTER TABLE ' + this.table.toString(); + if (this.renameto) s += ' RENAME TO ' + this.renameto; + return s; +}; - if (opt.headers) { - columns.forEach(function(col, idx) { - cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = {v: col.columnid.trim()}; - }); - i++; - } +yy.AlterTable.prototype.execute = function(databaseid, params, cb) { + var db = alasql.databases[databaseid]; + db.dbversion = Date.now(); - for (var j = 0; j < dataLength; j++) { - columns.forEach(function(col, idx) { - var cell = {v: data[j][col.columnid]}; - if (typeof data[j][col.columnid] == 'number') { - cell.t = 'n'; - } else if (typeof data[j][col.columnid] == 'string') { - cell.t = 's'; - } else if (typeof data[j][col.columnid] == 'boolean') { - cell.t = 'b'; - } else if (typeof data[j][col.columnid] == 'object') { - if (data[j][col.columnid] instanceof Date) { - cell.t = 'd'; - } - } - cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = cell; - }); - i++; + if (this.renameto) { + var oldtableid = this.table.tableid; + var newtableid = this.renameto; + var res = 1; + if (db.tables[newtableid]) { + throw new Error( + "Can not rename a table '" + + oldtableid + + "' to '" + + newtableid + + "', because the table with this name already exists" + ); + } else if (newtableid === oldtableid) { + throw new Error("Can not rename a table '" + oldtableid + "' to itself"); + } else { + db.tables[newtableid] = db.tables[oldtableid]; + delete db.tables[oldtableid]; + res = 1; + } + if (cb) cb(res); + return res; + } else if (this.addcolumn) { + db = alasql.databases[this.table.databaseid || databaseid]; + db.dbversion++; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var columnid = this.addcolumn.columnid; + if (table.xcolumns[columnid]) { + throw new Error( + 'Cannot add column "' + + columnid + + '", because it already exists in the table "' + + tableid + + '"' + ); } - } - - /** - Save Workbook - @params {array} wb Workbook - @params {callback} cb Callback - */ - function saveWorkbook(cb) { - var XLSX; - - if (typeof filename == 'undefined') { - res = wb; - } else { - XLSX = getXLSX(); + var col = { + columnid: columnid, + dbtypeid: this.dbtypeid, + dbsize: this.dbsize, + dbprecision: this.dbprecision, + dbenum: this.dbenum, + defaultfns: null, // TODO defaultfns!!! + }; - if (utils.isNode || utils.isMeteorServer) { - XLSX.writeFile(wb, filename); - } else { - var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'}; - var wbout = XLSX.write(wb, wopts); - - 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; - } + var defaultfn = function() {}; - /* the saveAs call downloads a file on the local machine */ - // saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), '"'+filename+'"') - // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}), filename) - // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.ms-excel"}), '"'+filename+'"'); - if (isIE() == 9) { - throw new Error( - 'Cannot save XLSX files in IE9. Please use XLS() export function' - ); - // var URI = 'data:text/plain;charset=utf-8,'; + table.columns.push(col); + table.xcolumns[columnid] = col; - /** @todo Check if this code is required */ + for (var i = 0, ilen = table.data.length; i < ilen; i++) { - // alert('ie9'); - } else { - saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), filename); - } - } + table.data[i][columnid] = defaultfn(); } - } -}; - -/* -// -// FROM functions Alasql.js -// Date: 11.12.2014 -// (c) 2014, Andrey Gershun -// -*/ + // TODO + return cb ? cb(1) : 1; + } else if (this.modifycolumn) { + var db = alasql.databases[this.table.databaseid || databaseid]; + db.dbversion++; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var columnid = this.modifycolumn.columnid; -/** - Meteor - */ + if (!table.xcolumns[columnid]) { + throw new Error( + 'Cannot modify column "' + + columnid + + '", because it was not found in the table "' + + tableid + + '"' + ); + } -/* global alasql Tabletop document Event */ + col = table.xcolumns[columnid]; + col.dbtypeid = this.dbtypeid; + col.dbsize = this.dbsize; + col.dbprecision = this.dbprecision; + col.dbenum = this.dbenum; -alasql.from.METEOR = function(filename, opts, cb, idx, query) { - var res = filename.find(opts).fetch(); - if (cb) { - res = cb(res, idx, query); - } - return res; -}; + // TODO + return cb ? cb(1) : 1; + } else if (this.renamecolumn) { + var db = alasql.databases[this.table.databaseid || databaseid]; + db.dbversion++; -/** - Google Spreadsheet reader - */ -alasql.from.TABLETOP = function(key, opts, cb, idx, query) { - var res = []; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var columnid = this.renamecolumn; + var tocolumnid = this.to; - var opt = {headers: true, simpleSheet: true, key: key}; - alasql.utils.extend(opt, opts); - opt.callback = function(data) { - res = data; - if (cb) { - res = cb(res, idx, query); + var col; + if (!table.xcolumns[columnid]) { + throw new Error( + 'Column "' + columnid + '" is not found in the table "' + tableid + '"' + ); + } + if (table.xcolumns[tocolumnid]) { + throw new Error( + 'Column "' + tocolumnid + '" already exists in the table "' + tableid + '"' + ); } - }; - - Tabletop.init(opt); - return null; -}; -alasql.from.HTML = function(selector, opts, cb, idx, query) { - var opt = {}; - alasql.utils.extend(opt, opts); + if (columnid != tocolumnid) { + for (var j = 0; j < table.columns.length; j++) { + if (table.columns[j].columnid == columnid) { + table.columns[j].columnid = tocolumnid; + } + } - var sel = document.querySelector(selector); - if (!sel && sel.tagName !== 'TABLE') { - throw new Error('Selected HTML element is not a TABLE'); - } + table.xcolumns[tocolumnid] = table.xcolumns[columnid]; + delete table.xcolumns[columnid]; - var res = []; - var headers = opt.headers; + for (var i = 0, ilen = table.data.length; i < ilen; i++) { - if (headers && !Array.isArray(headers)) { - headers = []; - var ths = sel.querySelector('thead tr').children; - for (var i = 0; i < ths.length; i++) { - if ( - !(ths.item(i).style && ths.item(i).style.display === 'none' && opt.skipdisplaynone) - ) { - headers.push(ths.item(i).textContent); - } else { - headers.push(undefined); + table.data[i][tocolumnid] = table.data[i][columnid]; + delete table.data[i][columnid]; } + return table.data.length; + } else { + return cb ? cb(0) : 0; } - } - - var trs = sel.querySelectorAll('tbody tr'); - - for (var j = 0; j < trs.length; j++) { - var tds = trs.item(j).children; - var r = {}; - for (i = 0; i < tds.length; i++) { - if ( - !(tds.item(i).style && tds.item(i).style.display === 'none' && opt.skipdisplaynone) - ) { - if (headers) { - r[headers[i]] = tds.item(i).textContent; - } else { - r[i] = tds.item(i).textContent; + } else if (this.dropcolumn) { + var db = alasql.databases[this.table.databaseid || databaseid]; + db.dbversion++; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var columnid = this.dropcolumn; - } + var found = false; + for (var j = 0; j < table.columns.length; j++) { + if (table.columns[j].columnid == columnid) { + found = true; + table.columns.splice(j, 1); + break; } } - res.push(r); - } - - if (cb) { - res = cb(res, idx, query); - } - return res; -}; - -alasql.from.RANGE = function(start, finish, cb, idx, query) { - var res = []; - for (var i = start; i <= finish; i++) { - res.push(i); - } - // res = new alasql.Recordset({data:res,columns:{columnid:'_'}}); - if (cb) { - res = cb(res, idx, query); - } - return res; -}; - -// Read data from any file -alasql.from.FILE = function(filename, opts, cb, idx, query) { - var fname; - if (typeof filename === 'string') { - fname = filename; - } else if (filename instanceof Event) { - fname = filename.target.files[0].name; - } else { - throw new Error('Wrong usage of FILE() function'); - } - var parts = fname.split('.'); - - var ext = parts[parts.length - 1].toUpperCase(); + if (!found) { + throw new Error( + 'Cannot drop column "' + + columnid + + '", because it was not found in the table "' + + tableid + + '"' + ); + } - if (alasql.from[ext]) { + delete table.xcolumns[columnid]; - return alasql.from[ext](filename, opts, cb, idx, query); + for (i = 0, ilen = table.data.length; i < ilen; i++) { + delete table.data[i][columnid]; + } + return cb ? cb(table.data.length) : table.data.length; } else { - throw new Error('Cannot recognize file type for loading'); + throw Error('Unknown ALTER TABLE method'); } }; -// Read JSON file - -alasql.from.JSON = function(filename, opts, cb, idx, query) { - var res; - - filename = alasql.utils.autoExtFilename(filename, 'json', opts); - alasql.utils.loadFile(filename, !!cb, function(data) { +/* +// +// CREATE TABLE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ - // res = [{a:1}]; - res = JSON.parse(data); - if (cb) { - res = cb(res, idx, query); - } - }); - return res; +yy.CreateIndex = function(params) { + return yy.extend(this, params); }; - -alasql.from.TXT = function(filename, opts, cb, idx, query) { - var res; - filename = alasql.utils.autoExtFilename(filename, 'txt', opts); - alasql.utils.loadFile(filename, !!cb, function(data) { - res = data.split(/\r?\n/); - - // Remove last line if empty - if (res[res.length - 1] === '') { - res.pop(); - } - for (var i = 0, ilen = res.length; i < ilen; i++) { - // Please avoid '===' here - if (res[i] == +res[i]) { - // eslint:ignore - // jshint ignore:line - res[i] = +res[i]; - } - res[i] = [res[i]]; - } - if (cb) { - res = cb(res, idx, query); - } - }); - return res; +yy.CreateIndex.prototype.toString = function() { + var s = 'CREATE'; + if (this.unique) s += ' UNIQUE'; + s += ' INDEX ' + this.indexid + ' ON ' + this.table.toString(); + s += '(' + this.columns.toString() + ')'; + return s; }; -alasql.from.TAB = alasql.from.TSV = function(filename, opts, cb, idx, query) { - opts = opts || {}; - opts.separator = '\t'; - filename = alasql.utils.autoExtFilename(filename, 'tab', opts); - opts.autoext = false; - return alasql.from.CSV(filename, opts, cb, idx, query); -}; +// CREATE TABLE +yy.CreateIndex.prototype.execute = function(databaseid, params, cb) { + // var self = this; + var db = alasql.databases[databaseid]; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var indexid = this.indexid; + db.indices[indexid] = tableid; -alasql.from.CSV = function(contents, opts, cb, idx, query) { - var opt = { - separator: ',', - quote: '"', - headers: true, - }; - alasql.utils.extend(opt, opts); - var res; - var hs = []; - function parseText(text) { - var delimiterCode = opt.separator.charCodeAt(0); - var quoteCode = opt.quote.charCodeAt(0); - - var EOL = {}, - EOF = {}, - rows = [], - N = text.length, - I = 0, - n = 0, - t, - eol; - function token() { - if (I >= N) { - return EOF; - } - if (eol) { - return (eol = false), EOL; - } - var j = I; - if (text.charCodeAt(j) === quoteCode) { - var i = j; - while (i++ < N) { - if (text.charCodeAt(i) === quoteCode) { - if (text.charCodeAt(i + 1) !== quoteCode) { - break; - } - ++i; - } - } - I = i + 2; - var c = text.charCodeAt(i + 1); - if (c === 13) { - eol = true; - if (text.charCodeAt(i + 2) === 10) { - ++I; - } - } else if (c === 10) { - eol = true; - } - return text.substring(j + 1, i).replace(/""/g, '"'); - } - while (I < N) { - var c = text.charCodeAt(I++), - k = 1; - if (c === 10) { - eol = true; - } else if (c === 13) { - eol = true; - if (text.charCodeAt(I) === 10) { - ++I; - ++k; - } - } else if (c !== delimiterCode) { - continue; - } - return text.substring(j, I - k); - } - return text.substring(j); - } + var rightfns = this.columns + .map(function(expr) { + return expr.expression.toJS('r', ''); + }) + .join("+'`'+"); - while ((t = token()) !== EOF) { - var a = []; - while (t !== EOL && t !== EOF) { - a.push(t.trim()); - t = token(); - } + var rightfn = new Function('r,params,alasql', 'return ' + rightfns); - if (opt.headers) { - if (n === 0) { - if (typeof opt.headers === 'boolean') { - hs = a; - } else if (Array.isArray(opt.headers)) { - hs = opt.headers; - var r = {}; - hs.forEach(function(h, idx) { - r[h] = a[idx]; - // Please avoid === here - if ( - typeof r[h] !== 'undefined' && - r[h].length !== 0 && - r[h].trim() == +r[h] - ) { - // jshint ignore:line - r[h] = +r[h]; - } - }); - rows.push(r); - } - } else { - var r = {}; - hs.forEach(function(h, idx) { - r[h] = a[idx]; - if ( - typeof r[h] !== 'undefined' && - r[h].length !== 0 && - r[h].trim() == +r[h] - ) { - // jshint ignore:line - r[h] = +r[h]; - } - }); - rows.push(r); + if (this.unique) { + table.uniqdefs[indexid] = { + rightfns: rightfns, + }; + var ux = (table.uniqs[indexid] = {}); + if (table.data.length > 0) { + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + var addr = rightfns(table.data[i]); + if (!ux[addr]) { + ux[addr] = {num: 0}; } - n++; - } else { - rows.push(a); + ux[addr].num++; } } + } else { + var hh = hash(rightfns); + table.inddefs[indexid] = {rightfns: rightfns, hh: hh}; + table.indices[hh] = {}; - res = rows; - - if (opt.headers) { - if (query && query.sources && query.sources[idx]) { - var columns = (query.sources[idx].columns = []); - hs.forEach(function(h) { - columns.push({columnid: h}); - }); + var ix = (table.indices[hh] = {}); + if (table.data.length > 0) { + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + var addr = rightfn(table.data[i], params, alasql); + if (!ix[addr]) { + ix[addr] = []; + } + ix[addr].push(table.data[i]); } } - - if (cb) { - res = cb(res, idx, query); - } - } - if (new RegExp('\n').test(contents)) { - parseText(contents); - } else { - contents = alasql.utils.autoExtFilename(contents, 'csv', opts); - alasql.utils.loadFile(contents, !!cb, parseText, query.cb); } + var res = 1; + if (cb) res = cb(res); return res; }; -function XLSXLSX(X, filename, opts, cb, idx, query) { - var opt = {}; - opts = opts || {}; - alasql.utils.extend(opt, opts); - if (typeof opt.headers === 'undefined') { - opt.headers = true; - } - var res; - - /** - * see https://github.com/SheetJS/js-xlsx/blob/5ae6b1965bfe3764656a96f536b356cd1586fec7/README.md - * for example of using readAsArrayBuffer under `Parsing Workbooks` - */ - function fixdata(data) { - var o = '', - l = 0, - w = 10240; - for (; l < data.byteLength / w; ++l) - o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w))); - o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w))); - return o; - } - function getHeaderText(text) { - // if casesensitive option is set to false and there is a text value return lowercase value of text - if (text && alasql.options.casesensitive === false) { - return text.toLowerCase(); - } else { - return text; - } - } - filename = alasql.utils.autoExtFilename(filename, 'xls', opts); - alasql.utils.loadBinaryFile( - filename, - !!cb, - function(data) { - // function processData(data) { - if (data instanceof ArrayBuffer) { - var arr = fixdata(data); - var workbook = X.read(btoa(arr), {type: 'base64'}); - } else { - var workbook = X.read(data, {type: 'binary'}); - } - - var sheetid; - if (typeof opt.sheetid === 'undefined') { - sheetid = workbook.SheetNames[0]; - } else if (typeof opt.sheetid === 'number') { - sheetid = workbook.SheetNames[opt.sheetid]; - } else { - sheetid = opt.sheetid; - } - var range; - var res = []; - if (typeof opt.range === 'undefined') { - range = workbook.Sheets[sheetid]['!ref']; - } else { - range = opt.range; - if (workbook.Sheets[sheetid][range]) { - range = workbook.Sheets[sheetid][range]; - } - } - // if range has some value then data is present in the current sheet - // else current sheet is empty - if (range) { - var rg = range.split(':'); - var col0 = rg[0].match(/[A-Z]+/)[0]; - var row0 = +rg[0].match(/[0-9]+/)[0]; - var col1 = rg[1].match(/[A-Z]+/)[0]; - var row1 = +rg[1].match(/[0-9]+/)[0]; - - var hh = {}; - var xlscnCol0 = alasql.utils.xlscn(col0); - var xlscnCol1 = alasql.utils.xlscn(col1); - for (var j = xlscnCol0; j <= xlscnCol1; j++) { - var col = alasql.utils.xlsnc(j); - if (opt.headers) { - if (workbook.Sheets[sheetid][col + '' + row0]) { - hh[col] = getHeaderText(workbook.Sheets[sheetid][col + '' + row0].v); - } else { - hh[col] = getHeaderText(col); - } - } else { - hh[col] = col; - } - } - if (opt.headers) { - row0++; - } - for (var i = row0; i <= row1; i++) { - var row = {}; - for (var j = xlscnCol0; j <= xlscnCol1; j++) { - var col = alasql.utils.xlsnc(j); - if (workbook.Sheets[sheetid][col + '' + i]) { - row[hh[col]] = workbook.Sheets[sheetid][col + '' + i].v; - } - } - res.push(row); - } - } else { - res.push([]); - } - - // Remove last empty line (issue #548) - if ( - res.length > 0 && - res[res.length - 1] && - Object.keys(res[res.length - 1]).length == 0 - ) { - res.pop(); - } +yy.Reindex = function(params) { + return yy.extend(this, params); +}; +yy.Reindex.prototype.toString = function() { + var s = 'REINDEX ' + this.indexid; + return s; +}; - if (cb) { - res = cb(res, idx, query); - } - }, - function(err) { - throw err; - } - ); +// CREATE TABLE +yy.Reindex.prototype.execute = function(databaseid, params, cb) { + // var self = this; + var db = alasql.databases[databaseid]; + var indexid = this.indexid; + var tableid = db.indices[indexid]; + var table = db.tables[tableid]; + table.indexColumns(); + var res = 1; + if (cb) res = cb(res); return res; -} - -alasql.from.XLS = function(filename, opts, cb, idx, query) { - opts = opts || {}; - filename = alasql.utils.autoExtFilename(filename, 'xls', opts); - opts.autoExt = false; - return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); }; -alasql.from.XLSX = function(filename, opts, cb, idx, query) { - opts = opts || {}; - filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts); - opts.autoExt = false; - return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); +/* +// +// DROP TABLE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.DropIndex = function(params) { + return yy.extend(this, params); +}; +yy.DropIndex.prototype.toString = function() { + return 'DROP INDEX' + this.indexid; }; -alasql.from.ODS = function(filename, opts, cb, idx, query) { - opts = opts || {}; - filename = alasql.utils.autoExtFilename(filename, 'ods', opts); - opts.autoExt = false; - return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); +// DROP TABLE +yy.DropIndex.prototype.compile = function(db) { + var indexid = this.indexid; + return function() { + return 1; + }; }; -alasql.from.XML = function(filename, opts, cb, idx, query) { - var res; +/* +// +// WITH SELECT for Alasql.js +// Date: 11.01.2015 +// (c) 2015, Andrey Gershun +// +*/ - alasql.utils.loadFile(filename, !!cb, function(data) { +yy.WithSelect = function(params) { + return yy.extend(this, params); +}; +yy.WithSelect.prototype.toString = function() { + var s = 'WITH '; + s += + this.withs + .map(function(w) { + return w.name + ' AS (' + w.select.toString() + ')'; + }) + .join(',') + ' '; + s += this.select.toString(); + return s; +}; - // res = [{a:1}]; +yy.WithSelect.prototype.execute = function(databaseid, params, cb) { + var self = this; + // Create temporary tables + var savedTables = []; + self.withs.forEach(function(w) { + savedTables.push(alasql.databases[databaseid].tables[w.name]); + var tb = (alasql.databases[databaseid].tables[w.name] = new Table({tableid: w.name})); + tb.data = w.select.execute(databaseid, params); + }); - res = xmlparse(data).root; + var res = 1; + res = this.select.execute(databaseid, params, function(data) { + // Clear temporary tables + // setTimeout(function(){ + self.withs.forEach(function(w, idx) { + if (savedTables[idx]) alasql.databases[databaseid].tables[w.name] = savedTables[idx]; + else delete alasql.databases[databaseid].tables[w.name]; + }); + // },0); - if (cb) res = cb(res, idx, query); + if (cb) data = cb(data); + return data; }); return res; }; -/** - * Parse the given string of `xml`. - * - * @param {String} xml - * @return {Object} - * @api public - */ - -function xmlparse(xml) { - xml = xml.trim(); - - // strip comments - xml = xml.replace(//g, ''); - - return document(); - - /** - * XML document. - */ +/* +// +// IF for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ - function document() { - return { - declaration: declaration(), - root: tag(), - }; - } +yy.If = function(params) { + return yy.extend(this, params); +}; +yy.If.prototype.toString = function() { + var s = 'IF' + ' '; + s += this.expression.toString(); + s += ' ' + this.thenstat.toString(); + if (this.elsestat) s += ' ELSE ' + this.thenstat.toString(); + return s; +}; - /** - * Declaration. - */ +// CREATE TABLE - function declaration() { - var m = match(/^<\?xml\s*/); - if (!m) return; +yy.If.prototype.execute = function(databaseid, params, cb) { + var res; - // tag - var node = { - attributes: {}, - }; + var fn = new Function( + 'params,alasql,p', + 'var y;return ' + this.expression.toJS('({})', '', null) + ).bind(this); - // attributes - while (!(eos() || is('?>'))) { - var attr = attribute(); - if (!attr) return node; - node.attributes[attr.name] = attr.value; + if (fn(params, alasql)) res = this.thenstat.execute(databaseid, params, cb); + else { + if (this.elsestat) res = this.elsestat.execute(databaseid, params, cb); + else { + if (cb) res = cb(res); } - - match(/\?>\s*/); - - return node; } + // else res = this.elsestat.execute(databaseid,params,cb,scope); + return res; +}; - /** - * Tag. - */ - - function tag() { - var m = match(/^<([\w-:.]+)\s*/); - if (!m) return; - - // name - var node = { - name: m[1], - attributes: {}, - children: [], - }; - - // attributes - while (!(eos() || is('>') || is('?>') || is('/>'))) { - var attr = attribute(); - if (!attr) return node; - node.attributes[attr.name] = attr.value; - } +/* +// +// CREATE VIEW for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ - // self closing tag - if (match(/^\s*\/>\s*/)) { - return node; - } +yy.While = function(params) { + return yy.extend(this, params); +}; +yy.While.prototype.toString = function() { + var s = 'WHILE '; + s += this.expression.toString(); + s += ' ' + this.loopstat.toString(); + return s; +}; - match(/\??>\s*/); +yy.While.prototype.execute = function(databaseid, params, cb) { + var self = this; + var res = []; - // content - node.content = content(); + var fn = new Function('params,alasql,p', 'var y;return ' + this.expression.toJS()); - // children - var child; - while ((child = tag())) { - node.children.push(child); + if (cb) { + var first = false; + var loop = function(data) { + if (first) { + res.push(data); + } else { + first = true; + } + setTimeout(function() { + if (fn(params, alasql)) { + self.loopstat.execute(databaseid, params, loop); + } else { + res = cb(res); + } + }, 0); + }; + loop(); + } else { + while (fn(params, alasql)) { + var res1 = self.loopstat.execute(databaseid, params); + res.push(res1); } - - // closing - match(/^<\/[\w-:.]+>\s*/); - - return node; - } - - /** - * Text content. - */ - - function content() { - var m = match(/^([^<]*)/); - if (m) return m[1]; - return ''; - } - - /** - * Attribute. - */ - - function attribute() { - var m = match(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/); - if (!m) return; - return {name: m[1], value: strip(m[2])}; } + return res; +}; - /** - * Strip quotes from `val`. - */ - - function strip(val) { - return val.replace(/^['"]|['"]$/g, ''); - } - - /** - * Match `re` and advance the string. - */ - - function match(re) { - var m = xml.match(re); - if (!m) return; - xml = xml.slice(m[0].length); - return m; - } +yy.Break = function(params) { + return yy.extend(this, params); +}; +yy.Break.prototype.toString = function() { + var s = 'BREAK'; + return s; +}; - /** - * End-of-source. - */ +yy.Break.prototype.execute = function(databaseid, params, cb, scope) { + var res = 1; + if (cb) res = cb(res); + return res; +}; - function eos() { - return 0 == xml.length; - } +yy.Continue = function(params) { + return yy.extend(this, params); +}; +yy.Continue.prototype.toString = function() { + var s = 'CONTINUE'; + return s; +}; - /** - * Check for `prefix`. - */ +yy.Continue.prototype.execute = function(databaseid, params, cb, scope) { + var res = 1; + if (cb) res = cb(res); + return res; +}; - function is(prefix) { - return 0 == xml.indexOf(prefix); - } -} +yy.BeginEnd = function(params) { + return yy.extend(this, params); +}; +yy.BeginEnd.prototype.toString = function() { + var s = 'BEGIN ' + this.statements.toString() + ' END'; + return s; +}; -alasql.from.GEXF = function(filename, opts, cb, idx, query) { - var res; - alasql('SEARCH FROM XML(' + filename + ')', [], function(data) { - res = data; +yy.BeginEnd.prototype.execute = function(databaseid, params, cb, scope) { + var self = this; + var res = []; - if (cb) res = cb(res); - }); + var idx = 0; + runone(); + function runone() { + self.statements[idx].execute(databaseid, params, function(data) { + res.push(data); + idx++; + if (idx < self.statements.length) return runone(); + if (cb) res = cb(res); + }); + } return res; }; +/* +// +// INSERT for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/* global yy alasql*/ +yy.Insert = function(params) { + return yy.extend(this, params); +}; +yy.Insert.prototype.toString = function() { + var s = 'INSERT '; + if (this.orreplace) s += 'OR REPLACE '; + if (this.replaceonly) s = 'REPLACE '; + s += 'INTO ' + this.into.toString(); + if (this.columns) s += '(' + this.columns.toString() + ')'; + if (this.values) s += ' VALUES ' + this.values.toString(); + if (this.select) s += ' ' + this.select.toString(); + return s; +}; + +yy.Insert.prototype.toJS = function(context, tableid, defcols) { + + // if(this.expression.reduced) return 'true'; + // return this.expression.toJS(context, tableid, defcols); + + // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]'; + + var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; + + return s; +}; + +yy.Insert.prototype.compile = function(databaseid) { + var self = this; + databaseid = self.into.databaseid || databaseid; + var db = alasql.databases[databaseid]; + + var tableid = self.into.tableid; + var table = db.tables[tableid]; + + if (!table) { + throw "Table '" + tableid + "' could not be found"; + } + + // Check, if this dirty flag is required + var s = ''; + var sw = ''; + var s = "db.tables['" + tableid + "'].dirty=true;"; + var s3 = 'var a,aa=[],x;'; + + var s33; + + // INSERT INTO table VALUES + if (this.values) { + if (this.exists) { + this.existsfn = this.exists.map(function(ex) { + var nq = ex.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (this.queries) { + this.queriesfn = this.queries.map(function(q) { + var nq = q.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + + self.values.forEach(function(values) { + var ss = []; + + // s += 'db.tables[\''+tableid+'\'].data.push({'; + + // s += ''; + if (self.columns) { + self.columns.forEach(function(col, idx) { + + // ss.push(col.columnid +':'+ self.values[idx].value.toString()); + + // if(rec[f.name.value] == "NULL") rec[f.name.value] = undefined; + + // if(table.xflds[f.name.value].dbtypeid == "INT") rec[f.name.value] = +rec[f.name.value]|0; + // else if(table.xflds[f.name.value].dbtypeid == "FLOAT") rec[f.name.value] = +rec[f.name.value]; + var q = "'" + col.columnid + "':"; + if (table.xcolumns && table.xcolumns[col.columnid]) { + if ( + ['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf( + table.xcolumns[col.columnid].dbtypeid + ) >= 0 + ) { + //q += '' + q += '(x=' + values[idx].toJS() + ',x==undefined?undefined:+x)'; + } else if (alasql.fn[table.xcolumns[col.columnid].dbtypeid]) { + q += '(new ' + table.xcolumns[col.columnid].dbtypeid + '('; + q += values[idx].toJS(); + q += '))'; + } else { + q += values[idx].toJS(); + } + } else { + q += values[idx].toJS(); + } + ss.push(q); + }); + } else { + // var table = db.tables[tableid]; + + if (Array.isArray(values) && table.columns && table.columns.length > 0) { + table.columns.forEach(function(col, idx) { + var q = "'" + col.columnid + "':"; + // var val = values[idx].toJS(); + + if (['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(col.dbtypeid) >= 0) { + q += '+' + values[idx].toJS(); + } else if (alasql.fn[col.dbtypeid]) { + q += '(new ' + col.dbtypeid + '('; + q += values[idx].toJS(); + q += '))'; + } else { + q += values[idx].toJS(); + } + + ss.push(q); + + }); + } else { + + // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};'; + sw = JSONtoJS(values); + } + } + + if (db.tables[tableid].defaultfns) { + ss.unshift(db.tables[tableid].defaultfns); + } + if (sw) { + s += 'a=' + sw + ';'; + } else { + s += 'a={' + ss.join(',') + '};'; + } + + // If this is a class + if (db.tables[tableid].isclass) { + s += "var db=alasql.databases['" + databaseid + "'];"; + s += 'a.$class="' + tableid + '";'; + s += 'a.$id=db.counter++;'; + s += 'db.objects[a.$id]=a;'; + } + // s += 'db.tables[\''+tableid+'\'].insert(r);'; + if (db.tables[tableid].insert) { + s += "var db=alasql.databases['" + databaseid + "'];"; + s += + "db.tables['" + + tableid + + "'].insert(a," + + (self.orreplace ? 'true' : 'false') + + ');'; + } else { + s += 'aa.push(a);'; + } + }); + + s33 = s3 + s; + + if (db.tables[tableid].insert) { + // s += 'alasql.databases[\''+databaseid+'\'].tables[\''+tableid+'\'].insert(r);'; + } else { + s += + "alasql.databases['" + + databaseid + + "'].tables['" + + tableid + + "'].data=" + + "alasql.databases['" + + databaseid + + "'].tables['" + + tableid + + "'].data.concat(aa);"; + } + + if (db.tables[tableid].insert) { + if (db.tables[tableid].isclass) { + s += 'return a.$id;'; + } else { + s += 'return ' + self.values.length; + } + } else { + s += 'return ' + self.values.length; + } + + var insertfn = new Function('db, params, alasql', 'var y;' + s3 + s).bind(this); + + // INSERT INTO table SELECT + } else if (this.select) { + this.select.modifier = 'RECORDSET'; + var selectfn = this.select.compile(databaseid); + if (db.engineid && alasql.engines[db.engineid].intoTable) { + var statement = function(params, cb) { + var aa = selectfn(params); + var res = alasql.engines[db.engineid].intoTable( + db.databaseid, + tableid, + aa.data, + null, + cb + ); + return res; + }; + return statement; + } else { + + var defaultfns = 'return alasql.utils.extend(r,{' + table.defaultfns + '})'; + var defaultfn = new Function('r,db,params,alasql', defaultfns); + var insertfn = function(db, params, alasql) { + var res = selectfn(params).data; + if (db.tables[tableid].insert) { + // If insert() function exists (issue #92) + for (var i = 0, ilen = res.length; i < ilen; i++) { + var r = cloneDeep(res[i]); + defaultfn(r, db, params, alasql); + db.tables[tableid].insert(r, self.orreplace); + } + } else { + db.tables[tableid].data = db.tables[tableid].data.concat(res); + } + if (alasql.options.nocount) return; + else return res.length; + }; + } + } else if (this.default) { + var insertfns = + "db.tables['" + tableid + "'].data.push({" + table.defaultfns + '});return 1;'; + var insertfn = new Function('db,params,alasql', insertfns); + } else { + throw new Error('Wrong INSERT parameters'); + } + + if (db.engineid && alasql.engines[db.engineid].intoTable && alasql.options.autocommit) { + var statement = function(params, cb) { + var aa = new Function('db,params', 'var y;' + s33 + 'return aa;')(db, params); + + var res = alasql.engines[db.engineid].intoTable(db.databaseid, tableid, aa, null, cb); + // if(cb) cb(res); + return res; + }; + } else { + var statement = function(params, cb) { + + var db = alasql.databases[databaseid]; + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].loadTableData(databaseid, tableid); + } + + var res = insertfn(db, params, alasql); + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].saveTableData(databaseid, tableid); + } + // var res = insertfn(db, params); + if (alasql.options.nocount) res = undefined; + if (cb) cb(res); + return res; + }; + } + + return statement; +}; + +yy.Insert.prototype.execute = function(databaseid, params, cb) { + return this.compile(databaseid)(params, cb); + // throw new Error('Insert statement is should be compiled') +}; + /* // -// HELP for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun +// TRIGGER for Alasql.js +// Date: 29.12.2015 // */ -/* globals: alasql, yy */ +yy.CreateTrigger = function(params) { + return yy.extend(this, params); +}; +yy.CreateTrigger.prototype.toString = function() { + var s = 'CREATE TRIGGER ' + this.trigger + ' '; + if (this.when) s += this.when + ' '; + s += this.action + ' ON '; + if (this.table.databaseid) s += this.table.databaseid + '.'; + s += this.table.tableid + ' '; + s += this.statement.toString(); + return s; +}; -/** - Print statement - @class - @param {object} params Initial setup properties -*/ +yy.CreateTrigger.prototype.execute = function(databaseid, params, cb) { + var res = 1; // No tables removed + var triggerid = this.trigger; + databaseid = this.table.databaseid || databaseid; + var db = alasql.databases[databaseid]; + var tableid = this.table.tableid; -/* global alasql, yy */ + var trigger = { + action: this.action, + when: this.when, + statement: this.statement, + funcid: this.funcid, + }; -yy.Print = function(params) { - return yy.extend(this, params); + db.triggers[triggerid] = trigger; + if (trigger.action == 'INSERT' && trigger.when == 'BEFORE') { + db.tables[tableid].beforeinsert[triggerid] = trigger; + } else if (trigger.action == 'INSERT' && trigger.when == 'AFTER') { + db.tables[tableid].afterinsert[triggerid] = trigger; + } else if (trigger.action == 'INSERT' && trigger.when == 'INSTEADOF') { + db.tables[tableid].insteadofinsert[triggerid] = trigger; + } else if (trigger.action == 'DELETE' && trigger.when == 'BEFORE') { + db.tables[tableid].beforedelete[triggerid] = trigger; + } else if (trigger.action == 'DELETE' && trigger.when == 'AFTER') { + db.tables[tableid].afterdelete[triggerid] = trigger; + } else if (trigger.action == 'DELETE' && trigger.when == 'INSTEADOF') { + db.tables[tableid].insteadofdelete[triggerid] = trigger; + } else if (trigger.action == 'UPDATE' && trigger.when == 'BEFORE') { + db.tables[tableid].beforeupdate[triggerid] = trigger; + } else if (trigger.action == 'UPDATE' && trigger.when == 'AFTER') { + db.tables[tableid].afterupdate[triggerid] = trigger; + } else if (trigger.action == 'UPDATE' && trigger.when == 'INSTEADOF') { + db.tables[tableid].insteadofupdate[triggerid] = trigger; + } + + if (cb) res = cb(res); + return res; }; -/** - Generate SQL string - @this Print statement object -*/ -yy.Print.prototype.toString = function() { - var s = 'PRINT'; - if (this.statement) s += ' ' + this.statement.toString(); +yy.DropTrigger = function(params) { + return yy.extend(this, params); +}; +yy.DropTrigger.prototype.toString = function() { + var s = 'DROP TRIGGER ' + this.trigger; return s; }; /** - Print result of select statement or expression - @param {string} databaseid Database identificator - @param {object} params Query parameters - @param {statement-callback} cb Callback function - @this Print statement object + Drop trigger + @param {string} databaseid Database id + @param {object} params Parameters + @param {callback} cb Callback function + @return Number of dropped triggers + @example + DROP TRIGGER one; */ -yy.Print.prototype.execute = function(databaseid, params, cb) { - - var self = this; - var res = 1; - - alasql.precompile(this, databaseid, params); /** @todo Change from alasql to this */ - - if (this.exprs && this.exprs.length > 0) { - var rs = this.exprs.map(function(expr) { - - var exprfn = new Function( - 'params,alasql,p', - 'var y;return ' + expr.toJS('({})', '', null) - ).bind(self); - var r = exprfn(params, alasql); - return JSONtoString(r); - }); - console.log.apply(console, rs); - } else if (this.select) { - var r = this.select.execute(databaseid, params); - console.log(JSONtoString(r)); +yy.DropTrigger.prototype.execute = function(databaseid, params, cb) { + var res = 0; // No tables removed + var db = alasql.databases[databaseid]; + var triggerid = this.trigger; + // For each table in the list + var tableid = db.triggers[triggerid]; + if (tableid) { + res = 1; + delete db.tables[tableid].beforeinsert[triggerid]; + delete db.tables[tableid].afterinsert[triggerid]; + delete db.tables[tableid].insteadofinsert[triggerid]; + delete db.tables[tableid].beforedelte[triggerid]; + delete db.tables[tableid].afterdelete[triggerid]; + delete db.tables[tableid].insteadofdelete[triggerid]; + delete db.tables[tableid].beforeupdate[triggerid]; + delete db.tables[tableid].afterupdate[triggerid]; + delete db.tables[tableid].insteadofupdate[triggerid]; + delete db.triggers[triggerid]; } else { - console.log(); + throw new Error('Trigger not found'); } - if (cb) res = cb(res); return res; }; +/* +// +// DELETE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.Delete = function(params) { + return yy.extend(this, params); +}; +yy.Delete.prototype.toString = function() { + var s = 'DELETE FROM ' + this.table.toString(); + if (this.where) s += ' WHERE ' + this.where.toString(); + return s; +}; + +yy.Delete.prototype.compile = function(databaseid) { + + databaseid = this.table.databaseid || databaseid; + var tableid = this.table.tableid; + var statement; + var db = alasql.databases[databaseid]; + + if (this.where) { + + // this.query = {}; + + if (this.exists) { + this.existsfn = this.exists.map(function(ex) { + var nq = ex.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (this.queries) { + this.queriesfn = this.queries.map(function(q) { + var nq = q.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + + // try { + + // var query = {}; + + var wherefn = new Function( + 'r,params,alasql', + 'var y;return (' + this.where.toJS('r', '') + ')' + ).bind(this); + + statement = function(params, cb) { + if (db.engineid && alasql.engines[db.engineid].deleteFromTable) { + return alasql.engines[db.engineid].deleteFromTable( + databaseid, + tableid, + wherefn, + params, + cb + ); + } + + if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') { + alasql.engines[db.engineid].loadTableData(databaseid, tableid); + } + + var table = db.tables[tableid]; + // table.dirty = true; + var orignum = table.data.length; + + var newtable = []; + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + if (wherefn(table.data[i], params, alasql)) { + // Check for transaction - if it is not possible then return all back + if (table.delete) { + table.delete(i, params, alasql); + } else { + // Simply do not push + } + } else newtable.push(table.data[i]); + } + // table.data = table.data.filter(function(r){return !;}); + table.data = newtable; + + // Trigger prevent functionality + for (var tr in table.afterdelete) { + var trigger = table.afterdelete[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + + var res = orignum - table.data.length; + if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') { + alasql.engines[db.engineid].saveTableData(databaseid, tableid); + } + + if (cb) cb(res); + return res; + }; + // .bind(query); + + // if(!this.queries) return; + // query.queriesfn = this.queries.map(function(q) { + // return q.compile(alasql.useid); + // }); + } else { + statement = function(params, cb) { + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].loadTableData(databaseid, tableid); + } + + var table = db.tables[tableid]; + table.dirty = true; + var orignum = db.tables[tableid].data.length; + //table.deleteall(); + // Delete all records from the array + db.tables[tableid].data.length = 0; + + // Reset PRIMARY KEY and indexes + for (var ix in db.tables[tableid].uniqs) { + db.tables[tableid].uniqs[ix] = {}; + } + + for (var ix in db.tables[tableid].indices) { + db.tables[tableid].indices[ix] = {}; + } + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].saveTableData(databaseid, tableid); + } + + if (cb) cb(orignum); + return orignum; + }; + } + + return statement; +}; + +yy.Delete.prototype.execute = function(databaseid, params, cb) { + return this.compile(databaseid)(params, cb); +}; + /* // -// HELP for Alasql.js +// UPDATE for Alasql.js // Date: 03.11.2014 // (c) 2014, Andrey Gershun // */ -yy.Source = function(params) { +/* global yy alasql */ + +yy.Update = function(params) { return yy.extend(this, params); }; -yy.Source.prototype.toString = function() { - var s = 'SOURCE'; - if (this.url) s += " '" + this.url + " '"; +yy.Update.prototype.toString = function() { + var s = 'UPDATE ' + this.table.toString(); + if (this.columns) s += ' SET ' + this.columns.toString(); + if (this.where) s += ' WHERE ' + this.where.toString(); return s; }; -// SOURCE FILE -yy.Source.prototype.execute = function(databaseid, params, cb) { +yy.SetColumn = function(params) { + return yy.extend(this, params); +}; +yy.SetColumn.prototype.toString = function() { + return this.column.toString() + '=' + this.expression.toString(); +}; - var res; - loadFile( - this.url, - !!cb, - function(data) { +yy.Update.prototype.compile = function(databaseid) { + + databaseid = this.table.databaseid || databaseid; + var tableid = this.table.tableid; + + if (this.where) { + if (this.exists) { + this.existsfn = this.exists.map(function(ex) { + var nq = ex.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (this.queries) { + this.queriesfn = this.queries.map(function(q) { + var nq = q.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + + var wherefn = new Function( + 'r,params,alasql', + 'var y;return ' + this.where.toJS('r', '') + ).bind(this); + } + + // Construct update function + var s = alasql.databases[databaseid].tables[tableid].onupdatefns || ''; + s += ';'; + this.columns.forEach(function(col) { + s += "r['" + col.column.columnid + "']=" + col.expression.toJS('r', '') + ';'; + }); + + var assignfn = new Function('r,params,alasql', 'var y;' + s); + + var statement = function(params, cb) { + var db = alasql.databases[databaseid]; + + if (db.engineid && alasql.engines[db.engineid].updateTable) { + + return alasql.engines[db.engineid].updateTable( + databaseid, + tableid, + assignfn, + wherefn, + params, + cb + ); + } + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].loadTableData(databaseid, tableid); + } + + var table = db.tables[tableid]; + if (!table) { + throw new Error("Table '" + tableid + "' not exists"); + } + // table.dirty = true; + var numrows = 0; + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + if (!wherefn || wherefn(table.data[i], params, alasql)) { + if (table.update) { + table.update(assignfn, i, params); + } else { + assignfn(table.data[i], params, alasql); + } + numrows++; + } + } - // res = 1; - res = alasql(data); - if (cb) res = cb(res); - return res; - }, - function(err) { - throw err; + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].saveTableData(databaseid, tableid); } - ); - return res; + + if (cb) cb(numrows); + return numrows; + }; + return statement; +}; + +yy.Update.prototype.execute = function(databaseid, params, cb) { + return this.compile(databaseid)(params, cb); }; /* // -// HELP for Alasql.js -// Date: 03.11.2014 +// SET for Alasql.js +// Date: 01.12.2014 // (c) 2014, Andrey Gershun // */ /* global alasql, yy */ -yy.Require = function(params) { +yy.Merge = function(params) { return yy.extend(this, params); }; -yy.Require.prototype.toString = function() { - var s = 'REQUIRE'; - if (this.paths && this.paths.length > 0) { - s += this.paths - .map(function(path) { - return path.toString(); - }) - .join(','); - } - if (this.plugins && this.plugins.length > 0) { - s += this.plugins - .map(function(plugin) { - return plugin.toUpperCase(); - }) - .join(','); - } +yy.Merge.prototype.toString = function() { + var s = 'MERGE '; + s += this.into.tableid + ' '; + if (this.into.as) s += 'AS ' + this.into.as + ' '; + s += 'USING ' + this.using.tableid + ' '; + if (this.using.as) s += 'AS ' + this.using.as + ' '; + s += 'ON ' + this.on.toString() + ' '; + this.matches.forEach(function(m) { + s += 'WHEN '; + if (!m.matched) s += 'NOT '; + s += 'MATCHED '; + if (m.bytarget) s += 'BY TARGET '; + if (m.bysource) s += 'BY SOURCE '; + if (m.expr) s += 'AND' + ' ' + m.expr.toString() + ' '; + s += 'THEN '; + if (m.action.delete) s += 'DELETE '; + if (m.action.insert) { + s += 'INSERT '; + if (m.action.columns) s += '(' + m.action.columns.toString() + ') '; + if (m.action.values) s += 'VALUES (' + m.action.values.toString() + ') '; + if (m.action.defaultvalues) s += 'DEFAULT VALUES '; + } + if (m.action.update) { + s += 'UPDATE '; + s += + m.action.update + .map(function(u) { + return u.toString(); + }) + .join(',') + ' '; + } + }); + return s; }; -/** - Attach plug-in for Alasql - */ -yy.Require.prototype.execute = function(databaseid, params, cb) { - var self = this; - var res = 0; - var ss = ''; - - if (this.paths && this.paths.length > 0) { - this.paths.forEach(function(path) { - loadFile(path.value, !!cb, function(data) { - res++; - - ss += data; - if (res < self.paths.length) return; - - new Function('params,alasql', ss)(params, alasql); - if (cb) res = cb(res); - }); - }); - } else if (this.plugins && this.plugins.length > 0) { - this.plugins.forEach(function(plugin) { - // If plugin is not loaded already - if (!alasql.plugins[plugin]) { - loadFile(alasql.path + '/alasql-' + plugin.toLowerCase() + '.js', !!cb, function( - data - ) { - // Execute all plugins at the same time - res++; - ss += data; - if (res < self.plugins.length) return; +yy.Merge.prototype.execute = function(databaseid, params, cb) { + var res = 1; - new Function('params,alasql', ss)(params, alasql); - alasql.plugins[plugin] = true; // Plugin is loaded - if (cb) res = cb(res); - }); - } - }); - } else { - if (cb) res = cb(res); - } + if (cb) res = cb(res); return res; }; /* // -// HELP for Alasql.js +// UPDATE for Alasql.js // Date: 03.11.2014 +// Modified: 16.11.2014 // (c) 2014, Andrey Gershun // */ -yy.Assert = function(params) { - return yy.extend(this, params); -}; -yy.Source.prototype.toString = function() { - var s = 'ASSERT'; - if (this.value) s += ' ' + JSON.stringify(this.value); - return s; -}; - -// SOURCE FILE -yy.Assert.prototype.execute = function(databaseid) { +/* global yy alasql */ - if (!deepEqual(alasql.res, this.value)) { - // if(this.message) { - // throw this. - // } else { - throw new Error( - (this.message || 'Assert wrong') + - ': ' + - JSON.stringify(alasql.res) + - ' == ' + - JSON.stringify(this.value) - ); - // } - } - return 1; +// CREATE DATABASE databaseid +yy.CreateDatabase = function(params) { + return yy.extend(this, params); }; - -// -// 91websql.js -// WebSQL database support -// (c) 2014, Andrey Gershun -// - -var WEBSQL = (alasql.engines.WEBSQL = function() {}); - -WEBSQL.createDatabase = function(wdbid, args, dbid, cb) { - var res = 1; - var wdb = openDatabase(wdbid, args[0], args[1], args[2]); - if (this.dbid) { - var db = alasql.createDatabase(this.dbid); - db.engineid = 'WEBSQL'; - db.wdbid = wdbid; - sb.wdb = db; - } - if (!wdb) { - throw new Error('Cannot create WebSQL database "' + databaseid + '"'); +yy.CreateDatabase.prototype.toString = function() { + var s = 'CREATE'; + if (this.engineid) s += ' ' + this.engineid; + s += ' DATABASE'; + if (this.ifnotexists) s += ' IF NOT EXISTS'; + s += ' ' + this.databaseid; + if (this.args && this.args.length > 0) { + s += + '(' + + this.args + .map(function(arg) { + return arg.toString(); + }) + .join(', ') + + ')'; } - if (cb) cb(res); - return res; -}; - -WEBSQL.dropDatabase = function(databaseid) { - throw new Error('This is impossible to drop WebSQL database.'); + if (this.as) s += ' AS ' + this.as; + return s; }; +//yy.CreateDatabase.prototype.compile = returnUndefined; +yy.CreateDatabase.prototype.execute = function(databaseid, params, cb) { + var args; + if (this.args && this.args.length > 0) { + args = this.args.map(function(arg) { -WEBSQL.attachDatabase = function(databaseid, dbid, args, params, cb) { - var res = 1; - if (alasql.databases[dbid]) { - throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); + return new Function('params,alasql', 'var y;return ' + arg.toJS())(params, alasql); + }); } - alasqlopenDatabase(databaseid, args[0], args[1], args[2]); - return res; -}; - -// -// 91indexeddb.js -// AlaSQL IndexedDB module -// Date: 18.04.2015 -// (c) Andrey Gershun -// - -/* global alasql, yy, utils*/ - -var IDB = (alasql.engines.INDEXEDDB = function() { - ''; -}); - -if (utils.hasIndexedDB) { - // For Chrome it work normally, for Firefox - simple shim - if (typeof utils.global.indexedDB.webkitGetDatabaseNames == 'function') { - IDB.getDatabaseNames = utils.global.indexedDB.webkitGetDatabaseNames.bind( - utils.global.indexedDB + if (this.engineid) { + var res = alasql.engines[this.engineid].createDatabase( + this.databaseid, + this.args, + this.ifnotexists, + this.as, + cb ); + return res; } else { - IDB.getDatabaseNames = function() { - var request = {}; - var result = { - contains: function(name) { - return true; // Always return true - }, - notsupported: true, - }; - setTimeout(function() { - var event = {target: {result: result}}; - request.onsuccess(event); - }, 0); - return request; - }; - IDB.getDatabaseNamesNotSupported = true; - } -} - -// -// SHOW DATABASES -// work only in chrome -// -IDB.showDatabases = function(like, cb) { - - var request = IDB.getDatabaseNames(); - request.onsuccess = function(event) { - var dblist = event.target.result; - if (IDB.getDatabaseNamesNotSupported) { - throw new Error('SHOW DATABASE is not supported in this browser'); - } - var res = []; - if (like) { - var relike = new RegExp(like.value.replace(/\%/g, '.*'), 'g'); - } - for (var i = 0; i < dblist.length; i++) { - if (!like || dblist[i].match(relike)) { - res.push({databaseid: dblist[i]}); - } + var dbid = this.databaseid; + if (alasql.databases[dbid]) { + throw new Error("Database '" + dbid + "' already exists"); } - cb(res); - }; + var a = new alasql.Database(dbid); + var res = 1; + if (cb) return cb(res); + return res; + } }; -IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) { - - var indexedDB = utils.global.indexedDB; - if (ifnotexists) { - var request2 = indexedDB.open(ixdbid, 1); - request2.onsuccess = function(event) { - event.target.result.close(); - if (cb) cb(1); - }; - } else { - var request1 = indexedDB.open(ixdbid, 1); - request1.onupgradeneeded = function(e) { - - e.target.transaction.abort(); - }; - request1.onsuccess = function(e) { - - if (ifnotexists) { - if (cb) cb(0); - } else { - throw new Error( - 'IndexedDB: Cannot create new database "' + - ixdbid + - '" because it already exists' - ); - } - }; +// CREATE DATABASE databaseid +yy.AttachDatabase = function(params) { + return yy.extend(this, params); +}; +yy.AttachDatabase.prototype.toString = function(args) { + var s = 'ATTACH'; + if (this.engineid) s += ' ' + this.engineid; + s += ' DATABASE' + ' ' + this.databaseid; + // TODO add params + if (args) { + s += '('; + if (args.length > 0) { + s += args + .map(function(arg) { + return arg.toString(); + }) + .join(', '); + } + s += ')'; } - + if (this.as) s += ' AS' + ' ' + this.as; + return s; +}; +//yy.CreateDatabase.prototype.compile = returnUndefined; +yy.AttachDatabase.prototype.execute = function(databaseid, params, cb) { + if (!alasql.engines[this.engineid]) { + throw new Error('Engine "' + this.engineid + '" is not defined.'); + } + var res = alasql.engines[this.engineid].attachDatabase( + this.databaseid, + this.as, + this.args, + params, + cb + ); + return res; }; -IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) { - var indexedDB = utils.global.indexedDB; - if (IDB.getDatabaseNamesNotSupported) { - // Hack for Firefox - if (ifnotexists) { - - var dbExists = true; - var request2 = indexedDB.open(ixdbid); +// CREATE DATABASE databaseid +yy.DetachDatabase = function(params) { + return yy.extend(this, params); +}; +yy.DetachDatabase.prototype.toString = function() { + var s = 'DETACH'; + s += ' DATABASE' + ' ' + this.databaseid; + return s; +}; +//yy.CreateDatabase.prototype.compile = returnUndefined; +yy.DetachDatabase.prototype.execute = function(databaseid, params, cb) { + if (!alasql.databases[this.databaseid].engineid) { + throw new Error( + 'Cannot detach database "' + this.engineid + '", because it was not attached.' + ); + } + var res; - request2.onupgradeneeded = function(e) { + var dbid = this.databaseid; - dbExists = false; - // e.target.transaction.abort(); - // cb(0); - }; - request2.onsuccess = function(event) { + if (dbid === alasql.DEFAULTDATABASEID) { + throw new Error('Drop of default database is prohibited'); + } - event.target.result.close(); - if (dbExists) { - if (cb) cb(0); - } else { - if (cb) cb(1); - } - }; + if (!alasql.databases[dbid]) { + if (!this.ifexists) { + throw new Error("Database '" + dbid + "' does not exist"); } else { - - var request1 = indexedDB.open(ixdbid); - request1.onupgradeneeded = function(e) { - e.target.transaction.abort(); - }; - request1.onabort = function(event) { - if (cb) cb(1); - }; - request1.onsuccess = function(event) { - event.target.result.close(); - throw new Error( - 'IndexedDB: Cannot create new database "' + - ixdbid + - '" because it already exists' - ); - // cb(0); - }; + res = 0; } } else { - var request1 = IDB.getDatabaseNames(); - request1.onsuccess = function(event) { - var dblist = event.target.result; - if (dblist.contains(ixdbid)) { - if (ifnotexists) { - if (cb) cb(0); - return; - } else { - throw new Error( - 'IndexedDB: Cannot create new database "' + - ixdbid + - '" because it already exists' - ); - } - } - - var request2 = indexedDB.open(ixdbid, 1); - request2.onsuccess = function(event) { - event.target.result.close(); - if (cb) cb(1); - }; - }; + delete alasql.databases[dbid]; + if (dbid === alasql.useid) { + alasql.use(); + } + res = 1; } + if (cb) cb(res); + return res; + // var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, cb); + // return res; }; -IDB.dropDatabase = function(ixdbid, ifexists, cb) { - var indexedDB = utils.global.indexedDB; - var request1 = IDB.getDatabaseNames(); - request1.onsuccess = function(event) { - var dblist = event.target.result; - if (!dblist.contains(ixdbid)) { - if (ifexists) { - if (cb) cb(0); - return; - } else { - throw new Error( - 'IndexedDB: Cannot drop new database "' + ixdbid + '" because it does not exist' - ); - } - } - var request2 = indexedDB.deleteDatabase(ixdbid); - request2.onsuccess = function(event) { - - if (cb) cb(1); - }; - }; +// USE DATABSE databaseid +// USE databaseid +yy.UseDatabase = function(params) { + return yy.extend(this, params); }; - -IDB.attachDatabase = function(ixdbid, dbid, args, params, cb) { - if (!utils.hasIndexedDB) { - throw new Error('The current browser does not support IndexedDB'); +yy.UseDatabase.prototype.toString = function() { + return 'USE' + ' ' + 'DATABASE' + ' ' + this.databaseid; +}; +//yy.UseDatabase.prototype.compile = returnUndefined; +yy.UseDatabase.prototype.execute = function(databaseid, params, cb) { + var dbid = this.databaseid; + if (!alasql.databases[dbid]) { + throw new Error("Database '" + dbid + "' does not exist"); } - var indexedDB = utils.global.indexedDB; - var request1 = IDB.getDatabaseNames(); - request1.onsuccess = function(event) { - var dblist = event.target.result; - if (!dblist.contains(ixdbid)) { - throw new Error( - 'IndexedDB: Cannot attach database "' + ixdbid + '" because it does not exist' - ); - } - var request2 = indexedDB.open(ixdbid); - request2.onsuccess = function(event) { - var ixdb = event.target.result; - var db = new alasql.Database(dbid || ixdbid); - db.engineid = 'INDEXEDDB'; - db.ixdbid = ixdbid; - db.tables = []; - var tblist = ixdb.objectStoreNames; - for (var i = 0; i < tblist.length; i++) { - db.tables[tblist[i]] = {}; - } - - event.target.result.close(); - if (cb) cb(1); - }; - }; + alasql.use(dbid); + var res = 1; + if (cb) cb(res); + return res; }; -IDB.createTable = function(databaseid, tableid, ifnotexists, cb) { - var indexedDB = utils.global.indexedDB; - - var ixdbid = alasql.databases[databaseid].ixdbid; - - var request1 = IDB.getDatabaseNames(); - request1.onsuccess = function(event__) { - var dblist = event__.target.result; - if (!dblist.contains(ixdbid)) { - throw new Error( - 'IndexedDB: Cannot create table in database "' + - ixdbid + - '" because it does not exist' - ); - } - var request2 = indexedDB.open(ixdbid); - request2.onversionchange = function(event_) { - - event_.target.result.close(); - }; - request2.onsuccess = function(event_) { - var version = event_.target.result.version; - event_.target.result.close(); - - var request3 = indexedDB.open(ixdbid, version + 1); - request3.onupgradeneeded = function(event) { - var ixdb = event.target.result; - - var store = ixdb.createObjectStore(tableid, {autoIncrement: true}); - - }; - request3.onsuccess = function(event) { - - event.target.result.close(); - if (cb) cb(1); - }; - request3.onerror = function(event) { - throw event; - - }; - request3.onblocked = function(event) { - throw new Error( - 'Cannot create table "' + - tableid + - '" because database "' + - databaseid + - '" is blocked' - ); - - }; - }; - }; +// DROP DATABASE databaseid +yy.DropDatabase = function(params) { + return yy.extend(this, params); }; +yy.DropDatabase.prototype.toString = function() { + var s = 'DROP'; + if (this.ifexists) s += ' IF EXISTS'; + s += ' DATABASE ' + this.databaseid; + return s; +}; +//yy.DropDatabase.prototype.compile = returnUndefined; +yy.DropDatabase.prototype.execute = function(databaseid, params, cb) { + if (this.engineid) { + return alasql.engines[this.engineid].dropDatabase(this.databaseid, this.ifexists, cb); + } + var res; -IDB.dropTable = function(databaseid, tableid, ifexists, cb) { - var indexedDB = utils.global.indexedDB; - var ixdbid = alasql.databases[databaseid].ixdbid; - - var request1 = IDB.getDatabaseNames(); - request1.onsuccess = function(event) { - var dblist = event.target.result; + var dbid = this.databaseid; - if (!dblist.contains(ixdbid)) { + if (dbid === alasql.DEFAULTDATABASEID) { + throw new Error('Drop of default database is prohibited'); + } + if (!alasql.databases[dbid]) { + if (!this.ifexists) { + throw new Error("Database '" + dbid + "' does not exist"); + } else { + res = 0; + } + } else { + if (alasql.databases[dbid].engineid) { throw new Error( - 'IndexedDB: Cannot drop table in database "' + - ixdbid + - '" because it does not exist' + "Cannot drop database '" + dbid + "', because it is attached. Detach it." ); } - var request2 = indexedDB.open(ixdbid); - request2.onversionchange = function(event) { - event.target.result.close(); - }; - - request2.onsuccess = function(event) { - var version = event.target.result.version; - event.target.result.close(); - - var request3 = indexedDB.open(ixdbid, version + 1); - request3.onupgradeneeded = function(event) { - var ixdb = event.target.result; - if (ixdb.objectStoreNames.contains(tableid)) { - ixdb.deleteObjectStore(tableid); - delete alasql.databases[databaseid].tables[tableid]; - } else { - if (!ifexists) { - throw new Error( - 'IndexedDB: Cannot drop table "' + - tableid + - '" because it does not exist' - ); - } - } - // var store = ixdb.createObjectStore(tableid); - - }; - request3.onsuccess = function(event) { - - event.target.result.close(); - if (cb) cb(1); - }; - request3.onerror = function(event) { - - throw event; - }; - request3.onblocked = function(event) { - throw new Error( - 'Cannot drop table "' + - tableid + - '" because database "' + - databaseid + - '" is blocked' - ); - - }; - }; - }; -}; - -IDB.intoTable = function(databaseid, tableid, value, columns, cb) { - - // console.trace(); - - var indexedDB = utils.global.indexedDB; - var ixdbid = alasql.databases[databaseid].ixdbid; - var request1 = indexedDB.open(ixdbid); - request1.onsuccess = function(event) { - var ixdb = event.target.result; - var tx = ixdb.transaction([tableid], 'readwrite'); - var tb = tx.objectStore(tableid); - - for (var i = 0, ilen = value.length; i < ilen; i++) { - tb.add(value[i]); + delete alasql.databases[dbid]; + if (dbid === alasql.useid) { + alasql.use(); } - tx.oncomplete = function() { - ixdb.close(); - - if (cb) cb(ilen); - }; - }; - + res = 1; + } + if (cb) cb(res); + return res; }; -IDB.fromTable = function(databaseid, tableid, cb, idx, query) { - - // console.trace(); - var indexedDB = utils.global.indexedDB; - var ixdbid = alasql.databases[databaseid].ixdbid; - var request = indexedDB.open(ixdbid); - request.onsuccess = function(event) { - var res = []; - var ixdb = event.target.result; - - var tx = ixdb.transaction([tableid]); - var store = tx.objectStore(tableid); - var cur = store.openCursor(); - - cur.onblocked = function(event) { - - }; - cur.onerror = function(event) { - - }; - cur.onsuccess = function(event) { - - var cursor = event.target.result; - - if (cursor) { - res.push(cursor.value); - cursor.continue(); - } else { +/* +// +// SET for Alasql.js +// Date: 01.12.2014 +// (c) 2014, Andrey Gershun +// +*/ - ixdb.close(); - if (cb) cb(res, idx, query); - } - }; - }; +yy.Declare = function(params) { + return yy.extend(this, params); +}; +yy.Declare.prototype.toString = function() { + var s = 'DECLARE '; + if (this.declares && this.declares.length > 0) { + s = this.declares + .map(function(declare) { + var s = ''; + s += '@' + declare.variable + ' '; + s += declare.dbtypeid; + if (this.dbsize) { + s += '(' + this.dbsize; + if (this.dbprecision) { + s += ',' + this.dbprecision; + } + s += ')'; + } + if (declare.expression) { + s += ' = ' + declare.expression.toString(); + } + return s; + }) + .join(','); + } + return s; }; -IDB.deleteFromTable = function(databaseid, tableid, wherefn, params, cb) { - - // console.trace(); - var indexedDB = utils.global.indexedDB; - var ixdbid = alasql.databases[databaseid].ixdbid; - var request = indexedDB.open(ixdbid); - request.onsuccess = function(event) { - var res = []; - var ixdb = event.target.result; - - var tx = ixdb.transaction([tableid], 'readwrite'); - var store = tx.objectStore(tableid); - var cur = store.openCursor(); - var num = 0; - - cur.onblocked = function(event) { - - }; - cur.onerror = function(event) { - - }; - cur.onsuccess = function(event) { - - var cursor = event.target.result; +yy.Declare.prototype.execute = function(databaseid, params, cb) { + var res = 1; + if (this.declares && this.declares.length > 0) { + this.declares.map(function(declare) { + var dbtypeid = declare.dbtypeid; + if (!alasql.fn[dbtypeid]) { + dbtypeid = dbtypeid.toUpperCase(); + } + alasql.declares[declare.variable] = { + dbtypeid: dbtypeid, + dbsize: declare.dbsize, + dbprecision: declare.dbprecision, + }; - if (cursor) { - if (!wherefn || wherefn(cursor.value, params)) { + // Set value + if (declare.expression) { - cursor.delete(); - num++; + alasql.vars[declare.variable] = new Function( + 'params,alasql', + 'return ' + declare.expression.toJS('({})', '', null) + )(params, alasql); + if (alasql.declares[declare.variable]) { + alasql.vars[declare.variable] = alasql.stdfn.CONVERT( + alasql.vars[declare.variable], + alasql.declares[declare.variable] + ); } - cursor.continue(); - } else { - - ixdb.close(); - if (cb) cb(num); } - }; - }; + }); + } + if (cb) { + res = cb(res); + } + return res; }; -IDB.updateTable = function(databaseid, tableid, assignfn, wherefn, params, cb) { +/* +// +// SHOW for Alasql.js +// Date: 19.11.2014 +// (c) 2014, Andrey Gershun +// +*/ - // console.trace(); - var indexedDB = utils.global.indexedDB; - var ixdbid = alasql.databases[databaseid].ixdbid; - var request = indexedDB.open(ixdbid); - request.onsuccess = function(event) { +yy.ShowDatabases = function(params) { + return yy.extend(this, params); +}; +yy.ShowDatabases.prototype.toString = function() { + var s = 'SHOW DATABASES'; + if (this.like) s += 'LIKE ' + this.like.toString(); + return s; +}; +yy.ShowDatabases.prototype.execute = function(databaseid, params, cb) { + if (this.engineid) { + return alasql.engines[this.engineid].showDatabases(this.like, cb); + } else { + var self = this; var res = []; - var ixdb = event.target.result; - - var tx = ixdb.transaction([tableid], 'readwrite'); - var store = tx.objectStore(tableid); - var cur = store.openCursor(); - var num = 0; - - cur.onblocked = function(event) { - - }; - cur.onerror = function(event) { - - }; - cur.onsuccess = function(event) { - - var cursor = event.target.result; - - if (cursor) { - if (!wherefn || wherefn(cursor.value, params)) { - - var r = cursor.value; - assignfn(r, params); - - cursor.update(r); - num++; - } - cursor.continue(); - } else { + for (var dbid in alasql.databases) { + res.push({databaseid: dbid}); + } + if (self.like && res && res.length > 0) { + res = res.filter(function(d) { + // return d.databaseid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g')); + return alasql.utils.like(self.like.value, d.databaseid); + }); + } + if (cb) cb(res); + return res; + } +}; - ixdb.close(); - if (cb) cb(num); - } - }; - }; +yy.ShowTables = function(params) { + return yy.extend(this, params); +}; +yy.ShowTables.prototype.toString = function() { + var s = 'SHOW TABLES'; + if (this.databaseid) s += ' FROM ' + this.databaseid; + if (this.like) s += ' LIKE ' + this.like.toString(); + return s; }; +yy.ShowTables.prototype.execute = function(databaseid, params, cb) { + var db = alasql.databases[this.databaseid || databaseid]; -// -// 91localstorage.js -// localStorage and DOM-Storage engine -// Date: 09.12.2014 -// (c) Andrey Gershun -// + var self = this; + var res = []; + for (var tableid in db.tables) { + res.push({tableid: tableid}); + } + if (self.like && res && res.length > 0) { + res = res.filter(function(d) { + //return d.tableid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g')); + return alasql.utils.like(self.like.value, d.tableid); + }); + } + if (cb) cb(res); + return res; +}; -/* global alasql, yy, localStorage*/ +yy.ShowColumns = function(params) { + return yy.extend(this, params); +}; +yy.ShowColumns.prototype.toString = function() { + var s = 'SHOW COLUMNS'; + if (this.table.tableid) s += ' FROM ' + this.table.tableid; + if (this.databaseid) s += ' FROM ' + this.databaseid; + return s; +}; -var LS = (alasql.engines.LOCALSTORAGE = function() {}); +yy.ShowColumns.prototype.execute = function(databaseid, params, cb) { + var db = alasql.databases[this.databaseid || databaseid]; + var table = db.tables[this.table.tableid]; -/** - Read data from localStorage with security breaks - @param key {string} Address in localStorage - @return {object} JSON object -*/ -LS.get = function(key) { - var s = localStorage.getItem(key); - if (typeof s === 'undefined') return; - var v; - try { - v = JSON.parse(s); - } catch (err) { - throw new Error('Cannot parse JSON object from localStorage' + s); + if (table && table.columns) { + var res = table.columns.map(function(col) { + return {columnid: col.columnid, dbtypeid: col.dbtypeid, dbsize: col.dbsize}; + }); + if (cb) cb(res); + return res; + } else { + if (cb) cb([]); + return []; } - return v; }; -/** - Store data into localStorage with security breaks - @param key {string} Address in localStorage - @return {object} JSON object -*/ -LS.set = function(key, value) { - if (typeof value === 'undefined') localStorage.removeItem(key); - else localStorage.setItem(key, JSON.stringify(value)); +yy.ShowIndex = function(params) { + return yy.extend(this, params); +}; +yy.ShowIndex.prototype.toString = function() { + var s = 'SHOW INDEX'; + if (this.table.tableid) s += ' FROM ' + this.table.tableid; + if (this.databaseid) s += ' FROM ' + this.databaseid; + return s; }; +yy.ShowIndex.prototype.execute = function(databaseid, params, cb) { + var db = alasql.databases[this.databaseid || databaseid]; + var table = db.tables[this.table.tableid]; + var res = []; + if (table && table.indices) { + for (var ind in table.indices) { + res.push({hh: ind, len: Object.keys(table.indices[ind]).length}); + } + } -/** - Store table structure and data into localStorage - @param databaseid {string} AlaSQL database id (not external localStorage) - @param tableid {string} Table name - @return Nothing -*/ -LS.storeTable = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - var table = db.tables[tableid]; - // Create empty structure for table - var tbl = {}; - tbl.columns = table.columns; - tbl.data = table.data; - tbl.identities = table.identities; - // TODO: May be add indexes, objects and other fields? - LS.set(db.lsdbid + '.' + tableid, tbl); + if (cb) cb(res); + return res; }; -/** - Restore table structure and data - @param databaseid {string} AlaSQL database id (not external localStorage) - @param tableid {string} Table name - @return Nothing -*/ -LS.restoreTable = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - var tbl = LS.get(db.lsdbid + '.' + tableid); - var table = new alasql.Table(); - for (var f in tbl) { - table[f] = tbl[f]; +yy.ShowCreateTable = function(params) { + return yy.extend(this, params); +}; +yy.ShowCreateTable.prototype.toString = function() { + var s = 'SHOW CREATE TABLE ' + this.table.tableid; + if (this.databaseid) s += ' FROM ' + this.databaseid; + return s; +}; +yy.ShowCreateTable.prototype.execute = function(databaseid) { + var db = alasql.databases[this.databaseid || databaseid]; + var table = db.tables[this.table.tableid]; + if (table) { + var s = 'CREATE TABLE ' + this.table.tableid + ' ('; + var ss = []; + if (table.columns) { + table.columns.forEach(function(col) { + var a = col.columnid + ' ' + col.dbtypeid; + if (col.dbsize) a += '(' + col.dbsize + ')'; + if (col.primarykey) a += ' PRIMARY KEY'; + // TODO extend + ss.push(a); + }); + s += ss.join(', '); + } + s += ')'; + return s; + } else { + throw new Error('There is no such table "' + this.table.tableid + '"'); } - db.tables[tableid] = table; - table.indexColumns(); - // We need to add other things here - return table; }; -/** - Remove table from localStorage - @param databaseid {string} AlaSQL database id (not external localStorage) - @param tableid {string} Table name +/* +// +// SET for Alasql.js +// Date: 01.12.2014 +// (c) 2014, Andrey Gershun +// */ -LS.removeTable = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - localStorage.removeItem(db.lsdbid + '.' + tableid); +yy.SetVariable = function(params) { + return yy.extend(this, params); +}; +yy.SetVariable.prototype.toString = function() { + var s = 'SET '; + if (typeof this.value != 'undefined') + s += this.variable.toUpperCase() + ' ' + (this.value ? 'ON' : 'OFF'); + if (this.expression) s += this.method + this.variable + ' = ' + this.expression.toString(); + return s; }; -/** - Create database in localStorage - @param lsdbid {string} localStorage database id - @param args {array} List of parameters (not used in localStorage) - @param ifnotexists {boolean} Check if database does not exist - @param databaseid {string} AlaSQL database id (not external localStorage) - @param cb {function} Callback -*/ +yy.SetVariable.prototype.execute = function(databaseid, params, cb) { + + if (typeof this.value != 'undefined') { + var val = this.value; + if (val == 'ON') val = true; + else if (val == 'OFF') val = false; + // if(this.method == '@') { + alasql.options[this.variable] = val; + // } else { + // params[this.variable] = val; + // } + } else if (this.expression) { + if (this.exists) { + this.existsfn = this.exists.map(function(ex) { + var nq = ex.compile(databaseid); + if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET'; + return nq; + // return ex.compile(databaseid); + // TODO Include modifier + }); + } + if (this.queries) { + this.queriesfn = this.queries.map(function(q) { + var nq = q.compile(databaseid); + if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET'; + return nq; + // TODO Include modifier + }); + } + + var res = new Function( + 'params,alasql', + 'return ' + this.expression.toJS('({})', '', null) + ).bind(this)(params, alasql); + if (alasql.declares[this.variable]) { + res = alasql.stdfn.CONVERT(res, alasql.declares[this.variable]); + } + if (this.props && this.props.length > 0) { + if (this.method == '@') { + var fs = "alasql.vars['" + this.variable + "']"; + } else { + var fs = "params['" + this.variable + "']"; + } + fs += this.props + .map(function(prop) { + if (typeof prop == 'string') { + return "['" + prop + "']"; + } else if (typeof prop == 'number') { + return '[' + prop + ']'; + } else { + + return '[' + prop.toJS() + ']'; + // } else { + + // throw new Error('Wrong SET property'); + } + }) + .join(); -LS.createDatabase = function(lsdbid, args, ifnotexists, databaseid, cb) { - var res = 1; - var ls = LS.get('alasql'); // Read list of all databases - if (!(ifnotexists && ls && ls.databases && ls.databases[lsdbid])) { - if (!ls) ls = {databases: {}}; // Empty record - if (ls.databases && ls.databases[lsdbid]) { - throw new Error( - 'localStorage: Cannot create new database "' + - lsdbid + - '" because it already exists' - ); + new Function('value,params,alasql', 'var y;' + fs + '=value')(res, params, alasql); + } else { + if (this.method == '@') { + alasql.vars[this.variable] = res; + } else { + params[this.variable] = res; + } } - ls.databases[lsdbid] = true; - LS.set('alasql', ls); - LS.set(lsdbid, {databaseid: lsdbid, tables: {}}); // Create database record - } else { - res = 0; } + var res = 1; if (cb) res = cb(res); return res; }; -/** - Drop external database - @param lsdbid {string} localStorage database id - @param ifexists {boolean} Check if database exists - @param cb {function} Callback -*/ -LS.dropDatabase = function(lsdbid, ifexists, cb) { - var res = 1; - var ls = LS.get('alasql'); - if (!(ifexists && ls && ls.databases && !ls.databases[lsdbid])) { - // 1. Remove record from 'alasql' record - if (!ls) { - if (!ifexists) { - throw new Error('There is no any AlaSQL databases in localStorage'); - } else { - return cb ? cb(0) : 0; - } - } - - if (ls.databases && !ls.databases[lsdbid]) { - throw new Error( - 'localStorage: Cannot drop database "' + - lsdbid + - '" because there is no such database' - ); - } - delete ls.databases[lsdbid]; - LS.set('alasql', ls); +// Console functions - // 2. Remove tables definitions - var db = LS.get(lsdbid); - for (var tableid in db.tables) { - localStorage.removeItem(lsdbid + '.' + tableid); - } +/* global alasql, yy */ - // 3. Remove database definition - localStorage.removeItem(lsdbid); - } else { - res = 0; +alasql.test = function(name, times, fn) { + if (arguments.length === 0) { + alasql.log(alasql.con.results); + return; } - if (cb) res = cb(res); - return res; -}; -/** - Attach existing localStorage database to AlaSQL database - @param lsdibid {string} localStorage database id - @param -*/ + var tm = Date.now(); -LS.attachDatabase = function(lsdbid, databaseid, args, params, cb) { - var res = 1; - if (alasql.databases[databaseid]) { - throw new Error( - 'Unable to attach database as "' + databaseid + '" because it already exists' - ); - } - if (!databaseid) databaseid = lsdbid; - var db = new alasql.Database(databaseid); - db.engineid = 'LOCALSTORAGE'; - db.lsdbid = lsdbid; - db.tables = LS.get(lsdbid).tables; - // IF AUTOABORT IS OFF then copy data to memory - if (!alasql.options.autocommit) { - if (db.tables) { - for (var tbid in db.tables) { - LS.restoreTable(databaseid, tbid); - // db.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid); - } - } + if (arguments.length === 1) { + fn(); + alasql.con.log(Date.now() - tm); + return; } - if (cb) res = cb(res); - return res; -}; -/** - Show list of databases from localStorage - @param like {string} Mathing pattern - @param cb {function} Callback -*/ -LS.showDatabases = function(like, cb) { - var res = []; - var ls = LS.get('alasql'); - if (like) { - // TODO: If we have a special function for LIKE patterns? - var relike = new RegExp(like.value.replace(/%/g, '.*'), 'g'); + if (arguments.length === 2) { + fn = times; + times = 1; } - if (ls && ls.databases) { - for (var dbid in ls.databases) { - res.push({databaseid: dbid}); - } - if (like && res && res.length > 0) { - res = res.filter(function(d) { - return d.databaseid.match(relike); - }); - } + + for (var i = 0; i < times; i++) { + fn(); } - if (cb) res = cb(res); - return res; + alasql.con.results[name] = Date.now() - tm; }; -/** - Create table in localStorage database - @param databaseid {string} AlaSQL database id - @param tableid {string} Table id - @param ifnotexists {boolean} If not exists flag - @param cb {function} Callback -*/ - -LS.createTable = function(databaseid, tableid, ifnotexists, cb) { - var res = 1; - var lsdbid = alasql.databases[databaseid].lsdbid; - var tb = LS.get(lsdbid + '.' + tableid); - // Check if such record exists - if (tb && !ifnotexists) { - throw new Error( - 'Table "' + tableid + '" alsready exists in localStorage database "' + lsdbid + '"' - ); - } - var lsdb = LS.get(lsdbid); - var table = alasql.databases[databaseid].tables[tableid]; +// Console +// alasql.log = function(sql, params) { - // TODO: Check if required - lsdb.tables[tableid] = true; +// }; - LS.set(lsdbid, lsdb); - LS.storeTable(databaseid, tableid); +/* global alasql, yy, utils */ - if (cb) res = cb(res); - return res; -}; +// Console +alasql.log = function(sql, params) { + var olduseid = alasql.useid; + var target = alasql.options.logtarget; + // For node other + if (utils.isNode) { + target = 'console'; + } -/** - Empty table and reset identities - @param databaseid {string} AlaSQL database id (not external localStorage) - @param tableid {string} Table name - @param ifexists {boolean} If exists flag - @param cb {function} Callback - @return 1 on success -*/ -LS.truncateTable = function(databaseid, tableid, ifexists, cb) { - var res = 1; - var lsdbid = alasql.databases[databaseid].lsdbid; - var lsdb; - if (alasql.options.autocommit) { - lsdb = LS.get(lsdbid); + var res; + if (typeof sql === 'string') { + res = alasql(sql, params); } else { - lsdb = alasql.databases[databaseid]; + res = sql; } - if (!ifexists && !lsdb.tables[tableid]) { - throw new Error( - 'Cannot truncate table "' + tableid + '" in localStorage, because it does not exist' - ); - } + // For Node and console.output + if (target === 'console' || utils.isNode) { + if (typeof sql === 'string' && alasql.options.logprompt) { + console.log(olduseid + '>', sql); + } - //load table - var tbl = LS.restoreTable(databaseid, tableid); + if (Array.isArray(res)) { + if (console.table) { + // For Chrome and other consoles + console.table(res); + } else { + // Add print procedure + console.log(JSONtoString(res)); + } + } else { + console.log(JSONtoString(res)); + } + } else { + var el; + if (target === 'output') { + el = document.getElementsByTagName('output')[0]; + } else { + if (typeof target === 'string') { + el = document.getElementById(target); + } else { + // in case of DOM + el = target; + } + } - //clear data from table - tbl.data = []; - //TODO reset all identities - //but identities are not working on LOCALSTORAGE - //See test 607 for details + var s = ''; - //store table - LS.storeTable(databaseid, tableid); + if (typeof sql === 'string' && alasql.options.logprompt) { + // s += '

'+olduseid+'> '+alasql.pretty(sql)+'

'; + s += '
' + alasql.pretty(sql) + '
'; + } - if (cb) res = cb(res); - return res; + if (Array.isArray(res)) { + if (res.length === 0) { + s += '

[ ]

'; + } else if (typeof res[0] !== 'object' || Array.isArray(res[0])) { + for (var i = 0, ilen = res.length; i < ilen; i++) { + s += '

' + loghtml(res[i]) + '

'; + } + } else { + s += loghtml(res); + } + } else { + s += loghtml(res); + } + el.innerHTML += s; + } }; -/** - Create table in localStorage database - @param databaseid {string} AlaSQL database id - @param tableid {string} Table id - @param ifexists {boolean} If exists flag - @param cb {function} Callback -*/ - -LS.dropTable = function(databaseid, tableid, ifexists, cb) { - var res = 1; - var lsdbid = alasql.databases[databaseid].lsdbid; - var lsdb; +alasql.clear = function() { + var target = alasql.options.logtarget; + // For node other - if (alasql.options.autocommit) { - lsdb = LS.get(lsdbid); + if (utils.isNode || utils.isMeteorServer) { + if (console.clear) { + console.clear(); + } } else { - lsdb = alasql.databases[databaseid]; - } - if (!ifexists && !lsdb.tables[tableid]) { - throw new Error( - 'Cannot drop table "' + tableid + '" in localStorage, because it does not exist' - ); + var el; + if (target === 'output') { + el = document.getElementsByTagName('output')[0]; + } else { + if (typeof target === 'string') { + el = document.getElementById(target); + } else { + // in case of DOM + el = target; + } + } + el.innerHTML = ''; } - delete lsdb.tables[tableid]; - LS.set(lsdbid, lsdb); - // localStorage.removeItem(lsdbid+'.'+tableid); - LS.removeTable(databaseid, tableid); - if (cb) res = cb(res); - return res; }; -/** - Read all data from table -*/ - -LS.fromTable = function(databaseid, tableid, cb, idx, query) { - - var lsdbid = alasql.databases[databaseid].lsdbid; - // var res = LS.get(lsdbid+'.'+tableid); - - var res = LS.restoreTable(databaseid, tableid).data; +alasql.write = function(s) { - if (cb) res = cb(res, idx, query); - return res; + var target = alasql.options.logtarget; + // For node other + if (utils.isNode || utils.isMeteorServer) { + if (console.log) { + console.log(s); + } + } else { + var el; + if (target === 'output') { + el = document.getElementsByTagName('output')[0]; + } else { + if (typeof target === 'string') { + el = document.getElementById(target); + } else { + // in case of DOM + el = target; + } + } + el.innerHTML += s; + } }; -/** - Insert data into the table - @param databaseid {string} Database id - @param tableid {string} Table id - @param value {array} Array of values - @param columns {array} Columns (not used) - @param cb {function} Callback -*/ +function loghtml(res) { + + var s = ''; + if (res === undefined) { + s += 'undefined'; + } else if (Array.isArray(res)) { + s += ''; + s += ''; + var cols = []; + for (var colid in res[0]) { + cols.push(colid); + } + s += '
#'; + cols.forEach(function(colid) { + s += '' + colid; + }); + for (var i = 0, ilen = res.length; i < ilen; i++) { + s += '
' + (i + 1); + cols.forEach(function(colid) { + s += ' '; + if (res[i][colid] == +res[i][colid]) { + // jshint ignore:line + s += '
'; + if (typeof res[i][colid] === 'undefined') { + s += 'NULL'; + } else { + s += res[i][colid]; + } + s += '
'; + } else { + if (typeof res[i][colid] === 'undefined') { + s += 'NULL'; + } else if (typeof res[i][colid] === 'string') { + s += res[i][colid]; + } else { + s += JSONtoString(res[i][colid]); + } + // s += res[i][colid]; + } + }); + } -LS.intoTable = function(databaseid, tableid, value, columns, cb) { + s += '
'; + } else { + s += '

' + JSONtoString(res) + '

'; + } + // if() {} - var lsdbid = alasql.databases[databaseid].lsdbid; - var res = value.length; - // var tb = LS.get(lsdbid+'.'+tableid); - var tb = LS.restoreTable(databaseid, tableid); - for (var columnid in tb.identities) { - var ident = tb.identities[columnid]; + // if(typeof res == 'object') { + // s += '

'+JSON.stringify(res)+'

'; + // } else { + // } + return s; +} - for (var index in value) { - value[index][columnid] = ident.value; - ident.value += ident.step; - } +function scrollTo(element, to, duration) { + if (duration <= 0) { + return; } - if (!tb.data) tb.data = []; - tb.data = tb.data.concat(value); - // LS.set(lsdbid+'.'+tableid, tb); - LS.storeTable(databaseid, tableid); - - if (cb) res = cb(res); + var difference = to - element.scrollTop; + var perTick = (difference / duration) * 10; - return res; -}; + setTimeout(function() { + if (element.scrollTop === to) { + return; + } + element.scrollTop = element.scrollTop + perTick; + scrollTo(element, to, duration - 10); + }, 10); +} -/** - Laad data from table -*/ -LS.loadTableData = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - var lsdbid = alasql.databases[databaseid].lsdbid; - LS.restoreTable(databaseid, tableid); - // db.tables[tableid].data = LS.get(lsdbid+'.'+tableid); -}; +alasql.prompt = function(el, useidel, firstsql) { + if (utils.isNode) { + throw new Error('The prompt not realized for Node.js'); + } -/** - Save data to the table -*/ + var prompti = 0; -LS.saveTableData = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - var lsdbid = alasql.databases[databaseid].lsdbid; - LS.storeTable(lsdbid, tableid); - // LS.set(lsdbid+'.'+tableid,db.tables[tableid].data); - db.tables[tableid].data = undefined; -}; + if (typeof el === 'string') { + el = document.getElementById(el); + } -/** - Commit -*/ + if (typeof useidel === 'string') { + useidel = document.getElementById(useidel); + } -LS.commit = function(databaseid, cb) { + useidel.textContent = alasql.useid; - var db = alasql.databases[databaseid]; - var lsdbid = alasql.databases[databaseid].lsdbid; - var lsdb = {databaseid: lsdbid, tables: {}}; - if (db.tables) { - for (var tbid in db.tables) { - // TODO: Question - do we need this line - lsdb.tables[tbid] = true; - LS.storeTable(databaseid, tbid); - // LS.set(lsdbid+'.'+tbid, db.tables[tbid].data); + if (firstsql) { + alasql.prompthistory.push(firstsql); + prompti = alasql.prompthistory.length; + try { + var tm = Date.now(); + alasql.log(firstsql); + alasql.write('

' + (Date.now() - tm) + ' ms

'); + } catch (err) { + alasql.write('

' + olduseid + '> ' + sql + '

'); + alasql.write('

' + err + '

'); } } - LS.set(lsdbid, lsdb); - return cb ? cb(1) : 1; -}; - -/** - Alias BEGIN = COMMIT -*/ -LS.begin = LS.commit; - -/** - ROLLBACK -*/ - -LS.rollback = function(databaseid, cb) { - // This does not work and should be fixed - // Plus test 151 and 231 - - return; - - var db = alasql.databases[databaseid]; - db.dbversion++; - - var lsdbid = alasql.databases[databaseid].lsdbid; - var lsdb = LS.get(lsdbid); - // if(!alasql.options.autocommit) { - - delete alasql.databases[databaseid]; - alasql.databases[databaseid] = new alasql.Database(databaseid); - extend(alasql.databases[databaseid], lsdb); - alasql.databases[databaseid].databaseid = databaseid; - alasql.databases[databaseid].engineid = 'LOCALSTORAGE'; - if (lsdb.tables) { - for (var tbid in lsdb.tables) { - // var tb = new alasql.Table({columns: db.tables[tbid].columns}); - // extend(tb,lsdb.tables[tbid]); - // lsdb.tables[tbid] = true; - - // if(!alasql.options.autocommit) { + var y = el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop; + scrollTo(document.getElementsByTagName('body')[0], y, 500); - // lsdb.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid); - LS.restoreTable(databaseid, tbid); - // } - // lsdb.tables[tbid].indexColumns(); + el.onkeydown = function(event) { + if (event.which === 13) { + var sql = el.value; + var olduseid = alasql.useid; + el.value = ''; + alasql.prompthistory.push(sql); + prompti = alasql.prompthistory.length; + try { + var tm = Date.now(); + alasql.log(sql); + alasql.write('

' + (Date.now() - tm) + ' ms

'); + } catch (err) { + alasql.write('

' + olduseid + '> ' + alasql.pretty(sql, false) + '

'); + alasql.write('

' + err + '

'); + } + el.focus(); - // index columns - // convert types + useidel.textContent = alasql.useid; + var y = + el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop; + scrollTo(document.getElementsByTagName('body')[0], y, 500); + } else if (event.which === 38) { + prompti--; + if (prompti < 0) { + prompti = 0; + } + if (alasql.prompthistory[prompti]) { + el.value = alasql.prompthistory[prompti]; + event.preventDefault(); + } + } else if (event.which === 40) { + prompti++; + if (prompti >= alasql.prompthistory.length) { + prompti = alasql.prompthistory.length; + el.value = ''; + } else if (alasql.prompthistory[prompti]) { + el.value = alasql.prompthistory[prompti]; + event.preventDefault(); + } } - } - // } - + }; }; +/* // -// 91websql.js -// WebSQL database support +// Commit for Alasql.js +// Date: 01.12.2014 // (c) 2014, Andrey Gershun // - -var SQLITE = (alasql.engines.SQLITE = function() {}); - -SQLITE.createDatabase = function(wdbid, args, ifnotexists, dbid, cb) { - throw new Error('Connot create SQLITE database in memory. Attach it.'); +*/ +yy.BeginTransaction = function(params) { + return yy.extend(this, params); }; - -SQLITE.dropDatabase = function(databaseid) { - throw new Error('This is impossible to drop SQLite database. Detach it.'); +yy.BeginTransaction.prototype.toString = function() { + return 'BEGIN TRANSACTION'; }; -SQLITE.attachDatabase = function(sqldbid, dbid, args, params, cb) { +yy.BeginTransaction.prototype.execute = function(databaseid, params, cb) { var res = 1; - if (alasql.databases[dbid]) { - throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); + if (alasql.databases[databaseid].engineid) { + return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid, cb); + } else { + // alasql commit!!! } + if (cb) cb(res); + return res; +}; - if ((args[0] && args[0] instanceof yy.StringValue) || args[0] instanceof yy.ParamValue) { - if (args[0] instanceof yy.StringValue) { - var value = args[0].value; - } else if (args[0] instanceof yy.ParamValue) { - var value = params[args[0].param]; - } - alasql.utils.loadBinaryFile( - value, - true, - function(data) { - var db = new alasql.Database(dbid || sqldbid); - db.engineid = 'SQLITE'; - db.sqldbid = sqldbid; - var sqldb = (db.sqldb = new SQL.Database(data)); - db.tables = []; - var tables = sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values; - - tables.forEach(function(tbl) { - db.tables[tbl[1]] = {}; - var columns = (db.tables[tbl[1]].columns = []); - var ast = alasql.parse(tbl[4]); - - var coldefs = ast.statements[0].columns; - if (coldefs && coldefs.length > 0) { - coldefs.forEach(function(cd) { - columns.push(cd); - }); - } - }); +yy.CommitTransaction = function(params) { + return yy.extend(this, params); +}; +yy.CommitTransaction.prototype.toString = function() { + return 'COMMIT TRANSACTION'; +}; - cb(1); - }, - function(err) { - throw new Error('Cannot open SQLite database file "' + args[0].value + '"'); - } - ); - return res; +yy.CommitTransaction.prototype.execute = function(databaseid, params, cb) { + var res = 1; + if (alasql.databases[databaseid].engineid) { + return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid, cb); } else { - throw new Error('Cannot attach SQLite database without a file'); + // alasql commit!!! } - + if (cb) cb(res); return res; }; -SQLITE.fromTable = function(databaseid, tableid, cb, idx, query) { - var data = alasql.databases[databaseid].sqldb.exec('SELECT * FROM ' + tableid); - var columns = (query.sources[idx].columns = []); - if (data[0].columns.length > 0) { - data[0].columns.forEach(function(columnid) { - columns.push({columnid: columnid}); - }); - } +yy.RollbackTransaction = function(params) { + return yy.extend(this, params); +}; +yy.RollbackTransaction.prototype.toString = function() { + return 'ROLLBACK TRANSACTION'; +}; - var res = []; - if (data[0].values.length > 0) { - data[0].values.forEach(function(d) { - var r = {}; - columns.forEach(function(col, idx) { - r[col.columnid] = d[idx]; - }); - res.push(r); - }); - } - if (cb) cb(res, idx, query); -}; - -SQLITE.intoTable = function(databaseid, tableid, value, columns, cb) { - var sqldb = alasql.databases[databaseid].sqldb; - for (var i = 0, ilen = value.length; i < ilen; i++) { - var s = 'INSERT INTO ' + tableid + ' ('; - var d = value[i]; - var keys = Object.keys(d); - s += keys.join(','); - s += ') VALUES ('; - s += keys - .map(function(k) { - v = d[k]; - if (typeof v == 'string') v = "'" + v + "'"; - return v; - }) - .join(','); - s += ')'; - sqldb.exec(s); +yy.RollbackTransaction.prototype.execute = function(databaseid, params, cb) { + var res = 1; + if (alasql.databases[databaseid].engineid) { + return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid, cb); + } else { + // alasql commit!!! } - var res = ilen; if (cb) cb(res); return res; }; -// -// 91localstorage.js -// localStorage and DOM-Storage engine -// Date: 09.12.2014 -// (c) Andrey Gershun -// +if (alasql.options.tsql) { + // + // Check tables and views + // IF OBJECT_ID('dbo.Employees') IS NOT NULL + // DROP TABLE dbo.Employees; + // IF OBJECT_ID('dbo.VSortedOrders', 'V') IS NOT NULL + // DROP VIEW dbo.VSortedOrders; + + alasql.stdfn.OBJECT_ID = function(name, type) { + if (typeof type == 'undefined') type = 'T'; + type = type.toUpperCase(); + + var sname = name.split('.'); + var dbid = alasql.useid; + var objname = sname[0]; + if (sname.length == 2) { + dbid = sname[0]; + objname = sname[1]; + } + + var tables = alasql.databases[dbid].tables; + dbid = alasql.databases[dbid].databaseid; + for (var tableid in tables) { + if (tableid == objname) { + // TODO: What OBJECT_ID actually returns + + if (tables[tableid].view && type == 'V') return dbid + '.' + tableid; + if (!tables[tableid].view && type == 'T') return dbid + '.' + tableid; + return undefined; + } + } + + return undefined; + }; +} -var FS = (alasql.engines.FILESTORAGE = alasql.engines.FILE = function() {}); +if (alasql.options.mysql) { +} -FS.createDatabase = function(fsdbid, args, ifnotexists, dbid, cb) { +if (alasql.options.mysql || alasql.options.sqlite) { + // Pseudo INFORMATION_SCHEMA function + alasql.from.INFORMATION_SCHEMA = function(filename, opts, cb, idx, query) { + if (filename == 'VIEWS' || filename == 'TABLES') { + var res = []; + for (var databaseid in alasql.databases) { + var tables = alasql.databases[databaseid].tables; + for (var tableid in tables) { + if ( + (tables[tableid].view && filename == 'VIEWS') || + (!tables[tableid].view && filename == 'TABLES') + ) { + res.push({TABLE_CATALOG: databaseid, TABLE_NAME: tableid}); + } + } + } + if (cb) res = cb(res, idx, query); + return res; + } + throw new Error('Unknown INFORMATION_SCHEMA table'); + }; +} - var res = 1; - var filename = args[0].value; +if (alasql.options.postgres) { +} - alasql.utils.fileExists(filename, function(fex) { +if (alasql.options.oracle) { +} - if (fex) { - if (ifnotexists) { - res = 0; - if (cb) res = cb(res); - return res; - } else { - throw new Error('Cannot create new database file, because it already exists'); - } - } else { - var data = {tables: {}}; - alasql.utils.saveFile(filename, JSON.stringify(data), function(data) { - if (cb) res = cb(res); - }); - } - }); - return res; -}; +if (alasql.options.sqlite) { +} -FS.dropDatabase = function(fsdbid, ifexists, cb) { - var res; - var filename = fsdbid.value; +// +// into functions +// +// (c) 2014 Andrey Gershun +// + +alasql.into.SQL = function(filename, opts, data, columns, cb) { + var res; + if (typeof filename === 'object') { + opts = filename; + filename = undefined; + } + var opt = {}; + alasql.utils.extend(opt, opts); + if (typeof opt.tableid === 'undefined') { + throw new Error('Table for INSERT TO is not defined.'); + } + + var s = ''; + if (columns.length === 0) { + if (typeof data[0] === 'object') { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } else { + // What should I do? + // columns = [{columnid:"_"}]; + } + } + + for (var i = 0, ilen = data.length; i < ilen; i++) { + s += 'INSERT INTO ' + opts.tableid + '('; + s += columns + .map(function(col) { + return col.columnid; + }) + .join(','); + s += ') VALUES ('; + s += columns.map(function(col) { + var val = data[i][col.columnid]; + if (col.typeid) { + if ( + col.typeid === 'STRING' || + col.typeid === 'VARCHAR' || + col.typeid === 'NVARCHAR' || + col.typeid === 'CHAR' || + col.typeid === 'NCHAR' + ) { + val = "'" + escapeqq(val) + "'"; + } + } else { + if (typeof val == 'string') { + val = "'" + escapeqq(val) + "'"; + } + } + return val; + }); + s += ');\n'; + } + // if(filename === '') { + // res = s; + // } else { + // res = data.length; + filename = alasql.utils.autoExtFilename(filename, 'sql', opts); + res = alasql.utils.saveFile(filename, s); + if (cb) { + res = cb(res); + } + return res; +}; + +alasql.into.HTML = function(selector, opts, data, columns, cb) { + var res = 1; + if (typeof exports !== 'object') { + var opt = {headers: true}; + alasql.utils.extend(opt, opts); + + var sel = document.querySelector(selector); + if (!sel) { + throw new Error('Selected HTML element is not found'); + } + + if (columns.length === 0) { + if (typeof data[0] === 'object') { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } else { + // What should I do? + // columns = [{columnid:"_"}]; + } + } + + var tbe = document.createElement('table'); + var thead = document.createElement('thead'); + tbe.appendChild(thead); + if (opt.headers) { + var tre = document.createElement('tr'); + for (var i = 0; i < columns.length; i++) { + var the = document.createElement('th'); + the.textContent = columns[i].columnid; + tre.appendChild(the); + } + thead.appendChild(tre); + } + + var tbody = document.createElement('tbody'); + tbe.appendChild(tbody); + for (var j = 0; j < data.length; j++) { + var tre = document.createElement('tr'); + for (var i = 0; i < columns.length; i++) { + var the = document.createElement('td'); + the.textContent = data[j][columns[i].columnid]; + tre.appendChild(the); + } + tbody.appendChild(tre); + } + alasql.utils.domEmptyChildren(sel); + + sel.appendChild(tbe); + } + if (cb) { + res = cb(res); + } + return res; +}; + +alasql.into.JSON = function(filename, opts, data, columns, cb) { + var res = 1; + if (typeof filename === 'object') { + opts = filename; + filename = undefined; + } + var s = JSON.stringify(data); + + filename = alasql.utils.autoExtFilename(filename, 'json', opts); + res = alasql.utils.saveFile(filename, s); + if (cb) { + res = cb(res); + } + return res; +}; + +alasql.into.TXT = function(filename, opts, data, columns, cb) { + // If columns is empty + if (columns.length === 0 && data.length > 0) { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } + // If one parameter + if (typeof filename === 'object') { + opts = filename; + filename = undefined; + } + + var res = data.length; + var s = ''; + if (data.length > 0) { + var key = columns[0].columnid; + s += data + .map(function(d) { + return d[key]; + }) + .join('\n'); + } + + // } else { + // if(utils.isNode) { + // process.stdout.write(s); + // } else { + + // }; + // } + filename = alasql.utils.autoExtFilename(filename, 'txt', opts); + res = alasql.utils.saveFile(filename, s); + if (cb) { + res = cb(res); + } + return res; +}; + +alasql.into.TAB = alasql.into.TSV = function(filename, opts, data, columns, cb) { + var opt = {}; + alasql.utils.extend(opt, opts); + opt.separator = '\t'; + filename = alasql.utils.autoExtFilename(filename, 'tab', opts); + opt.autoExt = false; + return alasql.into.CSV(filename, opt, data, columns, cb); +}; + +alasql.into.CSV = function(filename, opts, data, columns, cb) { + if (columns.length === 0 && data.length > 0) { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } + if (typeof filename === 'object') { + opts = filename; + filename = undefined; + } + + var opt = {headers: true}; + //opt.separator = ','; + opt.separator = ';'; + opt.quote = '"'; + + opt.utf8Bom = true; + if (opts && !opts.headers && typeof opts.headers !== 'undefined') { + opt.utf8Bom = false; + } + + alasql.utils.extend(opt, opts); + var res = data.length; + var s = opt.utf8Bom ? '\ufeff' : ''; + if (opt.headers) { + s += + opt.quote + + columns + .map(function(col) { + return col.columnid.trim(); + }) + .join(opt.quote + opt.separator + opt.quote) + + opt.quote + + '\r\n'; + } + + data.forEach(function(d) { + s += + columns + .map(function(col) { + var s = d[col.columnid]; + // escape the character wherever it appears in the field + if (opt.quote !== '') { + s = (s + '').replace( + new RegExp('\\' + opt.quote, 'g'), + opt.quote + opt.quote + ); + } + // if((s+"").indexOf(opt.separator) > -1 || (s+"").indexOf(opt.quote) > -1) s = opt.quote + s + opt.quote; + + //Excel 2013 needs quotes around strings - thanks for _not_ complying with RFC for CSV + if (+s != s) { + // jshint ignore:line + s = opt.quote + s + opt.quote; + } + + return s; + }) + .join(opt.separator) + '\r\n'; + }); + + filename = alasql.utils.autoExtFilename(filename, 'csv', opts); + res = alasql.utils.saveFile(filename, s, null, {disableAutoBom: true}); + if (cb) { + res = cb(res); + } + return res; +}; + +// +// 831xl.js - Coloring Excel +// 18.04.2015 +// Generate XLS file with colors and styles +// with Excel + +alasql.into.XLS = function(filename, opts, data, columns, cb) { + // If filename is not defined then output to the result + if (typeof filename == 'object') { + opts = filename; + filename = undefined; + } + + // Set sheets + var sheets = {}; + if (opts && opts.sheets) { + sheets = opts.sheets; + } + + // Default sheet + var sheet = {headers: true}; + if (typeof sheets['Sheet1'] != 'undefined') { + sheet = sheets[0]; + } else { + if (typeof opts != 'undefined') { + sheet = opts; + } + } + + // Set sheet name and default is 'Sheet1' + if (typeof sheet.sheetid == 'undefined') { + sheet.sheetid = 'Sheet1'; + } + + var s = toHTML(); + + // File is ready to save + filename = alasql.utils.autoExtFilename(filename, 'xls', opts); + var res = alasql.utils.saveFile(filename, s); + if (cb) res = cb(res); + return res; + + function toHTML() { + // Generate prologue + var s = + ' \ + \ + '; + + // Generate body + s += ' 0) { + if (typeof data[0] == 'object') { + if (Array.isArray(data[0])) { + columns = data[0].map(function(d, columnidx) { + return {columnid: columnidx}; + }); + } else { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } + } + } + } + + // Prepare columns + columns.forEach(function(column, columnidx) { + if (typeof sheet.column != 'undefined') { + extend(column, sheet.column); + } + + if (typeof column.width == 'undefined') { + if (sheet.column && sheet.column.width != 'undefined') { + column.width = sheet.column.width; + } else { + column.width = '120px'; + } + } + if (typeof column.width == 'number') column.width = column.width + 'px'; + if (typeof column.columnid == 'undefined') column.columnid = columnidx; + if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim(); + if (sheet.headers && Array.isArray(sheet.headers)) + column.title = sheet.headers[columnidx]; + }); + + // Set columns widths + s += ''; + columns.forEach(function(column) { + s += ''; + }); + s += ''; + + // Headers + if (sheet.headers) { + s += ''; + s += ''; + + // TODO: Skip columns to body + + // Headers + columns.forEach(function(column, columnidx) { + s += ' 0) { + // TODO: Skip columns to body + + // Loop over data rows + data.forEach(function(row, rowidx) { + // Limit number of rows on the sheet + if (rowidx > sheet.limit) return; + // Create row + s += ' \ + \ + \ + \ + \ + \ + \ + \ + 0 \ + \ + \ + '; + + var s2 = ''; // for styles + + var s3 = ' '; + + var styles = {}; // hash based storage for styles + var stylesn = 62; // First style + + // Generate style + function hstyle(st) { + // Prepare string + var s = ''; + for (var key in st) { + s += '<' + key; + for (var attr in st[key]) { + s += ' '; + if (attr.substr(0, 2) == 'x:') { + s += attr; + } else { + s += 'ss:'; + } + s += attr + '="' + st[key][attr] + '"'; + } + s += '/>'; + } + + var hh = hash(s); + // Store in hash + if (styles[hh]) { + } else { + styles[hh] = {styleid: stylesn}; + s2 += ''; + stylesn++; + } + return 's' + styles[hh].styleid; + } + + function values(obj) { + try { + return Object.values(obj); + } catch (e) { + // support for older runtimes + return Object.keys(obj).map(function(e) { + return obj[e]; + }); + } + } + + var sheetidx = 0; + for (var sheetid in sheets) { + var sheet = sheets[sheetid]; + var idx = typeof sheet.dataidx != 'undefined' ? sheet.dataidx : sheetidx++; + var data = values(sheetsdata[idx]); + // If columns defined in sheet, then take them + var columns = undefined; + if (typeof sheet.columns != 'undefined') { + columns = sheet.columns; + } else { + // Autogenerate columns if they are passed as parameters + columns = sheetscolumns[idx]; + if (columns === undefined || (columns.length == 0 && data.length > 0)) { + if (typeof data[0] == 'object') { + if (Array.isArray(data[0])) { + columns = data[0].map(function(d, columnidx) { + return {columnid: columnidx}; + }); + } else { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } + } + } + } + + // Prepare columns + columns.forEach(function(column, columnidx) { + if (typeof sheet.column != 'undefined') { + extend(column, sheet.column); + } + + if (typeof column.width == 'undefined') { + if (sheet.column && typeof sheet.column.width != 'undefined') { + column.width = sheet.column.width; + } else { + column.width = 120; + } + } + if (typeof column.width == 'number') column.width = column.width; + if (typeof column.columnid == 'undefined') column.columnid = columnidx; + if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim(); + if (sheet.headers && Array.isArray(sheet.headers)) + column.title = sheet.headers[columnidx]; + }); + + // Header + s3 += + ' \ + '; + + columns.forEach(function(column, columnidx) { + s3 += + ''; + }); + + // Headers + if (sheet.headers) { + s3 += ''; + + // TODO: Skip columns to body + + // Headers + columns.forEach(function(column, columnidx) { + s3 += ' 0) { + // Loop over data rows + data.forEach(function(row, rowidx) { + // Limit number of rows on the sheet + if (rowidx > sheet.limit) return; + + // Extend row properties + var srow = {}; + extend(srow, sheet.row); + if (sheet.rows && sheet.rows[rowidx]) { + extend(srow, sheet.rows[rowidx]); + } + + s3 += '' + + // Data + columns.forEach(function(column, columnidx) { + // Parameters + var cell = {}; + extend(cell, sheet.cell); + extend(cell, srow.cell); + if (typeof sheet.column != 'undefined') { + extend(cell, sheet.column.cell); + } + extend(cell, column.cell); + if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) { + extend(cell, sheet.cells[rowidx][columnidx]); + } + + // Create value + var value = row[column.columnid]; + if (typeof cell.value == 'function') { + value = cell.value(value, sheet, row, column, cell, rowidx, columnidx); + } + + // Define cell type + var typeid = cell.typeid; + if (typeof typeid == 'function') { + typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx); + } + + if (typeof typeid == 'undefined') { + if (typeof value == 'number') typeid = 'number'; + else if (typeof value == 'string') typeid = 'string'; + else if (typeof value == 'boolean') typeid = 'boolean'; + else if (typeof value == 'object') { + if (value instanceof Date) typeid = 'date'; + } + } + + var Type = 'String'; + if (typeid == 'number') Type = 'Number'; + else if (typeid == 'date') Type = 'Date'; + // TODO: What else? + + // Prepare Data types styles + var typestyle = ''; + + if (typeid == 'money') { + typestyle = + 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;'; + } else if (typeid == 'number') { + typestyle = ' '; + } else if (typeid == 'date') { + typestyle = 'mso-number-format:"Short Date";'; + } else { + // For other types is saved + if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) { + typestyle = opts.types[typeid].typestyle; + } + } + + // TODO Replace with extend... + typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style + + s3 += ''; + + // TODO Replace with extend... + var format = cell.format; + if (typeof value == 'undefined') { + s3 += ''; + } else if (typeof format != 'undefined') { + if (typeof format == 'function') { + s3 += format(value); + } else if (typeof format == 'string') { + s3 += value; // TODO - add string format + } else { + throw new Error( + 'Unknown format type. Should be function or string' + ); + } + } else { + if (typeid == 'number' || typeid == 'date') { + s3 += value.toString(); + } else if (typeid == 'money') { + s3 += (+value).toFixed(2); + } else { + s3 += value; + } + } + + // s3 += row[column.columnid]; + s3 += ''; + }); + + s3 += ''; + }); + } + // Finish + s3 += '
'; + } + + s3 += '
'; + + return s1 + s2 + s3; + } +}; + +/** + Export to XLSX function + @function + @param {string|object} filename Filename or options + @param {object|undefined} opts Options or undefined + @param {array} data Data + @param {array} columns Columns + @parab {callback} cb Callback function + @return {number} Number of files processed +*/ + +alasql.into.XLSX = function(filename, opts, data, columns, cb) { + /** @type {number} result */ + var res = 1; + + if (deepEqual(columns, [{columnid: '_'}])) { + data = data.map(function(dat) { + return dat._; + }); + columns = undefined; + // res = [{_:1}]; + } else { + // data = data1; + } + + filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts); + + var XLSX = getXLSX(); + + /* If called without filename, use opts */ + if (typeof filename == 'object') { + opts = filename; + filename = undefined; + } + + /** @type {object} Workbook */ + var wb = {SheetNames: [], Sheets: {}}; + + // ToDo: check if cb must be treated differently here + if (opts.sourcefilename) { + alasql.utils.loadBinaryFile(opts.sourcefilename, !!cb, function(data) { + wb = XLSX.read(data, {type: 'binary'}); + doExport(); + }); + } else { + doExport(); + } + + /* Return result */ + if (cb) res = cb(res); + return res; + + /** + Export workbook + @function + */ + function doExport() { + /* + If opts is array of arrays then this is a + multisheet workboook, else it is a singlesheet + */ + if (typeof opts == 'object' && Array.isArray(opts)) { + if (data && data.length > 0) { + data.forEach(function(dat, idx) { + prepareSheet(opts[idx], dat, undefined, idx + 1); + }); + } + } else { + prepareSheet(opts, data, columns, 1); + } + + saveWorkbook(cb); + } + + /** + Prepare sheet + @params {object} opts + @params {array|object} data + @params {array} columns Columns + */ + function prepareSheet(opts, data, columns, idx) { + /** Default options for sheet */ + var opt = {sheetid: 'Sheet ' + idx, headers: true}; + alasql.utils.extend(opt, opts); + + var dataLength = Object.keys(data).length; + + // Generate columns if they are not defined + if ((!columns || columns.length == 0) && dataLength > 0) { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } + + var cells = {}; + + if (wb.SheetNames.indexOf(opt.sheetid) > -1) { + cells = wb.Sheets[opt.sheetid]; + } else { + wb.SheetNames.push(opt.sheetid); + wb.Sheets[opt.sheetid] = {}; + cells = wb.Sheets[opt.sheetid]; + } + + var range = 'A1'; + if (opt.range) range = opt.range; + + var col0 = alasql.utils.xlscn(range.match(/[A-Z]+/)[0]); + var row0 = +range.match(/[0-9]+/)[0] - 1; + + if (wb.Sheets[opt.sheetid]['!ref']) { + var rangem = wb.Sheets[opt.sheetid]['!ref']; + var colm = alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]); + var rowm = +rangem.match(/[0-9]+/)[0] - 1; + } else { + var colm = 1, + rowm = 1; + } + var colmax = Math.max(col0 + columns.length, colm); + var rowmax = Math.max(row0 + dataLength + 2, rowm); + + var i = row0 + 1; + + wb.Sheets[opt.sheetid]['!ref'] = 'A1:' + alasql.utils.xlsnc(colmax) + rowmax; + // var i = 1; + + if (opt.headers) { + columns.forEach(function(col, idx) { + cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = {v: col.columnid.trim()}; + }); + i++; + } + + for (var j = 0; j < dataLength; j++) { + columns.forEach(function(col, idx) { + var cell = {v: data[j][col.columnid]}; + if (typeof data[j][col.columnid] == 'number') { + cell.t = 'n'; + } else if (typeof data[j][col.columnid] == 'string') { + cell.t = 's'; + } else if (typeof data[j][col.columnid] == 'boolean') { + cell.t = 'b'; + } else if (typeof data[j][col.columnid] == 'object') { + if (data[j][col.columnid] instanceof Date) { + cell.t = 'd'; + } + } + cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = cell; + }); + i++; + } + } + + /** + Save Workbook + @params {array} wb Workbook + @params {callback} cb Callback + */ + function saveWorkbook(cb) { + + var XLSX; + + if (typeof filename == 'undefined') { + res = wb; + } else { + XLSX = getXLSX(); + + if (utils.isNode || utils.isMeteorServer) { + XLSX.writeFile(wb, filename); + } else { + var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'}; + var wbout = XLSX.write(wb, wopts); + + var s2ab = function(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; + }; + + /* the saveAs call downloads a file on the local machine */ + // saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), '"'+filename+'"') + // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}), filename) + // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.ms-excel"}), '"'+filename+'"'); + if (isIE() == 9) { + throw new Error( + 'Cannot save XLSX files in IE9. Please use XLS() export function' + ); + // var URI = 'data:text/plain;charset=utf-8,'; + + /** @todo Check if this code is required */ + + // alert('ie9'); + } else { + saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), filename); + } + } + } + + } +}; + +/* +// +// FROM functions Alasql.js +// Date: 11.12.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/** + Meteor + */ + +/* global alasql Tabletop document Event */ + +alasql.from.METEOR = function(filename, opts, cb, idx, query) { + var res = filename.find(opts).fetch(); + if (cb) { + res = cb(res, idx, query); + } + return res; +}; + +/** + Google Spreadsheet reader + */ +alasql.from.TABLETOP = function(key, opts, cb, idx, query) { + var res = []; + + var opt = {headers: true, simpleSheet: true, key: key}; + alasql.utils.extend(opt, opts); + opt.callback = function(data) { + res = data; + if (cb) { + res = cb(res, idx, query); + } + }; + + Tabletop.init(opt); + return null; +}; + +alasql.from.HTML = function(selector, opts, cb, idx, query) { + var opt = {}; + alasql.utils.extend(opt, opts); + + var sel = document.querySelector(selector); + if (!sel && sel.tagName !== 'TABLE') { + throw new Error('Selected HTML element is not a TABLE'); + } + + var res = []; + var headers = opt.headers; + + if (headers && !Array.isArray(headers)) { + headers = []; + var ths = sel.querySelector('thead tr').children; + for (var i = 0; i < ths.length; i++) { + if ( + !(ths.item(i).style && ths.item(i).style.display === 'none' && opt.skipdisplaynone) + ) { + headers.push(ths.item(i).textContent); + } else { + headers.push(undefined); + } + } + } + + var trs = sel.querySelectorAll('tbody tr'); + + for (var j = 0; j < trs.length; j++) { + var tds = trs.item(j).children; + var r = {}; + for (i = 0; i < tds.length; i++) { + if ( + !(tds.item(i).style && tds.item(i).style.display === 'none' && opt.skipdisplaynone) + ) { + if (headers) { + r[headers[i]] = tds.item(i).textContent; + } else { + r[i] = tds.item(i).textContent; + + } + } + } + res.push(r); + } + + if (cb) { + res = cb(res, idx, query); + } + return res; +}; + +alasql.from.RANGE = function(start, finish, cb, idx, query) { + var res = []; + for (var i = start; i <= finish; i++) { + res.push(i); + } + // res = new alasql.Recordset({data:res,columns:{columnid:'_'}}); + if (cb) { + res = cb(res, idx, query); + } + return res; +}; + +// Read data from any file +alasql.from.FILE = function(filename, opts, cb, idx, query) { + var fname; + if (typeof filename === 'string') { + fname = filename; + } else if (filename instanceof Event) { + fname = filename.target.files[0].name; + } else { + throw new Error('Wrong usage of FILE() function'); + } + + var parts = fname.split('.'); + + var ext = parts[parts.length - 1].toUpperCase(); + + if (alasql.from[ext]) { + + return alasql.from[ext](filename, opts, cb, idx, query); + } else { + throw new Error('Cannot recognize file type for loading'); + } +}; + +// Read JSON file + +alasql.from.JSON = function(filename, opts, cb, idx, query) { + var res; + + filename = alasql.utils.autoExtFilename(filename, 'json', opts); + alasql.utils.loadFile(filename, !!cb, function(data) { + + // res = [{a:1}]; + res = JSON.parse(data); + if (cb) { + res = cb(res, idx, query); + } + }); + return res; +}; + +alasql.from.TXT = function(filename, opts, cb, idx, query) { + var res; + filename = alasql.utils.autoExtFilename(filename, 'txt', opts); + alasql.utils.loadFile(filename, !!cb, function(data) { + res = data.split(/\r?\n/); + + // Remove last line if empty + if (res[res.length - 1] === '') { + res.pop(); + } + for (var i = 0, ilen = res.length; i < ilen; i++) { + // Please avoid '===' here + if (res[i] == +res[i]) { + // eslint:ignore + // jshint ignore:line + res[i] = +res[i]; + } + res[i] = [res[i]]; + } + if (cb) { + res = cb(res, idx, query); + } + }); + return res; +}; + +alasql.from.TAB = alasql.from.TSV = function(filename, opts, cb, idx, query) { + opts = opts || {}; + opts.separator = '\t'; + filename = alasql.utils.autoExtFilename(filename, 'tab', opts); + opts.autoext = false; + return alasql.from.CSV(filename, opts, cb, idx, query); +}; + +alasql.from.CSV = function(contents, opts, cb, idx, query) { + var opt = { + separator: ',', + quote: '"', + headers: true, + }; + alasql.utils.extend(opt, opts); + var res; + var hs = []; + function parseText(text) { + var delimiterCode = opt.separator.charCodeAt(0); + var quoteCode = opt.quote.charCodeAt(0); + + var EOL = {}, + EOF = {}, + rows = [], + N = text.length, + I = 0, + n = 0, + t, + eol; + function token() { + if (I >= N) { + return EOF; + } + if (eol) { + return (eol = false), EOL; + } + var j = I; + if (text.charCodeAt(j) === quoteCode) { + var i = j; + while (i++ < N) { + if (text.charCodeAt(i) === quoteCode) { + if (text.charCodeAt(i + 1) !== quoteCode) { + break; + } + ++i; + } + } + I = i + 2; + var c = text.charCodeAt(i + 1); + if (c === 13) { + eol = true; + if (text.charCodeAt(i + 2) === 10) { + ++I; + } + } else if (c === 10) { + eol = true; + } + return text.substring(j + 1, i).replace(/""/g, '"'); + } + while (I < N) { + var c = text.charCodeAt(I++), + k = 1; + if (c === 10) { + eol = true; + } else if (c === 13) { + eol = true; + if (text.charCodeAt(I) === 10) { + ++I; + ++k; + } + } else if (c !== delimiterCode) { + continue; + } + return text.substring(j, I - k); + } + return text.substring(j); + } + + while ((t = token()) !== EOF) { + var a = []; + while (t !== EOL && t !== EOF) { + a.push(t.trim()); + t = token(); + } + + if (opt.headers) { + if (n === 0) { + if (typeof opt.headers === 'boolean') { + hs = a; + } else if (Array.isArray(opt.headers)) { + hs = opt.headers; + var r = {}; + hs.forEach(function(h, idx) { + r[h] = a[idx]; + // Please avoid === here + if ( + typeof r[h] !== 'undefined' && + r[h].length !== 0 && + r[h].trim() == +r[h] + ) { + // jshint ignore:line + r[h] = +r[h]; + } + }); + rows.push(r); + } + } else { + var r = {}; + hs.forEach(function(h, idx) { + r[h] = a[idx]; + if ( + typeof r[h] !== 'undefined' && + r[h].length !== 0 && + r[h].trim() == +r[h] + ) { + // jshint ignore:line + r[h] = +r[h]; + } + }); + rows.push(r); + } + n++; + } else { + rows.push(a); + } + } + + res = rows; + + if (opt.headers) { + if (query && query.sources && query.sources[idx]) { + var columns = (query.sources[idx].columns = []); + hs.forEach(function(h) { + columns.push({columnid: h}); + }); + } + } + + if (cb) { + res = cb(res, idx, query); + } + } + if (new RegExp('\n').test(contents)) { + parseText(contents); + } else { + contents = alasql.utils.autoExtFilename(contents, 'csv', opts); + alasql.utils.loadFile(contents, !!cb, parseText, query.cb); + } + return res; +}; + +function XLSXLSX(X, filename, opts, cb, idx, query) { + var opt = {}; + opts = opts || {}; + alasql.utils.extend(opt, opts); + if (typeof opt.headers === 'undefined') { + opt.headers = true; + } + var res; + + /** + * see https://github.com/SheetJS/js-xlsx/blob/5ae6b1965bfe3764656a96f536b356cd1586fec7/README.md + * for example of using readAsArrayBuffer under `Parsing Workbooks` + */ + function fixdata(data) { + var o = '', + l = 0, + w = 10240; + for (; l < data.byteLength / w; ++l) + o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w))); + o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w))); + return o; + } + function getHeaderText(text) { + // if casesensitive option is set to false and there is a text value return lowercase value of text + if (text && alasql.options.casesensitive === false) { + return text.toLowerCase(); + } else { + return text; + } + } + filename = alasql.utils.autoExtFilename(filename, 'xls', opts); + alasql.utils.loadBinaryFile( + filename, + !!cb, + function(data) { + // function processData(data) { + if (data instanceof ArrayBuffer) { + var arr = fixdata(data); + var workbook = X.read(btoa(arr), {type: 'base64'}); + } else { + var workbook = X.read(data, {type: 'binary'}); + } + + var sheetid; + if (typeof opt.sheetid === 'undefined') { + sheetid = workbook.SheetNames[0]; + } else if (typeof opt.sheetid === 'number') { + sheetid = workbook.SheetNames[opt.sheetid]; + } else { + sheetid = opt.sheetid; + } + var range; + var res = []; + if (typeof opt.range === 'undefined') { + range = workbook.Sheets[sheetid]['!ref']; + } else { + range = opt.range; + if (workbook.Sheets[sheetid][range]) { + range = workbook.Sheets[sheetid][range]; + } + } + // if range has some value then data is present in the current sheet + // else current sheet is empty + if (range) { + var rg = range.split(':'); + var col0 = rg[0].match(/[A-Z]+/)[0]; + var row0 = +rg[0].match(/[0-9]+/)[0]; + var col1 = rg[1].match(/[A-Z]+/)[0]; + var row1 = +rg[1].match(/[0-9]+/)[0]; + + var hh = {}; + var xlscnCol0 = alasql.utils.xlscn(col0); + var xlscnCol1 = alasql.utils.xlscn(col1); + for (var j = xlscnCol0; j <= xlscnCol1; j++) { + var col = alasql.utils.xlsnc(j); + if (opt.headers) { + if (workbook.Sheets[sheetid][col + '' + row0]) { + hh[col] = getHeaderText(workbook.Sheets[sheetid][col + '' + row0].v); + } else { + hh[col] = getHeaderText(col); + } + } else { + hh[col] = col; + } + } + if (opt.headers) { + row0++; + } + for (var i = row0; i <= row1; i++) { + var row = {}; + for (var j = xlscnCol0; j <= xlscnCol1; j++) { + var col = alasql.utils.xlsnc(j); + if (workbook.Sheets[sheetid][col + '' + i]) { + row[hh[col]] = workbook.Sheets[sheetid][col + '' + i].v; + } + } + res.push(row); + } + } else { + res.push([]); + } + + // Remove last empty line (issue #548) + if ( + res.length > 0 && + res[res.length - 1] && + Object.keys(res[res.length - 1]).length == 0 + ) { + res.pop(); + } + + if (cb) { + res = cb(res, idx, query); + } + }, + function(err) { + throw err; + } + ); + + return res; +} - alasql.utils.fileExists(filename, function(fex) { - if (fex) { - res = 1; - alasql.utils.deleteFile(filename, function() { - res = 1; - if (cb) res = cb(res); - }); - } else { - if (!ifexists) { - throw new Error('Cannot drop database file, because it does not exist'); - } - res = 0; - if (cb) res = cb(res); - } - }); - return res; -}; +alasql.from.XLS = function(filename, opts, cb, idx, query) { + opts = opts || {}; + filename = alasql.utils.autoExtFilename(filename, 'xls', opts); + opts.autoExt = false; + return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); +}; + +alasql.from.XLSX = function(filename, opts, cb, idx, query) { + opts = opts || {}; + filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts); + opts.autoExt = false; + return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); +}; + +alasql.from.ODS = function(filename, opts, cb, idx, query) { + opts = opts || {}; + filename = alasql.utils.autoExtFilename(filename, 'ods', opts); + opts.autoExt = false; + return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); +}; + +alasql.from.XML = function(filename, opts, cb, idx, query) { + var res; + + alasql.utils.loadFile(filename, !!cb, function(data) { + + // res = [{a:1}]; + + res = xmlparse(data).root; + + if (cb) res = cb(res, idx, query); + }); + return res; +}; + +/** + * Parse the given string of `xml`. + * + * @param {String} xml + * @return {Object} + * @api public + */ + +function xmlparse(xml) { + xml = xml.trim(); + + // strip comments + xml = xml.replace(//g, ''); + + return document(); + + /** + * XML document. + */ + + function document() { + return { + declaration: declaration(), + root: tag(), + }; + } + + /** + * Declaration. + */ + + function declaration() { + var m = match(/^<\?xml\s*/); + if (!m) return; + + // tag + var node = { + attributes: {}, + }; + + // attributes + while (!(eos() || is('?>'))) { + var attr = attribute(); + if (!attr) return node; + node.attributes[attr.name] = attr.value; + } + + match(/\?>\s*/); + + return node; + } + + /** + * Tag. + */ + + function tag() { + var m = match(/^<([\w-:.]+)\s*/); + if (!m) return; + + // name + var node = { + name: m[1], + attributes: {}, + children: [], + }; + + // attributes + while (!(eos() || is('>') || is('?>') || is('/>'))) { + var attr = attribute(); + if (!attr) return node; + node.attributes[attr.name] = attr.value; + } + + // self closing tag + if (match(/^\s*\/>\s*/)) { + return node; + } + + match(/\??>\s*/); + + // content + node.content = content(); + + // children + var child; + while ((child = tag())) { + node.children.push(child); + } + + // closing + match(/^<\/[\w-:.]+>\s*/); + + return node; + } + + /** + * Text content. + */ + + function content() { + var m = match(/^([^<]*)/); + if (m) return m[1]; + return ''; + } + + /** + * Attribute. + */ + + function attribute() { + var m = match(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/); + if (!m) return; + return {name: m[1], value: strip(m[2])}; + } + + /** + * Strip quotes from `val`. + */ + + function strip(val) { + return val.replace(/^['"]|['"]$/g, ''); + } + + /** + * Match `re` and advance the string. + */ + + function match(re) { + var m = xml.match(re); + if (!m) return; + xml = xml.slice(m[0].length); + return m; + } + + /** + * End-of-source. + */ + + function eos() { + return 0 == xml.length; + } + + /** + * Check for `prefix`. + */ + + function is(prefix) { + return 0 == xml.indexOf(prefix); + } +} -FS.attachDatabase = function(fsdbid, dbid, args, params, cb) { +alasql.from.GEXF = function(filename, opts, cb, idx, query) { + var res; + alasql('SEARCH FROM XML(' + filename + ')', [], function(data) { + res = data; - var res = 1; - if (alasql.databases[dbid]) { - throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); - } - var db = new alasql.Database(dbid || fsdbid); - db.engineid = 'FILESTORAGE'; - // db.fsdbid = fsdbid; - db.filename = args[0].value; - loadFile(db.filename, !!cb, function(s) { - try { - db.data = JSON.parse(s); - } catch (err) { - throw new Error('Data in FileStorage database are corrupted'); - } - db.tables = db.data.tables; - // IF AUTOCOMMIT IS OFF then copy data to memory - if (!alasql.options.autocommit) { - if (db.tables) { - for (var tbid in db.tables) { - db.tables[tbid].data = db.data[tbid]; - } - } - } - if (cb) res = cb(res); - }); - return res; + if (cb) res = cb(res); + }); + return res; +}; + +/* +// +// HELP for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/* globals: alasql, yy */ + +/** + Print statement + @class + @param {object} params Initial setup properties +*/ + +/* global alasql, yy */ + +yy.Print = function(params) { + return yy.extend(this, params); +}; + +/** + Generate SQL string + @this Print statement object +*/ +yy.Print.prototype.toString = function() { + var s = 'PRINT'; + if (this.statement) s += ' ' + this.statement.toString(); + return s; }; -FS.createTable = function(databaseid, tableid, ifnotexists, cb) { - var db = alasql.databases[databaseid]; - var tb = db.data[tableid]; +/** + Print result of select statement or expression + @param {string} databaseid Database identificator + @param {object} params Query parameters + @param {statement-callback} cb Callback function + @this Print statement object +*/ +yy.Print.prototype.execute = function(databaseid, params, cb) { + + var self = this; var res = 1; - if (tb && !ifnotexists) { - throw new Error('Table "' + tableid + '" alsready exists in the database "' + fsdbid + '"'); - } - var table = alasql.databases[databaseid].tables[tableid]; - db.data.tables[tableid] = {columns: table.columns}; - db.data[tableid] = []; + alasql.precompile(this, databaseid, params); /** @todo Change from alasql to this */ - FS.updateFile(databaseid); + if (this.exprs && this.exprs.length > 0) { + var rs = this.exprs.map(function(expr) { - if (cb) cb(res); + var exprfn = new Function( + 'params,alasql,p', + 'var y;return ' + expr.toJS('({})', '', null) + ).bind(self); + var r = exprfn(params, alasql); + return JSONtoString(r); + }); + console.log.apply(console, rs); + } else if (this.select) { + var r = this.select.execute(databaseid, params); + console.log(JSONtoString(r)); + } else { + console.log(); + } + + if (cb) res = cb(res); return res; }; -FS.updateFile = function(databaseid) { - - var db = alasql.databases[databaseid]; - if (db.issaving) { - db.postsave = true; - return; - } - db.issaving = true; - db.postsave = false; - alasql.utils.saveFile(db.filename, JSON.stringify(db.data), function() { - db.issaving = false; +/* +// +// HELP for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ - if (db.postsave) { - setTimeout(function() { - FS.updateFile(databaseid); - }, 50); // TODO Test with different timeout parameters - } - }); +yy.Source = function(params) { + return yy.extend(this, params); }; - -FS.dropTable = function(databaseid, tableid, ifexists, cb) { - var res = 1; - var db = alasql.databases[databaseid]; - if (!ifexists && !db.tables[tableid]) { - throw new Error( - 'Cannot drop table "' + tableid + '" in fileStorage, because it does not exist' - ); - } - delete db.tables[tableid]; - delete db.data.tables[tableid]; - delete db.data[tableid]; - FS.updateFile(databaseid); - if (cb) cb(res); - return res; +yy.Source.prototype.toString = function() { + var s = 'SOURCE'; + if (this.url) s += " '" + this.url + " '"; + return s; }; -FS.fromTable = function(databaseid, tableid, cb, idx, query) { +// SOURCE FILE +yy.Source.prototype.execute = function(databaseid, params, cb) { - var db = alasql.databases[databaseid]; - var res = db.data[tableid]; - if (cb) res = cb(res, idx, query); - return res; -}; + var res; + loadFile( + this.url, + !!cb, + function(data) { -FS.intoTable = function(databaseid, tableid, value, columns, cb) { - var db = alasql.databases[databaseid]; - var res = value.length; - var tb = db.data[tableid]; - if (!tb) tb = []; - db.data[tableid] = tb.concat(value); - FS.updateFile(databaseid); - if (cb) cb(res); + // res = 1; + res = alasql(data); + if (cb) res = cb(res); + return res; + }, + function(err) { + throw err; + } + ); return res; }; -FS.loadTableData = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - db.tables[tableid].data = db.data[tableid]; -}; - -FS.saveTableData = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - db.data[tableid] = db.tables[tableid].data; - db.tables[tableid].data = null; - FS.updateFile(databaseid); -}; +/* +// +// HELP for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ -FS.commit = function(databaseid, cb) { +/* global alasql, yy */ - var db = alasql.databases[databaseid]; - var fsdb = {tables: {}}; - if (db.tables) { - for (var tbid in db.tables) { - db.data.tables[tbid] = {columns: db.tables[tbid].columns}; - db.data[tbid] = db.tables[tbid].data; - } +yy.Require = function(params) { + return yy.extend(this, params); +}; +yy.Require.prototype.toString = function() { + var s = 'REQUIRE'; + if (this.paths && this.paths.length > 0) { + s += this.paths + .map(function(path) { + return path.toString(); + }) + .join(','); + } + if (this.plugins && this.plugins.length > 0) { + s += this.plugins + .map(function(plugin) { + return plugin.toUpperCase(); + }) + .join(','); } - FS.updateFile(databaseid); - return cb ? cb(1) : 1; + return s; }; -FS.begin = FS.commit; +/** + Attach plug-in for Alasql + */ +yy.Require.prototype.execute = function(databaseid, params, cb) { + var self = this; + var res = 0; + var ss = ''; -FS.rollback = function(databaseid, cb) { - var res = 1; - var db = alasql.databases[databaseid]; - db.dbversion++; - - // var lsdbid = alasql.databases[databaseid].lsdbid; - // lsdb = LS.get(lsdbid); - wait(); - function wait() { - setTimeout(function() { - if (db.issaving) { - return wait(); - } else { - alasql.loadFile(db.filename, !!cb, function(data) { - db.data = data; - db.tables = {}; - for (var tbid in db.data.tables) { - var tb = new alasql.Table({columns: db.data.tables[tbid].columns}); - extend(tb, db.data.tables[tbid]); - db.tables[tbid] = tb; - if (!alasql.options.autocommit) { - db.tables[tbid].data = db.data[tbid]; - } - db.tables[tbid].indexColumns(); + if (this.paths && this.paths.length > 0) { + this.paths.forEach(function(path) { + loadFile(path.value, !!cb, function(data) { + res++; - // index columns - // convert types - } + ss += data; + if (res < self.paths.length) return; - delete alasql.databases[databaseid]; - alasql.databases[databaseid] = new alasql.Database(databaseid); - extend(alasql.databases[databaseid], db); - alasql.databases[databaseid].engineid = 'FILESTORAGE'; - alasql.databases[databaseid].filename = db.filename; + new Function('params,alasql', ss)(params, alasql); + if (cb) res = cb(res); + }); + }); + } else if (this.plugins && this.plugins.length > 0) { + this.plugins.forEach(function(plugin) { + // If plugin is not loaded already + if (!alasql.plugins[plugin]) { + loadFile(alasql.path + '/alasql-' + plugin.toLowerCase() + '.js', !!cb, function( + data + ) { + // Execute all plugins at the same time + res++; + ss += data; + if (res < self.plugins.length) return; + new Function('params,alasql', ss)(params, alasql); + alasql.plugins[plugin] = true; // Plugin is loaded if (cb) res = cb(res); - // Todo: check why no return }); } - }, 100); + }); + } else { + if (cb) res = cb(res); } - - // if(!alasql.options.autocommit) { - + return res; }; -if(utils.isBrowser && !utils.isWebWorker) { - -alasql = alasql || false; - -if (!alasql) { - throw new Error('alasql was not found'); -} +/* +// +// HELP for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ -alasql.worker = function() { - throw new Error('Can find webworker in this enviroment'); +yy.Assert = function(params) { + return yy.extend(this, params); +}; +yy.Source.prototype.toString = function() { + var s = 'ASSERT'; + if (this.value) s += ' ' + JSON.stringify(this.value); + return s; }; -if (typeof Worker !== 'undefined') { - alasql.worker = function(path, paths, cb) { - // var path; - if (path === true) { - path = undefined; - } - - if (typeof path === 'undefined') { - var sc = document.getElementsByTagName('script'); - for (var i = 0; i < sc.length; i++) { - if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') { - path = sc[i].src.substr(0, sc[i].src.length - 16) + 'alasql.js'; - break; - } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') { - path = sc[i].src.substr(0, sc[i].src.length - 20) + 'alasql.min.js'; - break; - } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') { - path = sc[i].src; - break; - } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') { - path = sc[i].src.substr(0, sc[i].src.length - 13) + 'alasql.min.js'; - break; - } - } - } - - if (typeof path === 'undefined') { - throw new Error('Path to alasql.js is not specified'); - } else if (path !== false) { - var js = "importScripts('"; - js += path; - js += - "');self.onmessage = function(event) {" + - 'alasql(event.data.sql,event.data.params, function(data){' + - 'postMessage({id:event.data.id, data:data});});}'; - - var blob = new Blob([js], {type: 'text/plain'}); - alasql.webworker = new Worker(URL.createObjectURL(blob)); - - alasql.webworker.onmessage = function(event) { - var id = event.data.id; - - alasql.buffer[id](event.data.data); - delete alasql.buffer[id]; - }; - - alasql.webworker.onerror = function(e) { - throw e; - }; - - if (arguments.length > 1) { - var sql = - 'REQUIRE ' + - paths - .map(function(p) { - return '"' + p + '"'; - }) - .join(','); - alasql(sql, [], cb); - } - } else if (path === false) { - delete alasql.webworker; - return; - } - }; -} - -/* FileSaver.js - * A saveAs() FileSaver implementation. - * 1.3.2 - * 2016-06-16 18:25:19 - * - * By Eli Grey, http://eligrey.com - * License: MIT - * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md - */ - -/*global self */ -/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */ - -/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ - -var saveAs = - saveAs || - (function(view) { - 'use strict'; - // IE <10 is explicitly unsupported - if ( - typeof view === 'undefined' || - (typeof navigator !== 'undefined' && /MSIE [1-9]\./.test(navigator.userAgent)) - ) { - return; - } - var doc = view.document, - // only get URL when necessary in case Blob.js hasn't overridden it yet - get_URL = function() { - return view.URL || view.webkitURL || view; - }, - save_link = doc.createElementNS('http://www.w3.org/1999/xhtml', 'a'), - can_use_save_link = 'download' in save_link, - click = function(node) { - var event = new MouseEvent('click'); - node.dispatchEvent(event); - }, - is_safari = /constructor/i.test(view.HTMLElement) || view.safari, - is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent), - throw_outside = function(ex) { - (view.setImmediate || view.setTimeout)(function() { - throw ex; - }, 0); - }, - force_saveable_type = 'application/octet-stream', - // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to - arbitrary_revoke_timeout = 1000 * 40, // in ms - revoke = function(file) { - var revoker = function() { - if (typeof file === 'string') { - // file is an object URL - get_URL().revokeObjectURL(file); - } else { - // file is a File - file.remove(); - } - }; - setTimeout(revoker, arbitrary_revoke_timeout); - }, - dispatch = function(filesaver, event_types, event) { - event_types = [].concat(event_types); - var i = event_types.length; - while (i--) { - var listener = filesaver['on' + event_types[i]]; - if (typeof listener === 'function') { - try { - listener.call(filesaver, event || filesaver); - } catch (ex) { - throw_outside(ex); - } - } - } - }, - auto_bom = function(blob) { - // prepend BOM for UTF-8 XML and text/* types (including HTML) - // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF - if ( - /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test( - blob.type - ) - ) { - return new Blob([String.fromCharCode(0xfeff), blob], {type: blob.type}); - } - return blob; - }, - FileSaver = function(blob, name, no_auto_bom) { - if (!no_auto_bom) { - blob = auto_bom(blob); - } - // First try a.download, then web filesystem, then object URLs - var filesaver = this, - type = blob.type, - force = type === force_saveable_type, - object_url, - dispatch_all = function() { - dispatch(filesaver, 'writestart progress write writeend'.split(' ')); - }, - // on any filesys errors revert to saving with object URLs - fs_error = function() { - if ((is_chrome_ios || (force && is_safari)) && view.FileReader) { - // Safari doesn't allow downloading of blob urls - var reader = new FileReader(); - reader.onloadend = function() { - var url = is_chrome_ios - ? reader.result - : reader.result.replace( - /^data:[^;]*;/, - 'data:attachment/file;' - ); - var popup = view.open(url, '_blank'); - if (!popup) view.location.href = url; - url = undefined; // release reference before dispatching - filesaver.readyState = filesaver.DONE; - dispatch_all(); - }; - reader.readAsDataURL(blob); - filesaver.readyState = filesaver.INIT; - return; - } - // don't create more object URLs than needed - if (!object_url) { - object_url = get_URL().createObjectURL(blob); - } - if (force) { - view.location.href = object_url; - } else { - var opened = view.open(object_url, '_blank'); - if (!opened) { - // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html - view.location.href = object_url; - } - } - filesaver.readyState = filesaver.DONE; - dispatch_all(); - revoke(object_url); - }; - filesaver.readyState = filesaver.INIT; - - if (can_use_save_link) { - object_url = get_URL().createObjectURL(blob); - setTimeout(function() { - save_link.href = object_url; - save_link.download = name; - click(save_link); - dispatch_all(); - revoke(object_url); - filesaver.readyState = filesaver.DONE; - }); - return; - } +// SOURCE FILE +yy.Assert.prototype.execute = function(databaseid) { - fs_error(); - }, - FS_proto = FileSaver.prototype, - saveAs = function(blob, name, no_auto_bom) { - return new FileSaver(blob, name || blob.name || 'download', no_auto_bom); - }; - // IE 10+ (native saveAs) - if (typeof navigator !== 'undefined' && navigator.msSaveOrOpenBlob) { - return function(blob, name, no_auto_bom) { - name = name || blob.name || 'download'; + if (!deepEqual(alasql.res, this.value)) { + // if(this.message) { + // throw this. + // } else { + throw new Error( + (this.message || 'Assert wrong') + + ': ' + + JSON.stringify(alasql.res) + + ' == ' + + JSON.stringify(this.value) + ); + // } + } + return 1; +}; - if (!no_auto_bom) { - blob = auto_bom(blob); - } - return navigator.msSaveOrOpenBlob(blob, name); - }; - } +// +// 91websql.js +// WebSQL database support +// (c) 2014, Andrey Gershun +// + +var WEBSQL = (alasql.engines.WEBSQL = function() {}); + +WEBSQL.createDatabase = function(wdbid, args, dbid, cb) { + var res = 1; + var wdb = openDatabase(wdbid, args[0], args[1], args[2]); + if (this.dbid) { + var db = alasql.createDatabase(this.dbid); + db.engineid = 'WEBSQL'; + db.wdbid = wdbid; + sb.wdb = db; + } + if (!wdb) { + throw new Error('Cannot create WebSQL database "' + databaseid + '"'); + } + if (cb) cb(res); + return res; +}; + +WEBSQL.dropDatabase = function(databaseid) { + throw new Error('This is impossible to drop WebSQL database.'); +}; + +WEBSQL.attachDatabase = function(databaseid, dbid, args, params, cb) { + var res = 1; + if (alasql.databases[dbid]) { + throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); + } + alasqlopenDatabase(databaseid, args[0], args[1], args[2]); + return res; +}; + +// +// 91indexeddb.js +// AlaSQL IndexedDB module +// Date: 18.04.2015 +// (c) Andrey Gershun +// + +/* global alasql, yy, utils*/ + +var IDB = (alasql.engines.INDEXEDDB = function() { + ''; +}); + +if (utils.hasIndexedDB) { + // For Chrome it work normally, for Firefox - simple shim + if (typeof utils.global.indexedDB.webkitGetDatabaseNames == 'function') { + IDB.getDatabaseNames = utils.global.indexedDB.webkitGetDatabaseNames.bind( + utils.global.indexedDB + ); + } else { + IDB.getDatabaseNames = function() { + var request = {}; + var result = { + contains: function(name) { + return true; // Always return true + }, + notsupported: true, + }; + setTimeout(function() { + var event = {target: {result: result}}; + request.onsuccess(event); + }, 0); + return request; + }; + IDB.getDatabaseNamesNotSupported = true; + } +} - FS_proto.abort = function() {}; - FS_proto.readyState = FS_proto.INIT = 0; - FS_proto.WRITING = 1; - FS_proto.DONE = 2; +// +// SHOW DATABASES +// work only in chrome +// +IDB.showDatabases = function(like, cb) { + + var request = IDB.getDatabaseNames(); + request.onsuccess = function(event) { + var dblist = event.target.result; + if (IDB.getDatabaseNamesNotSupported) { + throw new Error('SHOW DATABASE is not supported in this browser'); + } + var res = []; + if (like) { + var relike = new RegExp(like.value.replace(/\%/g, '.*'), 'g'); + } + for (var i = 0; i < dblist.length; i++) { + if (!like || dblist[i].match(relike)) { + res.push({databaseid: dblist[i]}); + } + } + cb(res); + }; +}; + +IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) { + + var indexedDB = utils.global.indexedDB; + if (ifnotexists) { + var request2 = indexedDB.open(ixdbid, 1); + request2.onsuccess = function(event) { + event.target.result.close(); + if (cb) cb(1); + }; + } else { + var request1 = indexedDB.open(ixdbid, 1); + request1.onupgradeneeded = function(e) { + + e.target.transaction.abort(); + }; + request1.onsuccess = function(e) { + + if (ifnotexists) { + if (cb) cb(0); + } else { + throw new Error( + 'IndexedDB: Cannot create new database "' + + ixdbid + + '" because it already exists' + ); + } + }; + } + +}; + +IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) { + var indexedDB = utils.global.indexedDB; + if (IDB.getDatabaseNamesNotSupported) { + // Hack for Firefox + if (ifnotexists) { + + var dbExists = true; + var request2 = indexedDB.open(ixdbid); + + request2.onupgradeneeded = function(e) { + + dbExists = false; + // e.target.transaction.abort(); + // cb(0); + }; + request2.onsuccess = function(event) { + + event.target.result.close(); + if (dbExists) { + if (cb) cb(0); + } else { + if (cb) cb(1); + } + }; + } else { + + var request1 = indexedDB.open(ixdbid); + request1.onupgradeneeded = function(e) { + e.target.transaction.abort(); + }; + request1.onabort = function(event) { + if (cb) cb(1); + }; + request1.onsuccess = function(event) { + event.target.result.close(); + throw new Error( + 'IndexedDB: Cannot create new database "' + + ixdbid + + '" because it already exists' + ); + // cb(0); + }; + } + } else { + var request1 = IDB.getDatabaseNames(); + request1.onsuccess = function(event) { + var dblist = event.target.result; + if (dblist.contains(ixdbid)) { + if (ifnotexists) { + if (cb) cb(0); + return; + } else { + throw new Error( + 'IndexedDB: Cannot create new database "' + + ixdbid + + '" because it already exists' + ); + } + } + + var request2 = indexedDB.open(ixdbid, 1); + request2.onsuccess = function(event) { + event.target.result.close(); + if (cb) cb(1); + }; + }; + } +}; + +IDB.dropDatabase = function(ixdbid, ifexists, cb) { + var indexedDB = utils.global.indexedDB; + var request1 = IDB.getDatabaseNames(); + request1.onsuccess = function(event) { + var dblist = event.target.result; + if (!dblist.contains(ixdbid)) { + if (ifexists) { + if (cb) cb(0); + return; + } else { + throw new Error( + 'IndexedDB: Cannot drop new database "' + ixdbid + '" because it does not exist' + ); + } + } + var request2 = indexedDB.deleteDatabase(ixdbid); + request2.onsuccess = function(event) { + + if (cb) cb(1); + }; + }; +}; + +IDB.attachDatabase = function(ixdbid, dbid, args, params, cb) { + if (!utils.hasIndexedDB) { + throw new Error('The current browser does not support IndexedDB'); + } + var indexedDB = utils.global.indexedDB; + var request1 = IDB.getDatabaseNames(); + request1.onsuccess = function(event) { + var dblist = event.target.result; + if (!dblist.contains(ixdbid)) { + throw new Error( + 'IndexedDB: Cannot attach database "' + ixdbid + '" because it does not exist' + ); + } + var request2 = indexedDB.open(ixdbid); + request2.onsuccess = function(event) { + var ixdb = event.target.result; + var db = new alasql.Database(dbid || ixdbid); + db.engineid = 'INDEXEDDB'; + db.ixdbid = ixdbid; + db.tables = []; + var tblist = ixdb.objectStoreNames; + for (var i = 0; i < tblist.length; i++) { + db.tables[tblist[i]] = {}; + } + + event.target.result.close(); + if (cb) cb(1); + }; + }; +}; + +IDB.createTable = function(databaseid, tableid, ifnotexists, cb) { + var indexedDB = utils.global.indexedDB; + + var ixdbid = alasql.databases[databaseid].ixdbid; + + var request1 = IDB.getDatabaseNames(); + request1.onsuccess = function(event__) { + var dblist = event__.target.result; + if (!dblist.contains(ixdbid)) { + throw new Error( + 'IndexedDB: Cannot create table in database "' + + ixdbid + + '" because it does not exist' + ); + } + var request2 = indexedDB.open(ixdbid); + request2.onversionchange = function(event_) { + + event_.target.result.close(); + }; + request2.onsuccess = function(event_) { + var version = event_.target.result.version; + event_.target.result.close(); + + var request3 = indexedDB.open(ixdbid, version + 1); + request3.onupgradeneeded = function(event) { + var ixdb = event.target.result; + + var store = ixdb.createObjectStore(tableid, {autoIncrement: true}); + + }; + request3.onsuccess = function(event) { + + event.target.result.close(); + if (cb) cb(1); + }; + request3.onerror = function(event) { + throw event; + + }; + request3.onblocked = function(event) { + throw new Error( + 'Cannot create table "' + + tableid + + '" because database "' + + databaseid + + '" is blocked' + ); + + }; + }; + }; +}; + +IDB.dropTable = function(databaseid, tableid, ifexists, cb) { + var indexedDB = utils.global.indexedDB; + var ixdbid = alasql.databases[databaseid].ixdbid; + + var request1 = IDB.getDatabaseNames(); + request1.onsuccess = function(event) { + var dblist = event.target.result; + + if (!dblist.contains(ixdbid)) { + throw new Error( + 'IndexedDB: Cannot drop table in database "' + + ixdbid + + '" because it does not exist' + ); + } + + var request2 = indexedDB.open(ixdbid); + request2.onversionchange = function(event) { + event.target.result.close(); + }; + + request2.onsuccess = function(event) { + var version = event.target.result.version; + event.target.result.close(); + + var request3 = indexedDB.open(ixdbid, version + 1); + request3.onupgradeneeded = function(event) { + var ixdb = event.target.result; + if (ixdb.objectStoreNames.contains(tableid)) { + ixdb.deleteObjectStore(tableid); + delete alasql.databases[databaseid].tables[tableid]; + } else { + if (!ifexists) { + throw new Error( + 'IndexedDB: Cannot drop table "' + + tableid + + '" because it does not exist' + ); + } + } + // var store = ixdb.createObjectStore(tableid); + + }; + request3.onsuccess = function(event) { + + event.target.result.close(); + if (cb) cb(1); + }; + request3.onerror = function(event) { + + throw event; + }; + request3.onblocked = function(event) { + throw new Error( + 'Cannot drop table "' + + tableid + + '" because database "' + + databaseid + + '" is blocked' + ); + + }; + }; + }; +}; + +IDB.intoTable = function(databaseid, tableid, value, columns, cb) { + + // console.trace(); + + var indexedDB = utils.global.indexedDB; + var ixdbid = alasql.databases[databaseid].ixdbid; + var request1 = indexedDB.open(ixdbid); + request1.onsuccess = function(event) { + var ixdb = event.target.result; + var tx = ixdb.transaction([tableid], 'readwrite'); + var tb = tx.objectStore(tableid); + + for (var i = 0, ilen = value.length; i < ilen; i++) { + tb.add(value[i]); + } + tx.oncomplete = function() { + ixdb.close(); + + if (cb) cb(ilen); + }; + }; + +}; + +IDB.fromTable = function(databaseid, tableid, cb, idx, query) { + + // console.trace(); + var indexedDB = utils.global.indexedDB; + var ixdbid = alasql.databases[databaseid].ixdbid; + var request = indexedDB.open(ixdbid); + request.onsuccess = function(event) { + var res = []; + var ixdb = event.target.result; + + var tx = ixdb.transaction([tableid]); + var store = tx.objectStore(tableid); + var cur = store.openCursor(); + + cur.onblocked = function(event) { + + }; + cur.onerror = function(event) { + + }; + cur.onsuccess = function(event) { + + var cursor = event.target.result; + + if (cursor) { + res.push(cursor.value); + cursor.continue(); + } else { + + ixdb.close(); + if (cb) cb(res, idx, query); + } + }; + }; +}; + +IDB.deleteFromTable = function(databaseid, tableid, wherefn, params, cb) { + + // console.trace(); + var indexedDB = utils.global.indexedDB; + var ixdbid = alasql.databases[databaseid].ixdbid; + var request = indexedDB.open(ixdbid); + request.onsuccess = function(event) { + var res = []; + var ixdb = event.target.result; + + var tx = ixdb.transaction([tableid], 'readwrite'); + var store = tx.objectStore(tableid); + var cur = store.openCursor(); + var num = 0; + + cur.onblocked = function(event) { + + }; + cur.onerror = function(event) { + + }; + cur.onsuccess = function(event) { + + var cursor = event.target.result; + + if (cursor) { + if (!wherefn || wherefn(cursor.value, params)) { + + cursor.delete(); + num++; + } + cursor.continue(); + } else { + + ixdb.close(); + if (cb) cb(num); + } + }; + }; +}; + +IDB.updateTable = function(databaseid, tableid, assignfn, wherefn, params, cb) { + + // console.trace(); + var indexedDB = utils.global.indexedDB; + var ixdbid = alasql.databases[databaseid].ixdbid; + var request = indexedDB.open(ixdbid); + request.onsuccess = function(event) { + var res = []; + var ixdb = event.target.result; + + var tx = ixdb.transaction([tableid], 'readwrite'); + var store = tx.objectStore(tableid); + var cur = store.openCursor(); + var num = 0; + + cur.onblocked = function(event) { + + }; + cur.onerror = function(event) { + + }; + cur.onsuccess = function(event) { + + var cursor = event.target.result; + + if (cursor) { + if (!wherefn || wherefn(cursor.value, params)) { + + var r = cursor.value; + assignfn(r, params); + + cursor.update(r); + num++; + } + cursor.continue(); + } else { + + ixdb.close(); + if (cb) cb(num); + } + }; + }; +}; + +// +// 91localstorage.js +// localStorage and DOM-Storage engine +// Date: 09.12.2014 +// (c) Andrey Gershun +// + +/* global alasql, yy, localStorage*/ + +var LS = (alasql.engines.LOCALSTORAGE = function() {}); + +/** + Read data from localStorage with security breaks + @param key {string} Address in localStorage + @return {object} JSON object +*/ +LS.get = function(key) { + var s = localStorage.getItem(key); + if (typeof s === 'undefined') return; + var v; + try { + v = JSON.parse(s); + } catch (err) { + throw new Error('Cannot parse JSON object from localStorage' + s); + } + return v; +}; + +/** + Store data into localStorage with security breaks + @param key {string} Address in localStorage + @return {object} JSON object +*/ +LS.set = function(key, value) { + if (typeof value === 'undefined') localStorage.removeItem(key); + else localStorage.setItem(key, JSON.stringify(value)); +}; + +/** + Store table structure and data into localStorage + @param databaseid {string} AlaSQL database id (not external localStorage) + @param tableid {string} Table name + @return Nothing +*/ +LS.storeTable = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + var table = db.tables[tableid]; + // Create empty structure for table + var tbl = {}; + tbl.columns = table.columns; + tbl.data = table.data; + tbl.identities = table.identities; + // TODO: May be add indexes, objects and other fields? + LS.set(db.lsdbid + '.' + tableid, tbl); +}; + +/** + Restore table structure and data + @param databaseid {string} AlaSQL database id (not external localStorage) + @param tableid {string} Table name + @return Nothing +*/ +LS.restoreTable = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + var tbl = LS.get(db.lsdbid + '.' + tableid); + var table = new alasql.Table(); + for (var f in tbl) { + table[f] = tbl[f]; + } + db.tables[tableid] = table; + table.indexColumns(); + // We need to add other things here + return table; +}; + +/** + Remove table from localStorage + @param databaseid {string} AlaSQL database id (not external localStorage) + @param tableid {string} Table name +*/ + +LS.removeTable = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + localStorage.removeItem(db.lsdbid + '.' + tableid); +}; + +/** + Create database in localStorage + @param lsdbid {string} localStorage database id + @param args {array} List of parameters (not used in localStorage) + @param ifnotexists {boolean} Check if database does not exist + @param databaseid {string} AlaSQL database id (not external localStorage) + @param cb {function} Callback +*/ + +LS.createDatabase = function(lsdbid, args, ifnotexists, databaseid, cb) { + var res = 1; + var ls = LS.get('alasql'); // Read list of all databases + if (!(ifnotexists && ls && ls.databases && ls.databases[lsdbid])) { + if (!ls) ls = {databases: {}}; // Empty record + if (ls.databases && ls.databases[lsdbid]) { + throw new Error( + 'localStorage: Cannot create new database "' + + lsdbid + + '" because it already exists' + ); + } + ls.databases[lsdbid] = true; + LS.set('alasql', ls); + LS.set(lsdbid, {databaseid: lsdbid, tables: {}}); // Create database record + } else { + res = 0; + } + if (cb) res = cb(res); + return res; +}; + +/** + Drop external database + @param lsdbid {string} localStorage database id + @param ifexists {boolean} Check if database exists + @param cb {function} Callback +*/ +LS.dropDatabase = function(lsdbid, ifexists, cb) { + var res = 1; + var ls = LS.get('alasql'); + if (!(ifexists && ls && ls.databases && !ls.databases[lsdbid])) { + // 1. Remove record from 'alasql' record + if (!ls) { + if (!ifexists) { + throw new Error('There is no any AlaSQL databases in localStorage'); + } else { + return cb ? cb(0) : 0; + } + } + + if (ls.databases && !ls.databases[lsdbid]) { + throw new Error( + 'localStorage: Cannot drop database "' + + lsdbid + + '" because there is no such database' + ); + } + delete ls.databases[lsdbid]; + LS.set('alasql', ls); + + // 2. Remove tables definitions + var db = LS.get(lsdbid); + for (var tableid in db.tables) { + localStorage.removeItem(lsdbid + '.' + tableid); + } + + // 3. Remove database definition + localStorage.removeItem(lsdbid); + } else { + res = 0; + } + if (cb) res = cb(res); + return res; +}; + +/** + Attach existing localStorage database to AlaSQL database + @param lsdibid {string} localStorage database id + @param +*/ + +LS.attachDatabase = function(lsdbid, databaseid, args, params, cb) { + var res = 1; + if (alasql.databases[databaseid]) { + throw new Error( + 'Unable to attach database as "' + databaseid + '" because it already exists' + ); + } + if (!databaseid) databaseid = lsdbid; + var db = new alasql.Database(databaseid); + db.engineid = 'LOCALSTORAGE'; + db.lsdbid = lsdbid; + db.tables = LS.get(lsdbid).tables; + // IF AUTOABORT IS OFF then copy data to memory + if (!alasql.options.autocommit) { + if (db.tables) { + for (var tbid in db.tables) { + LS.restoreTable(databaseid, tbid); + // db.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid); + } + } + } + if (cb) res = cb(res); + return res; +}; + +/** + Show list of databases from localStorage + @param like {string} Mathing pattern + @param cb {function} Callback +*/ +LS.showDatabases = function(like, cb) { + var res = []; + var ls = LS.get('alasql'); + if (like) { + // TODO: If we have a special function for LIKE patterns? + var relike = new RegExp(like.value.replace(/%/g, '.*'), 'g'); + } + if (ls && ls.databases) { + for (var dbid in ls.databases) { + res.push({databaseid: dbid}); + } + if (like && res && res.length > 0) { + res = res.filter(function(d) { + return d.databaseid.match(relike); + }); + } + } + if (cb) res = cb(res); + return res; +}; + +/** + Create table in localStorage database + @param databaseid {string} AlaSQL database id + @param tableid {string} Table id + @param ifnotexists {boolean} If not exists flag + @param cb {function} Callback +*/ + +LS.createTable = function(databaseid, tableid, ifnotexists, cb) { + var res = 1; + var lsdbid = alasql.databases[databaseid].lsdbid; + var tb = LS.get(lsdbid + '.' + tableid); + // Check if such record exists + if (tb && !ifnotexists) { + throw new Error( + 'Table "' + tableid + '" alsready exists in localStorage database "' + lsdbid + '"' + ); + } + var lsdb = LS.get(lsdbid); + var table = alasql.databases[databaseid].tables[tableid]; + + // TODO: Check if required + lsdb.tables[tableid] = true; + + LS.set(lsdbid, lsdb); + LS.storeTable(databaseid, tableid); + + if (cb) res = cb(res); + return res; +}; + +/** + Empty table and reset identities + @param databaseid {string} AlaSQL database id (not external localStorage) + @param tableid {string} Table name + @param ifexists {boolean} If exists flag + @param cb {function} Callback + @return 1 on success +*/ +LS.truncateTable = function(databaseid, tableid, ifexists, cb) { + var res = 1; + var lsdbid = alasql.databases[databaseid].lsdbid; + var lsdb; + if (alasql.options.autocommit) { + lsdb = LS.get(lsdbid); + } else { + lsdb = alasql.databases[databaseid]; + } + + if (!ifexists && !lsdb.tables[tableid]) { + throw new Error( + 'Cannot truncate table "' + tableid + '" in localStorage, because it does not exist' + ); + } + + //load table + var tbl = LS.restoreTable(databaseid, tableid); + + //clear data from table + tbl.data = []; + //TODO reset all identities + //but identities are not working on LOCALSTORAGE + //See test 607 for details + + //store table + LS.storeTable(databaseid, tableid); + + if (cb) res = cb(res); + return res; +}; + +/** + Create table in localStorage database + @param databaseid {string} AlaSQL database id + @param tableid {string} Table id + @param ifexists {boolean} If exists flag + @param cb {function} Callback +*/ + +LS.dropTable = function(databaseid, tableid, ifexists, cb) { + var res = 1; + var lsdbid = alasql.databases[databaseid].lsdbid; + var lsdb; + + if (alasql.options.autocommit) { + lsdb = LS.get(lsdbid); + } else { + lsdb = alasql.databases[databaseid]; + } + if (!ifexists && !lsdb.tables[tableid]) { + throw new Error( + 'Cannot drop table "' + tableid + '" in localStorage, because it does not exist' + ); + } + delete lsdb.tables[tableid]; + LS.set(lsdbid, lsdb); + // localStorage.removeItem(lsdbid+'.'+tableid); + LS.removeTable(databaseid, tableid); + if (cb) res = cb(res); + return res; +}; + +/** + Read all data from table +*/ + +LS.fromTable = function(databaseid, tableid, cb, idx, query) { + + var lsdbid = alasql.databases[databaseid].lsdbid; + // var res = LS.get(lsdbid+'.'+tableid); + + var res = LS.restoreTable(databaseid, tableid).data; + + if (cb) res = cb(res, idx, query); + return res; +}; + +/** + Insert data into the table + @param databaseid {string} Database id + @param tableid {string} Table id + @param value {array} Array of values + @param columns {array} Columns (not used) + @param cb {function} Callback +*/ + +LS.intoTable = function(databaseid, tableid, value, columns, cb) { + + var lsdbid = alasql.databases[databaseid].lsdbid; + var res = value.length; + // var tb = LS.get(lsdbid+'.'+tableid); + var tb = LS.restoreTable(databaseid, tableid); + for (var columnid in tb.identities) { + var ident = tb.identities[columnid]; + + for (var index in value) { + value[index][columnid] = ident.value; + ident.value += ident.step; + } + } + if (!tb.data) tb.data = []; + tb.data = tb.data.concat(value); + // LS.set(lsdbid+'.'+tableid, tb); + LS.storeTable(databaseid, tableid); + + if (cb) res = cb(res); + + return res; +}; + +/** + Laad data from table +*/ +LS.loadTableData = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + var lsdbid = alasql.databases[databaseid].lsdbid; + LS.restoreTable(databaseid, tableid); + // db.tables[tableid].data = LS.get(lsdbid+'.'+tableid); +}; + +/** + Save data to the table +*/ + +LS.saveTableData = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + var lsdbid = alasql.databases[databaseid].lsdbid; + LS.storeTable(lsdbid, tableid); + // LS.set(lsdbid+'.'+tableid,db.tables[tableid].data); + db.tables[tableid].data = undefined; +}; + +/** + Commit +*/ + +LS.commit = function(databaseid, cb) { + + var db = alasql.databases[databaseid]; + var lsdbid = alasql.databases[databaseid].lsdbid; + var lsdb = {databaseid: lsdbid, tables: {}}; + if (db.tables) { + for (var tbid in db.tables) { + // TODO: Question - do we need this line + lsdb.tables[tbid] = true; + LS.storeTable(databaseid, tbid); + // LS.set(lsdbid+'.'+tbid, db.tables[tbid].data); + } + } + LS.set(lsdbid, lsdb); + return cb ? cb(1) : 1; +}; + +/** + Alias BEGIN = COMMIT +*/ +LS.begin = LS.commit; + +/** + ROLLBACK +*/ + +LS.rollback = function(databaseid, cb) { + // This does not work and should be fixed + // Plus test 151 and 231 + + return; + + var db = alasql.databases[databaseid]; + db.dbversion++; + + var lsdbid = alasql.databases[databaseid].lsdbid; + var lsdb = LS.get(lsdbid); + // if(!alasql.options.autocommit) { + + delete alasql.databases[databaseid]; + alasql.databases[databaseid] = new alasql.Database(databaseid); + extend(alasql.databases[databaseid], lsdb); + alasql.databases[databaseid].databaseid = databaseid; + alasql.databases[databaseid].engineid = 'LOCALSTORAGE'; + + if (lsdb.tables) { + for (var tbid in lsdb.tables) { + // var tb = new alasql.Table({columns: db.tables[tbid].columns}); + // extend(tb,lsdb.tables[tbid]); + // lsdb.tables[tbid] = true; + + // if(!alasql.options.autocommit) { + + // lsdb.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid); + LS.restoreTable(databaseid, tbid); + // } + // lsdb.tables[tbid].indexColumns(); + + // index columns + // convert types + } + } + // } + +}; + +// +// 91websql.js +// WebSQL database support +// (c) 2014, Andrey Gershun +// + +var SQLITE = (alasql.engines.SQLITE = function() {}); + +SQLITE.createDatabase = function(wdbid, args, ifnotexists, dbid, cb) { + throw new Error('Connot create SQLITE database in memory. Attach it.'); +}; + +SQLITE.dropDatabase = function(databaseid) { + throw new Error('This is impossible to drop SQLite database. Detach it.'); +}; + +SQLITE.attachDatabase = function(sqldbid, dbid, args, params, cb) { + var res = 1; + if (alasql.databases[dbid]) { + throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); + } + + if ((args[0] && args[0] instanceof yy.StringValue) || args[0] instanceof yy.ParamValue) { + if (args[0] instanceof yy.StringValue) { + var value = args[0].value; + } else if (args[0] instanceof yy.ParamValue) { + var value = params[args[0].param]; + } + alasql.utils.loadBinaryFile( + value, + true, + function(data) { + var db = new alasql.Database(dbid || sqldbid); + db.engineid = 'SQLITE'; + db.sqldbid = sqldbid; + var sqldb = (db.sqldb = new SQL.Database(data)); + db.tables = []; + var tables = sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values; + + tables.forEach(function(tbl) { + db.tables[tbl[1]] = {}; + var columns = (db.tables[tbl[1]].columns = []); + var ast = alasql.parse(tbl[4]); + + var coldefs = ast.statements[0].columns; + if (coldefs && coldefs.length > 0) { + coldefs.forEach(function(cd) { + columns.push(cd); + }); + } + }); + + cb(1); + }, + function(err) { + throw new Error('Cannot open SQLite database file "' + args[0].value + '"'); + } + ); + return res; + } else { + throw new Error('Cannot attach SQLite database without a file'); + } + + return res; +}; + +SQLITE.fromTable = function(databaseid, tableid, cb, idx, query) { + var data = alasql.databases[databaseid].sqldb.exec('SELECT * FROM ' + tableid); + var columns = (query.sources[idx].columns = []); + if (data[0].columns.length > 0) { + data[0].columns.forEach(function(columnid) { + columns.push({columnid: columnid}); + }); + } + + var res = []; + if (data[0].values.length > 0) { + data[0].values.forEach(function(d) { + var r = {}; + columns.forEach(function(col, idx) { + r[col.columnid] = d[idx]; + }); + res.push(r); + }); + } + if (cb) cb(res, idx, query); +}; + +SQLITE.intoTable = function(databaseid, tableid, value, columns, cb) { + var sqldb = alasql.databases[databaseid].sqldb; + for (var i = 0, ilen = value.length; i < ilen; i++) { + var s = 'INSERT INTO ' + tableid + ' ('; + var d = value[i]; + var keys = Object.keys(d); + s += keys.join(','); + s += ') VALUES ('; + s += keys + .map(function(k) { + v = d[k]; + if (typeof v == 'string') v = "'" + v + "'"; + return v; + }) + .join(','); + s += ')'; + sqldb.exec(s); + } + var res = ilen; + if (cb) cb(res); + return res; +}; + +// +// 91localstorage.js +// localStorage and DOM-Storage engine +// Date: 09.12.2014 +// (c) Andrey Gershun +// + +var FS = (alasql.engines.FILESTORAGE = alasql.engines.FILE = function() {}); + +FS.createDatabase = function(fsdbid, args, ifnotexists, dbid, cb) { + + var res = 1; + var filename = args[0].value; + + alasql.utils.fileExists(filename, function(fex) { + + if (fex) { + if (ifnotexists) { + res = 0; + if (cb) res = cb(res); + return res; + } else { + throw new Error('Cannot create new database file, because it already exists'); + } + } else { + var data = {tables: {}}; + alasql.utils.saveFile(filename, JSON.stringify(data), function(data) { + if (cb) res = cb(res); + }); + } + }); + return res; +}; + +FS.dropDatabase = function(fsdbid, ifexists, cb) { + var res; + var filename = fsdbid.value; + + alasql.utils.fileExists(filename, function(fex) { + if (fex) { + res = 1; + alasql.utils.deleteFile(filename, function() { + res = 1; + if (cb) res = cb(res); + }); + } else { + if (!ifexists) { + throw new Error('Cannot drop database file, because it does not exist'); + } + res = 0; + if (cb) res = cb(res); + } + }); + return res; +}; + +FS.attachDatabase = function(fsdbid, dbid, args, params, cb) { + + var res = 1; + if (alasql.databases[dbid]) { + throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); + } + var db = new alasql.Database(dbid || fsdbid); + db.engineid = 'FILESTORAGE'; + // db.fsdbid = fsdbid; + db.filename = args[0].value; + loadFile(db.filename, !!cb, function(s) { + try { + db.data = JSON.parse(s); + } catch (err) { + throw new Error('Data in FileStorage database are corrupted'); + } + db.tables = db.data.tables; + // IF AUTOCOMMIT IS OFF then copy data to memory + if (!alasql.options.autocommit) { + if (db.tables) { + for (var tbid in db.tables) { + db.tables[tbid].data = db.data[tbid]; + } + } + } + if (cb) res = cb(res); + }); + return res; +}; + +FS.createTable = function(databaseid, tableid, ifnotexists, cb) { + var db = alasql.databases[databaseid]; + var tb = db.data[tableid]; + var res = 1; + + if (tb && !ifnotexists) { + throw new Error('Table "' + tableid + '" alsready exists in the database "' + fsdbid + '"'); + } + var table = alasql.databases[databaseid].tables[tableid]; + db.data.tables[tableid] = {columns: table.columns}; + db.data[tableid] = []; + + FS.updateFile(databaseid); + + if (cb) cb(res); + return res; +}; + +FS.updateFile = function(databaseid) { + + var db = alasql.databases[databaseid]; + if (db.issaving) { + db.postsave = true; + return; + } + db.issaving = true; + db.postsave = false; + alasql.utils.saveFile(db.filename, JSON.stringify(db.data), function() { + db.issaving = false; + + if (db.postsave) { + setTimeout(function() { + FS.updateFile(databaseid); + }, 50); // TODO Test with different timeout parameters + } + }); +}; + +FS.dropTable = function(databaseid, tableid, ifexists, cb) { + var res = 1; + var db = alasql.databases[databaseid]; + if (!ifexists && !db.tables[tableid]) { + throw new Error( + 'Cannot drop table "' + tableid + '" in fileStorage, because it does not exist' + ); + } + delete db.tables[tableid]; + delete db.data.tables[tableid]; + delete db.data[tableid]; + FS.updateFile(databaseid); + if (cb) cb(res); + return res; +}; + +FS.fromTable = function(databaseid, tableid, cb, idx, query) { + + var db = alasql.databases[databaseid]; + var res = db.data[tableid]; + if (cb) res = cb(res, idx, query); + return res; +}; + +FS.intoTable = function(databaseid, tableid, value, columns, cb) { + var db = alasql.databases[databaseid]; + var res = value.length; + var tb = db.data[tableid]; + if (!tb) tb = []; + db.data[tableid] = tb.concat(value); + FS.updateFile(databaseid); + if (cb) cb(res); + return res; +}; + +FS.loadTableData = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + db.tables[tableid].data = db.data[tableid]; +}; + +FS.saveTableData = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + db.data[tableid] = db.tables[tableid].data; + db.tables[tableid].data = null; + FS.updateFile(databaseid); +}; + +FS.commit = function(databaseid, cb) { + + var db = alasql.databases[databaseid]; + var fsdb = {tables: {}}; + if (db.tables) { + for (var tbid in db.tables) { + db.data.tables[tbid] = {columns: db.tables[tbid].columns}; + db.data[tbid] = db.tables[tbid].data; + } + } + FS.updateFile(databaseid); + return cb ? cb(1) : 1; +}; + +FS.begin = FS.commit; + +FS.rollback = function(databaseid, cb) { + var res = 1; + var db = alasql.databases[databaseid]; + db.dbversion++; + + // var lsdbid = alasql.databases[databaseid].lsdbid; + // lsdb = LS.get(lsdbid); + wait(); + function wait() { + setTimeout(function() { + if (db.issaving) { + return wait(); + } else { + alasql.loadFile(db.filename, !!cb, function(data) { + db.data = data; + db.tables = {}; + for (var tbid in db.data.tables) { + var tb = new alasql.Table({columns: db.data.tables[tbid].columns}); + extend(tb, db.data.tables[tbid]); + db.tables[tbid] = tb; + if (!alasql.options.autocommit) { + db.tables[tbid].data = db.data[tbid]; + } + db.tables[tbid].indexColumns(); + + // index columns + // convert types + } + + delete alasql.databases[databaseid]; + alasql.databases[databaseid] = new alasql.Database(databaseid); + extend(alasql.databases[databaseid], db); + alasql.databases[databaseid].engineid = 'FILESTORAGE'; + alasql.databases[databaseid].filename = db.filename; + + if (cb) res = cb(res); + // Todo: check why no return + }); + } + }, 100); + } + + // if(!alasql.options.autocommit) { + +}; + +if(utils.isBrowser && !utils.isWebWorker) { + +alasql = alasql || false; + +if (!alasql) { + throw new Error('alasql was not found'); +} - FS_proto.error = FS_proto.onwritestart = FS_proto.onprogress = FS_proto.onwrite = FS_proto.onabort = FS_proto.onerror = FS_proto.onwriteend = null; +alasql.worker = function() { + throw new Error('Can find webworker in this enviroment'); +}; + +if (typeof Worker !== 'undefined') { + alasql.worker = function(path, paths, cb) { + // var path; + if (path === true) { + path = undefined; + } + + if (typeof path === 'undefined') { + var sc = document.getElementsByTagName('script'); + for (var i = 0; i < sc.length; i++) { + if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') { + path = sc[i].src.substr(0, sc[i].src.length - 16) + 'alasql.js'; + break; + } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') { + path = sc[i].src.substr(0, sc[i].src.length - 20) + 'alasql.min.js'; + break; + } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') { + path = sc[i].src; + break; + } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') { + path = sc[i].src.substr(0, sc[i].src.length - 13) + 'alasql.min.js'; + break; + } + } + } + + if (typeof path === 'undefined') { + throw new Error('Path to alasql.js is not specified'); + } else if (path !== false) { + var js = "importScripts('"; + js += path; + js += + "');self.onmessage = function(event) {" + + 'alasql(event.data.sql,event.data.params, function(data){' + + 'postMessage({id:event.data.id, data:data});});}'; + + var blob = new Blob([js], {type: 'text/plain'}); + alasql.webworker = new Worker(URL.createObjectURL(blob)); + + alasql.webworker.onmessage = function(event) { + var id = event.data.id; + + alasql.buffer[id](event.data.data); + delete alasql.buffer[id]; + }; + + alasql.webworker.onerror = function(e) { + throw e; + }; + + if (arguments.length > 1) { + var sql = + 'REQUIRE ' + + paths + .map(function(p) { + return '"' + p + '"'; + }) + .join(','); + alasql(sql, [], cb); + } + } else if (path === false) { + delete alasql.webworker; + return; + } + }; +} - return saveAs; - })( - (typeof self !== 'undefined' && self) || - (typeof window !== 'undefined' && window) || - this.content - ); -// `self` is undefined in Firefox for Android content script context -// while `this` is nsIContentFrameMessageManager -// with an attribute `content` that corresponds to the window - -if (typeof module !== 'undefined' && module.exports) { - module.exports.saveAs = saveAs; -} else if (typeof define !== 'undefined' && define !== null && define.amd !== null) { - define('FileSaver.js', function() { - return saveAs; - }); -} +/* FileSaver.js + * A saveAs() FileSaver implementation. + * 1.3.2 + * 2016-06-16 18:25:19 + * + * By Eli Grey, http://eligrey.com + * License: MIT + * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md + */ + +/*global self */ +/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */ + +/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ + +var saveAs = + saveAs || + (function(view) { + 'use strict'; + // IE <10 is explicitly unsupported + if ( + typeof view === 'undefined' || + (typeof navigator !== 'undefined' && /MSIE [1-9]\./.test(navigator.userAgent)) + ) { + return; + } + var doc = view.document, + // only get URL when necessary in case Blob.js hasn't overridden it yet + get_URL = function() { + return view.URL || view.webkitURL || view; + }, + save_link = doc.createElementNS('http://www.w3.org/1999/xhtml', 'a'), + can_use_save_link = 'download' in save_link, + click = function(node) { + var event = new MouseEvent('click'); + node.dispatchEvent(event); + }, + is_safari = /constructor/i.test(view.HTMLElement) || view.safari, + is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent), + throw_outside = function(ex) { + (view.setImmediate || view.setTimeout)(function() { + throw ex; + }, 0); + }, + force_saveable_type = 'application/octet-stream', + // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to + arbitrary_revoke_timeout = 1000 * 40, // in ms + revoke = function(file) { + var revoker = function() { + if (typeof file === 'string') { + // file is an object URL + get_URL().revokeObjectURL(file); + } else { + // file is a File + file.remove(); + } + }; + setTimeout(revoker, arbitrary_revoke_timeout); + }, + dispatch = function(filesaver, event_types, event) { + event_types = [].concat(event_types); + var i = event_types.length; + while (i--) { + var listener = filesaver['on' + event_types[i]]; + if (typeof listener === 'function') { + try { + listener.call(filesaver, event || filesaver); + } catch (ex) { + throw_outside(ex); + } + } + } + }, + auto_bom = function(blob) { + // prepend BOM for UTF-8 XML and text/* types (including HTML) + // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF + if ( + /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test( + blob.type + ) + ) { + return new Blob([String.fromCharCode(0xfeff), blob], {type: blob.type}); + } + return blob; + }, + FileSaver = function(blob, name, no_auto_bom) { + if (!no_auto_bom) { + blob = auto_bom(blob); + } + // First try a.download, then web filesystem, then object URLs + var filesaver = this, + type = blob.type, + force = type === force_saveable_type, + object_url, + dispatch_all = function() { + dispatch(filesaver, 'writestart progress write writeend'.split(' ')); + }, + // on any filesys errors revert to saving with object URLs + fs_error = function() { + if ((is_chrome_ios || (force && is_safari)) && view.FileReader) { + // Safari doesn't allow downloading of blob urls + var reader = new FileReader(); + reader.onloadend = function() { + var url = is_chrome_ios + ? reader.result + : reader.result.replace( + /^data:[^;]*;/, + 'data:attachment/file;' + ); + var popup = view.open(url, '_blank'); + if (!popup) view.location.href = url; + url = undefined; // release reference before dispatching + filesaver.readyState = filesaver.DONE; + dispatch_all(); + }; + reader.readAsDataURL(blob); + filesaver.readyState = filesaver.INIT; + return; + } + // don't create more object URLs than needed + if (!object_url) { + object_url = get_URL().createObjectURL(blob); + } + if (force) { + view.location.href = object_url; + } else { + var opened = view.open(object_url, '_blank'); + if (!opened) { + // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html + view.location.href = object_url; + } + } + filesaver.readyState = filesaver.DONE; + dispatch_all(); + revoke(object_url); + }; + filesaver.readyState = filesaver.INIT; + + if (can_use_save_link) { + object_url = get_URL().createObjectURL(blob); + setTimeout(function() { + save_link.href = object_url; + save_link.download = name; + click(save_link); + dispatch_all(); + revoke(object_url); + filesaver.readyState = filesaver.DONE; + }); + return; + } + + fs_error(); + }, + FS_proto = FileSaver.prototype, + saveAs = function(blob, name, no_auto_bom) { + return new FileSaver(blob, name || blob.name || 'download', no_auto_bom); + }; + // IE 10+ (native saveAs) + if (typeof navigator !== 'undefined' && navigator.msSaveOrOpenBlob) { + return function(blob, name, no_auto_bom) { + name = name || blob.name || 'download'; + + if (!no_auto_bom) { + blob = auto_bom(blob); + } + return navigator.msSaveOrOpenBlob(blob, name); + }; + } + + FS_proto.abort = function() {}; + FS_proto.readyState = FS_proto.INIT = 0; + FS_proto.WRITING = 1; + FS_proto.DONE = 2; + + FS_proto.error = FS_proto.onwritestart = FS_proto.onprogress = FS_proto.onwrite = FS_proto.onabort = FS_proto.onerror = FS_proto.onwriteend = null; + + return saveAs; + })( + (typeof self !== 'undefined' && self) || + (typeof window !== 'undefined' && window) || + this.content + ); +// `self` is undefined in Firefox for Android content script context +// while `this` is nsIContentFrameMessageManager +// with an attribute `content` that corresponds to the window + +if (typeof module !== 'undefined' && module.exports) { + module.exports.saveAs = saveAs; +} else if (typeof define !== 'undefined' && define !== null && define.amd !== null) { + define('FileSaver.js', function() { + return saveAs; + }); +} /* eslint-disable */ diff --git a/dist/alasql.js b/dist/alasql.js index 6ecedb60f4..97daf2cb0e 100755 --- a/dist/alasql.js +++ b/dist/alasql.js @@ -1,19793 +1,19798 @@ -//! AlaSQL v0.4.11-develop-d00d3b02undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT -/* -@module alasql -@version 0.4.11-develop-d00d3b02undefined - -AlaSQL - JavaScript SQL database -© 2014-2016 Andrey Gershun & Mathias Rangel Wulff - -@license -The MIT License (MIT) - -Copyright 2014-2016 Andrey Gershun (agershun@gmail.com) & Mathias Rangel Wulff (m@rawu.dk) - -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. -*/ - -/* eslint-disable */ - -"use strict"; - -/** - @fileoverview AlaSQL JavaScript SQL library - @see http://github.com/agershun/alasql -*/ - -/** - Callback from statement - @callback statement-callback - @param {object} data Result data -*/ - -/** - UMD envelope for AlaSQL -*/ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - define([], factory); - } else if (typeof exports === 'object') { - /** alasql main function */ - module.exports = factory(); - } else { - root.alasql = factory(); - } -}(this, function () { - -/** - AlaSQL - Main Alasql class - @function - @param {string|function|object} sql - SQL-statement or data object for fuent interface - @param {object} params - SQL parameters - @param {function} cb - callback function - @param {object} scope - Scope for nested queries - @return {any} - Result data object - - @example - Standard sync call: - alasql('CREATE TABLE one'); - Query: - var res = alasql('SELECT * FROM one'); - Call with parameters: - var res = alasql('SELECT * FROM ?',[data]); - Standard async call with callback function: - alasql('SELECT * FROM ?',[data],function(res){ - console.log(data); - }); - Call with scope for subquery (to pass common values): - var scope = {one:{a:2,b;20}} - alasql('SELECT * FROM ? two WHERE two.a = one.a',[data],null,scope); - Call for fluent interface with data object: - alasql(data).Where(function(x){return x.a == 10}).exec(); - Call for fluent interface without data object: - alasql().From(data).Where(function(x){return x.a == 10}).exec(); - */ - -var alasql = function(sql, params, cb, scope) { - - params = params||[]; - - if(typeof importScripts !== 'function' && alasql.webworker) { - var id = alasql.lastid++; - alasql.buffer[id] = cb; - alasql.webworker.postMessage({id:id,sql:sql,params:params}); - return; - } - - if(arguments.length === 0) { - // Without arguments - Fluent interface - return new yy.Select({ - columns:[new yy.Column({columnid:'*'})], - from: [new yy.ParamValue({param:0})] - }); - } else if(arguments.length === 1){ - // Access promise notation without using `.promise(...)` - if(sql.constructor === Array){ - return alasql.promise(sql); - } - } - // Avoid setting params if not needed even with callback - if(typeof params === 'function'){ - scope = cb; - cb = params; - params = []; - } - - if(typeof params !== 'object'){ - params = [params]; - } - - // Standard interface - // alasql('#sql'); - if(typeof sql === 'string' && sql[0]==='#' && typeof document === "object") { - sql = document.querySelector(sql).textContent; - } else if(typeof sql === 'object' && sql instanceof HTMLElement) { - sql = sql.textContent; - } else if(typeof sql === 'function') { - // to run multiline functions - sql = sql.toString(); - sql = (/\/\*([\S\s]+)\*\//m.exec(sql) || ['','Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function.'])[1]; - } - // Run SQL - return alasql.exec(sql, params, cb, scope); -}; - -/** - Current version of alasql - @constant {string} -*/ -alasql.version = '0.4.11-develop-d00d3b02undefined'; - -/** - Debug flag - @type {boolean} -*/ -alasql.debug = undefined; // Initial debug variable - -//*only-for-browser/* -var require = function(){return null}; // as alasqlparser.js is generated, we can not "remove" referenses to -var __dirname = ''; -//*/ - -/* parser generated by jison 0.4.18 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var alasqlparser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,13],$V1=[1,104],$V2=[1,102],$V3=[1,103],$V4=[1,6],$V5=[1,42],$V6=[1,79],$V7=[1,76],$V8=[1,94],$V9=[1,93],$Va=[1,69],$Vb=[1,101],$Vc=[1,85],$Vd=[1,64],$Ve=[1,71],$Vf=[1,84],$Vg=[1,66],$Vh=[1,70],$Vi=[1,68],$Vj=[1,61],$Vk=[1,74],$Vl=[1,62],$Vm=[1,67],$Vn=[1,83],$Vo=[1,77],$Vp=[1,86],$Vq=[1,87],$Vr=[1,81],$Vs=[1,82],$Vt=[1,80],$Vu=[1,88],$Vv=[1,89],$Vw=[1,90],$Vx=[1,91],$Vy=[1,92],$Vz=[1,98],$VA=[1,65],$VB=[1,78],$VC=[1,72],$VD=[1,96],$VE=[1,97],$VF=[1,63],$VG=[1,73],$VH=[1,108],$VI=[1,107],$VJ=[10,306,602,764],$VK=[10,306,310,602,764],$VL=[1,115],$VM=[1,116],$VN=[1,117],$VO=[1,118],$VP=[1,119],$VQ=[130,353,410],$VR=[1,127],$VS=[1,126],$VT=[1,134],$VU=[1,164],$VV=[1,175],$VW=[1,178],$VX=[1,173],$VY=[1,181],$VZ=[1,185],$V_=[1,160],$V$=[1,182],$V01=[1,169],$V11=[1,171],$V21=[1,174],$V31=[1,183],$V41=[1,166],$V51=[1,193],$V61=[1,188],$V71=[1,189],$V81=[1,194],$V91=[1,195],$Va1=[1,196],$Vb1=[1,197],$Vc1=[1,198],$Vd1=[1,199],$Ve1=[1,200],$Vf1=[1,201],$Vg1=[1,202],$Vh1=[1,176],$Vi1=[1,177],$Vj1=[1,179],$Vk1=[1,180],$Vl1=[1,186],$Vm1=[1,192],$Vn1=[1,184],$Vo1=[1,187],$Vp1=[1,172],$Vq1=[1,170],$Vr1=[1,191],$Vs1=[1,203],$Vt1=[2,4,5],$Vu1=[2,471],$Vv1=[1,206],$Vw1=[1,211],$Vx1=[1,220],$Vy1=[1,216],$Vz1=[10,72,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VA1=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$VB1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC1=[1,249],$VD1=[1,256],$VE1=[1,265],$VF1=[1,270],$VG1=[1,269],$VH1=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VI1=[2,162],$VJ1=[1,281],$VK1=[10,74,78,306,310,505,602,764],$VL1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,302,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,344,356,368,369,370,373,374,386,389,396,400,401,402,403,404,405,406,408,409,417,418,420,424,426,433,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,514,515,516,517,602,764],$VM1=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VN1=[1,562],$VO1=[1,564],$VP1=[2,503],$VQ1=[1,569],$VR1=[1,580],$VS1=[1,583],$VT1=[1,584],$VU1=[10,78,89,132,137,146,189,296,306,310,470,602,764],$VV1=[10,74,306,310,602,764],$VW1=[2,567],$VX1=[1,602],$VY1=[2,4,5,156],$VZ1=[1,640],$V_1=[1,612],$V$1=[1,646],$V02=[1,647],$V12=[1,620],$V22=[1,631],$V32=[1,618],$V42=[1,626],$V52=[1,619],$V62=[1,627],$V72=[1,629],$V82=[1,621],$V92=[1,622],$Va2=[1,641],$Vb2=[1,638],$Vc2=[1,639],$Vd2=[1,615],$Ve2=[1,617],$Vf2=[1,609],$Vg2=[1,610],$Vh2=[1,611],$Vi2=[1,613],$Vj2=[1,614],$Vk2=[1,616],$Vl2=[1,623],$Vm2=[1,624],$Vn2=[1,628],$Vo2=[1,630],$Vp2=[1,632],$Vq2=[1,633],$Vr2=[1,634],$Vs2=[1,635],$Vt2=[1,636],$Vu2=[1,642],$Vv2=[1,643],$Vw2=[1,644],$Vx2=[1,645],$Vy2=[2,287],$Vz2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA2=[2,359],$VB2=[1,668],$VC2=[1,678],$VD2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE2=[1,694],$VF2=[1,703],$VG2=[1,702],$VH2=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VI2=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2=[2,202],$VK2=[1,725],$VL2=[10,72,78,93,98,118,128,162,168,169,183,232,245,247,306,310,602,764],$VM2=[2,163],$VN2=[1,728],$VO2=[2,4,5,112],$VP2=[1,741],$VQ2=[1,760],$VR2=[1,740],$VS2=[1,739],$VT2=[1,734],$VU2=[1,735],$VV2=[1,737],$VW2=[1,738],$VX2=[1,742],$VY2=[1,743],$VZ2=[1,744],$V_2=[1,745],$V$2=[1,746],$V03=[1,747],$V13=[1,748],$V23=[1,749],$V33=[1,750],$V43=[1,751],$V53=[1,752],$V63=[1,753],$V73=[1,754],$V83=[1,755],$V93=[1,756],$Va3=[1,757],$Vb3=[1,759],$Vc3=[1,761],$Vd3=[1,762],$Ve3=[1,763],$Vf3=[1,764],$Vg3=[1,765],$Vh3=[1,766],$Vi3=[1,767],$Vj3=[1,770],$Vk3=[1,771],$Vl3=[1,772],$Vm3=[1,773],$Vn3=[1,774],$Vo3=[1,775],$Vp3=[1,776],$Vq3=[1,777],$Vr3=[1,778],$Vs3=[1,779],$Vt3=[1,780],$Vu3=[1,781],$Vv3=[74,89,189],$Vw3=[10,74,78,154,187,230,297,306,310,343,356,368,369,373,374,602,764],$Vx3=[1,798],$Vy3=[10,74,78,300,306,310,602,764],$Vz3=[1,799],$VA3=[1,805],$VB3=[1,806],$VC3=[1,810],$VD3=[10,74,78,306,310,602,764],$VE3=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,312,317,420,424],$VF3=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VG3=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VH3=[2,4,5,132,296],$VI3=[1,844],$VJ3=[10,74,76,78,306,310,602,764],$VK3=[2,738],$VL3=[10,74,76,78,132,139,141,145,152,306,310,420,424,602,764],$VM3=[2,1161],$VN3=[10,74,76,78,139,141,145,152,306,310,420,424,602,764],$VO3=[10,74,76,78,139,141,145,306,310,420,424,602,764],$VP3=[10,74,78,139,141,306,310,602,764],$VQ3=[10,78,89,132,146,189,296,306,310,470,602,764],$VR3=[335,338,339],$VS3=[2,764],$VT3=[1,869],$VU3=[1,870],$VV3=[1,871],$VW3=[1,872],$VX3=[1,881],$VY3=[1,880],$VZ3=[164,166,334],$V_3=[2,444],$V$3=[1,936],$V04=[2,4,5,77,131,156,290,291,292,293],$V14=[1,951],$V24=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V34=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V44=[2,375],$V54=[1,958],$V64=[306,308,310],$V74=[74,300],$V84=[74,300,426],$V94=[1,965],$Va4=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vb4=[74,426],$Vc4=[1,978],$Vd4=[1,977],$Ve4=[1,984],$Vf4=[10,72,78,93,98,118,128,162,168,169,232,245,247,306,310,602,764],$Vg4=[1,1010],$Vh4=[10,72,78,306,310,602,764],$Vi4=[1,1016],$Vj4=[1,1017],$Vk4=[1,1018],$Vl4=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$Vm4=[1,1068],$Vn4=[1,1067],$Vo4=[1,1081],$Vp4=[1,1080],$Vq4=[1,1088],$Vr4=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$Vs4=[1,1119],$Vt4=[10,78,89,146,189,306,310,470,602,764],$Vu4=[1,1139],$Vv4=[1,1138],$Vw4=[1,1137],$Vx4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy4=[1,1153],$Vz4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VB4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VD4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE4=[2,406],$VF4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VG4=[2,285],$VH4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VI4=[10,78,306,310,602,764],$VJ4=[1,1189],$VK4=[10,77,78,143,145,152,181,302,306,310,420,424,602,764],$VL4=[10,74,78,306,308,310,464,602,764],$VM4=[1,1200],$VN4=[10,72,78,118,128,162,168,169,232,245,247,306,310,602,764],$VO4=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VP4=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VQ4=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VR4=[2,1085],$VS4=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VT4=[1,1252],$VU4=[10,74,78,128,306,308,310,464,602,764],$VV4=[115,116,124],$VW4=[2,584],$VX4=[1,1280],$VY4=[76,139],$VZ4=[2,724],$V_4=[1,1297],$V$4=[1,1298],$V05=[2,4,5,10,53,72,76,89,124,146,156,189,230,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$V15=[2,330],$V25=[1,1322],$V35=[1,1336],$V45=[1,1338],$V55=[2,487],$V65=[74,78],$V75=[10,306,308,310,464,602,764],$V85=[10,72,78,118,162,168,169,232,245,247,306,310,602,764],$V95=[1,1354],$Va5=[1,1358],$Vb5=[1,1359],$Vc5=[1,1361],$Vd5=[1,1362],$Ve5=[1,1363],$Vf5=[1,1364],$Vg5=[1,1365],$Vh5=[1,1366],$Vi5=[1,1367],$Vj5=[1,1368],$Vk5=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vl5=[1,1393],$Vm5=[10,72,78,118,162,168,169,245,247,306,310,602,764],$Vn5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vo5=[1,1490],$Vp5=[1,1492],$Vq5=[2,4,5,77,143,145,152,156,181,290,291,292,293,302,420,424],$Vr5=[1,1506],$Vs5=[10,72,74,78,162,168,169,245,247,306,310,602,764],$Vt5=[1,1524],$Vu5=[1,1526],$Vv5=[1,1527],$Vw5=[1,1523],$Vx5=[1,1522],$Vy5=[1,1521],$Vz5=[1,1528],$VA5=[1,1518],$VB5=[1,1519],$VC5=[1,1520],$VD5=[1,1545],$VE5=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VF5=[1,1556],$VG5=[1,1564],$VH5=[1,1563],$VI5=[10,72,78,162,168,169,245,247,306,310,602,764],$VJ5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VK5=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VL5=[1,1621],$VM5=[1,1623],$VN5=[1,1620],$VO5=[1,1622],$VP5=[187,193,368,369,370,373],$VQ5=[2,515],$VR5=[1,1628],$VS5=[1,1647],$VT5=[10,72,78,162,168,169,306,310,602,764],$VU5=[1,1657],$VV5=[1,1658],$VW5=[1,1659],$VX5=[1,1678],$VY5=[4,10,243,306,310,343,356,602,764],$VZ5=[1,1726],$V_5=[10,72,74,78,118,162,168,169,239,245,247,306,310,602,764],$V$5=[2,4,5,77],$V06=[1,1820],$V16=[1,1832],$V26=[1,1851],$V36=[10,72,78,162,168,169,306,310,415,602,764],$V46=[10,74,78,230,306,310,602,764]; -var parser = {trace: function trace() { }, -yy: {}, -symbols_: {"error":2,"Literal":3,"LITERAL":4,"BRALITERAL":5,"NonReserved":6,"LiteralWithSpaces":7,"main":8,"Statements":9,"EOF":10,"Statements_group0":11,"AStatement":12,"ExplainStatement":13,"EXPLAIN":14,"QUERY":15,"PLAN":16,"Statement":17,"AlterTable":18,"AttachDatabase":19,"Call":20,"CreateDatabase":21,"CreateIndex":22,"CreateGraph":23,"CreateTable":24,"CreateView":25,"CreateEdge":26,"CreateVertex":27,"Declare":28,"Delete":29,"DetachDatabase":30,"DropDatabase":31,"DropIndex":32,"DropTable":33,"DropView":34,"If":35,"Insert":36,"Merge":37,"Reindex":38,"RenameTable":39,"Select":40,"ShowCreateTable":41,"ShowColumns":42,"ShowDatabases":43,"ShowIndex":44,"ShowTables":45,"TruncateTable":46,"WithSelect":47,"CreateTrigger":48,"DropTrigger":49,"BeginTransaction":50,"CommitTransaction":51,"RollbackTransaction":52,"EndTransaction":53,"UseDatabase":54,"Update":55,"JavaScript":56,"Source":57,"Assert":58,"While":59,"Continue":60,"Break":61,"BeginEnd":62,"Print":63,"Require":64,"SetVariable":65,"ExpressionStatement":66,"AddRule":67,"Query":68,"Echo":69,"CreateFunction":70,"CreateAggregate":71,"WITH":72,"WithTablesList":73,"COMMA":74,"WithTable":75,"AS":76,"LPAR":77,"RPAR":78,"SelectClause":79,"Select_option0":80,"IntoClause":81,"FromClause":82,"Select_option1":83,"WhereClause":84,"GroupClause":85,"OrderClause":86,"LimitClause":87,"UnionClause":88,"SEARCH":89,"Select_repetition0":90,"Select_option2":91,"PivotClause":92,"PIVOT":93,"Expression":94,"FOR":95,"PivotClause_option0":96,"PivotClause_option1":97,"UNPIVOT":98,"IN":99,"ColumnsList":100,"PivotClause_option2":101,"PivotClause2":102,"AsList":103,"AsLiteral":104,"AsPart":105,"RemoveClause":106,"REMOVE":107,"RemoveClause_option0":108,"RemoveColumnsList":109,"RemoveColumn":110,"Column":111,"LIKE":112,"StringValue":113,"ArrowDot":114,"ARROW":115,"DOT":116,"SearchSelector":117,"ORDER":118,"BY":119,"OrderExpressionsList":120,"SearchSelector_option0":121,"DOTDOT":122,"CARET":123,"EQ":124,"SearchSelector_repetition_plus0":125,"SearchSelector_repetition_plus1":126,"SearchSelector_option1":127,"WHERE":128,"OF":129,"CLASS":130,"NUMBER":131,"STRING":132,"SLASH":133,"VERTEX":134,"EDGE":135,"EXCLAMATION":136,"SHARP":137,"MODULO":138,"GT":139,"LT":140,"GTGT":141,"LTLT":142,"DOLLAR":143,"Json":144,"AT":145,"SET":146,"SetColumnsList":147,"TO":148,"VALUE":149,"ROW":150,"ExprList":151,"COLON":152,"PlusStar":153,"NOT":154,"SearchSelector_repetition2":155,"IF":156,"SearchSelector_repetition3":157,"Aggregator":158,"SearchSelector_repetition4":159,"SearchSelector_group0":160,"SearchSelector_repetition5":161,"UNION":162,"SearchSelectorList":163,"ALL":164,"SearchSelector_repetition6":165,"ANY":166,"SearchSelector_repetition7":167,"INTERSECT":168,"EXCEPT":169,"AND":170,"OR":171,"PATH":172,"RETURN":173,"ResultColumns":174,"REPEAT":175,"SearchSelector_repetition8":176,"SearchSelectorList_repetition0":177,"SearchSelectorList_repetition1":178,"PLUS":179,"STAR":180,"QUESTION":181,"SearchFrom":182,"FROM":183,"SelectModifier":184,"DISTINCT":185,"TopClause":186,"UNIQUE":187,"SelectClause_option0":188,"SELECT":189,"COLUMN":190,"MATRIX":191,"TEXTSTRING":192,"INDEX":193,"RECORDSET":194,"TOP":195,"NumValue":196,"TopClause_option0":197,"INTO":198,"Table":199,"FuncValue":200,"ParamValue":201,"VarValue":202,"FromTablesList":203,"JoinTablesList":204,"ApplyClause":205,"CROSS":206,"APPLY":207,"OUTER":208,"FromTable":209,"FromTable_option0":210,"FromTable_option1":211,"INDEXED":212,"INSERTED":213,"FromString":214,"JoinTable":215,"JoinMode":216,"JoinTableAs":217,"OnClause":218,"JoinTableAs_option0":219,"JoinTableAs_option1":220,"JoinModeMode":221,"NATURAL":222,"JOIN":223,"INNER":224,"LEFT":225,"RIGHT":226,"FULL":227,"SEMI":228,"ANTI":229,"ON":230,"USING":231,"GROUP":232,"GroupExpressionsList":233,"HavingClause":234,"GroupExpression":235,"GROUPING":236,"ROLLUP":237,"CUBE":238,"HAVING":239,"CORRESPONDING":240,"OrderExpression":241,"DIRECTION":242,"COLLATE":243,"NOCASE":244,"LIMIT":245,"OffsetClause":246,"OFFSET":247,"LimitClause_option0":248,"FETCH":249,"LimitClause_option1":250,"LimitClause_option2":251,"LimitClause_option3":252,"ResultColumn":253,"Star":254,"AggrValue":255,"Op":256,"LogicValue":257,"NullValue":258,"ExistsValue":259,"CaseValue":260,"CastClause":261,"ArrayValue":262,"NewClause":263,"Expression_group0":264,"CURRENT_TIMESTAMP":265,"JAVASCRIPT":266,"CREATE":267,"FUNCTION":268,"AGGREGATE":269,"NEW":270,"CAST":271,"ColumnType":272,"CONVERT":273,"PrimitiveValue":274,"OverClause":275,"OVER":276,"OverPartitionClause":277,"OverOrderByClause":278,"PARTITION":279,"SUM":280,"COUNT":281,"MIN":282,"MAX":283,"AVG":284,"FIRST":285,"LAST":286,"AGGR":287,"ARRAY":288,"FuncValue_option0":289,"REPLACE":290,"DATEADD":291,"DATEDIFF":292,"INTERVAL":293,"TRUE":294,"FALSE":295,"NSTRING":296,"NULL":297,"EXISTS":298,"ARRAYLBRA":299,"RBRA":300,"ParamValue_group0":301,"BRAQUESTION":302,"CASE":303,"WhensList":304,"ElseClause":305,"END":306,"When":307,"WHEN":308,"THEN":309,"ELSE":310,"REGEXP":311,"TILDA":312,"GLOB":313,"ESCAPE":314,"NOT_LIKE":315,"BARBAR":316,"MINUS":317,"AMPERSAND":318,"BAR":319,"GE":320,"LE":321,"EQEQ":322,"EQEQEQ":323,"NE":324,"NEEQEQ":325,"NEEQEQEQ":326,"CondOp":327,"AllSome":328,"ColFunc":329,"BETWEEN":330,"NOT_BETWEEN":331,"IS":332,"DOUBLECOLON":333,"SOME":334,"UPDATE":335,"SetColumn":336,"SetColumn_group0":337,"DELETE":338,"INSERT":339,"Into":340,"Values":341,"ValuesListsList":342,"DEFAULT":343,"VALUES":344,"ValuesList":345,"Value":346,"DateValue":347,"TemporaryClause":348,"TableClass":349,"IfNotExists":350,"CreateTableDefClause":351,"CreateTableOptionsClause":352,"TABLE":353,"CreateTableOptions":354,"CreateTableOption":355,"IDENTITY":356,"TEMP":357,"ColumnDefsList":358,"ConstraintsList":359,"Constraint":360,"ConstraintName":361,"PrimaryKey":362,"ForeignKey":363,"UniqueKey":364,"IndexKey":365,"Check":366,"CONSTRAINT":367,"CHECK":368,"PRIMARY":369,"KEY":370,"PrimaryKey_option0":371,"ColsList":372,"FOREIGN":373,"REFERENCES":374,"ForeignKey_option0":375,"OnForeignKeyClause":376,"ParColsList":377,"OnDeleteClause":378,"OnUpdateClause":379,"NO":380,"ACTION":381,"UniqueKey_option0":382,"UniqueKey_option1":383,"ColumnDef":384,"ColumnConstraintsClause":385,"ColumnConstraints":386,"SingularColumnType":387,"NumberMax":388,"ENUM":389,"MAXNUM":390,"ColumnConstraintsList":391,"ColumnConstraint":392,"ParLiteral":393,"ColumnConstraint_option0":394,"ColumnConstraint_option1":395,"DROP":396,"DropTable_group0":397,"IfExists":398,"TablesList":399,"ALTER":400,"RENAME":401,"ADD":402,"MODIFY":403,"ATTACH":404,"DATABASE":405,"DETACH":406,"AsClause":407,"USE":408,"SHOW":409,"VIEW":410,"CreateView_option0":411,"CreateView_option1":412,"SubqueryRestriction":413,"READ":414,"ONLY":415,"OPTION":416,"SOURCE":417,"ASSERT":418,"JsonObject":419,"ATLBRA":420,"JsonArray":421,"JsonValue":422,"JsonPrimitiveValue":423,"LCUR":424,"JsonPropertiesList":425,"RCUR":426,"JsonElementsList":427,"JsonProperty":428,"OnOff":429,"SetPropsList":430,"AtDollar":431,"SetProp":432,"OFF":433,"COMMIT":434,"TRANSACTION":435,"ROLLBACK":436,"BEGIN":437,"ElseStatement":438,"WHILE":439,"CONTINUE":440,"BREAK":441,"PRINT":442,"REQUIRE":443,"StringValuesList":444,"PluginsList":445,"Plugin":446,"ECHO":447,"DECLARE":448,"DeclaresList":449,"DeclareItem":450,"TRUNCATE":451,"MERGE":452,"MergeInto":453,"MergeUsing":454,"MergeOn":455,"MergeMatchedList":456,"OutputClause":457,"MergeMatched":458,"MergeNotMatched":459,"MATCHED":460,"MergeMatchedAction":461,"MergeNotMatchedAction":462,"TARGET":463,"OUTPUT":464,"CreateVertex_option0":465,"CreateVertex_option1":466,"CreateVertex_option2":467,"CreateVertexSet":468,"SharpValue":469,"CONTENT":470,"CreateEdge_option0":471,"GRAPH":472,"GraphList":473,"GraphVertexEdge":474,"GraphElement":475,"GraphVertexEdge_option0":476,"GraphVertexEdge_option1":477,"GraphElementVar":478,"GraphVertexEdge_option2":479,"GraphVertexEdge_option3":480,"GraphVertexEdge_option4":481,"GraphVar":482,"GraphAsClause":483,"GraphAtClause":484,"GraphElement2":485,"GraphElement2_option0":486,"GraphElement2_option1":487,"GraphElement2_option2":488,"GraphElement2_option3":489,"GraphElement_option0":490,"GraphElement_option1":491,"GraphElement_option2":492,"SharpLiteral":493,"GraphElement_option3":494,"GraphElement_option4":495,"GraphElement_option5":496,"ColonLiteral":497,"DeleteVertex":498,"DeleteVertex_option0":499,"DeleteEdge":500,"DeleteEdge_option0":501,"DeleteEdge_option1":502,"DeleteEdge_option2":503,"Term":504,"COLONDASH":505,"TermsList":506,"QUESTIONDASH":507,"CALL":508,"TRIGGER":509,"BeforeAfter":510,"InsertDeleteUpdate":511,"CreateTrigger_option0":512,"CreateTrigger_option1":513,"BEFORE":514,"AFTER":515,"INSTEAD":516,"REINDEX":517,"A":518,"ABSENT":519,"ABSOLUTE":520,"ACCORDING":521,"ADA":522,"ADMIN":523,"ALWAYS":524,"ASC":525,"ASSERTION":526,"ASSIGNMENT":527,"ATTRIBUTE":528,"ATTRIBUTES":529,"BASE64":530,"BERNOULLI":531,"BLOCKED":532,"BOM":533,"BREADTH":534,"C":535,"CASCADE":536,"CATALOG":537,"CATALOG_NAME":538,"CHAIN":539,"CHARACTERISTICS":540,"CHARACTERS":541,"CHARACTER_SET_CATALOG":542,"CHARACTER_SET_NAME":543,"CHARACTER_SET_SCHEMA":544,"CLASS_ORIGIN":545,"COBOL":546,"COLLATION":547,"COLLATION_CATALOG":548,"COLLATION_NAME":549,"COLLATION_SCHEMA":550,"COLUMNS":551,"COLUMN_NAME":552,"COMMAND_FUNCTION":553,"COMMAND_FUNCTION_CODE":554,"COMMITTED":555,"CONDITION_NUMBER":556,"CONNECTION":557,"CONNECTION_NAME":558,"CONSTRAINTS":559,"CONSTRAINT_CATALOG":560,"CONSTRAINT_NAME":561,"CONSTRAINT_SCHEMA":562,"CONSTRUCTOR":563,"CONTROL":564,"CURSOR_NAME":565,"DATA":566,"DATETIME_INTERVAL_CODE":567,"DATETIME_INTERVAL_PRECISION":568,"DB":569,"DEFAULTS":570,"DEFERRABLE":571,"DEFERRED":572,"DEFINED":573,"DEFINER":574,"DEGREE":575,"DEPTH":576,"DERIVED":577,"DESC":578,"DESCRIPTOR":579,"DIAGNOSTICS":580,"DISPATCH":581,"DOCUMENT":582,"DOMAIN":583,"DYNAMIC_FUNCTION":584,"DYNAMIC_FUNCTION_CODE":585,"EMPTY":586,"ENCODING":587,"ENFORCED":588,"EXCLUDE":589,"EXCLUDING":590,"EXPRESSION":591,"FILE":592,"FINAL":593,"FLAG":594,"FOLLOWING":595,"FORTRAN":596,"FOUND":597,"FS":598,"G":599,"GENERAL":600,"GENERATED":601,"GO":602,"GOTO":603,"GRANTED":604,"HEX":605,"HIERARCHY":606,"ID":607,"IGNORE":608,"IMMEDIATE":609,"IMMEDIATELY":610,"IMPLEMENTATION":611,"INCLUDING":612,"INCREMENT":613,"INDENT":614,"INITIALLY":615,"INPUT":616,"INSTANCE":617,"INSTANTIABLE":618,"INTEGRITY":619,"INVOKER":620,"ISOLATION":621,"K":622,"KEY_MEMBER":623,"KEY_TYPE":624,"LENGTH":625,"LEVEL":626,"LIBRARY":627,"LINK":628,"LOCATION":629,"LOCATOR":630,"M":631,"MAP":632,"MAPPING":633,"MAXVALUE":634,"MESSAGE_LENGTH":635,"MESSAGE_OCTET_LENGTH":636,"MESSAGE_TEXT":637,"MINVALUE":638,"MORE":639,"MUMPS":640,"NAME":641,"NAMES":642,"NAMESPACE":643,"NESTING":644,"NEXT":645,"NFC":646,"NFD":647,"NFKC":648,"NFKD":649,"NIL":650,"NORMALIZED":651,"NULLABLE":652,"NULLS":653,"OBJECT":654,"OCTETS":655,"OPTIONS":656,"ORDERING":657,"ORDINALITY":658,"OTHERS":659,"OVERRIDING":660,"P":661,"PAD":662,"PARAMETER_MODE":663,"PARAMETER_NAME":664,"PARAMETER_ORDINAL_POSITION":665,"PARAMETER_SPECIFIC_CATALOG":666,"PARAMETER_SPECIFIC_NAME":667,"PARAMETER_SPECIFIC_SCHEMA":668,"PARTIAL":669,"PASCAL":670,"PASSING":671,"PASSTHROUGH":672,"PERMISSION":673,"PLACING":674,"PLI":675,"PRECEDING":676,"PRESERVE":677,"PRIOR":678,"PRIVILEGES":679,"PUBLIC":680,"RECOVERY":681,"RELATIVE":682,"REPEATABLE":683,"REQUIRING":684,"RESPECT":685,"RESTART":686,"RESTORE":687,"RESTRICT":688,"RETURNED_CARDINALITY":689,"RETURNED_LENGTH":690,"RETURNED_OCTET_LENGTH":691,"RETURNED_SQLSTATE":692,"RETURNING":693,"ROLE":694,"ROUTINE":695,"ROUTINE_CATALOG":696,"ROUTINE_NAME":697,"ROUTINE_SCHEMA":698,"ROW_COUNT":699,"SCALE":700,"SCHEMA":701,"SCHEMA_NAME":702,"SCOPE_CATALOG":703,"SCOPE_NAME":704,"SCOPE_SCHEMA":705,"SECTION":706,"SECURITY":707,"SELECTIVE":708,"SELF":709,"SEQUENCE":710,"SERIALIZABLE":711,"SERVER":712,"SERVER_NAME":713,"SESSION":714,"SETS":715,"SIMPLE":716,"SIZE":717,"SPACE":718,"SPECIFIC_NAME":719,"STANDALONE":720,"STATE":721,"STATEMENT":722,"STRIP":723,"STRUCTURE":724,"STYLE":725,"SUBCLASS_ORIGIN":726,"T":727,"TABLE_NAME":728,"TEMPORARY":729,"TIES":730,"TOKEN":731,"TOP_LEVEL_COUNT":732,"TRANSACTIONS_COMMITTED":733,"TRANSACTIONS_ROLLED_BACK":734,"TRANSACTION_ACTIVE":735,"TRANSFORM":736,"TRANSFORMS":737,"TRIGGER_CATALOG":738,"TRIGGER_NAME":739,"TRIGGER_SCHEMA":740,"TYPE":741,"UNBOUNDED":742,"UNCOMMITTED":743,"UNDER":744,"UNLINK":745,"UNNAMED":746,"UNTYPED":747,"URI":748,"USAGE":749,"USER_DEFINED_TYPE_CATALOG":750,"USER_DEFINED_TYPE_CODE":751,"USER_DEFINED_TYPE_NAME":752,"USER_DEFINED_TYPE_SCHEMA":753,"VALID":754,"VERSION":755,"WHITESPACE":756,"WORK":757,"WRAPPER":758,"WRITE":759,"XMLDECLARATION":760,"XMLSCHEMA":761,"YES":762,"ZONE":763,"SEMICOLON":764,"PERCENT":765,"ROWS":766,"FuncValue_option0_group0":767,"$accept":0,"$end":1}, -terminals_: {2:"error",4:"LITERAL",5:"BRALITERAL",10:"EOF",14:"EXPLAIN",15:"QUERY",16:"PLAN",53:"EndTransaction",72:"WITH",74:"COMMA",76:"AS",77:"LPAR",78:"RPAR",89:"SEARCH",93:"PIVOT",95:"FOR",98:"UNPIVOT",99:"IN",107:"REMOVE",112:"LIKE",115:"ARROW",116:"DOT",118:"ORDER",119:"BY",122:"DOTDOT",123:"CARET",124:"EQ",128:"WHERE",129:"OF",130:"CLASS",131:"NUMBER",132:"STRING",133:"SLASH",134:"VERTEX",135:"EDGE",136:"EXCLAMATION",137:"SHARP",138:"MODULO",139:"GT",140:"LT",141:"GTGT",142:"LTLT",143:"DOLLAR",145:"AT",146:"SET",148:"TO",149:"VALUE",150:"ROW",152:"COLON",154:"NOT",156:"IF",162:"UNION",164:"ALL",166:"ANY",168:"INTERSECT",169:"EXCEPT",170:"AND",171:"OR",172:"PATH",173:"RETURN",175:"REPEAT",179:"PLUS",180:"STAR",181:"QUESTION",183:"FROM",185:"DISTINCT",187:"UNIQUE",189:"SELECT",190:"COLUMN",191:"MATRIX",192:"TEXTSTRING",193:"INDEX",194:"RECORDSET",195:"TOP",198:"INTO",206:"CROSS",207:"APPLY",208:"OUTER",212:"INDEXED",213:"INSERTED",222:"NATURAL",223:"JOIN",224:"INNER",225:"LEFT",226:"RIGHT",227:"FULL",228:"SEMI",229:"ANTI",230:"ON",231:"USING",232:"GROUP",236:"GROUPING",237:"ROLLUP",238:"CUBE",239:"HAVING",240:"CORRESPONDING",242:"DIRECTION",243:"COLLATE",244:"NOCASE",245:"LIMIT",247:"OFFSET",249:"FETCH",265:"CURRENT_TIMESTAMP",266:"JAVASCRIPT",267:"CREATE",268:"FUNCTION",269:"AGGREGATE",270:"NEW",271:"CAST",273:"CONVERT",276:"OVER",279:"PARTITION",280:"SUM",281:"COUNT",282:"MIN",283:"MAX",284:"AVG",285:"FIRST",286:"LAST",287:"AGGR",288:"ARRAY",290:"REPLACE",291:"DATEADD",292:"DATEDIFF",293:"INTERVAL",294:"TRUE",295:"FALSE",296:"NSTRING",297:"NULL",298:"EXISTS",299:"ARRAYLBRA",300:"RBRA",302:"BRAQUESTION",303:"CASE",306:"END",308:"WHEN",309:"THEN",310:"ELSE",311:"REGEXP",312:"TILDA",313:"GLOB",314:"ESCAPE",315:"NOT_LIKE",316:"BARBAR",317:"MINUS",318:"AMPERSAND",319:"BAR",320:"GE",321:"LE",322:"EQEQ",323:"EQEQEQ",324:"NE",325:"NEEQEQ",326:"NEEQEQEQ",330:"BETWEEN",331:"NOT_BETWEEN",332:"IS",333:"DOUBLECOLON",334:"SOME",335:"UPDATE",338:"DELETE",339:"INSERT",343:"DEFAULT",344:"VALUES",347:"DateValue",353:"TABLE",356:"IDENTITY",357:"TEMP",367:"CONSTRAINT",368:"CHECK",369:"PRIMARY",370:"KEY",373:"FOREIGN",374:"REFERENCES",380:"NO",381:"ACTION",386:"ColumnConstraints",389:"ENUM",390:"MAXNUM",396:"DROP",400:"ALTER",401:"RENAME",402:"ADD",403:"MODIFY",404:"ATTACH",405:"DATABASE",406:"DETACH",408:"USE",409:"SHOW",410:"VIEW",414:"READ",415:"ONLY",416:"OPTION",417:"SOURCE",418:"ASSERT",420:"ATLBRA",424:"LCUR",426:"RCUR",433:"OFF",434:"COMMIT",435:"TRANSACTION",436:"ROLLBACK",437:"BEGIN",439:"WHILE",440:"CONTINUE",441:"BREAK",442:"PRINT",443:"REQUIRE",447:"ECHO",448:"DECLARE",451:"TRUNCATE",452:"MERGE",460:"MATCHED",463:"TARGET",464:"OUTPUT",470:"CONTENT",472:"GRAPH",505:"COLONDASH",507:"QUESTIONDASH",508:"CALL",509:"TRIGGER",514:"BEFORE",515:"AFTER",516:"INSTEAD",517:"REINDEX",518:"A",519:"ABSENT",520:"ABSOLUTE",521:"ACCORDING",522:"ADA",523:"ADMIN",524:"ALWAYS",525:"ASC",526:"ASSERTION",527:"ASSIGNMENT",528:"ATTRIBUTE",529:"ATTRIBUTES",530:"BASE64",531:"BERNOULLI",532:"BLOCKED",533:"BOM",534:"BREADTH",535:"C",536:"CASCADE",537:"CATALOG",538:"CATALOG_NAME",539:"CHAIN",540:"CHARACTERISTICS",541:"CHARACTERS",542:"CHARACTER_SET_CATALOG",543:"CHARACTER_SET_NAME",544:"CHARACTER_SET_SCHEMA",545:"CLASS_ORIGIN",546:"COBOL",547:"COLLATION",548:"COLLATION_CATALOG",549:"COLLATION_NAME",550:"COLLATION_SCHEMA",551:"COLUMNS",552:"COLUMN_NAME",553:"COMMAND_FUNCTION",554:"COMMAND_FUNCTION_CODE",555:"COMMITTED",556:"CONDITION_NUMBER",557:"CONNECTION",558:"CONNECTION_NAME",559:"CONSTRAINTS",560:"CONSTRAINT_CATALOG",561:"CONSTRAINT_NAME",562:"CONSTRAINT_SCHEMA",563:"CONSTRUCTOR",564:"CONTROL",565:"CURSOR_NAME",566:"DATA",567:"DATETIME_INTERVAL_CODE",568:"DATETIME_INTERVAL_PRECISION",569:"DB",570:"DEFAULTS",571:"DEFERRABLE",572:"DEFERRED",573:"DEFINED",574:"DEFINER",575:"DEGREE",576:"DEPTH",577:"DERIVED",578:"DESC",579:"DESCRIPTOR",580:"DIAGNOSTICS",581:"DISPATCH",582:"DOCUMENT",583:"DOMAIN",584:"DYNAMIC_FUNCTION",585:"DYNAMIC_FUNCTION_CODE",586:"EMPTY",587:"ENCODING",588:"ENFORCED",589:"EXCLUDE",590:"EXCLUDING",591:"EXPRESSION",592:"FILE",593:"FINAL",594:"FLAG",595:"FOLLOWING",596:"FORTRAN",597:"FOUND",598:"FS",599:"G",600:"GENERAL",601:"GENERATED",602:"GO",603:"GOTO",604:"GRANTED",605:"HEX",606:"HIERARCHY",607:"ID",608:"IGNORE",609:"IMMEDIATE",610:"IMMEDIATELY",611:"IMPLEMENTATION",612:"INCLUDING",613:"INCREMENT",614:"INDENT",615:"INITIALLY",616:"INPUT",617:"INSTANCE",618:"INSTANTIABLE",619:"INTEGRITY",620:"INVOKER",621:"ISOLATION",622:"K",623:"KEY_MEMBER",624:"KEY_TYPE",625:"LENGTH",626:"LEVEL",627:"LIBRARY",628:"LINK",629:"LOCATION",630:"LOCATOR",631:"M",632:"MAP",633:"MAPPING",634:"MAXVALUE",635:"MESSAGE_LENGTH",636:"MESSAGE_OCTET_LENGTH",637:"MESSAGE_TEXT",638:"MINVALUE",639:"MORE",640:"MUMPS",641:"NAME",642:"NAMES",643:"NAMESPACE",644:"NESTING",645:"NEXT",646:"NFC",647:"NFD",648:"NFKC",649:"NFKD",650:"NIL",651:"NORMALIZED",652:"NULLABLE",653:"NULLS",654:"OBJECT",655:"OCTETS",656:"OPTIONS",657:"ORDERING",658:"ORDINALITY",659:"OTHERS",660:"OVERRIDING",661:"P",662:"PAD",663:"PARAMETER_MODE",664:"PARAMETER_NAME",665:"PARAMETER_ORDINAL_POSITION",666:"PARAMETER_SPECIFIC_CATALOG",667:"PARAMETER_SPECIFIC_NAME",668:"PARAMETER_SPECIFIC_SCHEMA",669:"PARTIAL",670:"PASCAL",671:"PASSING",672:"PASSTHROUGH",673:"PERMISSION",674:"PLACING",675:"PLI",676:"PRECEDING",677:"PRESERVE",678:"PRIOR",679:"PRIVILEGES",680:"PUBLIC",681:"RECOVERY",682:"RELATIVE",683:"REPEATABLE",684:"REQUIRING",685:"RESPECT",686:"RESTART",687:"RESTORE",688:"RESTRICT",689:"RETURNED_CARDINALITY",690:"RETURNED_LENGTH",691:"RETURNED_OCTET_LENGTH",692:"RETURNED_SQLSTATE",693:"RETURNING",694:"ROLE",695:"ROUTINE",696:"ROUTINE_CATALOG",697:"ROUTINE_NAME",698:"ROUTINE_SCHEMA",699:"ROW_COUNT",700:"SCALE",701:"SCHEMA",702:"SCHEMA_NAME",703:"SCOPE_CATALOG",704:"SCOPE_NAME",705:"SCOPE_SCHEMA",706:"SECTION",707:"SECURITY",708:"SELECTIVE",709:"SELF",710:"SEQUENCE",711:"SERIALIZABLE",712:"SERVER",713:"SERVER_NAME",714:"SESSION",715:"SETS",716:"SIMPLE",717:"SIZE",718:"SPACE",719:"SPECIFIC_NAME",720:"STANDALONE",721:"STATE",722:"STATEMENT",723:"STRIP",724:"STRUCTURE",725:"STYLE",726:"SUBCLASS_ORIGIN",727:"T",728:"TABLE_NAME",729:"TEMPORARY",730:"TIES",731:"TOKEN",732:"TOP_LEVEL_COUNT",733:"TRANSACTIONS_COMMITTED",734:"TRANSACTIONS_ROLLED_BACK",735:"TRANSACTION_ACTIVE",736:"TRANSFORM",737:"TRANSFORMS",738:"TRIGGER_CATALOG",739:"TRIGGER_NAME",740:"TRIGGER_SCHEMA",741:"TYPE",742:"UNBOUNDED",743:"UNCOMMITTED",744:"UNDER",745:"UNLINK",746:"UNNAMED",747:"UNTYPED",748:"URI",749:"USAGE",750:"USER_DEFINED_TYPE_CATALOG",751:"USER_DEFINED_TYPE_CODE",752:"USER_DEFINED_TYPE_NAME",753:"USER_DEFINED_TYPE_SCHEMA",754:"VALID",755:"VERSION",756:"WHITESPACE",757:"WORK",758:"WRAPPER",759:"WRITE",760:"XMLDECLARATION",761:"XMLSCHEMA",762:"YES",763:"ZONE",764:"SEMICOLON",765:"PERCENT",766:"ROWS"}, -productions_: [0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[241,1],[241,2],[241,3],[241,4],[87,0],[87,3],[87,8],[246,0],[246,2],[174,3],[174,1],[253,3],[253,2],[253,3],[253,2],[253,3],[253,2],[253,1],[254,5],[254,3],[254,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[263,2],[263,2],[261,6],[261,8],[261,6],[261,8],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[255,5],[255,6],[255,6],[275,0],[275,4],[275,4],[275,5],[277,3],[278,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[257,1],[257,1],[113,1],[113,1],[258,1],[202,2],[259,4],[262,3],[201,2],[201,2],[201,1],[201,1],[260,5],[260,4],[304,2],[304,1],[307,4],[305,2],[305,0],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,6],[256,6],[256,3],[256,3],[256,2],[256,2],[256,2],[256,2],[256,2],[256,3],[256,5],[256,6],[256,5],[256,6],[256,4],[256,5],[256,3],[256,4],[256,3],[256,4],[256,3],[256,3],[256,3],[256,3],[256,3],[329,1],[329,1],[329,4],[327,1],[327,1],[327,1],[327,1],[327,1],[327,1],[328,1],[328,1],[328,1],[55,6],[55,4],[147,1],[147,3],[336,3],[336,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[341,1],[341,1],[340,0],[340,1],[342,3],[342,1],[342,1],[342,5],[342,3],[342,3],[345,1],[345,3],[346,1],[346,1],[346,1],[346,1],[346,1],[346,1],[100,1],[100,3],[24,9],[24,5],[349,1],[349,1],[352,0],[352,1],[354,2],[354,1],[355,1],[355,3],[355,3],[355,3],[348,0],[348,1],[350,0],[350,3],[351,3],[351,1],[351,2],[359,1],[359,3],[360,2],[360,2],[360,2],[360,2],[360,2],[361,0],[361,2],[366,4],[362,6],[363,9],[377,3],[376,0],[376,2],[378,4],[379,4],[364,6],[365,5],[365,5],[372,1],[372,1],[372,3],[372,3],[358,1],[358,3],[384,3],[384,2],[384,1],[387,6],[387,4],[387,1],[387,4],[272,2],[272,1],[388,1],[388,1],[385,0],[385,1],[391,2],[391,1],[393,3],[392,2],[392,5],[392,3],[392,6],[392,1],[392,2],[392,4],[392,2],[392,1],[392,2],[392,1],[392,1],[392,3],[392,5],[33,4],[399,3],[399,1],[398,0],[398,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[407,0],[407,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[413,3],[413,3],[413,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[422,1],[422,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,3],[419,3],[419,4],[419,2],[421,2],[421,3],[421,1],[425,3],[425,1],[428,3],[428,3],[428,3],[427,3],[427,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[431,1],[431,1],[430,3],[430,2],[432,1],[432,1],[432,3],[429,1],[429,1],[51,2],[52,2],[50,2],[35,4],[35,3],[438,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[446,1],[446,1],[69,2],[444,3],[444,1],[445,3],[445,1],[28,2],[449,1],[449,3],[450,3],[450,4],[450,5],[450,6],[46,3],[37,6],[453,1],[453,2],[454,2],[455,2],[456,2],[456,2],[456,1],[456,1],[458,4],[458,6],[461,1],[461,3],[459,5],[459,7],[459,7],[459,9],[459,7],[459,9],[462,3],[462,6],[462,3],[462,6],[457,0],[457,2],[457,5],[457,4],[457,7],[27,6],[469,2],[468,0],[468,2],[468,2],[468,1],[26,8],[23,3],[23,4],[473,3],[473,1],[474,3],[474,7],[474,6],[474,3],[474,4],[478,1],[478,1],[482,2],[483,3],[484,2],[485,4],[475,4],[475,3],[475,2],[475,1],[497,2],[493,2],[493,2],[498,4],[500,6],[67,3],[67,2],[506,3],[506,1],[504,1],[504,4],[68,2],[20,2],[48,9],[48,8],[48,9],[510,0],[510,1],[510,1],[510,1],[510,2],[511,1],[511,1],[511,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[248,0],[248,1],[250,0],[250,1],[251,0],[251,1],[252,0],[252,1],[264,1],[264,1],[767,1],[767,1],[289,0],[289,1],[301,1],[301,1],[337,1],[337,1],[371,0],[371,1],[375,0],[375,1],[382,0],[382,1],[383,0],[383,1],[394,0],[394,1],[395,0],[395,1],[397,1],[397,1],[411,0],[411,1],[412,0],[412,1],[465,0],[465,1],[466,0],[466,1],[467,0],[467,1],[471,0],[471,1],[476,0],[476,1],[477,0],[477,1],[479,0],[479,1],[480,0],[480,1],[481,0],[481,1],[486,0],[486,1],[487,0],[487,1],[488,0],[488,1],[489,0],[489,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[499,0],[499,2],[501,0],[501,2],[502,0],[502,2],[503,0],[503,2],[512,0],[512,1],[513,0],[513,1]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 1: - - if (alasql.options.casesensitive) this.$ = $$[$0]; - else this.$ = $$[$0].toLowerCase(); - -break; -case 2: - this.$ = doubleq($$[$0].substr(1,$$[$0].length-2)); -break; -case 3: - this.$ = $$[$0].toLowerCase() -break; -case 4: - this.$ = $$[$0] -break; -case 5: - this.$ = $$[$0] ? $$[$0-1] + ' ' + $$[$0] : $$[$0-1] -break; -case 6: - return new yy.Statements({statements:$$[$0-1]}); -break; -case 7: - this.$ = $$[$0-2]; if($$[$0]) $$[$0-2].push($$[$0]); -break; -case 8: case 9: case 70: case 80: case 85: case 143: case 177: case 205: case 206: case 242: case 261: case 273: case 354: case 372: case 451: case 474: case 475: case 479: case 487: case 528: case 529: case 566: case 649: case 659: case 683: case 685: case 687: case 701: case 702: case 732: case 756: - this.$ = [$$[$0]]; -break; -case 10: - this.$ = $$[$0]; $$[$0].explain = true; -break; -case 11: - this.$ = $$[$0]; $$[$0].explain = true; -break; -case 12: - - this.$ = $$[$0]; - - // TODO combine exists and queries - if(yy.exists) this.$.exists = yy.exists; - delete yy.exists; - if(yy.queries) this.$.queries = yy.queries; - delete yy.queries; - -break; -case 13: case 162: case 172: case 237: case 238: case 240: case 248: case 250: case 259: case 267: case 270: case 375: case 491: case 501: case 503: case 515: case 521: case 522: case 567: - this.$ = undefined; -break; -case 68: - this.$ = new yy.WithSelect({withs: $$[$0-1], select:$$[$0]}); -break; -case 69: case 565: - $$[$0-2].push($$[$0]); this.$=$$[$0-2]; -break; -case 71: - this.$ = {name:$$[$0-4], select:$$[$0-1]}; -break; -case 72: - - yy.extend(this.$,$$[$0-9]); yy.extend(this.$,$$[$0-8]); yy.extend(this.$,$$[$0-7]); yy.extend(this.$,$$[$0-6]); - yy.extend(this.$,$$[$0-5]); yy.extend(this.$,$$[$0-4]);yy.extend(this.$,$$[$0-3]); - yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]); - this.$ = $$[$0-9]; -/* if(yy.exists) this.$.exists = yy.exists; - delete yy.exists; - if(yy.queries) this.$.queries = yy.queries; - delete yy.queries; -*/ -break; -case 73: - - this.$ = new yy.Search({selectors:$$[$0-2], from:$$[$0]}); - yy.extend(this.$,$$[$0-1]); - -break; -case 74: - this.$ = {pivot:{expr:$$[$0-5], columnid:$$[$0-3], inlist:$$[$0-2], as:$$[$0]}}; -break; -case 75: - this.$ = {unpivot:{tocolumnid:$$[$0-8], forcolumnid:$$[$0-6], inlist:$$[$0-3], as:$$[$0]}}; -break; -case 76: case 520: case 549: case 585: case 619: case 636: case 637: case 640: case 662: - this.$ = $$[$0-1]; -break; -case 77: case 78: case 86: case 147: case 185: case 247: case 280: case 288: case 289: case 290: case 291: case 292: case 293: case 294: case 295: case 296: case 297: case 298: case 299: case 300: case 301: case 304: case 305: case 320: case 321: case 322: case 323: case 324: case 325: case 374: case 440: case 441: case 442: case 443: case 444: case 445: case 516: case 542: case 546: case 548: case 623: case 624: case 625: case 626: case 627: case 628: case 632: case 634: case 635: case 644: case 660: case 661: case 723: case 738: case 739: case 741: case 742: case 748: case 749: - this.$ = $$[$0]; -break; -case 79: case 84: case 731: case 755: - this.$ = $$[$0-2]; this.$.push($$[$0]); -break; -case 81: - this.$ = {expr:$$[$0]}; -break; -case 82: - this.$ = {expr:$$[$0-2],as:$$[$0]}; -break; -case 83: - this.$ = {removecolumns:$$[$0]}; -break; -case 87: - this.$ = {like:$$[$0]}; -break; -case 90: case 104: - this.$ = {srchid:"PROP", args: [$$[$0]]}; -break; -case 91: - this.$ = {srchid:"ORDERBY", args: $$[$0-1]}; -break; -case 92: - - var dir = $$[$0-1]; - if(!dir) dir = 'ASC'; - this.$ = {srchid:"ORDERBY", args: [{expression: new yy.Column({columnid:'_'}), direction:dir}]}; - -break; -case 93: - this.$ = {srchid:"PARENT"}; -break; -case 94: - this.$ = {srchid:"APROP", args: [$$[$0]]}; -break; -case 95: - this.$ = {selid:"ROOT"}; -break; -case 96: - this.$ = {srchid:"EQ", args: [$$[$0]]}; -break; -case 97: - this.$ = {srchid:"LIKE", args: [$$[$0]]}; -break; -case 98: case 99: - this.$ = {selid:"WITH", args: $$[$0-1]}; -break; -case 100: - this.$ = {srchid:$$[$0-3].toUpperCase(), args:$$[$0-1]}; -break; -case 101: - this.$ = {srchid:"WHERE", args:[$$[$0-1]]}; -break; -case 102: - this.$ = {selid:"OF", args:[$$[$0-1]]}; -break; -case 103: - this.$ = {srchid:"CLASS", args:[$$[$0-1]]}; -break; -case 105: - this.$ = {srchid:"NAME", args: [$$[$0].substr(1,$$[$0].length-2)]}; -break; -case 106: - this.$ = {srchid:"CHILD"}; -break; -case 107: - this.$ = {srchid:"VERTEX"}; -break; -case 108: - this.$ = {srchid:"EDGE"}; -break; -case 109: - this.$ = {srchid:"REF"}; -break; -case 110: - this.$ = {srchid:"SHARP", args:[$$[$0]]}; -break; -case 111: - this.$ = {srchid:"ATTR", args:((typeof $$[$0] == 'undefined')?undefined:[$$[$0]])}; -break; -case 112: - this.$ = {srchid:"ATTR"}; -break; -case 113: - this.$ = {srchid:"OUT"}; -break; -case 114: - this.$ = {srchid:"IN"}; -break; -case 115: - this.$ = {srchid:"OUTOUT"}; -break; -case 116: - this.$ = {srchid:"ININ"}; -break; -case 117: - this.$ = {srchid:"CONTENT"}; -break; -case 118: - this.$ = {srchid:"EX",args:[new yy.Json({value:$$[$0]})]}; -break; -case 119: - this.$ = {srchid:"AT", args:[$$[$0]]}; -break; -case 120: - this.$ = {srchid:"AS", args:[$$[$0]]}; -break; -case 121: - this.$ = {srchid:"SET", args:$$[$0-1]}; -break; -case 122: - this.$ = {selid:"TO", args:[$$[$0]]}; -break; -case 123: - this.$ = {srchid:"VALUE"}; -break; -case 124: - this.$ = {srchid:"ROW", args:$$[$0-1]}; -break; -case 125: - this.$ = {srchid:"CLASS", args:[$$[$0]]}; -break; -case 126: - this.$ = {selid:$$[$0],args:[$$[$0-1]] }; -break; -case 127: - this.$ = {selid:"NOT",args:$$[$0-1] }; -break; -case 128: - this.$ = {selid:"IF",args:$$[$0-1] }; -break; -case 129: - this.$ = {selid:$$[$0-3],args:$$[$0-1] }; -break; -case 130: - this.$ = {selid:'DISTINCT',args:$$[$0-1] }; -break; -case 131: - this.$ = {selid:'UNION',args:$$[$0-1] }; -break; -case 132: - this.$ = {selid:'UNIONALL',args:$$[$0-1] }; -break; -case 133: - this.$ = {selid:'ALL',args:[$$[$0-1]] }; -break; -case 134: - this.$ = {selid:'ANY',args:[$$[$0-1]] }; -break; -case 135: - this.$ = {selid:'INTERSECT',args:$$[$0-1] }; -break; -case 136: - this.$ = {selid:'EXCEPT',args:$$[$0-1] }; -break; -case 137: - this.$ = {selid:'AND',args:$$[$0-1] }; -break; -case 138: - this.$ = {selid:'OR',args:$$[$0-1] }; -break; -case 139: - this.$ = {selid:'PATH',args:[$$[$0-1]] }; -break; -case 140: - this.$ = {srchid:'RETURN',args:$$[$0-1] }; -break; -case 141: - this.$ = {selid:'REPEAT',sels:$$[$0-3], args:$$[$0-1] }; -break; -case 142: - this.$ = $$[$0-2]; this.$.push($$[$0]); -break; -case 144: - this.$ = "PLUS"; -break; -case 145: - this.$ = "STAR"; -break; -case 146: - this.$ = "QUESTION"; -break; -case 148: - this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]); yy.extend(this.$, $$[$0-1]); -break; -case 149: - this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]); -break; -case 150: - this.$ = new yy.Select({ columns:$$[$0], all:true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]); -break; -case 151: - - if(!$$[$0]) { - this.$ = new yy.Select({columns:[new yy.Column({columnid:'_',})], modifier:'COLUMN'}); - } else { - this.$ = new yy.Select({ columns:$$[$0] }); yy.extend(this.$, $$[$0-2]);yy.extend(this.$, $$[$0-1]); - } - -break; -case 152: - if($$[$0]=='SELECT') this.$ = undefined; else this.$ = {modifier: $$[$0]}; -break; -case 153: - this.$ = {modifier:'VALUE'} -break; -case 154: - this.$ = {modifier:'ROW'} -break; -case 155: - this.$ = {modifier:'COLUMN'} -break; -case 156: - this.$ = {modifier:'MATRIX'} -break; -case 157: - this.$ = {modifier:'TEXTSTRING'} -break; -case 158: - this.$ = {modifier:'INDEX'} -break; -case 159: - this.$ = {modifier:'RECORDSET'} -break; -case 160: - this.$ = {top: $$[$0-1], percent:(typeof $$[$0] != 'undefined'?true:undefined)}; -break; -case 161: - this.$ = {top: $$[$0-1]}; -break; -case 163: case 330: case 523: case 524: case 724: -this.$ = undefined; -break; -case 164: case 165: case 166: case 167: -this.$ = {into: $$[$0]} -break; -case 168: - - var s = $$[$0]; - s = s.substr(1,s.length-2); - var x3 = s.substr(-3).toUpperCase(); - var x4 = s.substr(-4).toUpperCase(); - if(s[0] == '#') { - this.$ = {into: new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})}; - } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') { - this.$ = {into: new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})}; - } else if(x4=='XLSX' || x4 == 'JSON') { - this.$ = {into: new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})}; - } - -break; -case 169: - this.$ = { from: $$[$0] }; -break; -case 170: - this.$ = { from: $$[$0-1], joins: $$[$0] }; -break; -case 171: - this.$ = { from: $$[$0-2], joins: $$[$0-1] }; -break; -case 173: - this.$ = new yy.Apply({select: $$[$0-2], applymode:'CROSS', as:$$[$0]}); -break; -case 174: - this.$ = new yy.Apply({select: $$[$0-3], applymode:'CROSS', as:$$[$0]}); -break; -case 175: - this.$ = new yy.Apply({select: $$[$0-2], applymode:'OUTER', as:$$[$0]}); -break; -case 176: - this.$ = new yy.Apply({select: $$[$0-3], applymode:'OUTER', as:$$[$0]}); -break; -case 178: case 243: case 452: case 530: case 531: - this.$ = $$[$0-2]; $$[$0-2].push($$[$0]); -break; -case 179: - this.$ = $$[$0-2]; this.$.as = $$[$0] -break; -case 180: - this.$ = $$[$0-3]; this.$.as = $$[$0] -break; -case 181: - this.$ = $$[$0-1]; this.$.as = 'default' -break; -case 182: - this.$ = new yy.Json({value:$$[$0-2]}); $$[$0-2].as = $$[$0] -break; -case 183: - this.$ = $$[$0-1]; $$[$0-1].as = $$[$0] -break; -case 184: - this.$ = $$[$0-2]; $$[$0-2].as = $$[$0] -break; -case 186: case 638: case 641: - this.$ = $$[$0-2]; -break; -case 187: case 191: case 195: case 198: - this.$ = $$[$0-1]; $$[$0-1].as = $$[$0]; -break; -case 188: case 192: case 196: case 199: - this.$ = $$[$0-2]; $$[$0-2].as = $$[$0]; -break; -case 189: case 190: case 194: case 197: - this.$ = $$[$0]; $$[$0].as = 'default'; -break; -case 193: - this.$ = {inserted:true}; /*$$[$0].as = 'default'*/; -break; -case 200: - - var s = $$[$0]; - s = s.substr(1,s.length-2); - var x3 = s.substr(-3).toUpperCase(); - var x4 = s.substr(-4).toUpperCase(); - var r; - if(s[0] == '#') { - r = new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]}); - } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') { - r = new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]}); - } else if(x4=='XLSX' || x4 == 'JSON') { - r = new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]}); - } else { - throw new Error('Unknown string in FROM clause'); - }; - this.$ = r; - -break; -case 201: - - if($$[$0-2] == 'INFORMATION_SCHEMA') { - this.$ = new yy.FuncValue({funcid: $$[$0-2], args:[new yy.StringValue({value:$$[$0]})]}); - } else { - this.$ = new yy.Table({databaseid: $$[$0-2], tableid:$$[$0]}); - } - -break; -case 202: - this.$ = new yy.Table({tableid: $$[$0]}); -break; -case 203: case 204: - this.$ = $$[$0-1]; $$[$0-1].push($$[$0]); -break; -case 207: - this.$ = new yy.Join($$[$0-2]); yy.extend(this.$, $$[$0-1]); yy.extend(this.$, $$[$0]); -break; -case 208: - this.$ = {table: $$[$0]}; -break; -case 209: - this.$ = {table: $$[$0-1], as: $$[$0] } ; -break; -case 210: - this.$ = {table: $$[$0-2], as: $$[$0] } ; -break; -case 211: - this.$ = {json:new yy.Json({value:$$[$0-2],as:$$[$0]})}; -break; -case 212: - this.$ = {param: $$[$0-1], as: $$[$0] } ; -break; -case 213: - this.$ = {param: $$[$0-2], as: $$[$0] } ; -break; -case 214: - this.$ = {select: $$[$0-2], as: $$[$0]} ; -break; -case 215: - this.$ = {select: $$[$0-3], as: $$[$0] } ; -break; -case 216: - this.$ = {func:$$[$0], as:'default'}; -break; -case 217: - this.$ = {func:$$[$0-1], as: $$[$0]}; -break; -case 218: - this.$ = {func:$$[$0-2], as: $$[$0]}; -break; -case 219: - this.$ = {variable:$$[$0],as:'default'}; -break; -case 220: - this.$ = {variable:$$[$0-1],as:$$[$0]}; -break; -case 221: - this.$ = {variable:$$[$0-2],as:$$[$0]} -break; -case 222: - this.$ = { joinmode: $$[$0] } ; -break; -case 223: - this.$ = {joinmode: $$[$0-1], natural:true} ; -break; -case 224: case 225: - this.$ = "INNER"; -break; -case 226: case 227: - this.$ = "LEFT"; -break; -case 228: case 229: - this.$ = "RIGHT"; -break; -case 230: case 231: - this.$ = "OUTER"; -break; -case 232: - this.$ = "SEMI"; -break; -case 233: - this.$ = "ANTI"; -break; -case 234: - this.$ = "CROSS"; -break; -case 235: - this.$ = {on: $$[$0]}; -break; -case 236: case 697: - this.$ = {using: $$[$0]}; -break; -case 239: - this.$ = {where: new yy.Expression({expression:$$[$0]})}; -break; -case 241: - this.$ = {group:$$[$0-1]}; yy.extend(this.$,$$[$0]); -break; -case 244: - this.$ = new yy.GroupExpression({type:'GROUPING SETS', group: $$[$0-1]}); -break; -case 245: - this.$ = new yy.GroupExpression({type:'ROLLUP', group: $$[$0-1]}); -break; -case 246: - this.$ = new yy.GroupExpression({type:'CUBE', group: $$[$0-1]}); -break; -case 249: - this.$ = {having:$$[$0]} -break; -case 251: - this.$ = {union: $$[$0]} ; -break; -case 252: - this.$ = {unionall: $$[$0]} ; -break; -case 253: - this.$ = {except: $$[$0]} ; -break; -case 254: - this.$ = {intersect: $$[$0]} ; -break; -case 255: - this.$ = {union: $$[$0], corresponding:true} ; -break; -case 256: - this.$ = {unionall: $$[$0], corresponding:true} ; -break; -case 257: - this.$ = {except: $$[$0], corresponding:true} ; -break; -case 258: - this.$ = {intersect: $$[$0], corresponding:true} ; -break; -case 260: - this.$ = {order:$$[$0]} -break; -case 262: - this.$ = $$[$0-2]; $$[$0-2].push($$[$0]) -break; -case 263: - this.$ = new yy.Expression({expression: $$[$0], direction:'ASC'}) -break; -case 264: - this.$ = new yy.Expression({expression: $$[$0-1], direction:$$[$0].toUpperCase()}) -break; -case 265: - this.$ = new yy.Expression({expression: $$[$0-2], direction:'ASC', nocase:true}) -break; -case 266: - this.$ = new yy.Expression({expression: $$[$0-3], direction:$$[$0].toUpperCase(), nocase:true}) -break; -case 268: - this.$ = {limit:$$[$0-1]}; yy.extend(this.$, $$[$0]); -break; -case 269: - this.$ = {limit:$$[$0-2],offset:$$[$0-6]}; -break; -case 271: - this.$ = {offset:$$[$0]}; -break; -case 272: case 509: case 533: case 648: case 658: case 682: case 684: case 688: - $$[$0-2].push($$[$0]); this.$ = $$[$0-2]; -break; -case 274: case 276: case 278: - $$[$0-2].as = $$[$0]; this.$ = $$[$0-2]; -break; -case 275: case 277: case 279: - $$[$0-1].as = $$[$0]; this.$ = $$[$0-1]; -break; -case 281: - this.$ = new yy.Column({columid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]}); -break; -case 282: - this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]}); -break; -case 283: - this.$ = new yy.Column({columnid:$$[$0]}); -break; -case 284: - this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]}); -break; -case 285: case 286: - this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]}); -break; -case 287: - this.$ = new yy.Column({columnid: $$[$0]}); -break; -case 302: - this.$ = new yy.DomainValueValue(); -break; -case 303: - this.$ = new yy.Json({value:$$[$0]}); -break; -case 306: case 307: case 308: - - if(!yy.queries) yy.queries = []; - yy.queries.push($$[$0-1]); - $$[$0-1].queriesidx = yy.queries.length; - this.$ = $$[$0-1]; - -break; -case 309: -this.$ = $$[$0] -break; -case 310: - this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'}); -break; -case 311: - this.$ = new yy.JavaScript({value:$$[$0].substr(2,$$[$0].length-4)}); -break; -case 312: - this.$ = new yy.JavaScript({value:'alasql.fn["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)}); -break; -case 313: - this.$ = new yy.JavaScript({value:'alasql.aggr["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)}); -break; -case 314: - this.$ = new yy.FuncValue({funcid:$$[$0], newid:true}); -break; -case 315: - this.$ = $$[$0]; yy.extend(this.$,{newid:true}); -break; -case 316: - this.$ = new yy.Convert({expression:$$[$0-3]}) ; yy.extend(this.$,$$[$0-1]) ; -break; -case 317: - this.$ = new yy.Convert({expression:$$[$0-5], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ; -break; -case 318: - this.$ = new yy.Convert({expression:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ; -break; -case 319: - this.$ = new yy.Convert({expression:$$[$0-3], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-5]) ; -break; -case 326: - this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'}); -break; -case 327: - - if($$[$0-2].length > 1 && ($$[$0-4].toUpperCase() == 'MAX' || $$[$0-4].toUpperCase() == 'MIN')) { - this.$ = new yy.FuncValue({funcid:$$[$0-4],args:$$[$0-2]}); - } else { - this.$ = new yy.AggrValue({aggregatorid: $$[$0-4].toUpperCase(), expression: $$[$0-2].pop(), over:$$[$0]}); - } - -break; -case 328: - this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], distinct:true, over:$$[$0]}); -break; -case 329: - this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], - over:$$[$0]}); -break; -case 331: case 332: - this.$ = new yy.Over(); yy.extend(this.$,$$[$0-1]); -break; -case 333: - this.$ = new yy.Over(); yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); -break; -case 334: - this.$ = {partition:$$[$0]}; -break; -case 335: - this.$ = {order:$$[$0]}; -break; -case 336: - this.$ = "SUM"; -break; -case 337: - this.$ = "COUNT"; -break; -case 338: - this.$ = "MIN"; -break; -case 339: case 544: - this.$ = "MAX"; -break; -case 340: - this.$ = "AVG"; -break; -case 341: - this.$ = "FIRST"; -break; -case 342: - this.$ = "LAST"; -break; -case 343: - this.$ = "AGGR"; -break; -case 344: - this.$ = "ARRAY"; -break; -case 345: - - var funcid = $$[$0-4]; - var exprlist = $$[$0-1]; - if(exprlist.length > 1 && (funcid.toUpperCase() == 'MIN' || funcid.toUpperCase() == 'MAX')) { - this.$ = new yy.FuncValue({funcid: funcid, args: exprlist}); - } else if(alasql.aggr[$$[$0-4]]) { - this.$ = new yy.AggrValue({aggregatorid: 'REDUCE', - funcid: funcid, expression: exprlist.pop(),distinct:($$[$0-2]=='DISTINCT') }); - } else { - this.$ = new yy.FuncValue({funcid: funcid, args: exprlist}); - }; - -break; -case 346: - this.$ = new yy.FuncValue({ funcid: $$[$0-2] }) -break; -case 347: - this.$ = new yy.FuncValue({ funcid: 'IIF', args:$$[$0-1] }) -break; -case 348: - this.$ = new yy.FuncValue({ funcid: 'REPLACE', args:$$[$0-1] }) -break; -case 349: - this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]}) -break; -case 350: - this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[$$[$0-5],$$[$0-3],$$[$0-1]]}) -break; -case 351: - this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]}) -break; -case 352: - this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[$$[$0-5],$$[$0-3],$$[$0-1]]}) -break; -case 353: - this.$ = new yy.FuncValue({ funcid: 'INTERVAL', args:[$$[$0-1],new yy.StringValue({value:($$[$0]).toLowerCase()})]}); -break; -case 355: - $$[$0-2].push($$[$0]); this.$ = $$[$0-2] -break; -case 356: - this.$ = new yy.NumValue({value:+$$[$0]}); -break; -case 357: - this.$ = new yy.LogicValue({value:true}); -break; -case 358: - this.$ = new yy.LogicValue({value:false}); -break; -case 359: - this.$ = new yy.StringValue({value: $$[$0].substr(1,$$[$0].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")}); -break; -case 360: - this.$ = new yy.StringValue({value: $$[$0].substr(2,$$[$0].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")}); -break; -case 361: - this.$ = new yy.NullValue({value:undefined}); -break; -case 362: - this.$ = new yy.VarValue({variable:$$[$0]}); -break; -case 363: - - if(!yy.exists) yy.exists = []; - this.$ = new yy.ExistsValue({value:$$[$0-1], existsidx:yy.exists.length}); - yy.exists.push($$[$0-1]); - -break; -case 364: - this.$ = new yy.ArrayValue({value:$$[$0-1]}); -break; -case 365: case 366: - this.$ = new yy.ParamValue({param: $$[$0]}); -break; -case 367: - - if(typeof yy.question == 'undefined') yy.question = 0; - this.$ = new yy.ParamValue({param: yy.question++}); - -break; -case 368: - - if(typeof yy.question == 'undefined') yy.question = 0; - this.$ = new yy.ParamValue({param: yy.question++, array:true}); - -break; -case 369: - this.$ = new yy.CaseValue({expression:$$[$0-3], whens: $$[$0-2], elses: $$[$0-1]}); -break; -case 370: - this.$ = new yy.CaseValue({whens: $$[$0-2], elses: $$[$0-1]}); -break; -case 371: case 699: case 700: - this.$ = $$[$0-1]; this.$.push($$[$0]); -break; -case 373: - this.$ = {when: $$[$0-2], then: $$[$0] }; -break; -case 376: case 377: - this.$ = new yy.Op({left:$$[$0-2], op:'REGEXP', right:$$[$0]}); -break; -case 378: - this.$ = new yy.Op({left:$$[$0-2], op:'GLOB', right:$$[$0]}); -break; -case 379: - this.$ = new yy.Op({left:$$[$0-2], op:'LIKE', right:$$[$0]}); -break; -case 380: - this.$ = new yy.Op({left:$$[$0-4], op:'LIKE', right:$$[$0-2], escape:$$[$0]}); -break; -case 381: - this.$ = new yy.Op({left:$$[$0-2], op:'NOT LIKE', right:$$[$0] }); -break; -case 382: - this.$ = new yy.Op({left:$$[$0-4], op:'NOT LIKE', right:$$[$0-2], escape:$$[$0] }); -break; -case 383: - this.$ = new yy.Op({left:$$[$0-2], op:'||', right:$$[$0]}); -break; -case 384: - this.$ = new yy.Op({left:$$[$0-2], op:'+', right:$$[$0]}); -break; -case 385: - this.$ = new yy.Op({left:$$[$0-2], op:'-', right:$$[$0]}); -break; -case 386: - this.$ = new yy.Op({left:$$[$0-2], op:'*', right:$$[$0]}); -break; -case 387: - this.$ = new yy.Op({left:$$[$0-2], op:'/', right:$$[$0]}); -break; -case 388: - this.$ = new yy.Op({left:$$[$0-2], op:'%', right:$$[$0]}); -break; -case 389: - this.$ = new yy.Op({left:$$[$0-2], op:'^', right:$$[$0]}); -break; -case 390: - this.$ = new yy.Op({left:$$[$0-2], op:'>>', right:$$[$0]}); -break; -case 391: - this.$ = new yy.Op({left:$$[$0-2], op:'<<', right:$$[$0]}); -break; -case 392: - this.$ = new yy.Op({left:$$[$0-2], op:'&', right:$$[$0]}); -break; -case 393: - this.$ = new yy.Op({left:$$[$0-2], op:'|', right:$$[$0]}); -break; -case 394: case 395: case 397: - this.$ = new yy.Op({left:$$[$0-2], op:'->' , right:$$[$0]}); -break; -case 396: - this.$ = new yy.Op({left:$$[$0-4], op:'->' , right:$$[$0-1]}); -break; -case 398: case 399: case 401: - this.$ = new yy.Op({left:$$[$0-2], op:'!' , right:$$[$0]}); -break; -case 400: - this.$ = new yy.Op({left:$$[$0-4], op:'!' , right:$$[$0-1]}); -break; -case 402: - this.$ = new yy.Op({left:$$[$0-2], op:'>' , right:$$[$0]}); -break; -case 403: - this.$ = new yy.Op({left:$$[$0-2], op:'>=' , right:$$[$0]}); -break; -case 404: - this.$ = new yy.Op({left:$$[$0-2], op:'<' , right:$$[$0]}); -break; -case 405: - this.$ = new yy.Op({left:$$[$0-2], op:'<=' , right:$$[$0]}); -break; -case 406: - this.$ = new yy.Op({left:$$[$0-2], op:'=' , right:$$[$0]}); -break; -case 407: - this.$ = new yy.Op({left:$$[$0-2], op:'==' , right:$$[$0]}); -break; -case 408: - this.$ = new yy.Op({left:$$[$0-2], op:'===' , right:$$[$0]}); -break; -case 409: - this.$ = new yy.Op({left:$$[$0-2], op:'!=' , right:$$[$0]}); -break; -case 410: - this.$ = new yy.Op({left:$$[$0-2], op:'!==' , right:$$[$0]}); -break; -case 411: - this.$ = new yy.Op({left:$$[$0-2], op:'!===' , right:$$[$0]}); -break; -case 412: - - if(!yy.queries) yy.queries = []; - this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1], queriesidx: yy.queries.length}); - yy.queries.push($$[$0-1]); - -break; -case 413: - - this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1]}); - -break; -case 414: - - if($$[$0-2].op == 'BETWEEN1') { - - if($$[$0-2].left.op == 'AND') { - this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right: - new yy.Op({left:$$[$0-2].left.right, op:'BETWEEN', - right1:$$[$0-2].right, right2:$$[$0]}) - }); - } else { - this.$ = new yy.Op({left:$$[$0-2].left, op:'BETWEEN', - right1:$$[$0-2].right, right2:$$[$0]}); - } - - } else if($$[$0-2].op == 'NOT BETWEEN1') { - if($$[$0-2].left.op == 'AND') { - this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right: - new yy.Op({left:$$[$0-2].left.right, op:'NOT BETWEEN', - right1:$$[$0-2].right, right2:$$[$0]}) - }); - } else { - this.$ = new yy.Op({left:$$[$0-2].left, op:'NOT BETWEEN', - right1:$$[$0-2].right, right2:$$[$0]}); - } - } else { - this.$ = new yy.Op({left:$$[$0-2], op:'AND', right:$$[$0]}); - } - -break; -case 415: - this.$ = new yy.Op({left:$$[$0-2], op:'OR' , right:$$[$0]}); -break; -case 416: - this.$ = new yy.UniOp({op:'NOT' , right:$$[$0]}); -break; -case 417: - this.$ = new yy.UniOp({op:'-' , right:$$[$0]}); -break; -case 418: - this.$ = new yy.UniOp({op:'+' , right:$$[$0]}); -break; -case 419: - this.$ = new yy.UniOp({op:'~' , right:$$[$0]}); -break; -case 420: - this.$ = new yy.UniOp({op:'#' , right:$$[$0]}); -break; -case 421: - this.$ = new yy.UniOp({right: $$[$0-1]}); -break; -case 422: - - if(!yy.queries) yy.queries = []; - this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1], queriesidx: yy.queries.length}); - yy.queries.push($$[$0-1]); - -break; -case 423: - - if(!yy.queries) yy.queries = []; - this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1], queriesidx: yy.queries.length}); - yy.queries.push($$[$0-1]); - -break; -case 424: - this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1]}); -break; -case 425: - this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1]}); -break; -case 426: - this.$ = new yy.Op({left: $$[$0-3], op:'IN', right:[]}); -break; -case 427: - this.$ = new yy.Op({left: $$[$0-4], op:'NOT IN', right:[]}); -break; -case 428: case 430: - this.$ = new yy.Op({left: $$[$0-2], op:'IN', right:$$[$0]}); -break; -case 429: case 431: - this.$ = new yy.Op({left: $$[$0-3], op:'NOT IN', right:$$[$0]}); -break; -case 432: - -/* var expr = $$[$0]; - if(expr.left && expr.left.op == 'AND') { - this.$ = new yy.Op({left:new yy.Op({left:$$[$0-2], op:'BETWEEN', right:expr.left}), op:'AND', right:expr.right }); - } else { -*/ - this.$ = new yy.Op({left:$$[$0-2], op:'BETWEEN1', right:$$[$0] }); - -break; -case 433: - - this.$ = new yy.Op({left:$$[$0-2], op:'NOT BETWEEN1', right:$$[$0] }); - -break; -case 434: - this.$ = new yy.Op({op:'IS' , left:$$[$0-2], right:$$[$0]}); -break; -case 435: - - this.$ = new yy.Op({ - op:'IS', - left:$$[$0-2], - right: new yy.UniOp({ - op:'NOT', - right:new yy.NullValue({value:undefined}) - }) - }); - -break; -case 436: - this.$ = new yy.Convert({expression:$$[$0-2]}) ; yy.extend(this.$,$$[$0]) ; -break; -case 437: case 438: - this.$ = $$[$0]; -break; -case 439: - this.$ = $$[$0-1]; -break; -case 446: - this.$ = 'ALL'; -break; -case 447: - this.$ = 'SOME'; -break; -case 448: - this.$ = 'ANY'; -break; -case 449: - this.$ = new yy.Update({table:$$[$0-4], columns:$$[$0-2], where:$$[$0]}); -break; -case 450: - this.$ = new yy.Update({table:$$[$0-2], columns:$$[$0]}); -break; -case 453: - this.$ = new yy.SetColumn({column:$$[$0-2], expression:$$[$0]}) -break; -case 454: - this.$ = new yy.SetColumn({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]}) -break; -case 455: - this.$ = new yy.Delete({table:$$[$0-2], where:$$[$0]}); -break; -case 456: - this.$ = new yy.Delete({table:$$[$0]}); -break; -case 457: - this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0]}); -break; -case 458: - this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0]}); -break; -case 459: case 461: - this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0], orreplace:true}); -break; -case 460: case 462: - this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0], orreplace:true}); -break; -case 463: - this.$ = new yy.Insert({into:$$[$0-2], "default": true}) ; -break; -case 464: - this.$ = new yy.Insert({into:$$[$0-5], columns: $$[$0-3], values: $$[$0]}); -break; -case 465: - this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], values: $$[$0]}); -break; -case 466: - this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0]}); -break; -case 467: - this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0], orreplace:true}); -break; -case 468: - this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], select: $$[$0]}); -break; -case 473: - this.$ = [$$[$0-1]]; -break; -case 476: -this.$ = $$[$0-4]; $$[$0-4].push($$[$0-1]) -break; -case 477: case 478: case 480: case 488: -this.$ = $$[$0-2]; $$[$0-2].push($$[$0]) -break; -case 489: - - this.$ = new yy.CreateTable({table:$$[$0-4]}); - yy.extend(this.$,$$[$0-7]); - yy.extend(this.$,$$[$0-6]); - yy.extend(this.$,$$[$0-5]); - yy.extend(this.$,$$[$0-2]); - yy.extend(this.$,$$[$0]); - -break; -case 490: - - this.$ = new yy.CreateTable({table:$$[$0]}); - yy.extend(this.$,$$[$0-3]); - yy.extend(this.$,$$[$0-2]); - yy.extend(this.$,$$[$0-1]); - -break; -case 492: - this.$ = {"class":true}; -break; -case 502: - this.$ = {temporary:true}; -break; -case 504: - this.$ = {ifnotexists: true}; -break; -case 505: - this.$ = {columns: $$[$0-2], constraints: $$[$0]}; -break; -case 506: - this.$ = {columns: $$[$0]}; -break; -case 507: - this.$ = {as: $$[$0]} -break; -case 508: case 532: - this.$ = [$$[$0]]; -break; -case 510: case 511: case 512: case 513: case 514: - $$[$0].constraintid = $$[$0-1]; this.$ = $$[$0]; -break; -case 517: - this.$ = {type: 'CHECK', expression: $$[$0-1]}; -break; -case 518: - this.$ = {type: 'PRIMARY KEY', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()}; -break; -case 519: - this.$ = {type: 'FOREIGN KEY', columns: $$[$0-5], fktable: $$[$0-2], fkcolumns: $$[$0-1]}; -break; -case 525: - - this.$ = {type: 'UNIQUE', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()}; - -break; -case 534: - this.$ = new yy.ColumnDef({columnid:$$[$0-2]}); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]); -break; -case 535: - this.$ = new yy.ColumnDef({columnid:$$[$0-1]}); yy.extend(this.$,$$[$0]); -break; -case 536: - this.$ = new yy.ColumnDef({columnid:$$[$0], dbtypeid: ''}); -break; -case 537: - this.$ = {dbtypeid: $$[$0-5], dbsize: $$[$0-3], dbprecision: +$$[$0-1]} -break; -case 538: - this.$ = {dbtypeid: $$[$0-3], dbsize: $$[$0-1]} -break; -case 539: - this.$ = {dbtypeid: $$[$0]} -break; -case 540: - this.$ = {dbtypeid: 'ENUM', enumvalues: $$[$0-1]} -break; -case 541: - this.$ = $$[$0-1]; $$[$0-1].dbtypeid += '[' + $$[$0] + ']'; -break; -case 543: case 750: - this.$ = +$$[$0]; -break; -case 545: -this.$ = undefined -break; -case 547: - - yy.extend($$[$0-1],$$[$0]); this.$ = $$[$0-1]; - -break; -case 550: -this.$ = {primarykey:true}; -break; -case 551: case 552: -this.$ = {foreignkey:{table:$$[$0-1], columnid: $$[$0]}}; -break; -case 553: - this.$ = {identity: {value:$$[$0-3],step:$$[$0-1]}} -break; -case 554: - this.$ = {identity: {value:1,step:1}} -break; -case 555: case 557: -this.$ = {"default":$$[$0]}; -break; -case 556: -this.$ = {"default":$$[$0-1]}; -break; -case 558: -this.$ = {"null":true}; -break; -case 559: -this.$ = {notnull:true}; -break; -case 560: -this.$ = {check:$$[$0]}; -break; -case 561: -this.$ = {unique:true}; -break; -case 562: -this.$ = {"onupdate":$$[$0]}; -break; -case 563: -this.$ = {"onupdate":$$[$0-1]}; -break; -case 564: - this.$ = new yy.DropTable({tables:$$[$0],type:$$[$0-2]}); yy.extend(this.$, $$[$0-1]); -break; -case 568: - this.$ = {ifexists: true}; -break; -case 569: - this.$ = new yy.AlterTable({table:$$[$0-3], renameto: $$[$0]}); -break; -case 570: - this.$ = new yy.AlterTable({table:$$[$0-3], addcolumn: $$[$0]}); -break; -case 571: - this.$ = new yy.AlterTable({table:$$[$0-3], modifycolumn: $$[$0]}); -break; -case 572: - this.$ = new yy.AlterTable({table:$$[$0-5], renamecolumn: $$[$0-2], to: $$[$0]}); -break; -case 573: - this.$ = new yy.AlterTable({table:$$[$0-3], dropcolumn: $$[$0]}); -break; -case 574: - this.$ = new yy.AlterTable({table:$$[$0-2], renameto: $$[$0]}); -break; -case 575: - this.$ = new yy.AttachDatabase({databaseid:$$[$0], engineid:$$[$0-2].toUpperCase() }); -break; -case 576: - this.$ = new yy.AttachDatabase({databaseid:$$[$0-3], engineid:$$[$0-5].toUpperCase(), args:$$[$0-1] }); -break; -case 577: - this.$ = new yy.AttachDatabase({databaseid:$$[$0-2], engineid:$$[$0-4].toUpperCase(), as:$$[$0] }); -break; -case 578: - this.$ = new yy.AttachDatabase({databaseid:$$[$0-5], engineid:$$[$0-7].toUpperCase(), as:$$[$0], args:$$[$0-3]}); -break; -case 579: - this.$ = new yy.DetachDatabase({databaseid:$$[$0]}); -break; -case 580: - this.$ = new yy.CreateDatabase({databaseid:$$[$0] }); yy.extend(this.$,$$[$0]); -break; -case 581: - this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), databaseid:$$[$0-1], as:$$[$0] }); yy.extend(this.$,$$[$0-2]); -break; -case 582: - this.$ = new yy.CreateDatabase({engineid:$$[$0-7].toUpperCase(), databaseid:$$[$0-4], args:$$[$0-2], as:$$[$0] }); yy.extend(this.$,$$[$0-5]); -break; -case 583: - this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), - as:$$[$0], args:[$$[$0-1]] }); yy.extend(this.$,$$[$0-2]); -break; -case 584: -this.$ = undefined; -break; -case 586: case 587: - this.$ = new yy.UseDatabase({databaseid: $$[$0] }); -break; -case 588: - this.$ = new yy.DropDatabase({databaseid: $$[$0] }); yy.extend(this.$,$$[$0-1]); -break; -case 589: case 590: - this.$ = new yy.DropDatabase({databaseid: $$[$0], engineid:$$[$0-3].toUpperCase() }); yy.extend(this.$,$$[$0-1]); -break; -case 591: - this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1]}) -break; -case 592: - this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1], unique:true}) -break; -case 593: - this.$ = new yy.DropIndex({indexid:$$[$0]}); -break; -case 594: - this.$ = new yy.ShowDatabases(); -break; -case 595: - this.$ = new yy.ShowDatabases({like:$$[$0]}); -break; -case 596: - this.$ = new yy.ShowDatabases({engineid:$$[$0-1].toUpperCase() }); -break; -case 597: - this.$ = new yy.ShowDatabases({engineid:$$[$0-3].toUpperCase() , like:$$[$0]}); -break; -case 598: - this.$ = new yy.ShowTables(); -break; -case 599: - this.$ = new yy.ShowTables({like:$$[$0]}); -break; -case 600: - this.$ = new yy.ShowTables({databaseid: $$[$0]}); -break; -case 601: - this.$ = new yy.ShowTables({like:$$[$0], databaseid: $$[$0-2]}); -break; -case 602: - this.$ = new yy.ShowColumns({table: $$[$0]}); -break; -case 603: - this.$ = new yy.ShowColumns({table: $$[$0-2], databaseid:$$[$0]}); -break; -case 604: - this.$ = new yy.ShowIndex({table: $$[$0]}); -break; -case 605: - this.$ = new yy.ShowIndex({table: $$[$0-2], databaseid: $$[$0]}); -break; -case 606: - this.$ = new yy.ShowCreateTable({table: $$[$0]}); -break; -case 607: - this.$ = new yy.ShowCreateTable({table: $$[$0-2], databaseid:$$[$0]}); -break; -case 608: - - this.$ = new yy.CreateTable({table:$$[$0-6],view:true,select:$$[$0-1],viewcolumns:$$[$0-4]}); - yy.extend(this.$,$$[$0-9]); - yy.extend(this.$,$$[$0-7]); - -break; -case 609: - - this.$ = new yy.CreateTable({table:$$[$0-3],view:true,select:$$[$0-1]}); - yy.extend(this.$,$$[$0-6]); - yy.extend(this.$,$$[$0-4]); - -break; -case 613: - this.$ = new yy.DropTable({tables:$$[$0], view:true}); yy.extend(this.$, $$[$0-1]); -break; -case 614: case 760: - this.$ = new yy.ExpressionStatement({expression:$$[$0]}); -break; -case 615: - this.$ = new yy.Source({url:$$[$0].value}); -break; -case 616: - this.$ = new yy.Assert({value:$$[$0]}); -break; -case 617: - this.$ = new yy.Assert({value:$$[$0].value}); -break; -case 618: - this.$ = new yy.Assert({value:$$[$0], message:$$[$0-2]}); -break; -case 620: case 631: case 633: - this.$ = $$[$0].value; -break; -case 621: case 629: - this.$ = +$$[$0].value; -break; -case 622: - this.$ = (!!$$[$0].value); -break; -case 630: - this.$ = ""+$$[$0].value; -break; -case 639: - this.$ = {}; -break; -case 642: - this.$ = []; -break; -case 643: - yy.extend($$[$0-2],$$[$0]); this.$ = $$[$0-2]; -break; -case 645: - this.$ = {}; this.$[$$[$0-2].substr(1,$$[$0-2].length-2)] = $$[$0]; -break; -case 646: case 647: - this.$ = {}; this.$[$$[$0-2]] = $$[$0]; -break; -case 650: - this.$ = new yy.SetVariable({variable:$$[$0-2].toLowerCase(), value:$$[$0]}); -break; -case 651: - this.$ = new yy.SetVariable({variable:$$[$0-1].toLowerCase(), value:$$[$0]}); -break; -case 652: - this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0]}); -break; -case 653: - this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0]}); -break; -case 654: - this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]}); -break; -case 655: - this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0], method:$$[$0-4]}); -break; -case 656: -this.$ = '@'; -break; -case 657: -this.$ = '$'; -break; -case 663: - this.$ = true; -break; -case 664: - this.$ = false; -break; -case 665: - this.$ = new yy.CommitTransaction(); -break; -case 666: - this.$ = new yy.RollbackTransaction(); -break; -case 667: - this.$ = new yy.BeginTransaction(); -break; -case 668: - this.$ = new yy.If({expression:$$[$0-2],thenstat:$$[$0-1], elsestat:$$[$0]}); - if($$[$0-1].exists) this.$.exists = $$[$0-1].exists; - if($$[$0-1].queries) this.$.queries = $$[$0-1].queries; - -break; -case 669: - - this.$ = new yy.If({expression:$$[$0-1],thenstat:$$[$0]}); - if($$[$0].exists) this.$.exists = $$[$0].exists; - if($$[$0].queries) this.$.queries = $$[$0].queries; - -break; -case 670: -this.$ = $$[$0]; -break; -case 671: - this.$ = new yy.While({expression:$$[$0-1],loopstat:$$[$0]}); - if($$[$0].exists) this.$.exists = $$[$0].exists; - if($$[$0].queries) this.$.queries = $$[$0].queries; - -break; -case 672: - this.$ = new yy.Continue(); -break; -case 673: - this.$ = new yy.Break(); -break; -case 674: - this.$ = new yy.BeginEnd({statements:$$[$0-1]}); -break; -case 675: - this.$ = new yy.Print({exprs:$$[$0]}); -break; -case 676: - this.$ = new yy.Print({select:$$[$0]}); -break; -case 677: - this.$ = new yy.Require({paths:$$[$0]}); -break; -case 678: - this.$ = new yy.Require({plugins:$$[$0]}); -break; -case 679: case 680: -this.$ = $$[$0].toUpperCase(); -break; -case 681: - this.$ = new yy.Echo({expr:$$[$0]}); -break; -case 686: - this.$ = new yy.Declare({declares:$$[$0]}); -break; -case 689: - this.$ = {variable: $$[$0-1]}; yy.extend(this.$,$$[$0]); -break; -case 690: - this.$ = {variable: $$[$0-2]}; yy.extend(this.$,$$[$0]); -break; -case 691: - this.$ = {variable: $$[$0-3], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]); -break; -case 692: - this.$ = {variable: $$[$0-4], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]); -break; -case 693: - this.$ = new yy.TruncateTable({table:$$[$0]}); -break; -case 694: - - this.$ = new yy.Merge(); yy.extend(this.$,$$[$0-4]); yy.extend(this.$,$$[$0-3]); - yy.extend(this.$,$$[$0-2]); - yy.extend(this.$,{matches:$$[$0-1]});yy.extend(this.$,$$[$0]); - -break; -case 695: case 696: - this.$ = {into: $$[$0]}; -break; -case 698: - this.$ = {on:$$[$0]}; -break; -case 703: - this.$ = {matched:true, action:$$[$0]} -break; -case 704: - this.$ = {matched:true, expr: $$[$0-2], action:$$[$0]} -break; -case 705: - this.$ = {"delete":true}; -break; -case 706: - this.$ = {update:$$[$0]}; -break; -case 707: case 708: - this.$ = {matched:false, bytarget: true, action:$$[$0]} -break; -case 709: case 710: - this.$ = {matched:false, bytarget: true, expr:$$[$0-2], action:$$[$0]} -break; -case 711: - this.$ = {matched:false, bysource: true, action:$$[$0]} -break; -case 712: - this.$ = {matched:false, bysource: true, expr:$$[$0-2], action:$$[$0]} -break; -case 713: - this.$ = {insert:true, values:$$[$0]}; -break; -case 714: - this.$ = {insert:true, values:$$[$0], columns:$$[$0-3]}; -break; -case 715: - this.$ = {insert:true, defaultvalues:true}; -break; -case 716: - this.$ = {insert:true, defaultvalues:true, columns:$$[$0-3]}; -break; -case 718: - this.$ = {output:{columns:$$[$0]}} -break; -case 719: - this.$ = {output:{columns:$$[$0-3], intovar: $$[$0], method:$$[$0-1]}} -break; -case 720: - this.$ = {output:{columns:$$[$0-2], intotable: $$[$0]}} -break; -case 721: - this.$ = {output:{columns:$$[$0-5], intotable: $$[$0-3], intocolumns:$$[$0-1]}} -break; -case 722: - - this.$ = new yy.CreateVertex({"class":$$[$0-3],sharp:$$[$0-2], name:$$[$0-1]}); - yy.extend(this.$,$$[$0]); - -break; -case 725: - this.$ = {sets:$$[$0]}; -break; -case 726: - this.$ = {content:$$[$0]}; -break; -case 727: - this.$ = {select:$$[$0]}; -break; -case 728: - - this.$ = new yy.CreateEdge({from:$$[$0-3],to:$$[$0-1],name:$$[$0-5]}); - yy.extend(this.$,$$[$0]); - -break; -case 729: - this.$ = new yy.CreateGraph({graph:$$[$0]}); -break; -case 730: - this.$ = new yy.CreateGraph({from:$$[$0]}); -break; -case 733: - - this.$ = $$[$0-2]; - if($$[$0-1]) this.$.json = new yy.Json({value:$$[$0-1]}); - if($$[$0]) this.$.as = $$[$0]; - -break; -case 734: - - this.$ = {source:$$[$0-6], target: $$[$0]}; - if($$[$0-3]) this.$.json = new yy.Json({value:$$[$0-3]}); - if($$[$0-2]) this.$.as = $$[$0-2]; - yy.extend(this.$,$$[$0-4]); - -break; -case 735: - - this.$ = {source:$$[$0-5], target: $$[$0]}; - if($$[$0-2]) this.$.json = new yy.Json({value:$$[$0-3]}); - if($$[$0-1]) this.$.as = $$[$0-2]; - -break; -case 736: - - this.$ = {source:$$[$0-2], target: $$[$0]}; - -break; -case 740: - this.$ = {vars:$$[$0], method:$$[$0-1]}; -break; -case 743: case 744: - - var s3 = $$[$0-1]; - this.$ = {prop:$$[$0-3], sharp:$$[$0-2], name:(typeof s3 == 'undefined')?undefined:s3.substr(1,s3.length-2), "class":$$[$0]}; - -break; -case 745: - - var s2 = $$[$0-1]; - this.$ = {sharp:$$[$0-2], name:(typeof s2 == 'undefined')?undefined:s2.substr(1,s2.length-2), "class":$$[$0]}; - -break; -case 746: - - var s1 = $$[$0-1]; - this.$ = {name:(typeof s1 == 'undefined')?undefined:s1.substr(1,s1.length-2), "class":$$[$0]}; - -break; -case 747: - - this.$ = {"class":$$[$0]}; - -break; -case 753: - this.$ = new yy.AddRule({left:$$[$0-2], right:$$[$0]}); -break; -case 754: - this.$ = new yy.AddRule({right:$$[$0]}); -break; -case 757: - this.$ = new yy.Term({termid:$$[$0]}); -break; -case 758: - this.$ = new yy.Term({termid:$$[$0-3],args:$$[$0-1]}); -break; -case 761: - - this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-5], action:$$[$0-4], table:$$[$0-2], statement:$$[$0]}); - if($$[$0].exists) this.$.exists = $$[$0].exists; - if($$[$0].queries) this.$.queries = $$[$0].queries; - -break; -case 762: - - this.$ = new yy.CreateTrigger({trigger:$$[$0-5], when:$$[$0-4], action:$$[$0-3], table:$$[$0-1], funcid:$$[$0]}); - -break; -case 763: - - this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-4], action:$$[$0-3], table:$$[$0-5], statement:$$[$0]}); - if($$[$0].exists) this.$.exists = $$[$0].exists; - if($$[$0].queries) this.$.queries = $$[$0].queries; - -break; -case 764: case 765: case 767: - this.$ = 'AFTER'; -break; -case 766: - this.$ = 'BEFORE'; -break; -case 768: - this.$ = 'INSTEADOF'; -break; -case 769: - this.$ = 'INSERT'; -break; -case 770: - this.$ = 'DELETE'; -break; -case 771: - this.$ = 'UPDATE'; -break; -case 772: - this.$ = new yy.DropTrigger({trigger:$$[$0]}); -break; -case 773: - this.$ = new yy.Reindex({indexid:$$[$0]}); -break; -case 1047: case 1067: case 1069: case 1071: case 1075: case 1077: case 1079: case 1081: case 1083: case 1085: -this.$ = []; -break; -case 1048: case 1062: case 1064: case 1068: case 1070: case 1072: case 1076: case 1078: case 1080: case 1082: case 1084: case 1086: -$$[$0-1].push($$[$0]); -break; -case 1061: case 1063: -this.$ = [$$[$0]]; -break; -} -}, -table: [o([10,602,764],$V0,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{1:[3]},{10:[1,105],11:106,602:$VH,764:$VI},o($VJ,[2,8]),o($VJ,[2,9]),o($VK,[2,12]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:109,2:$V1,4:$V2,5:$V3,15:[1,110],53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,14]),o($VK,[2,15]),o($VK,[2,16]),o($VK,[2,17]),o($VK,[2,18]),o($VK,[2,19]),o($VK,[2,20]),o($VK,[2,21]),o($VK,[2,22]),o($VK,[2,23]),o($VK,[2,24]),o($VK,[2,25]),o($VK,[2,26]),o($VK,[2,27]),o($VK,[2,28]),o($VK,[2,29]),o($VK,[2,30]),o($VK,[2,31]),o($VK,[2,32]),o($VK,[2,33]),o($VK,[2,34]),o($VK,[2,35]),o($VK,[2,36]),o($VK,[2,37]),o($VK,[2,38]),o($VK,[2,39]),o($VK,[2,40]),o($VK,[2,41]),o($VK,[2,42]),o($VK,[2,43]),o($VK,[2,44]),o($VK,[2,45]),o($VK,[2,46]),o($VK,[2,47]),o($VK,[2,48]),o($VK,[2,49]),o($VK,[2,50]),o($VK,[2,51]),o($VK,[2,52]),o($VK,[2,53]),o($VK,[2,54]),o($VK,[2,55]),o($VK,[2,56]),o($VK,[2,57]),o($VK,[2,58]),o($VK,[2,59]),o($VK,[2,60]),o($VK,[2,61]),o($VK,[2,62]),o($VK,[2,63]),o($VK,[2,64]),o($VK,[2,65]),o($VK,[2,66]),o($VK,[2,67]),{353:[1,111]},{2:$V1,3:112,4:$V2,5:$V3},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:113,290:$VM,291:$VN,292:$VO,293:$VP},o($VQ,[2,501],{3:121,348:125,2:$V1,4:$V2,5:$V3,134:$VR,135:$VS,187:[1,123],193:[1,122],268:[1,129],269:[1,130],357:[1,131],405:[1,120],472:[1,124],509:[1,128]}),{145:$VT,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:$V1,3:138,4:$V2,5:$V3,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:145,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:204,171:[1,205],198:$Vv1}),o($Vt1,$Vu1,{340:207,198:$Vv1}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1,453:208},{2:$V1,3:221,4:$V2,5:$V3},{353:[1,222]},o($Vz1,[2,1043],{80:223,106:224,107:[1,225]}),o($VA1,[2,1047],{90:226}),{2:$V1,3:230,4:$V2,5:$V3,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:$V1,3:236,4:$V2,5:$V3,73:234,75:235},o([306,602,764],$V0,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,9:238,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,435:[1,237],436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{435:[1,239]},{435:[1,240]},{2:$V1,3:242,4:$V2,5:$V3,405:[1,241]},{2:$V1,3:244,4:$V2,5:$V3,199:243},o($VB1,[2,311]),{113:245,132:$VW,296:$Vj1},{2:$V1,3:114,4:$V2,5:$V3,113:251,131:$VV,132:[1,248],143:$VY,144:246,145:$VC1,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:247,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,672]),o($VK,[2,673]),{2:$V1,3:168,4:$V2,5:$V3,40:259,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:258,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:266,4:$V2,5:$V3,113:263,132:$VW,296:$Vj1,444:261,445:262,446:264,447:$VE1},{2:$V1,3:267,4:$V2,5:$V3,143:$VF1,145:$VG1,431:268},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:271,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{505:[1,272]},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:273},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:275,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH1,$VI1,{186:280,164:[1,279],185:[1,277],187:[1,278],195:$VJ1}),o($VK1,[2,757],{77:[1,282]}),o([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],[2,152],{149:[1,283],150:[1,284],190:[1,285],191:[1,286],192:[1,287],193:[1,288],194:[1,289]}),o($VL1,[2,1]),o($VL1,[2,2]),{6:290,131:[1,439],172:[1,462],245:[1,411],285:[1,373],286:[1,407],370:[1,404],381:[1,295],402:[1,297],410:[1,549],414:[1,471],416:[1,443],417:[1,509],433:[1,442],435:[1,525],440:[1,342],460:[1,418],464:[1,448],470:[1,341],514:[1,307],515:[1,299],516:[1,399],518:[1,291],519:[1,292],520:[1,293],521:[1,294],522:[1,296],523:[1,298],524:[1,300],525:[1,301],526:[1,302],527:[1,303],528:[1,304],529:[1,305],530:[1,306],531:[1,308],532:[1,309],533:[1,310],534:[1,311],535:[1,312],536:[1,313],537:[1,314],538:[1,315],539:[1,316],540:[1,317],541:[1,318],542:[1,319],543:[1,320],544:[1,321],545:[1,322],546:[1,323],547:[1,324],548:[1,325],549:[1,326],550:[1,327],551:[1,328],552:[1,329],553:[1,330],554:[1,331],555:[1,332],556:[1,333],557:[1,334],558:[1,335],559:[1,336],560:[1,337],561:[1,338],562:[1,339],563:[1,340],564:[1,343],565:[1,344],566:[1,345],567:[1,346],568:[1,347],569:[1,348],570:[1,349],571:[1,350],572:[1,351],573:[1,352],574:[1,353],575:[1,354],576:[1,355],577:[1,356],578:[1,357],579:[1,358],580:[1,359],581:[1,360],582:[1,361],583:[1,362],584:[1,363],585:[1,364],586:[1,365],587:[1,366],588:[1,367],589:[1,368],590:[1,369],591:[1,370],592:[1,371],593:[1,372],594:[1,374],595:[1,375],596:[1,376],597:[1,377],598:[1,378],599:[1,379],600:[1,380],601:[1,381],602:[1,382],603:[1,383],604:[1,384],605:[1,385],606:[1,386],607:[1,387],608:[1,388],609:[1,389],610:[1,390],611:[1,391],612:[1,392],613:[1,393],614:[1,394],615:[1,395],616:[1,396],617:[1,397],618:[1,398],619:[1,400],620:[1,401],621:[1,402],622:[1,403],623:[1,405],624:[1,406],625:[1,408],626:[1,409],627:[1,410],628:[1,412],629:[1,413],630:[1,414],631:[1,415],632:[1,416],633:[1,417],634:[1,419],635:[1,420],636:[1,421],637:[1,422],638:[1,423],639:[1,424],640:[1,425],641:[1,426],642:[1,427],643:[1,428],644:[1,429],645:[1,430],646:[1,431],647:[1,432],648:[1,433],649:[1,434],650:[1,435],651:[1,436],652:[1,437],653:[1,438],654:[1,440],655:[1,441],656:[1,444],657:[1,445],658:[1,446],659:[1,447],660:[1,449],661:[1,450],662:[1,451],663:[1,452],664:[1,453],665:[1,454],666:[1,455],667:[1,456],668:[1,457],669:[1,458],670:[1,459],671:[1,460],672:[1,461],673:[1,463],674:[1,464],675:[1,465],676:[1,466],677:[1,467],678:[1,468],679:[1,469],680:[1,470],681:[1,472],682:[1,473],683:[1,474],684:[1,475],685:[1,476],686:[1,477],687:[1,478],688:[1,479],689:[1,480],690:[1,481],691:[1,482],692:[1,483],693:[1,484],694:[1,485],695:[1,486],696:[1,487],697:[1,488],698:[1,489],699:[1,490],700:[1,491],701:[1,492],702:[1,493],703:[1,494],704:[1,495],705:[1,496],706:[1,497],707:[1,498],708:[1,499],709:[1,500],710:[1,501],711:[1,502],712:[1,503],713:[1,504],714:[1,505],715:[1,506],716:[1,507],717:[1,508],718:[1,510],719:[1,511],720:[1,512],721:[1,513],722:[1,514],723:[1,515],724:[1,516],725:[1,517],726:[1,518],727:[1,519],728:[1,520],729:[1,521],730:[1,522],731:[1,523],732:[1,524],733:[1,526],734:[1,527],735:[1,528],736:[1,529],737:[1,530],738:[1,531],739:[1,532],740:[1,533],741:[1,534],742:[1,535],743:[1,536],744:[1,537],745:[1,538],746:[1,539],747:[1,540],748:[1,541],749:[1,542],750:[1,543],751:[1,544],752:[1,545],753:[1,546],754:[1,547],755:[1,548],756:[1,550],757:[1,551],758:[1,552],759:[1,553],760:[1,554],761:[1,555],762:[1,556],763:[1,557]},{1:[2,6]},o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:558,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VM1,[2,1041]),o($VM1,[2,1042]),o($VJ,[2,10]),{16:[1,559]},{2:$V1,3:244,4:$V2,5:$V3,199:560},{405:[1,561]},o($VK,[2,760]),{77:$VN1},{77:[1,563]},{77:$VO1},{77:[1,565]},{77:[1,566]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:567,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$VP1,{350:568,156:$VQ1}),{405:[1,570]},{2:$V1,3:571,4:$V2,5:$V3},{193:[1,572]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,183:[1,574],431:585,473:573,474:575,475:576,478:577,482:582,493:579,497:581},{130:[1,589],349:586,353:[1,588],410:[1,587]},{113:591,132:$VW,183:[2,1141],296:$Vj1,471:590},o($VU1,[2,1135],{465:592,3:593,2:$V1,4:$V2,5:$V3}),{2:$V1,3:594,4:$V2,5:$V3},{4:[1,595]},{4:[1,596]},o($VQ,[2,502]),o($VK,[2,686],{74:[1,597]}),o($VV1,[2,687]),{2:$V1,3:598,4:$V2,5:$V3},{2:$V1,3:244,4:$V2,5:$V3,199:599},{2:$V1,3:600,4:$V2,5:$V3},o($Vt1,$VW1,{398:601,156:$VX1}),{405:[1,603]},{2:$V1,3:604,4:$V2,5:$V3},o($Vt1,$VW1,{398:605,156:$VX1}),o($Vt1,$VW1,{398:606,156:$VX1}),{2:$V1,3:607,4:$V2,5:$V3},o($VY1,[2,1129]),o($VY1,[2,1130]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:608,114:625,327:637,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VB1,[2,288]),o($VB1,[2,289]),o($VB1,[2,290]),o($VB1,[2,291]),o($VB1,[2,292]),o($VB1,[2,293]),o($VB1,[2,294]),o($VB1,[2,295]),o($VB1,[2,296]),o($VB1,[2,297]),o($VB1,[2,298]),o($VB1,[2,299]),o($VB1,[2,300]),o($VB1,[2,301]),o($VB1,[2,302]),o($VB1,[2,303]),o($VB1,[2,304]),o($VB1,[2,305]),{2:$V1,3:168,4:$V2,5:$V3,26:654,27:653,36:649,40:648,56:165,77:$VU,79:75,89:$V7,94:651,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,264:650,265:$V41,266:$Vc,267:[1,655],270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:[1,652],291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,339:$Vh,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,309]),o($VB1,[2,310]),{77:[1,656]},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:[1,657]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:658,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:659,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:661,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:662,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,283]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,249,265,266,267,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,300,302,303,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,415,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764,765,766],[2,356]),o($Vz2,[2,357]),o($Vz2,[2,358]),o($Vz2,$VA2),o($Vz2,[2,360]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,361]),{2:$V1,3:664,4:$V2,5:$V3,131:[1,665],301:663},{2:$V1,3:666,4:$V2,5:$V3},o($Vz2,[2,367]),o($Vz2,[2,368]),{2:$V1,3:667,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{77:[1,674]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:675,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,304:676,307:677,308:$VC2,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,679]},{77:[1,680]},o($VD2,[2,624]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,683],302:$Vn1,419:190,420:$Vr1,421:681,422:684,423:686,424:$Vs1,427:682},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:696,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:697,4:$V2,5:$V3,156:$VL,200:698,290:$VM,291:$VN,292:$VO,293:$VP},{77:[2,336]},{77:[2,337]},{77:[2,338]},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,425:699,426:[1,700],428:701},{2:$V1,3:244,4:$V2,5:$V3,199:705},{290:[1,706]},o($Vt1,[2,472]),{2:$V1,3:244,4:$V2,5:$V3,199:707},{231:[1,709],454:708},{231:[2,695]},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:710,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{40:711,79:75,89:$V7,184:99,189:$Vb},o($VH2,[2,1091],{210:712,76:[1,713]}),o($VI2,[2,185],{3:714,2:$V1,4:$V2,5:$V3,76:[1,715],154:[1,716]}),o($VI2,[2,189],{3:717,2:$V1,4:$V2,5:$V3,76:[1,718]}),o($VI2,[2,190],{3:719,2:$V1,4:$V2,5:$V3,76:[1,720]}),o($VI2,[2,193]),o($VI2,[2,194],{3:721,2:$V1,4:$V2,5:$V3,76:[1,722]}),o($VI2,[2,197],{3:723,2:$V1,4:$V2,5:$V3,76:[1,724]}),o([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2,{77:$VN1,116:$VK2}),o([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],[2,200]),o($VK,[2,773]),{2:$V1,3:244,4:$V2,5:$V3,199:726},o($VL2,$VM2,{81:727,198:$VN2}),o($Vz1,[2,1044]),o($VO2,[2,1057],{108:729,190:[1,730]}),o([10,78,183,306,310,602,764],$VM2,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,198:$VN2,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),{353:[1,782]},{183:[1,783]},o($VK,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},o($VK,[2,598],{112:[1,787],183:[1,788]}),{2:$V1,3:244,4:$V2,5:$V3,199:789},{40:790,74:[1,791],79:75,89:$V7,184:99,189:$Vb},o($Vv3,[2,70]),{76:[1,792]},o($VK,[2,667]),{11:106,306:[1,793],602:$VH,764:$VI},o($VK,[2,665]),o($VK,[2,666]),{2:$V1,3:794,4:$V2,5:$V3},o($VK,[2,587]),{146:[1,795]},o([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],$VJ2,{116:$VK2}),o($VK,[2,615]),o($VK,[2,616]),o($VK,[2,617]),o($VK,$VA2,{74:[1,796]}),{77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},o($Vw3,[2,320]),o($Vw3,[2,321]),o($Vw3,[2,322]),o($Vw3,[2,323]),o($Vw3,[2,324]),o($Vw3,[2,325]),o($Vw3,[2,326]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,114:625,327:637,12:797,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,675],{74:$Vx3}),o($VK,[2,676]),o($Vy3,[2,354],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,677],{74:[1,800]}),o($VK,[2,678],{74:[1,801]}),o($VV1,[2,683]),o($VV1,[2,685]),o($VV1,[2,679]),o($VV1,[2,680]),{114:807,115:$V$1,116:$V02,124:[1,802],230:$VA3,429:803,430:804,433:$VB3},{2:$V1,3:808,4:$V2,5:$V3},o($Vt1,[2,656]),o($Vt1,[2,657]),o($VK,[2,614],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:100,4:$V2,5:$V3,504:274,506:809},o($VK,[2,754],{74:$VC3}),o($VD3,[2,756]),o($VK,[2,759]),o($VK,[2,681],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VE3,$VI1,{186:811,195:$VJ1}),o($VE3,$VI1,{186:812,195:$VJ1}),o($VE3,$VI1,{186:813,195:$VJ1}),o($VF3,[2,1087],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,188:814,174:815,253:816,94:817,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{77:[1,819],131:$VV,196:818},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:820},o($VG3,[2,153]),o($VG3,[2,154]),o($VG3,[2,155]),o($VG3,[2,156]),o($VG3,[2,157]),o($VG3,[2,158]),o($VG3,[2,159]),o($VL1,[2,3]),o($VL1,[2,774]),o($VL1,[2,775]),o($VL1,[2,776]),o($VL1,[2,777]),o($VL1,[2,778]),o($VL1,[2,779]),o($VL1,[2,780]),o($VL1,[2,781]),o($VL1,[2,782]),o($VL1,[2,783]),o($VL1,[2,784]),o($VL1,[2,785]),o($VL1,[2,786]),o($VL1,[2,787]),o($VL1,[2,788]),o($VL1,[2,789]),o($VL1,[2,790]),o($VL1,[2,791]),o($VL1,[2,792]),o($VL1,[2,793]),o($VL1,[2,794]),o($VL1,[2,795]),o($VL1,[2,796]),o($VL1,[2,797]),o($VL1,[2,798]),o($VL1,[2,799]),o($VL1,[2,800]),o($VL1,[2,801]),o($VL1,[2,802]),o($VL1,[2,803]),o($VL1,[2,804]),o($VL1,[2,805]),o($VL1,[2,806]),o($VL1,[2,807]),o($VL1,[2,808]),o($VL1,[2,809]),o($VL1,[2,810]),o($VL1,[2,811]),o($VL1,[2,812]),o($VL1,[2,813]),o($VL1,[2,814]),o($VL1,[2,815]),o($VL1,[2,816]),o($VL1,[2,817]),o($VL1,[2,818]),o($VL1,[2,819]),o($VL1,[2,820]),o($VL1,[2,821]),o($VL1,[2,822]),o($VL1,[2,823]),o($VL1,[2,824]),o($VL1,[2,825]),o($VL1,[2,826]),o($VL1,[2,827]),o($VL1,[2,828]),o($VL1,[2,829]),o($VL1,[2,830]),o($VL1,[2,831]),o($VL1,[2,832]),o($VL1,[2,833]),o($VL1,[2,834]),o($VL1,[2,835]),o($VL1,[2,836]),o($VL1,[2,837]),o($VL1,[2,838]),o($VL1,[2,839]),o($VL1,[2,840]),o($VL1,[2,841]),o($VL1,[2,842]),o($VL1,[2,843]),o($VL1,[2,844]),o($VL1,[2,845]),o($VL1,[2,846]),o($VL1,[2,847]),o($VL1,[2,848]),o($VL1,[2,849]),o($VL1,[2,850]),o($VL1,[2,851]),o($VL1,[2,852]),o($VL1,[2,853]),o($VL1,[2,854]),o($VL1,[2,855]),o($VL1,[2,856]),o($VL1,[2,857]),o($VL1,[2,858]),o($VL1,[2,859]),o($VL1,[2,860]),o($VL1,[2,861]),o($VL1,[2,862]),o($VL1,[2,863]),o($VL1,[2,864]),o($VL1,[2,865]),o($VL1,[2,866]),o($VL1,[2,867]),o($VL1,[2,868]),o($VL1,[2,869]),o($VL1,[2,870]),o($VL1,[2,871]),o($VL1,[2,872]),o($VL1,[2,873]),o($VL1,[2,874]),o($VL1,[2,875]),o($VL1,[2,876]),o($VL1,[2,877]),o($VL1,[2,878]),o($VL1,[2,879]),o($VL1,[2,880]),o($VL1,[2,881]),o($VL1,[2,882]),o($VL1,[2,883]),o($VL1,[2,884]),o($VL1,[2,885]),o($VL1,[2,886]),o($VL1,[2,887]),o($VL1,[2,888]),o($VL1,[2,889]),o($VL1,[2,890]),o($VL1,[2,891]),o($VL1,[2,892]),o($VL1,[2,893]),o($VL1,[2,894]),o($VL1,[2,895]),o($VL1,[2,896]),o($VL1,[2,897]),o($VL1,[2,898]),o($VL1,[2,899]),o($VL1,[2,900]),o($VL1,[2,901]),o($VL1,[2,902]),o($VL1,[2,903]),o($VL1,[2,904]),o($VL1,[2,905]),o($VL1,[2,906]),o($VL1,[2,907]),o($VL1,[2,908]),o($VL1,[2,909]),o($VL1,[2,910]),o($VL1,[2,911]),o($VL1,[2,912]),o($VL1,[2,913]),o($VL1,[2,914]),o($VL1,[2,915]),o($VL1,[2,916]),o($VL1,[2,917]),o($VL1,[2,918]),o($VL1,[2,919]),o($VL1,[2,920]),o($VL1,[2,921]),o($VL1,[2,922]),o($VL1,[2,923]),o($VL1,[2,924]),o($VL1,[2,925]),o($VL1,[2,926]),o($VL1,[2,927]),o($VL1,[2,928]),o($VL1,[2,929]),o($VL1,[2,930]),o($VL1,[2,931]),o($VL1,[2,932]),o($VL1,[2,933]),o($VL1,[2,934]),o($VL1,[2,935]),o($VL1,[2,936]),o($VL1,[2,937]),o($VL1,[2,938]),o($VL1,[2,939]),o($VL1,[2,940]),o($VL1,[2,941]),o($VL1,[2,942]),o($VL1,[2,943]),o($VL1,[2,944]),o($VL1,[2,945]),o($VL1,[2,946]),o($VL1,[2,947]),o($VL1,[2,948]),o($VL1,[2,949]),o($VL1,[2,950]),o($VL1,[2,951]),o($VL1,[2,952]),o($VL1,[2,953]),o($VL1,[2,954]),o($VL1,[2,955]),o($VL1,[2,956]),o($VL1,[2,957]),o($VL1,[2,958]),o($VL1,[2,959]),o($VL1,[2,960]),o($VL1,[2,961]),o($VL1,[2,962]),o($VL1,[2,963]),o($VL1,[2,964]),o($VL1,[2,965]),o($VL1,[2,966]),o($VL1,[2,967]),o($VL1,[2,968]),o($VL1,[2,969]),o($VL1,[2,970]),o($VL1,[2,971]),o($VL1,[2,972]),o($VL1,[2,973]),o($VL1,[2,974]),o($VL1,[2,975]),o($VL1,[2,976]),o($VL1,[2,977]),o($VL1,[2,978]),o($VL1,[2,979]),o($VL1,[2,980]),o($VL1,[2,981]),o($VL1,[2,982]),o($VL1,[2,983]),o($VL1,[2,984]),o($VL1,[2,985]),o($VL1,[2,986]),o($VL1,[2,987]),o($VL1,[2,988]),o($VL1,[2,989]),o($VL1,[2,990]),o($VL1,[2,991]),o($VL1,[2,992]),o($VL1,[2,993]),o($VL1,[2,994]),o($VL1,[2,995]),o($VL1,[2,996]),o($VL1,[2,997]),o($VL1,[2,998]),o($VL1,[2,999]),o($VL1,[2,1000]),o($VL1,[2,1001]),o($VL1,[2,1002]),o($VL1,[2,1003]),o($VL1,[2,1004]),o($VL1,[2,1005]),o($VL1,[2,1006]),o($VL1,[2,1007]),o($VL1,[2,1008]),o($VL1,[2,1009]),o($VL1,[2,1010]),o($VL1,[2,1011]),o($VL1,[2,1012]),o($VL1,[2,1013]),o($VL1,[2,1014]),o($VL1,[2,1015]),o($VL1,[2,1016]),o($VL1,[2,1017]),o($VL1,[2,1018]),o($VL1,[2,1019]),o($VL1,[2,1020]),o($VL1,[2,1021]),o($VL1,[2,1022]),o($VL1,[2,1023]),o($VL1,[2,1024]),o($VL1,[2,1025]),o($VL1,[2,1026]),o($VL1,[2,1027]),o($VL1,[2,1028]),o($VL1,[2,1029]),o($VL1,[2,1030]),o($VL1,[2,1031]),o($VL1,[2,1032]),o($VL1,[2,1033]),o($VL1,[2,1034]),o($VL1,[2,1035]),o($VL1,[2,1036]),o($VL1,[2,1037]),o($VL1,[2,1038]),o($VL1,[2,1039]),o($VL1,[2,1040]),o($VJ,[2,7]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:821,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:$V1,3:826,4:$V2,5:$V3},o($VE3,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:832,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:833,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:834,4:$V2,5:$V3,132:[1,835]},{2:$V1,3:836,4:$V2,5:$V3,132:[1,837]},{2:$V1,3:838,4:$V2,5:$V3,99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:839,4:$V2,5:$V3},{154:[1,840]},o($VH3,$VP1,{350:841,156:$VQ1}),{230:[1,842]},{2:$V1,3:843,4:$V2,5:$V3},o($VK,[2,729],{74:$VI3}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:845,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD3,[2,732]),o($VJ3,[2,1143],{419:190,476:846,144:847,139:$VK3,141:$VK3,145:$VC1,420:$Vr1,424:$Vs1}),{139:[1,848],141:[1,849]},o($VL3,$VM3,{490:851,493:852,77:[1,850],137:$VS1}),o($VN3,[2,1167],{494:853,132:[1,854]}),o($VO3,[2,1171],{496:855,497:856,152:$VT1}),o($VO3,[2,747]),o($VP3,[2,739]),{2:$V1,3:857,4:$V2,5:$V3,131:[1,858]},{2:$V1,3:859,4:$V2,5:$V3},{2:$V1,3:860,4:$V2,5:$V3},o($Vt1,$VP1,{350:861,156:$VQ1}),o($Vt1,$VP1,{350:862,156:$VQ1}),o($VY1,[2,491]),o($VY1,[2,492]),{183:[1,863]},{183:[2,1142]},o($VQ3,[2,1137],{466:864,469:865,137:[1,866]}),o($VU1,[2,1136]),o($VR3,$VS3,{510:867,95:$VT3,230:[1,868],514:$VU3,515:$VV3,516:$VW3}),{76:[1,873]},{76:[1,874]},{145:$VT,450:875},{4:$VX3,7:879,76:[1,877],272:876,387:878,389:$VY3},o($VK,[2,456],{128:[1,882]}),o($VK,[2,579]),{2:$V1,3:883,4:$V2,5:$V3},{298:[1,884]},o($VH3,$VW1,{398:885,156:$VX1}),o($VK,[2,593]),{2:$V1,3:244,4:$V2,5:$V3,199:887,399:886},{2:$V1,3:244,4:$V2,5:$V3,199:887,399:888},o($VK,[2,772]),o($VJ,[2,669],{438:889,310:[1,890]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:891,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:892,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:893,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:894,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:895,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:896,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:897,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:898,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:899,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:900,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:901,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:902,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:903,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:904,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:905,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:906,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:907,4:$V2,5:$V3,77:[1,909],131:$VV,156:$VL,196:908,200:910,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:911,4:$V2,5:$V3,77:[1,913],131:$VV,156:$VL,196:912,200:914,290:$VM,291:$VN,292:$VO,293:$VP},o($VZ3,[2,440],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:915,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,441],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:916,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,442],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:917,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,443],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:918,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:919,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:920,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:921,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,[2,445],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:922,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:923,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:924,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:929,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:930,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:[1,931],111:934,145:$V$3,156:$VL,200:935,202:933,290:$VM,291:$VN,292:$VO,293:$VP,329:932},{99:[1,937],297:[1,938]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:939,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:940,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:941,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:942,387:878,389:$VY3},o($V04,[2,88]),o($V04,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vt1,$Vu1,{340:207,77:$VO1,198:$Vv1}),{78:[2,1107]},{78:[2,1108]},{134:$VR,135:$VS},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:947,152:$V$,154:$V01,156:$VL,158:167,164:[1,949],179:$V11,180:$V21,181:$V31,185:[1,948],196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:950,4:$V2,5:$V3,149:$V14,180:[1,952]},o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,416],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($V24,[2,417],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,418],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V34,[2,419],{114:625,327:637,316:$Vj2}),o($V34,[2,420],{114:625,327:637,316:$Vj2}),o($Vz2,[2,365]),o($Vz2,[2,1113]),o($Vz2,[2,1114]),o($Vz2,[2,366]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,362]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:953,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,620]),o($VD2,[2,621]),o($VD2,[2,622]),o($VD2,[2,623]),o($VD2,[2,625]),{40:954,79:75,89:$V7,184:99,189:$Vb},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,304:955,307:677,308:$VC2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{305:956,306:$V44,307:957,308:$VC2,310:$V54},o($V64,[2,372]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:959,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:960,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:961,387:878,389:$VY3},o($VD2,[2,626]),{74:[1,963],300:[1,962]},o($VD2,[2,642]),o($V74,[2,649]),o($V84,[2,627]),o($V84,[2,628]),o($V84,[2,629]),o($V84,[2,630]),o($V84,[2,631]),o($V84,[2,632]),o($V84,[2,633]),o($V84,[2,634]),o($V84,[2,635]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:964,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:$V94}),{74:$Vx3,300:[1,966]},o($Va4,[2,314],{77:$VN1}),o($VB1,[2,315]),{74:[1,968],426:[1,967]},o($VD2,[2,639]),o($Vb4,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:972,342:973,343:[1,974],344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:981,198:$Vv1}),{77:$Ve4,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,201:980,302:$Vn1,341:982,342:983,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{230:[1,986],455:985},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:987,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{231:[2,696]},{78:[1,988]},o($VI2,[2,1093],{211:989,3:990,2:$V1,4:$V2,5:$V3}),o($VH2,[2,1092]),o($VI2,[2,183]),{2:$V1,3:991,4:$V2,5:$V3},{212:[1,992]},o($VI2,[2,187]),{2:$V1,3:993,4:$V2,5:$V3},o($VI2,[2,191]),{2:$V1,3:994,4:$V2,5:$V3},o($VI2,[2,195]),{2:$V1,3:995,4:$V2,5:$V3},o($VI2,[2,198]),{2:$V1,3:996,4:$V2,5:$V3},{2:$V1,3:997,4:$V2,5:$V3},{148:[1,998]},o($Vf4,[2,172],{82:999,183:[1,1000]}),{2:$V1,3:219,4:$V2,5:$V3,132:[1,1005],143:$VY,145:[1,1006],152:$V$,156:$VL,181:$V31,199:1001,200:1002,201:1003,202:1004,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1},{2:$V1,3:1011,4:$V2,5:$V3,109:1007,110:1008,111:1009,112:$Vg4},o($VO2,[2,1058]),o($Vh4,[2,1049],{91:1012,182:1013,183:[1,1014]}),o($VA1,[2,1048],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,90],{77:[1,1019]}),{119:[1,1020]},o($Vl4,[2,93]),{2:$V1,3:1021,4:$V2,5:$V3},o($Vl4,[2,95]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1022,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1023,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1025,118:$VT2,122:$VU2,123:$VV2,124:$VW2,125:1024,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},o($Vl4,[2,104]),o($Vl4,[2,105]),o($Vl4,[2,106]),o($Vl4,[2,107]),o($Vl4,[2,108]),o($Vl4,[2,109]),{2:$V1,3:1030,4:$V2,5:$V3},{2:$V1,3:1031,4:$V2,5:$V3,133:[1,1032]},o($Vl4,[2,113]),o($Vl4,[2,114]),o($Vl4,[2,115]),o($Vl4,[2,116]),o($Vl4,[2,117]),o($Vl4,[2,118]),{2:$V1,3:1033,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},o($Vl4,[2,123]),{77:[1,1037]},{2:$V1,3:1038,4:$V2,5:$V3},{77:[1,1039]},{77:[1,1040]},{77:[1,1041]},{77:[1,1042]},{77:[1,1043],164:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047]},{77:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[2,1073]},{77:[2,1074]},{2:$V1,3:244,4:$V2,5:$V3,199:1054},{2:$V1,3:244,4:$V2,5:$V3,199:1055},{113:1056,132:$VW,296:$Vj1},o($VK,[2,596],{112:[1,1057]}),{2:$V1,3:244,4:$V2,5:$V3,199:1058},{113:1059,132:$VW,296:$Vj1},{2:$V1,3:1060,4:$V2,5:$V3},o($VK,[2,693]),o($VK,[2,68]),{2:$V1,3:236,4:$V2,5:$V3,75:1061},{77:[1,1062]},o($VK,[2,674]),o($VK,[2,586]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1063,336:1064,337:1066},{144:1069,145:$VC1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,671]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1070,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:1071,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{113:1072,132:$VW,296:$Vj1},{2:$V1,3:266,4:$V2,5:$V3,446:1073,447:$VE1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1075,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,230:$VA3,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1,429:1074,433:$VB3},o($VK,[2,651]),{114:1077,115:$V$1,116:$V02,124:[1,1076]},o($VK,[2,663]),o($VK,[2,664]),{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1078},{114:807,115:$V$1,116:$V02,124:[1,1082],430:1083},o($VK,[2,753],{74:$VC3}),{2:$V1,3:100,4:$V2,5:$V3,504:1084},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1085,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1086,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1087,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VF3,[2,151]),o($VF3,[2,1088],{74:$Vq4}),o($Vr4,[2,273]),o($Vr4,[2,280],{114:625,327:637,3:1090,113:1092,2:$V1,4:$V2,5:$V3,76:[1,1089],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,131:[1,1091],132:$VW,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,296:$Vj1,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VH1,[2,1089],{197:1093,765:[1,1094]}),{131:$VV,196:1095},{74:$VC3,78:[1,1096]},o($VJ,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},o($VK,[2,575],{76:[1,1103],77:[1,1102]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1104,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vz2,[2,346]),o($VE3,[2,1112]),o($VE3,[2,1109]),o($VE3,[2,1110]),{74:$Vx3,78:[1,1105]},{74:$Vx3,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},o($Vz2,[2,353]),o($VK,[2,580]),{298:[1,1111]},{2:$V1,3:1112,4:$V2,5:$V3,113:1113,132:$VW,296:$Vj1},{2:$V1,3:244,4:$V2,5:$V3,199:1114},{230:[1,1115]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},o($VK,[2,730],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD3,[2,1145],{477:1117,483:1118,76:$Vs4}),o($VJ3,[2,1144]),{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,144:1121,145:$VC1,152:$VT1,419:190,420:$Vr1,424:$Vs1,475:1120,493:579,497:581},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},o($VN3,[2,1163],{491:1126,132:[1,1127]}),o($VL3,[2,1162]),o($VO3,[2,1169],{495:1128,497:1129,152:$VT1}),o($VN3,[2,1168]),o($VO3,[2,746]),o($VO3,[2,1172]),o($VL3,[2,749]),o($VL3,[2,750]),o($VO3,[2,748]),o($VP3,[2,740]),{2:$V1,3:244,4:$V2,5:$V3,199:1130},{2:$V1,3:244,4:$V2,5:$V3,199:1131},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1132,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt4,[2,1139],{467:1133,113:1134,132:$VW,296:$Vj1}),o($VQ3,[2,1138]),{2:$V1,3:1135,4:$V2,5:$V3},{335:$Vu4,338:$Vv4,339:$Vw4,511:1136},{2:$V1,3:244,4:$V2,5:$V3,199:1140},o($VR3,[2,765]),o($VR3,[2,766]),o($VR3,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},o($VV1,[2,688]),o($VV1,[2,689],{124:[1,1144]}),{4:$VX3,7:879,272:1145,387:878,389:$VY3},o([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,542],{5:[1,1146]}),o([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,539],{4:[1,1148],77:[1,1147]}),{77:[1,1149]},o($Vx4,[2,4]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1150,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,588]),o($VH3,[2,568]),{2:$V1,3:1151,4:$V2,5:$V3,113:1152,132:$VW,296:$Vj1},o($VK,[2,564],{74:$Vy4}),o($VV1,[2,566]),o($VK,[2,613],{74:$Vy4}),o($VK,[2,668]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1154,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($Vz4,[2,376],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($V34,[2,377],{114:625,327:637,316:$Vj2}),o($Vz4,[2,378],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,379],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1155],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,381],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1156],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,383],{114:625,327:637}),o($V24,[2,384],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,385],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($VB4,[2,386],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,387],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,388],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,389],{114:625,327:637,115:$V$1,116:$V02,136:$V42,312:$Vg2,316:$Vj2}),o($VC4,[2,390],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,391],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,392],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,393],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($Va4,[2,394],{77:$VN1}),o($VB1,[2,395]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1157,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,397]),o($Va4,[2,398],{77:$VN1}),o($VB1,[2,399]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1158,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,401]),o($VD4,[2,402],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,403],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,404],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,405],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,266,267,290,306,310,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,407],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,408],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,409],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,410],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,411],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},o($VF4,[2,414],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,415],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2}),{2:$V1,3:168,4:$V2,5:$V3,40:1160,56:165,77:$VU,78:[1,1162],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1161,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,428]),o($VB1,[2,430]),o($VB1,[2,437]),o($VB1,[2,438]),{2:$V1,3:667,4:$V2,5:$V3,77:[1,1163]},{2:$V1,3:695,4:$V2,5:$V3,77:[1,1164],111:934,145:$V$3,156:$VL,200:935,202:1166,290:$VM,291:$VN,292:$VO,293:$VP,329:1165},o($VB1,[2,435]),o($VF4,[2,432],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($VF4,[2,433],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,434],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,436]),o($VB1,[2,306]),o($VB1,[2,307]),o($VB1,[2,308]),o($VB1,[2,421]),{74:$Vx3,78:[1,1167]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1168,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1169,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,$VG4),o($VH4,[2,286]),o($VB1,[2,282]),{78:[1,1171],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1172]},{305:1173,306:$V44,307:957,308:$VC2,310:$V54},{306:[1,1174]},o($V64,[2,371]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1175,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1176],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{76:[1,1177],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1178]},o($VD2,[2,640]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,1179],302:$Vn1,419:190,420:$Vr1,422:1180,423:686,424:$Vs1},{78:[1,1181],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1182,4:$V2,5:$V3,149:$V14},o($VB1,[2,364]),o($VD2,[2,637]),{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,426:[1,1183],428:1184},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1185,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1186,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1187,423:686,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1188,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,458],{74:$VJ4}),{149:$Vc4,341:1190,344:$Vd4},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,100:1191,111:1193,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,466]),o($VK4,[2,469]),o($VK4,[2,470]),o($VL4,[2,474]),o($VL4,[2,475]),{2:$V1,3:244,4:$V2,5:$V3,199:1195},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1196,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,462],{74:$VJ4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},{308:$VM4,456:1197,458:1198,459:1199},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1201,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{230:[2,697]},o($VI2,[2,181],{3:1202,2:$V1,4:$V2,5:$V3,76:[1,1203]}),o($VI2,[2,182]),o($VI2,[2,1094]),o($VI2,[2,184]),o($VI2,[2,186]),o($VI2,[2,188]),o($VI2,[2,192]),o($VI2,[2,196]),o($VI2,[2,199]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],[2,201]),{2:$V1,3:1204,4:$V2,5:$V3},o($VN4,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1210],132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,203:1209,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VL2,[2,164]),o($VL2,[2,165]),o($VL2,[2,166]),o($VL2,[2,167]),o($VL2,[2,168]),{2:$V1,3:667,4:$V2,5:$V3},o($Vz1,[2,83],{74:[1,1212]}),o($VO4,[2,85]),o($VO4,[2,86]),{113:1213,132:$VW,296:$Vj1},o([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vy2,{116:$V94}),o($Vh4,[2,73]),o($Vh4,[2,1050]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1214,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,126]),o($Vl4,[2,144]),o($Vl4,[2,145]),o($Vl4,[2,146]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1065],94:260,111:149,113:153,127:1215,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1216,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1217]},o($Vl4,[2,94]),o([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,96],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,97],{114:625,327:637,99:$VZ1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1218],112:$VS2,114:736,115:$V$1,116:$V02,117:1219,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1061],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1221,118:$VT2,122:$VU2,123:$VV2,124:$VW2,126:1220,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1222,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1223,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1224,4:$V2,5:$V3},o($Vl4,[2,110]),o($Vl4,[2,111]),o($Vl4,[2,112]),o($Vl4,[2,119]),{2:$V1,3:1225,4:$V2,5:$V3},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1226,336:1064,337:1066},{2:$V1,3:1227,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1228,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,125]),o($VP4,[2,1067],{155:1229}),o($VP4,[2,1069],{157:1230}),o($VP4,[2,1071],{159:1231}),o($VP4,[2,1075],{161:1232}),o($VQ4,$VR4,{163:1233,178:1234}),{77:[1,1235]},o($VP4,[2,1077],{165:1236}),o($VP4,[2,1079],{167:1237}),o($VQ4,$VR4,{178:1234,163:1238}),o($VQ4,$VR4,{178:1234,163:1239}),o($VQ4,$VR4,{178:1234,163:1240}),o($VQ4,$VR4,{178:1234,163:1241}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1242,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1243,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1081],{176:1244}),o($VK,[2,606],{183:[1,1245]}),o($VK,[2,602],{183:[1,1246]}),o($VK,[2,595]),{113:1247,132:$VW,296:$Vj1},o($VK,[2,604],{183:[1,1248]}),o($VK,[2,599]),o($VK,[2,600],{112:[1,1249]}),o($Vv3,[2,69]),{40:1250,79:75,89:$V7,184:99,189:$Vb},o($VK,[2,450],{74:$VT4,128:[1,1251]}),o($VU4,[2,451]),{124:[1,1253]},{2:$V1,3:1254,4:$V2,5:$V3},o($Vt1,[2,1115]),o($Vt1,[2,1116]),o($VK,[2,618]),o($Vy3,[2,355],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD4,$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VV1,[2,682]),o($VV1,[2,684]),o($VK,[2,650]),o($VK,[2,652],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1255,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1256},o($VV4,[2,659]),o($VV4,[2,660]),o($VV4,[2,661]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1258,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{114:1077,115:$V$1,116:$V02,124:[1,1259]},o($VD3,[2,755]),o($VF3,[2,148],{74:$Vq4}),o($VF3,[2,149],{74:$Vq4}),o($VF3,[2,150],{74:$Vq4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:1260,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1261,4:$V2,5:$V3,113:1263,131:[1,1262],132:$VW,296:$Vj1},o($Vr4,[2,275]),o($Vr4,[2,277]),o($Vr4,[2,279]),o($VH1,[2,160]),o($VH1,[2,1090]),{78:[1,1264]},o($VK1,[2,758]),{2:$V1,3:1265,4:$V2,5:$V3},{2:$V1,3:1266,4:$V2,5:$V3},{2:$V1,3:1268,4:$V2,5:$V3,384:1267},{2:$V1,3:1268,4:$V2,5:$V3,384:1269},{2:$V1,3:1270,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1271,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1272,4:$V2,5:$V3},{74:$Vx3,78:[1,1273]},o($Vz2,[2,347]),o($Vz2,[2,348]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1274,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1275,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1277,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH3,[2,504]),o($VK,$VW4,{407:1278,76:$VX4,77:[1,1279]}),o($VK,$VW4,{407:1281,76:$VX4}),{77:[1,1282]},{2:$V1,3:244,4:$V2,5:$V3,199:1283},o($VD3,[2,731]),o($VD3,[2,733]),o($VD3,[2,1146]),{143:$VF1,145:$VG1,431:1284},o($VY4,[2,1147],{419:190,479:1285,144:1286,145:$VC1,420:$Vr1,424:$Vs1}),{76:$Vs4,139:[2,1151],481:1287,483:1288},o([10,74,76,78,132,139,145,152,306,310,420,424,602,764],$VM3,{490:851,493:852,137:$VS1}),o($VD3,[2,736]),o($VD3,$VK3),{74:$VI3,78:[1,1289]},o($VO3,[2,1165],{492:1290,497:1291,152:$VT1}),o($VN3,[2,1164]),o($VO3,[2,745]),o($VO3,[2,1170]),o($VK,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,148:[1,1295],154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI4,$VZ4,{79:75,184:99,468:1296,40:1299,89:$V7,146:$V_4,189:$Vb,470:$V$4}),o($Vt4,[2,1140]),o($VQ3,[2,723]),{230:[1,1300]},o($V05,[2,769]),o($V05,[2,770]),o($V05,[2,771]),o($VR3,$VS3,{510:1301,95:$VT3,514:$VU3,515:$VV3,516:$VW3}),o($VR3,[2,768]),o($VK,[2,312]),o($VK,[2,313]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1302,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV1,[2,690],{124:[1,1303]}),o($Vx4,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},o($Vx4,[2,5]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1307,419:190,420:$Vr1,424:$Vs1},o($VK,[2,455],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,589]),o($VK,[2,590]),{2:$V1,3:244,4:$V2,5:$V3,199:1308},o($VK,[2,670]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1309,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1310,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1311],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1312],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,40:1313,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1314,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1315]},{74:$Vx3,78:[1,1316]},o($VB1,[2,426]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1317,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,40:1318,56:165,77:$VU,78:[1,1320],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1319,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,429]),o($VB1,[2,431]),o($VB1,$V15,{275:1321,276:$V25}),{78:[1,1323],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1324],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3,180:[1,1326]},o($VD2,[2,619]),o($VB1,[2,363]),{306:[1,1327]},o($VB1,[2,370]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,306:[2,374],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1328,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:1329,387:878,389:$VY3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1330,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,641]),o($V74,[2,648]),o($V84,[2,636]),o($VH4,$VG4),o($VD2,[2,638]),o($Vb4,[2,643]),o($Vb4,[2,645]),o($Vb4,[2,646]),o($Vb4,[2,647]),o($VI4,[2,457],{74:$VJ4}),{77:[1,1332],143:$VY,144:1333,145:$VC1,152:$V$,181:$V31,201:1334,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,463]),{74:$V35,78:[1,1335]},{74:$V45,78:[1,1337]},o([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,311,312,313,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333],$V55),o($V65,[2,479],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{40:1341,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1339,342:1340,344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,461],{74:$VJ4}),o($VK,[2,717],{457:1342,458:1343,459:1344,308:$VM4,464:[1,1345]}),o($V75,[2,701]),o($V75,[2,702]),{154:[1,1347],460:[1,1346]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,308:[2,698],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI2,[2,179]),{2:$V1,3:1348,4:$V2,5:$V3},o($VK,[2,574]),o($V85,[2,238],{84:1349,128:[1,1350]}),o($VN4,[2,1046]),{77:[1,1351]},{77:[1,1352]},o($Vf4,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:$V95,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,40:711,77:$Vw1,79:75,89:$V7,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,184:99,189:$Vb,199:213,200:215,201:214,202:217,203:1369,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vk5,[2,177]),{2:$V1,3:1011,4:$V2,5:$V3,110:1370,111:1009,112:$Vg4},o($VO4,[2,87]),o($Vh4,[2,147],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[1,1371]},{74:$Vx3,78:[2,1066]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,242:[1,1375],254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,98]),o($VP4,[2,1062],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1377],112:$VS2,114:736,115:$V$1,116:$V02,117:1378,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1063],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{78:[1,1379],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1380],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1381]},o($Vl4,[2,120]),{74:$VT4,78:[1,1382]},o($Vl4,[2,122]),{74:$Vx3,78:[1,1383]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1384],112:$VS2,114:736,115:$V$1,116:$V02,117:1385,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1386],112:$VS2,114:736,115:$V$1,116:$V02,117:1387,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1388],112:$VS2,114:736,115:$V$1,116:$V02,117:1389,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1390],112:$VS2,114:736,115:$V$1,116:$V02,117:1391,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1392]},o($V65,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($VQ4,$VR4,{178:1234,163:1395}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1396],112:$VS2,114:736,115:$V$1,116:$V02,117:1397,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1398],112:$VS2,114:736,115:$V$1,116:$V02,117:1399,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1400]},{74:$Vl5,78:[1,1401]},{74:$Vl5,78:[1,1402]},{74:$Vl5,78:[1,1403]},{78:[1,1404],153:1015,179:$Vi4,180:$Vj4,181:$Vk4},{74:$Vq4,78:[1,1405]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,74:[1,1406],76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1407,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1408,4:$V2,5:$V3},{2:$V1,3:1409,4:$V2,5:$V3},o($VK,[2,597]),{2:$V1,3:1410,4:$V2,5:$V3},{113:1411,132:$VW,296:$Vj1},{78:[1,1412]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1413,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,336:1414,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1415,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{124:[1,1416]},o($VK,[2,653],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VV4,[2,658]),{78:[1,1417],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,654],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1418,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vr4,[2,272]),o($Vr4,[2,274]),o($Vr4,[2,276]),o($Vr4,[2,278]),o($VH1,[2,161]),o($VK,[2,569]),{148:[1,1419]},o($VK,[2,570]),o($VD3,[2,536],{387:878,7:879,272:1420,4:$VX3,386:[1,1421],389:$VY3}),o($VK,[2,571]),o($VK,[2,573]),{74:$Vx3,78:[1,1422]},o($VK,[2,577]),o($Vz2,[2,345]),{74:[1,1423],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1424],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1425],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1426],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,581]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1427,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1428,4:$V2,5:$V3},o($VK,[2,583]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1429,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1430]},{2:$V1,3:1431,4:$V2,5:$V3},{76:$Vs4,139:[2,1149],480:1432,483:1433},o($VY4,[2,1148]),{139:[1,1434]},{139:[2,1152]},o($VD3,[2,737]),o($VO3,[2,744]),o($VO3,[2,1166]),{2:$V1,3:1268,4:$V2,5:$V3,76:[1,1437],351:1435,358:1436,384:1438},{2:$V1,3:1011,4:$V2,5:$V3,100:1439,111:1440},{40:1441,79:75,89:$V7,184:99,189:$Vb},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1442,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,722]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1443,336:1064,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1444,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,727]),{2:$V1,3:244,4:$V2,5:$V3,199:1445},{335:$Vu4,338:$Vv4,339:$Vw4,511:1446},o($VV1,[2,691],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1447,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:[1,1448],78:[1,1449]},o($V65,[2,543]),o($V65,[2,544]),{74:$V45,78:[1,1450]},o($VV1,[2,565]),o($Vz4,[2,380],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($Vz4,[2,382],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,396]),o($VB1,[2,400]),{78:[1,1451]},{74:$Vx3,78:[1,1452]},o($VB1,[2,422]),o($VB1,[2,424]),{78:[1,1453],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1454]},{74:$Vx3,78:[1,1455]},o($VB1,[2,427]),o($VB1,[2,327]),{77:[1,1456]},o($VB1,$V15,{275:1457,276:$V25}),o($VB1,$V15,{275:1458,276:$V25}),o($VH4,[2,284]),o($VB1,[2,281]),o($VB1,[2,369]),o($V64,[2,373],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1463,419:190,420:$Vr1,424:$Vs1},o($VL4,[2,477]),o($VL4,[2,478]),{40:1466,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1464,342:1465,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1467},o($VL4,[2,473]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1468,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1469,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,460],{74:$VJ4}),o($VI4,[2,467]),o($VK,[2,694]),o($V75,[2,699]),o($V75,[2,700]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1470,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{170:[1,1472],309:[1,1471]},{460:[1,1473]},o($VI2,[2,180]),o($Vm5,[2,240],{85:1474,232:[1,1475]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1476,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1477,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1478,4:$V2,5:$V3},o($Vf4,[2,170],{216:1357,221:1360,215:1479,205:1480,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:1481,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vn5,[2,205]),o($Vn5,[2,206]),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1486],143:$VY,144:1484,145:$VZ,152:$V$,156:$VL,181:$V31,199:1483,200:1487,201:1485,202:1488,217:1482,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{207:[1,1489],223:$Vo5},{207:[1,1491],223:$Vp5},o($Vq5,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vq5,[2,224]),{223:[1,1496]},{208:[1,1498],223:[1,1497]},{208:[1,1500],223:[1,1499]},{208:[1,1501]},{223:[1,1502]},{223:[1,1503]},{74:$V95,204:1504,205:1356,206:$Va5,208:$Vb5,215:1355,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($VO4,[2,84]),o($Vl4,[2,100]),{74:$Vr5,78:[1,1505]},{78:[1,1507]},o($Vs5,[2,261]),{78:[2,1060]},o($Vs5,[2,263],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,242:[1,1508],243:[1,1509],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vl4,[2,99]),o($VP4,[2,1064],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,101]),o($Vl4,[2,102]),o($Vl4,[2,103]),o($Vl4,[2,121]),o($Vl4,[2,124]),o($Vl4,[2,127]),o($VP4,[2,1068],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,128]),o($VP4,[2,1070],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,129]),o($VP4,[2,1072],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,130]),o($VP4,[2,1076],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,131]),o($VQ4,[2,1083],{177:1510}),o($VQ4,[2,1086],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{74:$Vl5,78:[1,1511]},o($Vl4,[2,133]),o($VP4,[2,1078],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,134]),o($VP4,[2,1080],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,135]),o($Vl4,[2,136]),o($Vl4,[2,137]),o($Vl4,[2,138]),o($Vl4,[2,139]),o($Vl4,[2,140]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1512,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1082],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($VK,[2,607]),o($VK,[2,603]),o($VK,[2,605]),o($VK,[2,601]),o($Vv3,[2,71]),o($VK,[2,449],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VU4,[2,452]),o($VU4,[2,453],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1513,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV4,[2,662]),o($VK,[2,655],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:1514,4:$V2,5:$V3},o($VD3,[2,545],{385:1515,391:1516,392:1517,366:1525,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($VD3,[2,535]),o($VK,[2,576],{76:[1,1529]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1530,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1531,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1532,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1533,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$Vx3,78:[1,1534]},o($VK,[2,585]),{74:$Vr5,78:[1,1535]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1536,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1538,482:582,493:579,497:581},{78:[1,1539]},{74:[1,1540],78:[2,506]},{40:1541,79:75,89:$V7,184:99,189:$Vb},o($V65,[2,532]),{74:$V35,78:[1,1542]},o($Vk5,$V55),o($VK,[2,1133],{412:1543,413:1544,72:$VD5}),o($VI4,$VZ4,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V_4,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,470:$V$4}),o($VI4,[2,725],{74:$VT4}),o($VI4,[2,726],{74:$Vx3}),o([10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],[2,1181],{512:1547,3:1548,2:$V1,4:$V2,5:$V3,76:[1,1549]}),o($VE5,[2,1183],{513:1550,76:[1,1551]}),o($VV1,[2,692],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{131:[1,1552]},o($Vx4,[2,538]),o($Vx4,[2,540]),o($VB1,[2,412]),o($VB1,[2,413]),o($VB1,[2,439]),o($VB1,[2,423]),o($VB1,[2,425]),{118:$VF5,277:1553,278:1554,279:[1,1555]},o($VB1,[2,328]),o($VB1,[2,329]),o($VB1,[2,316]),{131:[1,1557]},o($VB1,[2,318]),{131:[1,1558]},{74:$V45,78:[1,1559]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1560,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,465],{74:$VJ4}),o($VI4,[2,468]),o($Vk5,[2,488]),o($V65,[2,480],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VI4,[2,459],{74:$VJ4}),o($VK,[2,718],{74:$Vq4,198:[1,1561]}),{335:$VG5,338:$VH5,461:1562},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1565,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{119:[1,1567],170:[1,1568],309:[1,1566]},o($VI5,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},o($V85,[2,239],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{95:[1,1572],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{95:[1,1573]},o($Vn5,[2,203]),o($Vn5,[2,204]),o($Vk5,[2,178]),o($Vn5,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),o($VJ5,[2,208],{3:1577,2:$V1,4:$V2,5:$V3,76:[1,1578]}),o($VK5,[2,1095],{219:1579,76:[1,1580]}),{2:$V1,3:1581,4:$V2,5:$V3,76:[1,1582]},{40:1583,79:75,89:$V7,184:99,189:$Vb},o($VJ5,[2,216],{3:1584,2:$V1,4:$V2,5:$V3,76:[1,1585]}),o($VJ5,[2,219],{3:1586,2:$V1,4:$V2,5:$V3,76:[1,1587]}),{77:[1,1588]},o($Vq5,[2,234]),{77:[1,1589]},o($Vq5,[2,230]),o($Vq5,[2,223]),{223:$Vp5},{223:$Vo5},o($Vq5,[2,225]),o($Vq5,[2,226]),{223:[1,1590]},o($Vq5,[2,228]),{223:[1,1591]},{223:[1,1592]},o($Vq5,[2,232]),o($Vq5,[2,233]),{78:[1,1593],205:1480,206:$Va5,208:$Vb5,215:1479,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vl4,[2,91]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1594,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,92]),o($Vs5,[2,264]),{244:[1,1595]},o($V65,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($Vl4,[2,132]),{74:$Vx3,78:[1,1597]},o($VU4,[2,454],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,572]),o($VD3,[2,534]),o($VD3,[2,546],{366:1525,392:1598,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($Vw3,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:$V1,3:244,4:$V2,5:$V3,199:1601},o($Vw3,[2,554],{77:[1,1602]}),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1604],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:1605,201:254,257:252,258:253,265:$VD1,274:1603,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},o($Vw3,[2,558]),{297:[1,1606]},o($Vw3,[2,560]),o($Vw3,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:$V1,3:1609,4:$V2,5:$V3},{78:[1,1610],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1611],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1612],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1613],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,$VW4,{407:1614,76:$VX4}),o($VK,[2,591]),{74:$Vr5,78:[1,1615]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1616,482:582,493:579,497:581},o($VD3,[2,735]),o($VK,[2,493],{352:1617,354:1618,355:1619,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VP5,$VQ5,{3:1268,359:1624,384:1625,360:1626,361:1627,2:$V1,4:$V2,5:$V3,367:$VR5}),{78:[2,507]},{76:[1,1629]},o($VK,[2,609]),o($VK,[2,1134]),{368:[1,1631],414:[1,1630]},o($VI4,[2,728]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1632,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,762]),o($VE5,[2,1182]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1633,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VE5,[2,1184]),{78:[1,1634]},{78:[1,1635],118:$VF5,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},o($VL4,[2,476]),o($VI4,[2,464],{74:$VJ4}),{2:$V1,3:244,4:$V2,5:$V3,143:$VF1,145:$VG1,199:1643,431:1642},o($V75,[2,703]),o($V75,[2,705]),{146:[1,1644]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1645],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{339:$VS5,462:1646},{417:[1,1649],463:[1,1648]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1650,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VT5,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1655,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1661,4:$V2,5:$V3},{2:$V1,3:1662,4:$V2,5:$V3},o($Vn5,[2,207]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1663,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1664,111:1440},o($VJ5,[2,209]),{2:$V1,3:1665,4:$V2,5:$V3},o($VJ5,[2,1097],{220:1666,3:1667,2:$V1,4:$V2,5:$V3}),o($VK5,[2,1096]),o($VJ5,[2,212]),{2:$V1,3:1668,4:$V2,5:$V3},{78:[1,1669]},o($VJ5,[2,217]),{2:$V1,3:1670,4:$V2,5:$V3},o($VJ5,[2,220]),{2:$V1,3:1671,4:$V2,5:$V3},{40:1672,79:75,89:$V7,184:99,189:$Vb},{40:1673,79:75,89:$V7,184:99,189:$Vb},o($Vq5,[2,227]),o($Vq5,[2,229]),o($Vq5,[2,231]),o($Vf4,[2,171]),o($Vs5,[2,262]),o($Vs5,[2,265],{242:[1,1674]}),o($VQ4,[2,1084],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,141]),o($Vw3,[2,547]),o($Vw3,[2,550]),{374:[1,1675]},o($Vw3,[2,1127],{395:1676,393:1677,77:$VX5}),{131:$VV,196:1679},o($Vw3,[2,555]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1680,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vw3,[2,557]),o($Vw3,[2,559]),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1682],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:1681,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1683,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,578]),o($Vz2,[2,349]),o($Vz2,[2,350]),o($Vz2,[2,351]),o($Vz2,[2,352]),o($VK,[2,582]),o($VK,[2,592]),o($VD3,[2,734]),o($VK,[2,489]),o($VK,[2,494],{355:1684,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VY5,[2,496]),o($VY5,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},o($V65,[2,533]),o($V65,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:$Vz5,369:[1,1694],370:[1,1698],373:[1,1695]},{2:$V1,3:1699,4:$V2,5:$V3},{40:1700,79:75,89:$V7,184:99,189:$Vb},{415:[1,1701]},{416:[1,1702]},o($VK,[2,761]),o($VK,[2,763]),o($Vx4,[2,537]),o($VB1,[2,331]),{78:[1,1703]},o($VB1,[2,332]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1704,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1705,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,317]),o($VB1,[2,319]),{2:$V1,3:1706,4:$V2,5:$V3},o($VK,[2,720],{77:[1,1707]}),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1708,336:1064,337:1066},{335:$VG5,338:$VH5,461:1709},o($V75,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1717],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vh4,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:$VV,196:1722},{131:$VV,196:1723},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1724,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vm5,[2,248],{234:1725,74:$VZ5,239:[1,1727]}),o($V_5,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},o($V_5,[2,247],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},o($Vn5,[2,235],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vn5,[2,236],{74:$V35}),o($VJ5,[2,210]),o($VJ5,[2,211]),o($VJ5,[2,1098]),o($VJ5,[2,213]),{2:$V1,3:1735,4:$V2,5:$V3,76:[1,1736]},o($VJ5,[2,218]),o($VJ5,[2,221]),{78:[1,1737]},{78:[1,1738]},o($Vs5,[2,266]),{2:$V1,3:244,4:$V2,5:$V3,199:1739},o($Vw3,[2,552]),o($Vw3,[2,1128]),{2:$V1,3:1740,4:$V2,5:$V3},{74:[1,1741]},{78:[1,1742],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,562]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1743,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1744],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VY5,[2,495]),{2:$V1,3:1745,4:$V2,5:$V3},{131:$VV,196:1746},{2:$V1,3:1747,4:$V2,5:$V3},o($VP5,$VQ5,{361:1627,360:1748,367:$VR5}),o($VD3,[2,510]),o($VD3,[2,511]),o($VD3,[2,512]),o($VD3,[2,513]),o($VD3,[2,514]),{370:[1,1749]},{370:[1,1750]},o($V$5,[2,1121],{382:1751,370:[1,1752]}),{2:$V1,3:1753,4:$V2,5:$V3},{2:$V1,3:1754,4:$V2,5:$V3},o($VP5,[2,516]),o($VK,[2,1131],{411:1755,413:1756,72:$VD5}),o($VK,[2,610]),o($VK,[2,611],{367:[1,1757]}),o($VB1,[2,333]),o([78,118],[2,334],{74:$VZ5}),{74:$Vr5,78:[2,335]},o($VK,[2,719]),{2:$V1,3:1011,4:$V2,5:$V3,100:1758,111:1440},o($V75,[2,706],{74:$VT4}),o($V75,[2,704]),{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1759,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1760,111:1440},{344:[1,1761]},{339:$VS5,462:1762},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1763,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1764},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1765,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1766},o($Vh4,[2,72]),{40:1767,79:75,89:$V7,164:[1,1768],184:99,189:$Vb,240:[1,1769]},{40:1770,79:75,89:$V7,184:99,189:$Vb,240:[1,1771]},{40:1772,79:75,89:$V7,184:99,189:$Vb,240:[1,1773]},o($VT5,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},o($VI5,[2,260],{74:$Vr5}),o($Vm5,[2,241]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,235:1778,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1779,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1780]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1781,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1782,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},o($VJ5,[2,214]),{2:$V1,3:1786,4:$V2,5:$V3},{2:$V1,3:1787,4:$V2,5:$V3,76:[1,1788]},{2:$V1,3:1789,4:$V2,5:$V3,76:[1,1790]},o($Vw3,[2,1125],{394:1791,393:1792,77:$VX5}),{78:[1,1793]},{131:$VV,196:1794},o($Vw3,[2,556]),{78:[1,1795],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,517]),o($VY5,[2,498]),o($VY5,[2,499]),o($VY5,[2,500]),o($V65,[2,509]),{2:$V1,3:1797,4:$V2,5:$V3,77:[2,1117],371:1796},{77:[1,1798]},{2:$V1,3:1800,4:$V2,5:$V3,77:[2,1123],383:1799},o($V$5,[2,1122]),{77:[1,1801]},{77:[1,1802]},o($VK,[2,608]),o($VK,[2,1132]),o($VP5,$VQ5,{361:1627,360:1803,367:$VR5}),{74:$V35,78:[1,1804]},o($V75,[2,713],{74:$VJ4}),{74:$V35,78:[1,1805]},o($V75,[2,715]),o($V75,[2,708]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1806],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,711]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1807],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,709]),o($Vh4,[2,251]),{40:1808,79:75,89:$V7,184:99,189:$Vb,240:[1,1809]},{40:1810,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,253]),{40:1811,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,254]),{40:1812,79:75,89:$V7,184:99,189:$Vb},o($VT5,[2,268]),{131:$VV,196:1813},{249:[1,1814]},{249:[2,1100]},o($V_5,[2,243]),o($Vm5,[2,249],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1815,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$VZ5,78:[1,1816]},{74:$VZ5,78:[1,1817]},o($VN4,[2,1053],{97:1818,104:1819,3:1821,2:$V1,4:$V2,5:$V3,76:$V06}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,103:1822,105:1823,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1825,111:1440},o($VJ5,[2,215]),o($Vn5,[2,173]),{2:$V1,3:1826,4:$V2,5:$V3},o($Vn5,[2,175]),{2:$V1,3:1827,4:$V2,5:$V3},o($Vw3,[2,551]),o($Vw3,[2,1126]),o($Vw3,[2,549]),{78:[1,1828]},o($Vw3,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1830},{77:[1,1833]},{77:[2,1124]},{2:$V1,3:1011,4:$V2,5:$V3,100:1834,111:1440},{2:$V1,3:1011,4:$V2,5:$V3,100:1835,111:1440},o($VK,[2,612]),o($VK,[2,721]),{343:[1,1837],344:[1,1836]},{339:$VS5,462:1838},{335:$VG5,338:$VH5,461:1839},o($Vh4,[2,252]),{40:1840,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,255]),o($Vh4,[2,257]),o($Vh4,[2,258]),o($VT5,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:$VZ5,78:[1,1843]},o($V_5,[2,245]),o($V_5,[2,246]),o($VN4,[2,74]),o($VN4,[2,1054]),{2:$V1,3:1844,4:$V2,5:$V3},o($VN4,[2,78]),{74:[1,1846],78:[1,1845]},o($V65,[2,80]),o($V65,[2,81],{114:625,327:637,76:[1,1847],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:$V35,78:[1,1848]},o($Vn5,[2,174]),o($Vn5,[2,176]),o($Vw3,[2,553]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1849},{74:$V26,78:[1,1850]},o($V65,[2,528]),o($V65,[2,529]),{2:$V1,3:1011,4:$V2,5:$V3,100:1852,111:1440},{74:$V35,78:[1,1853]},{74:$V35,78:[1,1854]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1855,419:190,420:$Vr1,424:$Vs1},{344:[1,1856]},o($V75,[2,710]),o($V75,[2,712]),o($Vh4,[2,256]),{131:$VV,196:1857},{131:[2,1102]},o($V_5,[2,244]),o($VN4,[2,77]),{78:[2,76]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,105:1858,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1859,4:$V2,5:$V3},{78:[1,1860]},{74:$V26,78:[1,1861]},{374:[1,1862]},{2:$V1,3:1863,4:$V2,5:$V3,132:[1,1864]},{74:$V35,78:[1,1865]},o($VD3,[2,526]),o($VD3,[2,527]),o($V75,[2,714],{74:$VJ4}),o($V75,[2,716]),o($V36,[2,1103],{251:1866,766:[1,1867]}),o($V65,[2,79]),o($V65,[2,82]),o($VN4,[2,1055],{3:1821,101:1868,104:1869,2:$V1,4:$V2,5:$V3,76:$V06}),o($VD3,[2,518]),{2:$V1,3:244,4:$V2,5:$V3,199:1870},o($V65,[2,530]),o($V65,[2,531]),o($VD3,[2,525]),o($VT5,[2,1105],{252:1871,415:[1,1872]}),o($V36,[2,1104]),o($VN4,[2,75]),o($VN4,[2,1056]),o($V46,[2,1119],{375:1873,377:1874,77:[1,1875]}),o($VT5,[2,269]),o($VT5,[2,1106]),o($VD3,[2,521],{376:1876,378:1877,230:[1,1878]}),o($V46,[2,1120]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1879},o($VD3,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:$V26,78:[1,1883]},o($VD3,[2,522]),{335:[1,1884]},{380:[1,1885]},o($V46,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},o($VD3,[2,524])], -defaultActions: {105:[2,6],194:[2,336],195:[2,337],196:[2,338],197:[2,339],198:[2,340],199:[2,341],200:[2,342],201:[2,343],202:[2,344],209:[2,695],591:[2,1142],653:[2,1107],654:[2,1108],710:[2,696],780:[2,1073],781:[2,1074],926:[2,446],927:[2,447],928:[2,448],987:[2,697],1288:[2,1152],1375:[2,1060],1433:[2,1150],1541:[2,507],1732:[2,1052],1777:[2,1100],1797:[2,1118],1800:[2,1124],1842:[2,1102],1845:[2,76],1887:[2,523]}, -parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } -}, -parse: function parse(input) { - var self = this, - stack = [0], - tstack = [], // token stack - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - var args = lstack.slice.call(arguments, 1); - - //this.reductionCount = this.shiftCount = 0; - - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - // copy state - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - - var ranges = lexer.options && lexer.options.ranges; - - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - - function popStack (n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - -_token_stack: - var lex = function () { - var token; - token = lexer.lex() || EOF; - // if token isn't its numeric value, convert - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - // retreive state number from top of stack - state = stack[stack.length - 1]; - - // use default actions if available - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - // read action for current state and first input - action = table[state] && table[state][symbol]; - } - -_handle_error: - // handle parse error - if (typeof action === 'undefined' || !action.length || !action[0]) { - var error_rule_depth; - var errStr = ''; - - // Return the rule stack depth where the nearest error rule can be found. - // Return FALSE when no error recovery rule was found. - function locateNearestErrorRecoveryRule(state) { - var stack_probe = stack.length - 1; - var depth = 0; - - // try to recover from error - for(;;) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - return depth; - } - if (state === 0 || stack_probe < 2) { - return false; // No suitable error recovery rule available. - } - stack_probe -= 2; // popStack(1): [symbol, action] - state = stack[stack_probe]; - ++depth; - } - } - - if (!recovering) { - // first see if there's any chance at hitting an error recovery rule: - error_rule_depth = locateNearestErrorRecoveryRule(state); - - // Report error - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'"+this.terminals_[p]+"'"); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; - } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == EOF ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected, - recoverable: (error_rule_depth !== false) - }); - } else if (preErrorSymbol !== EOF) { - error_rule_depth = locateNearestErrorRecoveryRule(state); - } - - // just recovered from another error - if (recovering == 3) { - if (symbol === EOF || preErrorSymbol === EOF) { - throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); - } - - // discard current lookahead and grab another - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - symbol = lex(); - } - - // try to recover from error - if (error_rule_depth === false) { - throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); - } - popStack(error_rule_depth); - - preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: - // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: - // accept - return true; - } - - } - - return true; -}}; - -// from https://www.postgresql.org/docs/current/static/sql-keywords-appendix.html -// JSON.stringify([].slice.call(document.querySelectorAll('tr')).filter(x => x.children.length == 5 && x.children[2].innerText == 'reserved').map(x => x.children[0].innerText)) - -var nonReserved = ["A","ABSENT","ABSOLUTE","ACCORDING","ACTION","ADA","ADD","ADMIN","AFTER","ALWAYS","ASC","ASSERTION","ASSIGNMENT","ATTRIBUTE","ATTRIBUTES","BASE64","BEFORE","BERNOULLI","BLOCKED","BOM","BREADTH","C","CASCADE","CATALOG","CATALOG_NAME","CHAIN","CHARACTERISTICS","CHARACTERS","CHARACTER_SET_CATALOG","CHARACTER_SET_NAME","CHARACTER_SET_SCHEMA","CLASS_ORIGIN","COBOL","COLLATION","COLLATION_CATALOG","COLLATION_NAME","COLLATION_SCHEMA","COLUMNS","COLUMN_NAME","COMMAND_FUNCTION","COMMAND_FUNCTION_CODE","COMMITTED","CONDITION_NUMBER","CONNECTION","CONNECTION_NAME","CONSTRAINTS","CONSTRAINT_CATALOG","CONSTRAINT_NAME","CONSTRAINT_SCHEMA","CONSTRUCTOR","CONTENT","CONTINUE","CONTROL","CURSOR_NAME","DATA","DATETIME_INTERVAL_CODE","DATETIME_INTERVAL_PRECISION","DB","DEFAULTS","DEFERRABLE","DEFERRED","DEFINED","DEFINER","DEGREE","DEPTH","DERIVED","DESC","DESCRIPTOR","DIAGNOSTICS","DISPATCH","DOCUMENT","DOMAIN","DYNAMIC_FUNCTION","DYNAMIC_FUNCTION_CODE","EMPTY","ENCODING","ENFORCED","EXCLUDE","EXCLUDING","EXPRESSION","FILE","FINAL","FIRST","FLAG","FOLLOWING","FORTRAN","FOUND","FS","G","GENERAL","GENERATED","GO","GOTO","GRANTED","HEX","HIERARCHY","ID","IGNORE","IMMEDIATE","IMMEDIATELY","IMPLEMENTATION","INCLUDING","INCREMENT","INDENT","INITIALLY","INPUT","INSTANCE","INSTANTIABLE","INSTEAD","INTEGRITY","INVOKER","ISOLATION","K","KEY","KEY_MEMBER","KEY_TYPE","LAST","LENGTH","LEVEL","LIBRARY","LIMIT","LINK","LOCATION","LOCATOR","M","MAP","MAPPING","MATCHED","MAXVALUE","MESSAGE_LENGTH","MESSAGE_OCTET_LENGTH","MESSAGE_TEXT","MINVALUE","MORE","MUMPS","NAME","NAMES","NAMESPACE","NESTING","NEXT","NFC","NFD","NFKC","NFKD","NIL","NORMALIZED","NULLABLE","NULLS","NUMBER","OBJECT","OCTETS","OFF","OPTION","OPTIONS","ORDERING","ORDINALITY","OTHERS","OUTPUT","OVERRIDING","P","PAD","PARAMETER_MODE","PARAMETER_NAME","PARAMETER_ORDINAL_POSITION","PARAMETER_SPECIFIC_CATALOG","PARAMETER_SPECIFIC_NAME","PARAMETER_SPECIFIC_SCHEMA","PARTIAL","PASCAL","PASSING","PASSTHROUGH","PATH","PERMISSION","PLACING","PLI","PRECEDING","PRESERVE","PRIOR","PRIVILEGES","PUBLIC","READ","RECOVERY","RELATIVE","REPEATABLE","REQUIRING","RESPECT","RESTART","RESTORE","RESTRICT","RETURNED_CARDINALITY","RETURNED_LENGTH","RETURNED_OCTET_LENGTH","RETURNED_SQLSTATE","RETURNING","ROLE","ROUTINE","ROUTINE_CATALOG","ROUTINE_NAME","ROUTINE_SCHEMA","ROW_COUNT","SCALE","SCHEMA","SCHEMA_NAME","SCOPE_CATALOG","SCOPE_NAME","SCOPE_SCHEMA","SECTION","SECURITY","SELECTIVE","SELF","SEQUENCE","SERIALIZABLE","SERVER","SERVER_NAME","SESSION","SETS","SIMPLE","SIZE","SOURCE","SPACE","SPECIFIC_NAME","STANDALONE","STATE","STATEMENT","STRIP","STRUCTURE","STYLE","SUBCLASS_ORIGIN","T","TABLE_NAME","TEMPORARY","TIES","TOKEN","TOP_LEVEL_COUNT","TRANSACTION","TRANSACTIONS_COMMITTED","TRANSACTIONS_ROLLED_BACK","TRANSACTION_ACTIVE","TRANSFORM","TRANSFORMS","TRIGGER_CATALOG","TRIGGER_NAME","TRIGGER_SCHEMA","TYPE","UNBOUNDED","UNCOMMITTED","UNDER","UNLINK","UNNAMED","UNTYPED","URI","USAGE","USER_DEFINED_TYPE_CATALOG","USER_DEFINED_TYPE_CODE","USER_DEFINED_TYPE_NAME","USER_DEFINED_TYPE_SCHEMA","VALID","VERSION","VIEW","WHITESPACE","WORK","WRAPPER","WRITE","XMLDECLARATION","XMLSCHEMA","YES","ZONE"] - -parser.parseError = function(str, hash) { - if (hash.expected && hash.expected.indexOf("'LITERAL'") > -1 && /[a-zA-Z_][a-zA-Z_0-9]*/.test(hash.token) && nonReserved.indexOf(hash.token) > -1) { - return - } - throw new SyntaxError(str) -} -/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function (match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin(condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState(condition) { - this.begin(condition); - }, - -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {"case-insensitive":true}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0:return 266 -break; -case 1:return 302 -break; -case 2:return 420 -break; -case 3:return 299 -break; -case 4:return 5 -break; -case 5:return 5 -break; -case 6:return 296 -break; -case 7:return 296 -break; -case 8:return 132 -break; -case 9:return 132 -break; -case 10:return /* its a COMMENT */ -break; -case 11:/* skip whitespace */ -break; -case 12:return 316 -break; -case 13:return 319 -break; -case 14:yy_.yytext = 'VALUE';return 89 -break; -case 15:yy_.yytext = 'VALUE';return 189 -break; -case 16:yy_.yytext = 'ROW';return 189 -break; -case 17:yy_.yytext = 'COLUMN';return 189 -break; -case 18:yy_.yytext = 'MATRIX';return 189 -break; -case 19:yy_.yytext = 'INDEX';return 189 -break; -case 20:yy_.yytext = 'RECORDSET';return 189 -break; -case 21:yy_.yytext = 'TEXT';return 189 -break; -case 22:yy_.yytext = 'SELECT';return 189 -break; -case 23:return 520 -break; -case 24:return 381 -break; -case 25:return 402 -break; -case 26:return 515 -break; -case 27:return 287 -break; -case 28:return 269 -break; -case 29:return 269 -break; -case 30:return 164 -break; -case 31:return 400 -break; -case 32:return 170 -break; -case 33:return 229 -break; -case 34:return 166 -break; -case 35:return 207 -break; -case 36:return 288 -break; -case 37:return 76 -break; -case 38:return 418 -break; -case 39:return 242 -break; -case 40:return 404 -break; -case 41:return 356 -break; -case 42:return 284 -break; -case 43:return 514 -break; -case 44:return 437 -break; -case 45:return 330 -break; -case 46:return 441 -break; -case 47:return 331 -break; -case 48:return 315 -break; -case 49:return 119 -break; -case 50:return 112 -break; -case 51:return 315 -break; -case 52:return 112 -break; -case 53:return 315 -break; -case 54:return 112 -break; -case 55:return 315 -break; -case 56:return 508 -break; -case 57:return 303 -break; -case 58:return 271 -break; -case 59:return 368 -break; -case 60:return 130 -break; -case 61:return 'CLOSE' -break; -case 62:return 243 -break; -case 63:return 190 -break; -case 64:return 190 -break; -case 65:return 434 -break; -case 66:return 367 -break; -case 67:return 470 -break; -case 68:return 440 -break; -case 69:return 273 -break; -case 70:return 240 -break; -case 71:return 281 -break; -case 72:return 267 -break; -case 73:return 206 -break; -case 74:return 238 -break; -case 75:return 265 -break; -case 76:return 'CURSOR' -break; -case 77:return 405 -break; -case 78:return 291 -break; -case 79:return 292 -break; -case 80:return 448 -break; -case 81:return 343 -break; -case 82:return 338 -break; -case 83:return 'DELETED' -break; -case 84:return 242 -break; -case 85:return 406 -break; -case 86:return 185 -break; -case 87:return 396 -break; -case 88:return 447 -break; -case 89:return 135 -break; -case 90:return 306 -break; -case 91:return 389 -break; -case 92:return 310 -break; -case 93:return 314 -break; -case 94:return 169 -break; -case 95:return 508 -break; -case 96:return 508 -break; -case 97:return 298 -break; -case 98:return 14 -break; -case 99:return 295 -break; -case 100:return 249 -break; -case 101:return 285 -break; -case 102:return 95 -break; -case 103:return 373 -break; -case 104:return 183 -break; -case 105:return 227 -break; -case 106:return 268 -break; -case 107:return 313 -break; -case 108:return 602 -break; -case 109:return 472 -break; -case 110:return 232 -break; -case 111:return 236 -break; -case 112:return 239 -break; -case 113:return 156 -break; -case 114:return 356 -break; -case 115:return 332 -break; -case 116:return 99 -break; -case 117:return 193 -break; -case 118:return 212 -break; -case 119:return 224 -break; -case 120:return 516 -break; -case 121:return 339 -break; -case 122:return 213 -break; -case 123:return 168 -break; -case 124:return 293 -break; -case 125:return 198 -break; -case 126:return 223 -break; -case 127:return 370 -break; -case 128:return 286 -break; -case 129:return 'LET' -break; -case 130:return 225 -break; -case 131:return 112 -break; -case 132:return 245 -break; -case 133:return 460 -break; -case 134:return 191 -break; -case 135:return 283 -break; -case 136:return 390 -break; -case 137:return 282 -break; -case 138:return 452 -break; -case 139:return 169 -break; -case 140:return 403 -break; -case 141:return 222 -break; -case 142:return 645 -break; -case 143:return 270 -break; -case 144:return 244 -break; -case 145:return 380 -break; -case 146:return 154 -break; -case 147:return 297 -break; -case 148:return 433 -break; -case 149:return 230 -break; -case 150:return 415 -break; -case 151:return 129 -break; -case 152:return 247 -break; -case 153:return 'OPEN' -break; -case 154:return 416 -break; -case 155:return 171 -break; -case 156:return 118 -break; -case 157:return 208 -break; -case 158:return 276 -break; -case 159:return 172 -break; -case 160:return 279 -break; -case 161:return 765 -break; -case 162:return 93 -break; -case 163:return 16 -break; -case 164:return 369 -break; -case 165:return 442 -break; -case 166:return 678 -break; -case 167:return 15 -break; -case 168:return 414 -break; -case 169:return 194 -break; -case 170:return 'REDUCE' -break; -case 171:return 374 -break; -case 172:return 311 -break; -case 173:return 517 -break; -case 174:return 682 -break; -case 175:return 107 -break; -case 176:return 401 -break; -case 177:return 175 -break; -case 178:return 290 -break; -case 179:return 443 -break; -case 180:return 687 -break; -case 181:return 173 -break; -case 182:return 173 -break; -case 183:return 226 -break; -case 184:return 436 -break; -case 185:return 237 -break; -case 186:return 150 -break; -case 187:return 766 -break; -case 188:return 405 -break; -case 189:return 89 -break; -case 190:return 228 -break; -case 191:return 146 -break; -case 192:return 146 -break; -case 193:return 409 -break; -case 194:return 334 -break; -case 195:return 417 -break; -case 196:return 'STRATEGY' -break; -case 197:return 'STORE' -break; -case 198:return 280 -break; -case 199:return 353 -break; -case 200:return 353 -break; -case 201:return 463 -break; -case 202:return 357 -break; -case 203:return 357 -break; -case 204:return 192 -break; -case 205:return 309 -break; -case 206:return 'TIMEOUT' -break; -case 207:return 148 -break; -case 208:return 195 -break; -case 209:return 435 -break; -case 210:return 435 -break; -case 211:return 509 -break; -case 212:return 294 -break; -case 213:return 451 -break; -case 214:return 162 -break; -case 215:return 187 -break; -case 216:return 98 -break; -case 217:return 335 -break; -case 218:return 408 -break; -case 219:return 231 -break; -case 220:return 149 -break; -case 221:return 344 -break; -case 222:return 134 -break; -case 223:return 410 -break; -case 224:return 308 -break; -case 225:return 128 -break; -case 226:return 439 -break; -case 227:return 72 -break; -case 228:return 435 /* Is this keyword required? */ -break; -case 229:return 131 -break; -case 230:return 131 -break; -case 231:return 115 -break; -case 232:return 137 -break; -case 233:return 179 -break; -case 234:return 317 -break; -case 235:return 180 -break; -case 236:return 133 -break; -case 237:return 138 -break; -case 238:return 326 -break; -case 239:return 323 -break; -case 240:return 325 -break; -case 241:return 322 -break; -case 242:return 320 -break; -case 243:return 318 -break; -case 244:return 319 -break; -case 245:return 142 -break; -case 246:return 141 -break; -case 247:return 139 -break; -case 248:return 321 -break; -case 249:return 324 -break; -case 250:return 140 -break; -case 251:return 124 -break; -case 252:return 324 -break; -case 253:return 77 -break; -case 254:return 78 -break; -case 255:return 145 -break; -case 256:return 424 -break; -case 257:return 426 -break; -case 258:return 300 -break; -case 259:return 505 -break; -case 260:return 507 -break; -case 261:return 122 -break; -case 262:return 116 -break; -case 263:return 74 -break; -case 264:return 333 -break; -case 265:return 152 -break; -case 266:return 764 -break; -case 267:return 143 -break; -case 268:return 181 -break; -case 269:return 136 -break; -case 270:return 123 -break; -case 271:return 312 -break; -case 272:return 4 -break; -case 273:return 10 -break; -case 274:return 'INVALID' -break; -} -}, -rules: [/^(?:``([^\`])+``)/i,/^(?:\[\?\])/i,/^(?:@\[)/i,/^(?:ARRAY\[)/i,/^(?:\[([^\]])*?\])/i,/^(?:`([^\`])*?`)/i,/^(?:N(['](\\.|[^']|\\')*?['])+)/i,/^(?:X(['](\\.|[^']|\\')*?['])+)/i,/^(?:(['](\\.|[^']|\\')*?['])+)/i,/^(?:(["](\\.|[^"]|\\")*?["])+)/i,/^(?:--(.*?)($|\r\n|\r|\n))/i,/^(?:\s+)/i,/^(?:\|\|)/i,/^(?:\|)/i,/^(?:VALUE\s+OF\s+SEARCH\b)/i,/^(?:VALUE\s+OF\s+SELECT\b)/i,/^(?:ROW\s+OF\s+SELECT\b)/i,/^(?:COLUMN\s+OF\s+SELECT\b)/i,/^(?:MATRIX\s+OF\s+SELECT\b)/i,/^(?:INDEX\s+OF\s+SELECT\b)/i,/^(?:RECORDSET\s+OF\s+SELECT\b)/i,/^(?:TEXT\s+OF\s+SELECT\b)/i,/^(?:SELECT\b)/i,/^(?:ABSOLUTE\b)/i,/^(?:ACTION\b)/i,/^(?:ADD\b)/i,/^(?:AFTER\b)/i,/^(?:AGGR\b)/i,/^(?:AGGREGATE\b)/i,/^(?:AGGREGATOR\b)/i,/^(?:ALL\b)/i,/^(?:ALTER\b)/i,/^(?:AND\b)/i,/^(?:ANTI\b)/i,/^(?:ANY\b)/i,/^(?:APPLY\b)/i,/^(?:ARRAY\b)/i,/^(?:AS\b)/i,/^(?:ASSERT\b)/i,/^(?:ASC\b)/i,/^(?:ATTACH\b)/i,/^(?:AUTO(_)?INCREMENT\b)/i,/^(?:AVG\b)/i,/^(?:BEFORE\b)/i,/^(?:BEGIN\b)/i,/^(?:BETWEEN\b)/i,/^(?:BREAK\b)/i,/^(?:NOT\s+BETWEEN\b)/i,/^(?:NOT\s+LIKE\b)/i,/^(?:BY\b)/i,/^(?:~~\*)/i,/^(?:!~~\*)/i,/^(?:~~)/i,/^(?:!~~)/i,/^(?:ILIKE\b)/i,/^(?:NOT\s+ILIKE\b)/i,/^(?:CALL\b)/i,/^(?:CASE\b)/i,/^(?:CAST\b)/i,/^(?:CHECK\b)/i,/^(?:CLASS\b)/i,/^(?:CLOSE\b)/i,/^(?:COLLATE\b)/i,/^(?:COLUMN\b)/i,/^(?:COLUMNS\b)/i,/^(?:COMMIT\b)/i,/^(?:CONSTRAINT\b)/i,/^(?:CONTENT\b)/i,/^(?:CONTINUE\b)/i,/^(?:CONVERT\b)/i,/^(?:CORRESPONDING\b)/i,/^(?:COUNT\b)/i,/^(?:CREATE\b)/i,/^(?:CROSS\b)/i,/^(?:CUBE\b)/i,/^(?:CURRENT_TIMESTAMP\b)/i,/^(?:CURSOR\b)/i,/^(?:DATABASE(S)?)/i,/^(?:DATEADD\b)/i,/^(?:DATEDIFF\b)/i,/^(?:DECLARE\b)/i,/^(?:DEFAULT\b)/i,/^(?:DELETE\b)/i,/^(?:DELETED\b)/i,/^(?:DESC\b)/i,/^(?:DETACH\b)/i,/^(?:DISTINCT\b)/i,/^(?:DROP\b)/i,/^(?:ECHO\b)/i,/^(?:EDGE\b)/i,/^(?:END\b)/i,/^(?:ENUM\b)/i,/^(?:ELSE\b)/i,/^(?:ESCAPE\b)/i,/^(?:EXCEPT\b)/i,/^(?:EXEC\b)/i,/^(?:EXECUTE\b)/i,/^(?:EXISTS\b)/i,/^(?:EXPLAIN\b)/i,/^(?:FALSE\b)/i,/^(?:FETCH\b)/i,/^(?:FIRST\b)/i,/^(?:FOR\b)/i,/^(?:FOREIGN\b)/i,/^(?:FROM\b)/i,/^(?:FULL\b)/i,/^(?:FUNCTION\b)/i,/^(?:GLOB\b)/i,/^(?:GO\b)/i,/^(?:GRAPH\b)/i,/^(?:GROUP\b)/i,/^(?:GROUPING\b)/i,/^(?:HAVING\b)/i,/^(?:IF\b)/i,/^(?:IDENTITY\b)/i,/^(?:IS\b)/i,/^(?:IN\b)/i,/^(?:INDEX\b)/i,/^(?:INDEXED\b)/i,/^(?:INNER\b)/i,/^(?:INSTEAD\b)/i,/^(?:INSERT\b)/i,/^(?:INSERTED\b)/i,/^(?:INTERSECT\b)/i,/^(?:INTERVAL\b)/i,/^(?:INTO\b)/i,/^(?:JOIN\b)/i,/^(?:KEY\b)/i,/^(?:LAST\b)/i,/^(?:LET\b)/i,/^(?:LEFT\b)/i,/^(?:LIKE\b)/i,/^(?:LIMIT\b)/i,/^(?:MATCHED\b)/i,/^(?:MATRIX\b)/i,/^(?:MAX(\s+)?(?=\())/i,/^(?:MAX(\s+)?(?=(,|\))))/i,/^(?:MIN(\s+)?(?=\())/i,/^(?:MERGE\b)/i,/^(?:MINUS\b)/i,/^(?:MODIFY\b)/i,/^(?:NATURAL\b)/i,/^(?:NEXT\b)/i,/^(?:NEW\b)/i,/^(?:NOCASE\b)/i,/^(?:NO\b)/i,/^(?:NOT\b)/i,/^(?:NULL\b)/i,/^(?:OFF\b)/i,/^(?:ON\b)/i,/^(?:ONLY\b)/i,/^(?:OF\b)/i,/^(?:OFFSET\b)/i,/^(?:OPEN\b)/i,/^(?:OPTION\b)/i,/^(?:OR\b)/i,/^(?:ORDER\b)/i,/^(?:OUTER\b)/i,/^(?:OVER\b)/i,/^(?:PATH\b)/i,/^(?:PARTITION\b)/i,/^(?:PERCENT\b)/i,/^(?:PIVOT\b)/i,/^(?:PLAN\b)/i,/^(?:PRIMARY\b)/i,/^(?:PRINT\b)/i,/^(?:PRIOR\b)/i,/^(?:QUERY\b)/i,/^(?:READ\b)/i,/^(?:RECORDSET\b)/i,/^(?:REDUCE\b)/i,/^(?:REFERENCES\b)/i,/^(?:REGEXP\b)/i,/^(?:REINDEX\b)/i,/^(?:RELATIVE\b)/i,/^(?:REMOVE\b)/i,/^(?:RENAME\b)/i,/^(?:REPEAT\b)/i,/^(?:REPLACE\b)/i,/^(?:REQUIRE\b)/i,/^(?:RESTORE\b)/i,/^(?:RETURN\b)/i,/^(?:RETURNS\b)/i,/^(?:RIGHT\b)/i,/^(?:ROLLBACK\b)/i,/^(?:ROLLUP\b)/i,/^(?:ROW\b)/i,/^(?:ROWS\b)/i,/^(?:SCHEMA(S)?)/i,/^(?:SEARCH\b)/i,/^(?:SEMI\b)/i,/^(?:SET\b)/i,/^(?:SETS\b)/i,/^(?:SHOW\b)/i,/^(?:SOME\b)/i,/^(?:SOURCE\b)/i,/^(?:STRATEGY\b)/i,/^(?:STORE\b)/i,/^(?:SUM\b)/i,/^(?:TABLE\b)/i,/^(?:TABLES\b)/i,/^(?:TARGET\b)/i,/^(?:TEMP\b)/i,/^(?:TEMPORARY\b)/i,/^(?:TEXTSTRING\b)/i,/^(?:THEN\b)/i,/^(?:TIMEOUT\b)/i,/^(?:TO\b)/i,/^(?:TOP\b)/i,/^(?:TRAN\b)/i,/^(?:TRANSACTION\b)/i,/^(?:TRIGGER\b)/i,/^(?:TRUE\b)/i,/^(?:TRUNCATE\b)/i,/^(?:UNION\b)/i,/^(?:UNIQUE\b)/i,/^(?:UNPIVOT\b)/i,/^(?:UPDATE\b)/i,/^(?:USE\b)/i,/^(?:USING\b)/i,/^(?:VALUE\b)/i,/^(?:VALUES\b)/i,/^(?:VERTEX\b)/i,/^(?:VIEW\b)/i,/^(?:WHEN\b)/i,/^(?:WHERE\b)/i,/^(?:WHILE\b)/i,/^(?:WITH\b)/i,/^(?:WORK\b)/i,/^(?:(\d*[.])?\d+[eE]\d+)/i,/^(?:(\d*[.])?\d+)/i,/^(?:->)/i,/^(?:#)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?::-)/i,/^(?:\?-)/i,/^(?:\.\.)/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:!)/i,/^(?:\^)/i,/^(?:~)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); - -if (typeof require !== 'undefined' && typeof exports !== 'undefined') { -exports.parser = alasqlparser; -exports.Parser = alasqlparser.Parser; -exports.parse = function () { return alasqlparser.parse.apply(alasqlparser, arguments); }; -exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: '+args[0]+' FILE'); - process.exit(1); - } - var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); - return exports.parser.parse(source); -}; -if (typeof module !== 'undefined' && require.main === module) { - exports.main(process.argv.slice(1)); -} -} -/** - 12prettyflag.js - prettify - @todo move this functionality to plugin -*/ - -/** - Pretty flag - nice HTML output or standard text without any tags - @type {boolean} -*/ - -alasql.prettyflag = false; - -/** - Pretty output of SQL functions - @function - @param {string} sql SQL statement - @param {boolean} flag value - @return {string} HTML or text string with pretty output -*/ - -alasql.pretty = function(sql, flag) { - var pf = alasql.prettyflag; - alasql.prettyflag = !flag; - var s = alasql.parse(sql).toString(); - alasql.prettyflag = pf; - return s; -}; - -/*jshint unused:false*/ -/* - Utilities for Alasql.js - - @todo Review the list of utilities - @todo Find more effective utilities -*/ - -/** - Alasql utility functions - @type {object} - */ -var utils = (alasql.utils = {}); - -/** - Convert NaN to undefined - @function - @param {string} s JavaScript string to be modified - @return {string} Covered expression - - @example - - 123 => 123 - undefined => undefined - NaN => undefined - - */ -function n2u(s) { - return '(y=' + s + ',y===y?y:undefined)'; -} - -/** - Return undefined if s undefined - @param {string} s JavaScript string to be modified - @return {string} Covered expression - - @example - - 123,a => a - undefined,a => undefined - NaN,a => undefined - - */ -function und(s, r) { - return '(y=' + s + ',typeof y=="undefined"?undefined:' + r + ')'; -} - -/** - Return always true. Stub for non-ecisting WHERE clause, because is faster then if(whenrfn) whenfn() - @function - @return {boolean} Always true - */ -function returnTrue() { - return true; -} - -/** - Return undefined. Stub for non-ecisting WHERE clause, because is faster then if(whenrfn) whenfn() - @function - @return {undefined} Always undefined - */ -function returnUndefined() {} - -/** - Escape string - @function - @param {string} s Source string - @return {string} Escaped string - @example - - Pit\er's => Pit\\er\'s - - */ -// based on joliss/js-string-escape -var escapeq = (utils.escapeq = function(s) { - - return ('' + s).replace(/["'\\\n\r\u2028\u2029]/g, function(character) { - // Escape all characters not included in SingleStringCharacters and - // DoubleStringCharacters on - // http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4 - switch (character) { - case '"': - case "'": - case '\\': - return '\\' + character; - // Four possible LineTerminator characters need to be escaped: - case '\n': - return '\\n'; - case '\r': - return '\\r'; - case '\u2028': - return '\\u2028'; - case '\u2029': - return '\\u2029'; - } - }); -}); - -/** - Double quotes for SQL statements - @param {string} s Source string - @return {string} Escaped string - - @example - - Piter's => Piter''s - - */ -var escapeqq = (utils.undoubleq = function(s) { - return s.replace(/(\')/g, "''"); -}); - -/** - Replace double quotes with single quote - @param {string} s Source string - @return {string} Replaced string - @example - - Piter''s => Piter's - - */ -var doubleq = (utils.doubleq = function(s) { - return s.replace(/(\'\')/g, "\\'"); -}); - -/** - Replace sigle quote to escaped single quote - @param {string} s Source string - @return {string} Replaced string - - @todo Chack this functions - - */ -var doubleqq = (utils.doubleqq = function(s) { - return s.replace(/\'/g, "'"); -}); - -/** - Cut BOM first character for UTF-8 files (for merging two files) - @param {string} s Source string - @return {string} Replaced string - */ - -var cutbom = function(s) { - if (s[0] === String.fromCharCode(65279)) { - s = s.substr(1); - } - return s; -}; - -/** - Get the global scope - Inspired by System.global - @return {object} The global scope - */ -utils.global = (function() { - if (typeof self !== 'undefined') { - return self; - } - if (typeof window !== 'undefined') { - return window; - } - if (typeof global !== 'undefined') { - return global; - } - return Function('return this')(); -})(); - -/** - Find out if a function is native to the enviroment - @param {function} Function to check - @return {boolean} True if function is native - */ -var isNativeFunction = (utils.isNativeFunction = function(fn) { - return typeof fn === 'function' && !!~fn.toString().indexOf('[native code]'); -}); - -/** - Find out if code is running in a web worker enviroment - @return {boolean} True if code is running in a web worker enviroment - */ -utils.isWebWorker = (function() { - try { - var importScripts = utils.global.importScripts; - return utils.isNativeFunction(importScripts); - } catch (e) { - return false; - } -})(); - -/** - Find out if code is running in a node enviroment - @return {boolean} True if code is running in a node enviroment - */ -utils.isNode = (function() { - try { - return utils.isNativeFunction(utils.global.process.reallyExit); - } catch (e) { - return false; - } -})(); - -/** - Find out if code is running in a browser enviroment - @return {boolean} True if code is running in a browser enviroment - */ -utils.isBrowser = (function() { - try { - return utils.isNativeFunction(utils.global.location.reload); - } catch (e) { - return false; - } -})(); - -/** - Find out if code is running in a browser with a browserify setup - @return {boolean} True if code is running in a browser with a browserify setup - */ -utils.isBrowserify = (function() { - return utils.isBrowser && typeof process !== 'undefined' && process.browser; -})(); - -/** - Find out if code is running in a browser with a requireJS setup - @return {boolean} True if code is running in a browser with a requireJS setup - */ -utils.isRequireJS = (function() { - return ( - utils.isBrowser && typeof require === 'function' && typeof require.specified === 'function' - ); -})(); - -/** - Find out if code is running with Meteor in the enviroment - @return {boolean} True if code is running with Meteor in the enviroment - - @todo Find out if this is the best way to do this - */ -utils.isMeteor = (function() { - return typeof Meteor !== 'undefined' && Meteor.release; -})(); - -/** - Find out if code is running on a Meteor client - @return {boolean} True if code is running on a Meteor client - */ -utils.isMeteorClient = utils.isMeteorClient = (function() { - return utils.isMeteor && Meteor.isClient; -})(); - -/** - Find out if code is running on a Meteor server - @return {boolean} True if code is running on a Meteor server - */ -utils.isMeteorServer = (function() { - return utils.isMeteor && Meteor.isServer; -})(); - -/** - Find out code is running in a cordovar enviroment - @return {boolean} True if code is running in a web worker enviroment - - @todo Find out if this is the best way to do this - */ -utils.isCordova = (function() { - return typeof cordova === 'object'; -})(); - -utils.isReactNative = (function() { - var isReact = false; - /*not-for-browser/* - try { - if (typeof require('react-native') === 'object') { - isReact = true; - } - } catch (e) { - void 0; - } - //*/ - return isReact; -})(); - -utils.hasIndexedDB = (function() { - return !!utils.global.indexedDB; -})(); - -utils.isArray = function(obj) { - return '[object Array]' === Object.prototype.toString.call(obj); -}; -/** - Load text file from anywhere - @param {string|object} path File path or HTML event - @param {boolean} asy True - async call, false - sync call - @param {function} success Success function - @param {function} error Error function - @return {string} Read data - - @todo Define Event type - @todo Smaller if-else structures. - */ -var loadFile = (utils.loadFile = function(path, asy, success, error) { - var data, fs; - if (utils.isNode || utils.isMeteorServer) { - /*not-for-browser/* - fs = require('fs'); - - // If path is empty, than read data from stdin (for Node) - if (typeof path === 'undefined') { - var buff = ''; - process.stdin.setEncoding('utf8'); - process.stdin.on('readable', function() { - var chunk = process.stdin.read(); - if (chunk !== null) { - buff += chunk.toString(); - } - }); - process.stdin.on('end', function() { - success(cutbom(buff)); - }); - } else { - if (/^[a-z]+:\/\//i.test(path)) { - var request = require('request'); - request(path, function(err, response, body) { - if (err) { - return error(err, null); - } - success(cutbom(body.toString())); - }); - } else { - //If async callthen call async - if (asy) { - fs.readFile(path, function(err, data) { - if (err) { - return error(err, null); - } - success(cutbom(data.toString())); - }); - } else { - // Call sync version - try { - data = fs.readFileSync(path); - } catch (e) { - return error(err, null); - } - success(cutbom(data.toString())); - } - } - } - } else if (utils.isReactNative) { - // If ReactNative - var RNFS = require('react-native-fs'); - RNFS.readFile(path, 'utf8') - .then(function(contents) { - success(cutbom(contents)); - })["catch"](function(err) { - return error(err, null); - }); - //*/ - } else if (utils.isCordova) { - /* If Cordova */ - utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { - fileSystem.root.getFile(path, {create: false}, function(fileEntry) { - fileEntry.file(function(file) { - var fileReader = new FileReader(); - fileReader.onloadend = function(e) { - success(cutbom(this.result)); - }; - fileReader.readAsText(file); - }); - }); - }); - - /** @todo Check eliminated code below */ - - } else { - /* For string */ - if (typeof path === 'string') { - // For browser read from tag - /* - SELECT * FROM TXT('#one') -- read data from HTML element with id="one" - */ - if (path.substr(0, 1) === '#' && typeof document !== 'undefined') { - data = document.querySelector(path).textContent; - success(data); - } else { - /* - Simply read file from HTTP request, like: - SELECT * FROM TXT('http://alasql.org/README.md'); - */ - var xhr = new XMLHttpRequest(); - xhr.onreadystatechange = function() { - if (xhr.readyState === 4) { - if (xhr.status === 200) { - if (success) { - success(cutbom(xhr.responseText)); - } - } else if (error) { - return error(xhr); - } - // Todo: else...? - } - }; - xhr.open('GET', path, asy); // Async - xhr.responseType = 'text'; - xhr.send(); - } - } else if (path instanceof Event) { - /* - For browser read from files input element - - - */ - /** @type {array} List of files from element */ - var files = path.target.files; - /** type {object} */ - var reader = new FileReader(); - /** type {string} */ - var name = files[0].name; - reader.onload = function(e) { - var data = e.target.result; - success(cutbom(data)); - }; - reader.readAsText(files[0]); - } - } -}); - -/** - @function Load binary file from anywhere - @param {string} path File path - @param {boolean} asy True - async call, false - sync call - @param {function} success Success function - @param {function} error Error function - @return 1 for Async, data - for sync version - - @todo merge functionality from loadFile and LoadBinaryFile - */ - -var loadBinaryFile = (utils.loadBinaryFile = function(path, asy, success, error) { - var fs; - if (utils.isNode || utils.isMeteorServer) { - /*not-for-browser/* - fs = require('fs'); - - if (/^[a-z]+:\/\//i.test(path)) { - var request = require('request'); - request({url: path, encoding: null}, function(err, response, data) { - if (err) { - throw err; - } - var arr = []; - for (var i = 0; i < data.length; ++i) { - arr[i] = String.fromCharCode(data[i]); - } - success(arr.join('')); - }); - } else { - if (asy) { - fs.readFile(path, function(err, data) { - if (err) { - throw err; - } - var arr = []; - for (var i = 0; i < data.length; ++i) { - arr[i] = String.fromCharCode(data[i]); - } - success(arr.join('')); - }); - } else { - var data = fs.readFileSync(path); - var arr = []; - for (var i = 0; i < data.length; ++i) { - arr[i] = String.fromCharCode(data[i]); - } - success(arr.join('')); - } - } - } else if (utils.isReactNative) { - // If ReactNative - //var RNFS = require('react-native-fs'); - var RNFetchBlob = require('react-native-fetch-blob')["default"]; - var dirs = RNFetchBlob.fs.dirs; - //should use readStream instead if the file is large - RNFetchBlob.fs.readFile(path, 'base64').then(function(data) { - //RNFetchBlob.base64.decode(data) //need more test on excel - success(data); - }); - //*/ - } else { - if (typeof path === 'string') { - // For browser - var xhr = new XMLHttpRequest(); - xhr.open('GET', path, asy); // Async - xhr.responseType = 'arraybuffer'; - xhr.onload = function() { - var data = new Uint8Array(xhr.response); - var arr = []; - for (var i = 0; i < data.length; ++i) { - arr[i] = String.fromCharCode(data[i]); - } - success(arr.join('')); - }; - // xhr.responseType = "blob"; - xhr.send(); - } else if (path instanceof Event) { - - var files = path.target.files; - var reader = new FileReader(); - var name = files[0].name; - reader.onload = function(e) { - var data = e.target.result; - success(data); - }; - reader.readAsArrayBuffer(files[0]); - } else if (path instanceof Blob) { - success(path); - } - } -}); - -var removeFile = (utils.removeFile = function(path, cb) { - if (utils.isNode) { - /*not-for-browser/* - var fs = require('fs'); - fs.remove(path, cb); - } else if (utils.isCordova) { - utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { - fileSystem.root.getFile( - path, - {create: false}, - function(fileEntry) { - fileEntry.remove(cb); - cb && cb(); // jshint ignore:line - }, - function() { - cb && cb(); // jshint ignore:line - } - ); - }); - } else if (utils.isReactNative) { - // If ReactNative - var RNFS = require('react-native-fs'); - RNFS.unlink(path) - .then(function() { - cb && cb(); - })["catch"](function(err) { - throw err; - }); - //*/ - } else { - throw new Error('You can remove files only in Node.js and Apache Cordova'); - } -}); - -// Todo: check if it makes sense to support cordova and Meteor server -var deleteFile = (utils.deleteFile = function(path, cb) { - /*not-for-browser/* - if (utils.isNode) { - var fs = require('fs'); - fs.unlink(path, cb); - } else if (utils.isReactNative) { - // If ReactNative - var RNFS = require('react-native-fs'); - RNFS.unlink(path) - .then(function() { - cb && cb(); - })["catch"](function(err) { - throw err; - }); - } - //*/ -}); - -utils.autoExtFilename = function(filename, ext, config) { - config = config || {}; - if ( - typeof filename !== 'string' || - filename.match(/^[A-z]+:\/\/|\n|\..{2,4}$/) || - config.autoExt === 0 || - config.autoExt === false - ) { - return filename; - } - return filename + '.' + ext; -}; - -var fileExists = (utils.fileExists = function(path, cb) { - if (utils.isNode) { - /*not-for-browser/* - var fs = require('fs'); - fs.exists(path, cb); - } else if (utils.isCordova) { - utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { - fileSystem.root.getFile( - path, - {create: false}, - function(fileEntry) { - cb(true); - }, - function() { - cb(false); - } - ); - }); - } else if (utils.isReactNative) { - // If ReactNative - var RNFS = require('react-native-fs'); - RNFS.exists(path) - .then(function(yes) { - cb && cb(yes); - })["catch"](function(err) { - throw err; - }); - //*/ - } else { - // TODO Cordova, etc. - throw new Error('You can use exists() only in Node.js or Apach Cordova'); - } -}); - -/** - Save text file from anywhere - @param {string} path File path - @param {array} data Data object - @param {function} cb Callback - @param {object=} opts - */ - -var saveFile = (utils.saveFile = function(path, data, cb, opts) { - var res = 1; - if (path === undefined) { - // - // Return data into result variable - // like: alasql('SELECT * INTO TXT() FROM ?',[data]); - // - res = data; - if (cb) { - res = cb(res); - } - } else { - if (utils.isNode) { - /*not-for-browser/* - var fs = require('fs'); - data = fs.writeFileSync(path, data); - if (cb) { - res = cb(res); - } - } else if (utils.isReactNative) { - var RNFS = require('react-native-fs'); - RNFS.writeFile(path, data) - .then(function(success) { - //, 'utf8' - if (cb) res = cb(res); - })["catch"](function(err) { - console.error(err.message); - }); - } else if (utils.isCordova) { - utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { - // alasql.utils.removeFile(path,function(){ - fileSystem.root.getFile(path, {create: true}, function(fileEntry) { - fileEntry.createWriter(function(fileWriter) { - fileWriter.onwriteend = function() { - if (cb) { - res = cb(res); - } - }; - fileWriter.write(data); - }); - }); - }); - //*/ - - // }); - // }); - // }); - } else { - if (isIE() === 9) { - // Solution was taken from - // http://megatuto.com/formation-JAVASCRIPT.php?JAVASCRIPT_Example=Javascript+Save+CSV+file+in+IE+8/IE+9+without+using+window.open()+Categorie+javascript+internet-explorer-8&category=&article=7993 - // var URI = 'data:text/plain;charset=utf-8,'; - - // Prepare data - var ndata = data.replace(/\r\n/g, '&#A;&#D;'); - ndata = ndata.replace(/\n/g, '&#D;'); - ndata = ndata.replace(/\t/g, ' '); - var testlink = utils.global.open('about:blank', '_blank'); - testlink.document.write(ndata); //fileData has contents for the file - testlink.document.close(); - testlink.document.execCommand('SaveAs', false, path); - testlink.close(); - } else { - var opt = { - disableAutoBom: false, - }; - alasql.utils.extend(opt, opts); - var blob = new Blob([data], {type: 'text/plain;charset=utf-8'}); - saveAs(blob, path, opt.disableAutoBom); - if (cb) { - res = cb(res); - } - } - } - } - - return res; -}); - -/** - @function Is this IE9 - @return {boolean} True for IE9 and false for other browsers - - For IE9 compatibility issues - */ -function isIE() { - var myNav = navigator.userAgent.toLowerCase(); - return myNav.indexOf('msie') !== -1 ? parseInt(myNav.split('msie')[1]) : false; -} - -/** - @function Hash a string to signed integer - @param {string} source string - @return {integer} hash number - */ - -// FNV-1a inspired hashing -var hash = (utils.hash = function(str) { - var hash = 0x811c9dc5, - i = str.length; - while (i) { - hash ^= str.charCodeAt(--i); - hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24); - } - return hash; -}); - -/** - Union arrays - @function - @param {array} a - @param {array} b - @return {array} - */ -var arrayUnion = (utils.arrayUnion = function(a, b) { - var r = b.slice(0); - a.forEach(function(i) { - if (r.indexOf(i) < 0) { - r.push(i); - } - }); - return r; -}); - -/** - Array Difference - */ -var arrayDiff = (utils.arrayDiff = function(a, b) { - return a.filter(function(i) { - return b.indexOf(i) < 0; - }); -}); - -/** - Arrays deep intersect (with records) - */ -var arrayIntersect = (utils.arrayIntersect = function(a, b) { - var r = []; - a.forEach(function(ai) { - var found = false; - - b.forEach(function(bi) { - found = found || ai === bi; - }); - - if (found) { - r.push(ai); - } - }); - return r; -}); - -/** - Arrays deep union (with records) - */ -var arrayUnionDeep = (utils.arrayUnionDeep = function(a, b) { - var r = b.slice(0); - a.forEach(function(ai) { - var found = false; - - r.forEach(function(ri) { - // found = found || equalDeep(ai, ri, true); - found = found || deepEqual(ai, ri); - }); - - if (!found) { - r.push(ai); - } - }); - return r; -}); - -/** - Arrays deep union (with records) - */ -var arrayExceptDeep = (utils.arrayExceptDeep = function(a, b) { - var r = []; - a.forEach(function(ai) { - var found = false; - - b.forEach(function(bi) { - // found = found || equalDeep(ai, bi, true); - found = found || deepEqual(ai, bi); - }); - - if (!found) { - r.push(ai); - } - }); - return r; -}); - -/** - Arrays deep intersect (with records) - */ -var arrayIntersectDeep = (utils.arrayIntersectDeep = function(a, b) { - var r = []; - a.forEach(function(ai) { - var found = false; - - b.forEach(function(bi) { - // found = found || equalDeep(ai, bi, true); - found = found || deepEqual(ai, bi, true); - }); - - if (found) { - r.push(ai); - } - }); - return r; -}); - -/** - Deep clone objects - */ -var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) { - if (null === obj || typeof obj !== 'object') { - return obj; - } - - if (obj instanceof Date) { - return new Date(obj); - } - - var temp = obj.constructor(); // changed - - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - temp[key] = cloneDeep(obj[key]); - } - } - return temp; -}); - -/** - Check equality of objects - */ - -/** - Compare two objects in deep - */ -var deepEqual = (utils.deepEqual = function(x, y) { - if (x === y) { - return true; - } - - if (typeof x === 'object' && null !== x && (typeof y === 'object' && null !== y)) { - if (Object.keys(x).length !== Object.keys(y).length) { - return false; - } - for (var prop in x) { - if (!deepEqual(x[prop], y[prop])) { - return false; - } - } - return true; - } - - return false; -}); -/** - Array with distinct records - @param {array} data - @return {array} - */ -var distinctArray = (utils.distinctArray = function(data) { - var uniq = {}; - // TODO: Speedup, because Object.keys is slow - for (var i = 0, ilen = data.length; i < ilen; i++) { - var uix; - if (typeof data[i] === 'object') { - uix = Object.keys(data[i]) - .sort() - .map(function(k) { - return k + '`' + data[i][k]; - }) - .join('`'); - } else { - uix = data[i]; - } - uniq[uix] = data[i]; - } - var res = []; - for (var key in uniq) { - res.push(uniq[key]); - } - return res; -}); - -/** - Extend object a with properties of b - @function - @param {object} a - @param {object} b - @return {object} - */ -var extend = (utils.extend = function extend(a, b) { - a = a || {}; - for (var key in b) { - if (b.hasOwnProperty(key)) { - a[key] = b[key]; - } - } - return a; -}); - -/** - Flat array by first row - */ -var flatArray = (utils.flatArray = function(a) { - - if (!a || 0 === a.length) { - return []; - } - - // For recordsets - if (typeof a === 'object' && a instanceof alasql.Recordset) { - return a.data.map(function(ai) { - return ai[a.columns[0].columnid]; - }); - } - // Else for other arrays - var key = Object.keys(a[0])[0]; - if (key === undefined) { - return []; - } - return a.map(function(ai) { - return ai[key]; - }); -}); - -/** - Convert array of objects to array of arrays - */ -var arrayOfArrays = (utils.arrayOfArrays = function(a) { - return a.map(function(aa) { - var ar = []; - for (var key in aa) { - ar.push(aa[key]); - } - return ar; - }); -}); - -if (!Array.isArray) { - Array.isArray = function(arg) { - return Object.prototype.toString.call(arg) === '[object Array]'; - }; -} - -/** - Excel:convert number to Excel column, like 1 => 'A' - @param {integer} i Column number, starting with 0 - @return {string} Column name, starting with 'A' - */ - -var xlsnc = (utils.xlsnc = function(i) { - var addr = String.fromCharCode(65 + i % 26); - if (i >= 26) { - i = ((i / 26) | 0) - 1; - addr = String.fromCharCode(65 + i % 26) + addr; - if (i > 26) { - i = ((i / 26) | 0) - 1; - addr = String.fromCharCode(65 + i % 26) + addr; - } - } - return addr; -}); - -/** - Excel:conver Excel column name to number - @param {string} s Column number, like 'A' or 'BE' - @return {string} Column name, starting with 0 - */ -var xlscn = (utils.xlscn = function(s) { - var n = s.charCodeAt(0) - 65; - if (s.length > 1) { - n = (n + 1) * 26 + s.charCodeAt(1) - 65; - - if (s.length > 2) { - n = (n + 1) * 26 + s.charCodeAt(2) - 65; - } - } - return n; -}); - -var domEmptyChildren = (utils.domEmptyChildren = function(container) { - var len = container.childNodes.length; - while (len--) { - container.removeChild(container.lastChild); - } -}); - -/** - SQL LIKE emulation - @parameter {string} pattern Search pattern - @parameter {string} value Searched value - @parameter {string} escape Escape character (optional) - @return {boolean} If value LIKE pattern ESCAPE escape - */ - -var like = (utils.like = function(pattern, value, escape) { - // Verify escape character - if (!escape) escape = ''; - - var i = 0; - var s = '^'; - - while (i < pattern.length) { - var c = pattern[i], - c1 = ''; - if (i < pattern.length - 1) c1 = pattern[i + 1]; - - if (c === escape) { - s += '\\' + c1; - i++; - } else if (c === '[' && c1 === '^') { - s += '[^'; - i++; - } else if (c === '[' || c === ']') { - s += c; - } else if (c === '%') { - s += '.*'; - } else if (c === '_') { - s += '.'; - } else if ('/.*+?|(){}'.indexOf(c) > -1) { - s += '\\' + c; - } else { - s += c; - } - i++; - } - - s += '$'; - // if(value == undefined) return false; - - return ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1; -}); - -utils.glob = function(value, pattern) { - var i = 0; - var s = '^'; - - while (i < pattern.length) { - var c = pattern[i], - c1 = ''; - if (i < pattern.length - 1) c1 = pattern[i + 1]; - - if (c === '[' && c1 === '^') { - s += '[^'; - i++; - } else if (c === '[' || c === ']') { - s += c; - } else if (c === '*') { - s += '.*'; - } else if (c === '?') { - s += '.'; - } else if ('/.*+?|(){}'.indexOf(c) > -1) { - s += '\\' + c; - } else { - s += c; - } - i++; - } - - s += '$'; - return ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1; -}; - -/** - Get path of alasql.js - @todo Rewrite and simplify the code. Review, is this function is required separately - */ -utils.findAlaSQLPath = function() { - /** type {string} Path to alasql library and plugins */ - - if (utils.isWebWorker) { - return ''; - /** @todo Check how to get path in worker */ - } else if (utils.isMeteorClient) { - return '/packages/dist/'; - } else if (utils.isMeteorServer) { - return 'assets/packages/dist/'; - } else if (utils.isNode) { - return __dirname; - } else if (utils.isBrowser) { - var sc = document.getElementsByTagName('script'); - - for (var i = 0; i < sc.length; i++) { - if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') { - return sc[i].src.substr(0, sc[i].src.length - 16); - } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') { - return sc[i].src.substr(0, sc[i].src.length - 20); - } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') { - return sc[i].src.substr(0, sc[i].src.length - 9); - } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') { - return sc[i].src.substr(0, sc[i].src.length - 13); - } - } - } - return ''; -}; - -var getXLSX = function() { - var XLSX = alasql["private"].externalXlsxLib; - - if (XLSX) { - return XLSX; - } - - if (utils.isNode || utils.isBrowserify || utils.isMeteorServer) { - /*not-for-browser/* - XLSX = require('xlsx') || null; - //*/ - } else { - XLSX = utils.global.XLSX || null; - } - - if (null === XLSX) { - throw new Error('Please include the xlsx.js library'); - } - - return XLSX; -}; - -// set AlaSQl path -alasql.path = alasql.utils.findAlaSQLPath(); - -/** - Strip all comments. - @function - @param {string} str - @return {string} - Based om the https://github.com/lehni/uncomment.js/blob/master/uncomment.js - I just replaced JavaScript's '//' to SQL's '--' and remove other stuff - - @todo Fixed [aaa/*bbb] for column names - @todo Bug if -- comments in the last line - @todo Check if it possible to model it with Jison parser - @todo Remove unused code - */ - -/* global alasql */ - -alasql.utils.uncomment = function(str) { - // Add some padding so we can always look ahead and behind by two chars - str = ('__' + str + '__').split(''); - var quote = false, - quoteSign, - // regularExpression = false, - // characterClass = false, - blockComment = false, - lineComment = false; - // preserveComment = false; - - for (var i = 0, l = str.length; i < l; i++) { - - // When checking for quote escaping, we also need to check that the - // escape sign itself is not escaped, as otherwise '\\' would cause - // the wrong impression of an unclosed string: - var unescaped = str[i - 1] !== '\\' || str[i - 2] === '\\'; - - if (quote) { - if (str[i] === quoteSign && unescaped) { - quote = false; - } - - } else if (blockComment) { - // Is the block comment closing? - if (str[i] === '*' && str[i + 1] === '/') { - // if (!preserveComment) - str[i] = str[i + 1] = ''; - blockComment /* = preserveComment*/ = false; - // Increase by 1 to skip closing '/', as it would be mistaken - // for a regexp otherwise - i++; - } else { - //if (!preserveComment) { - str[i] = ''; - } - } else if (lineComment) { - // One-line comments end with the line-break - if (str[i + 1] === '\n' || str[i + 1] === '\r') { - lineComment = false; - } - str[i] = ''; - } else { - if (str[i] === '"' || str[i] === "'") { - quote = true; - quoteSign = str[i]; - } else if (str[i] === '[' && str[i - 1] !== '@') { - quote = true; - quoteSign = ']'; - // } else if (str[i] === '-' && str[i + 1] === '-') { - // str[i] = ''; - // lineComment = true; - } else if (str[i] === '/' && str[i + 1] === '*') { - // Do not filter out conditional comments /*@ ... */ - // and comments marked as protected /*! ... */ - // preserveComment = /[@!]/.test(str[i + 2]); - // if (!preserveComment) - str[i] = ''; - blockComment = true; - - } - } - } - // Remove padding again. - str = str.join('').slice(2, -2); - - return str; -}; - -/** - Database class for Alasql.js -*/ - -// Initial parameters - -/** - Jison parser -*/ -alasql.parser = alasqlparser; - -alasql.parser.parseError = function(str, hash) { - throw new Error('Have you used a reserved keyword without `escaping` it?\n' + str); -}; - -/** - Jison parser - @param {string} sql SQL statement - @return {object} AST (Abstract Syntax Tree) - - @todo Create class AST - @todo Add other parsers - - @example - alasql.parse = function(sql) { - // My own parser here - } - */ -alasql.parse = function(sql) { - return alasqlparser.parse(alasql.utils.uncomment(sql)); -}; - -/** - List of engines of external databases - @type {object} - @todo Create collection type - */ -alasql.engines = {}; - -/** - List of databases - @type {object} - */ -alasql.databases = {}; - -/** - Number of databases - @type {number} -*/ -alasql.databasenum = 0; - -/** - Alasql options object - */ -alasql.options = {}; -alasql.options.errorlog = false; // Log or throw error -alasql.options.valueof = false; // Use valueof in orderfn -alasql.options.dropifnotexists = false; // DROP database in any case -alasql.options.datetimeformat = 'sql'; // How to handle DATE and DATETIME types -// Another value is 'javascript' -alasql.options.casesensitive = true; // Table and column names are case sensitive and converted to lower-case -alasql.options.logtarget = 'output'; // target for log. Values: 'console', 'output', 'id' of html tag -alasql.options.logprompt = true; // Print SQL at log - -alasql.options.progress = false; // Callback for async queries progress - -// Default modifier -// values: RECORDSET, VALUE, ROW, COLUMN, MATRIX, TEXTSTRING, INDEX -alasql.options.modifier = undefined; -// How many rows to lookup to define columns -alasql.options.columnlookup = 10; -// Create vertex if not found -alasql.options.autovertex = true; - -// Use dbo as current database (for partial T-SQL comaptibility) -alasql.options.usedbo = true; - -// AUTOCOMMIT ON | OFF -alasql.options.autocommit = true; - -// Use cache -alasql.options.cache = true; - -// Compatibility flags -alasql.options.tsql = true; - -alasql.options.mysql = true; - -alasql.options.postgres = true; - -alasql.options.oracle = true; - -alasql.options.sqlite = true; - -alasql.options.orientdb = true; - -// for SET NOCOUNT OFF -alasql.options.nocount = false; - -// Check for NaN and convert it to undefined -alasql.options.nan = false; - -alasql.options.joinstar = 'overwrite'; // Option for SELECT * FROM a,b - -//alasql.options.worker = false; - -// Variables -alasql.vars = {}; - -alasql.declares = {}; - -alasql.prompthistory = []; - -alasql.plugins = {}; // If plugin already loaded - -alasql.from = {}; // FROM functions - -alasql.into = {}; // INTO functions - -alasql.fn = {}; - -alasql.aggr = {}; - -alasql.busy = 0; - -// Cache -alasql.MAXSQLCACHESIZE = 10000; -alasql.DEFAULTDATABASEID = 'alasql'; - -/* WebWorker */ -alasql.lastid = 0; - -alasql.buffer = {}; - -alasql["private"] = { - externalXlsxLib: null, -}; - -alasql.setXLSX = function(XLSX) { - alasql["private"].externalXlsxLib = XLSX; -}; - -/** - Select current database - @param {string} databaseid Selected database identificator - */ -alasql.use = function(databaseid) { - if (!databaseid) { - databaseid = alasql.DEFAULTDATABASEID; - } - if (alasql.useid === databaseid) { - return; - } - alasql.useid = databaseid; - var db = alasql.databases[alasql.useid]; - alasql.tables = db.tables; - // alasql.fn = db.fn; - db.resetSqlCache(); - if (alasql.options.usedbo) { - alasql.databases.dbo = db; // Operator??? - } -}; - -alasql.autoval = function(tablename, colname, getNext, databaseid) { - var db = databaseid ? alasql.databases[databaseid] : alasql.databases[alasql.useid]; - - if (!db.tables[tablename]) { - throw new Error('Tablename not found: ' + tablename); - } - - if (!db.tables[tablename].identities[colname]) { - throw new Error('Colname not found: ' + colname); - } - - if (getNext) { - return db.tables[tablename].identities[colname].value || null; - } - - return ( - db.tables[tablename].identities[colname].value - - db.tables[tablename].identities[colname].step || null - ); -}; - -/** - Run single SQL statement on current database - */ -alasql.exec = function(sql, params, cb, scope) { - // Avoid setting params if not needed even with callback - if (typeof params === 'function') { - scope = cb; - cb = params; - params = {}; - } - - delete alasql.error; - params = params || {}; - if (alasql.options.errorlog) { - try { - return alasql.dexec(alasql.useid, sql, params, cb, scope); - } catch (err) { - alasql.error = err; - if (cb) { - cb(null, alasql.error); - } - } - } else { - return alasql.dexec(alasql.useid, sql, params, cb, scope); - } -}; - -/** - Run SQL statement on specific database - */ -alasql.dexec = function(databaseid, sql, params, cb, scope) { - var db = alasql.databases[databaseid]; - // if(db.databaseid != databaseid) console.trace('got!'); - - var hh; - // Create hash - if (alasql.options.cache) { - hh = hash(sql); - var statement = db.sqlCache[hh]; - // If database structure was not changed since last time return cache - if (statement && db.dbversion === statement.dbversion) { - return statement(params, cb); - } - } - - // Create AST - var ast = alasql.parse(sql); - if (!ast.statements) { - return; - } - if (0 === ast.statements.length) { - return 0; - } else if (1 === ast.statements.length) { - if (ast.statements[0].compile) { - // Compile and Execute - var statement = ast.statements[0].compile(databaseid, params); - if (!statement) { - return; - } - statement.sql = sql; - statement.dbversion = db.dbversion; - - if (alasql.options.cache) { - // Secure sqlCache size - if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) { - db.resetSqlCache(); - } - db.sqlCacheSize++; - db.sqlCache[hh] = statement; - } - var res = (alasql.res = statement(params, cb, scope)); - return res; - } else { - - alasql.precompile(ast.statements[0], alasql.useid, params); - var res = (alasql.res = ast.statements[0].execute(databaseid, params, cb, scope)); - return res; - } - } else { - // Multiple statements - if (cb) { - alasql.adrun(databaseid, ast, params, cb, scope); - } else { - return alasql.drun(databaseid, ast, params, cb, scope); - } - } -}; - -/** - Run multiple statements and return array of results sync - */ -alasql.drun = function(databaseid, ast, params, cb, scope) { - var useid = alasql.useid; - - if (useid !== databaseid) { - alasql.use(databaseid); - } - - var res = []; - for (var i = 0, ilen = ast.statements.length; i < ilen; i++) { - if (ast.statements[i]) { - if (ast.statements[i].compile) { - var statement = ast.statements[i].compile(alasql.useid); - res.push((alasql.res = statement(params, null, scope))); - } else { - alasql.precompile(ast.statements[i], alasql.useid, params); - res.push((alasql.res = ast.statements[i].execute(alasql.useid, params))); - } - } - } - if (useid !== databaseid) { - alasql.use(useid); - } - - if (cb) { - cb(res); - } - - alasql.res = res; - - return res; -}; - -/** - Run multiple statements and return array of results async - */ -alasql.adrun = function(databaseid, ast, params, cb, scope) { - var idx = 0; - var noqueries = ast.statements.length; - if (alasql.options.progress !== false) { - alasql.options.progress(noqueries, idx++); - } - - // alasql.busy++; - var useid = alasql.useid; - if (useid !== databaseid) { - alasql.use(databaseid); - } - var res = []; - - function adrunone(data) { - if (data !== undefined) { - res.push(data); - } - var astatement = ast.statements.shift(); - if (!astatement) { - if (useid !== databaseid) { - alasql.use(useid); - } - cb(res); - // alasql.busy--; - // if(alasql.busy<0) alasql.busy = 0; - } else { - if (astatement.compile) { - var statement = astatement.compile(alasql.useid); - statement(params, adrunone, scope); - if (alasql.options.progress !== false) { - alasql.options.progress(noqueries, idx++); - } - } else { - alasql.precompile(ast.statements[0], alasql.useid, params); - astatement.execute(alasql.useid, params, adrunone); - if (alasql.options.progress !== false) { - alasql.options.progress(noqueries, idx++); - } - } - } - } - - adrunone(); /** @todo Check, why data is empty here */ -}; - -/** - Compile statement to JavaScript function - @param {string} sql SQL statement - @param {string} databaseid Database identificator - @return {functions} Compiled statement functions -*/ -alasql.compile = function(sql, databaseid) { - databaseid = databaseid || alasql.useid; - - var ast = alasql.parse(sql); // Create AST - - if (1 === ast.statements.length) { - var statement = ast.statements[0].compile(databaseid); - statement.promise = function(params) { - return new Promise(function(resolve, reject) { - statement(params, function(data, err) { - if (err) { - reject(err); - } else { - resolve(data); - } - }); - }); - }; - - return statement; - - } else { - throw new Error('Cannot compile, because number of statements in SQL is not equal to 1'); - } -}; - -// -// Promises for AlaSQL -// - -if (!utils.global.Promise) { - if (utils.isNode) { - /*not-for-browser/* - utils.global.Promise = require('es6-promise').Promise; - //*/ - } else { - /*! - * @overview es6-promise - a tiny implementation of Promises/A+. - * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) - * @license Licensed under MIT license - * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE - * @version 3.2.1 - */ - (function() { - 'use strict'; - function t(t) { - return 'function' == typeof t || ('object' == typeof t && null !== t); - } - function e(t) { - return 'function' == typeof t; - } - function n(t) { - G = t; - } - function r(t) { - Q = t; - } - function o() { - return function() { - process.nextTick(a); - }; - } - function i() { - return function() { - B(a); - }; - } - function s() { - var t = 0, - e = new X(a), - n = document.createTextNode(''); - return ( - e.observe(n, {characterData: !0}), - function() { - n.data = t = ++t % 2; - } - ); - } - function u() { - var t = new MessageChannel(); - return ( - (t.port1.onmessage = a), - function() { - t.port2.postMessage(0); - } - ); - } - function c() { - return function() { - setTimeout(a, 1); - }; - } - function a() { - for (var t = 0; J > t; t += 2) { - var e = tt[t], - n = tt[t + 1]; - e(n), (tt[t] = void 0), (tt[t + 1] = void 0); - } - J = 0; - } - function f() { - try { - var t = require, - e = t('vertx'); - return (B = e.runOnLoop || e.runOnContext, i()); - } catch (n) { - return c(); - } - } - function l(t, e) { - var n = this, - r = new this.constructor(p); - void 0 === r[rt] && k(r); - var o = n._state; - if (o) { - var i = arguments[o - 1]; - Q(function() { - x(o, r, i, n._result); - }); - } else E(n, r, t, e); - return r; - } - function h(t) { - var e = this; - if (t && 'object' == typeof t && t.constructor === e) return t; - var n = new e(p); - return (g(n, t), n); - } - function p() {} - function _() { - return new TypeError('You cannot resolve a promise with itself'); - } - function d() { - return new TypeError('A promises callback cannot return that same promise.'); - } - function v(t) { - try { - return t.then; - } catch (e) { - return (ut.error = e, ut); - } - } - function y(t, e, n, r) { - try { - t.call(e, n, r); - } catch (o) { - return o; - } - } - function m(t, e, n) { - Q(function(t) { - var r = !1, - o = y( - n, - e, - function(n) { - r || ((r = !0), e !== n ? g(t, n) : S(t, n)); - }, - function(e) { - r || ((r = !0), j(t, e)); - }, - 'Settle: ' + (t._label || ' unknown promise') - ); - !r && o && ((r = !0), j(t, o)); - }, t); - } - function b(t, e) { - e._state === it - ? S(t, e._result) - : e._state === st - ? j(t, e._result) - : E( - e, - void 0, - function(e) { - g(t, e); - }, - function(e) { - j(t, e); - } - ); - } - function w(t, n, r) { - n.constructor === t.constructor && r === et && constructor.resolve === nt - ? b(t, n) - : r === ut - ? j(t, ut.error) - : void 0 === r ? S(t, n) : e(r) ? m(t, n, r) : S(t, n); - } - function g(e, n) { - e === n ? j(e, _()) : t(n) ? w(e, n, v(n)) : S(e, n); - } - function A(t) { - t._onerror && t._onerror(t._result), T(t); - } - function S(t, e) { - t._state === ot && - ((t._result = e), (t._state = it), 0 !== t._subscribers.length && Q(T, t)); - } - function j(t, e) { - t._state === ot && ((t._state = st), (t._result = e), Q(A, t)); - } - function E(t, e, n, r) { - var o = t._subscribers, - i = o.length; - (t._onerror = null), - (o[i] = e), - (o[i + it] = n), - (o[i + st] = r), - 0 === i && t._state && Q(T, t); - } - function T(t) { - var e = t._subscribers, - n = t._state; - if (0 !== e.length) { - for (var r, o, i = t._result, s = 0; s < e.length; s += 3) - (r = e[s]), (o = e[s + n]), r ? x(n, r, o, i) : o(i); - t._subscribers.length = 0; - } - } - function M() { - this.error = null; - } - function P(t, e) { - try { - return t(e); - } catch (n) { - return (ct.error = n, ct); - } - } - function x(t, n, r, o) { - var i, - s, - u, - c, - a = e(r); - if (a) { - if ( - ((i = P(r, o)), - i === ct ? ((c = !0), (s = i.error), (i = null)) : (u = !0), - n === i) - ) - return void j(n, d()); - } else (i = o), (u = !0); - n._state !== ot || - (a && u ? g(n, i) : c ? j(n, s) : t === it ? S(n, i) : t === st && j(n, i)); - } - function C(t, e) { - try { - e( - function(e) { - g(t, e); - }, - function(e) { - j(t, e); - } - ); - } catch (n) { - j(t, n); - } - } - function O() { - return at++; - } - function k(t) { - (t[rt] = at++), (t._state = void 0), (t._result = void 0), (t._subscribers = []); - } - function Y(t) { - return new _t(this, t).promise; - } - function q(t) { - var e = this; - return new e( - I(t) - ? function(n, r) { - for (var o = t.length, i = 0; o > i; i++) - e.resolve(t[i]).then(n, r); - } - : function(t, e) { - e(new TypeError('You must pass an array to race.')); - } - ); - } - function F(t) { - var e = this, - n = new e(p); - return (j(n, t), n); - } - function D() { - throw new TypeError( - 'You must pass a resolver function as the first argument to the promise constructor' - ); - } - function K() { - throw new TypeError( - "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function." - ); - } - function L(t) { - (this[rt] = O()), - (this._result = this._state = void 0), - (this._subscribers = []), - p !== t && - ('function' != typeof t && D(), this instanceof L ? C(this, t) : K()); - } - function N(t, e) { - (this._instanceConstructor = t), - (this.promise = new t(p)), - this.promise[rt] || k(this.promise), - Array.isArray(e) - ? ((this._input = e), - (this.length = e.length), - (this._remaining = e.length), - (this._result = new Array(this.length)), - 0 === this.length - ? S(this.promise, this._result) - : ((this.length = this.length || 0), - this._enumerate(), - 0 === this._remaining && S(this.promise, this._result))) - : j(this.promise, U()); - } - function U() { - return new Error('Array Methods must be provided an Array'); - } - function W() { - var t; - if ('undefined' != typeof global) t = global; - else if ('undefined' != typeof self) t = self; - else - try { - t = Function('return this')(); - } catch (e) { - throw new Error( - 'polyfill failed because global object is unavailable in this environment' - ); - } - var n = t.Promise; - (!n || - '[object Promise]' !== Object.prototype.toString.call(n.resolve()) || - n.cast) && - (t.Promise = pt); - } - var z; - z = Array.isArray - ? Array.isArray - : function(t) { - return '[object Array]' === Object.prototype.toString.call(t); - }; - var B, - G, - H, - I = z, - J = 0, - Q = function(t, e) { - (tt[J] = t), (tt[J + 1] = e), (J += 2), 2 === J && (G ? G(a) : H()); - }, - R = 'undefined' != typeof window ? window : void 0, - V = R || {}, - X = V.MutationObserver || V.WebKitMutationObserver, - Z = - 'undefined' == typeof self && - 'undefined' != typeof process && - '[object process]' === {}.toString.call(process), - $ = - 'undefined' != typeof Uint8ClampedArray && - 'undefined' != typeof importScripts && - 'undefined' != typeof MessageChannel, - tt = new Array(1e3); - H = Z - ? o() - : X ? s() : $ ? u() : void 0 === R && 'function' == typeof require ? f() : c(); - var et = l, - nt = h, - rt = Math.random() - .toString(36) - .substring(16), - ot = void 0, - it = 1, - st = 2, - ut = new M(), - ct = new M(), - at = 0, - ft = Y, - lt = q, - ht = F, - pt = L; - (L.all = ft), - (L.race = lt), - (L.resolve = nt), - (L.reject = ht), - (L._setScheduler = n), - (L._setAsap = r), - (L._asap = Q), - (L.prototype = { - constructor: L, - then: et, - "catch": function(t) { - return this.then(null, t); - }, - }); - var _t = N; - (N.prototype._enumerate = function() { - for (var t = this.length, e = this._input, n = 0; this._state === ot && t > n; n++) - this._eachEntry(e[n], n); - }), - (N.prototype._eachEntry = function(t, e) { - var n = this._instanceConstructor, - r = n.resolve; - if (r === nt) { - var o = v(t); - if (o === et && t._state !== ot) this._settledAt(t._state, e, t._result); - else if ('function' != typeof o) this._remaining--, (this._result[e] = t); - else if (n === pt) { - var i = new n(p); - w(i, t, o), this._willSettleAt(i, e); - } else - this._willSettleAt( - new n(function(e) { - e(t); - }), - e - ); - } else this._willSettleAt(r(t), e); - }), - (N.prototype._settledAt = function(t, e, n) { - var r = this.promise; - r._state === ot && - (this._remaining--, t === st ? j(r, n) : (this._result[e] = n)), - 0 === this._remaining && S(r, this._result); - }), - (N.prototype._willSettleAt = function(t, e) { - var n = this; - E( - t, - void 0, - function(t) { - n._settledAt(it, e, t); - }, - function(t) { - n._settledAt(st, e, t); - } - ); - }); - var dt = W, - vt = {Promise: pt, polyfill: dt}; - 'function' == typeof define && define.amd - ? define(function() { - return vt; - }) - : 'undefined' != typeof module && module.exports - ? (module.exports = vt) - : 'undefined' != typeof this && (this.ES6Promise = vt), - dt(); - }.call(this)); - - } -} - -var promiseExec = function(sql, params, counterStep, counterTotal) { - return new utils.global.Promise(function(resolve, reject) { - alasql(sql, params, function(data, err) { - if (err) { - reject(err); - } else { - if (counterStep && counterTotal && alasql.options.progress !== false) { - alasql.options.progress(counterStep, counterTotal); - } - resolve(data); - } - }); - }); -}; - -var promiseAll = function(sqlParamsArray) { - if (sqlParamsArray.length < 1) { - return; - } - - var active, sql, params; - - var execArray = []; - - for (var i = 0; i < sqlParamsArray.length; i++) { - active = sqlParamsArray[i]; - - if (typeof active === 'string') { - active = [active]; - } - - if (!utils.isArray(active) || active.length < 1 || 2 < active.length) { - throw new Error('Error in .promise parameter'); - } - - sql = active[0]; - params = active[1] || undefined; - - execArray.push(promiseExec(sql, params, i, sqlParamsArray.length)); - } - - return utils.global.Promise.all(execArray); -}; - -alasql.promise = function(sql, params) { - if (typeof Promise === 'undefined') { - throw new Error('Please include a Promise/A+ library'); - } - - if (typeof sql === 'string') { - return promiseExec(sql, params); - } - - if (!utils.isArray(sql) || sql.length < 1 || typeof params !== 'undefined') { - throw new Error('Error in .promise parameters'); - } - return promiseAll(sql); -}; - -/* -// -// Database class for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -// Main Database class - -/** - @class Database - */ - -var Database = (alasql.Database = function(databaseid) { - var self = this; - - // self.prototype = this; - - if (self === alasql) { - if (databaseid) { - // if(alasql.databases[databaseid]) { - self = alasql.databases[databaseid]; - // } else { - alasql.databases[databaseid] = self; - // } - if (!self) { - throw new Error('Database "' + databaseid + '" not found'); - } - } else { - // Create new database (or get alasql?) - self = alasql.databases.alasql; - // For SQL Server examples, USE tempdb - if (alasql.options.tsql) { - alasql.databases.tempdb = alasql.databases.alasql; - } - // self = new Database(databaseid); // to call without new - } - } - if (!databaseid) { - databaseid = 'db' + alasql.databasenum++; // Random name - } - - // Step 1 - self.databaseid = databaseid; - alasql.databases[databaseid] = self; - self.dbversion = 0; - - //Steps 2-5 - self.tables = {}; - self.views = {}; - self.triggers = {}; - self.indices = {}; - - // Step 6: Objects storage - self.objects = {}; - self.counter = 0; - - self.resetSqlCache(); - return self; -}); - -/** - Reset SQL statements cache - */ - -Database.prototype.resetSqlCache = function() { - this.sqlCache = {}; // Cache for compiled SQL statements - this.sqlCacheSize = 0; -}; - -// Main SQL function - -/** - Run SQL statement on database - @param {string} sql SQL statement - @param [object] params Parameters - @param {function} cb callback - */ - -Database.prototype.exec = function(sql, params, cb) { - return alasql.dexec(this.databaseid, sql, params, cb); -}; - -Database.prototype.autoval = function(tablename, colname, getNext) { - return alasql.autoval(tablename, colname, getNext, this.databaseid); -}; - -// Aliases like MS SQL - -/* -// -// Transactio class for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -Database.prototype.transaction = function(cb) { - var tx = new alasql.Transaction(this.databaseid); - var res = cb(tx); - return res; -}; - -// Transaction class (for WebSQL compatibility) - -/** - Transaction class - @class Transaction - */ - -var Transaction = (alasql.Transaction = function(databaseid) { - this.transactionid = Date.now(); - this.databaseid = databaseid; - this.commited = false; - this.dbversion = alasql.databases[databaseid].dbversion; - // this.bank = cloneDeep(alasql.databases[databaseid]); - this.bank = JSON.stringify(alasql.databases[databaseid]); - // TODO CLone Tables with insertfns - - return this; -}); - -// Main class - -// Commit - -/** - Commit transaction - */ -Transaction.prototype.commit = function() { - this.commited = true; - alasql.databases[this.databaseid].dbversion = Date.now(); - delete this.bank; -}; - -// Rollback -/** - Rollback transaction - */ -Transaction.prototype.rollback = function() { - if (!this.commited) { - alasql.databases[this.databaseid] = JSON.parse(this.bank); - // alasql.databases[this.databaseid].tables = this.bank; - // alasql.databases[this.databaseid].dbversion = this.dbversion; - delete this.bank; - } else { - throw new Error('Transaction already commited'); - } -}; - -// Transactions stub - -/** - Execute SQL statement - @param {string} sql SQL statement - @param {object} params Parameters - @param {function} cb Callback function - @return result - */ -Transaction.prototype.exec = function(sql, params, cb) { - - return alasql.dexec(this.databaseid, sql, params, cb); -}; - -Transaction.prototype.executeSQL = Transaction.prototype.exec; - -/* -// -// Table class for Alasql.js -// Date: 14.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -// Table class -var Table = (alasql.Table = function(params) { - // Step 1: Data array - this.data = []; - - // Step 2: Columns - this.columns = []; - this.xcolumns = {}; - - // Step 3: indices - this.inddefs = {}; - this.indices = {}; - this.uniqs = {}; - this.uniqdefs = {}; - - // Step 4: identities - this.identities = {}; - - // Step 5: checkfn... - this.checks = []; - this.checkfns = []; // For restore... to be done... - - // Step 6: INSERT/DELETE/UPDATE - - // Step 7: Triggers... - // Create trigger hubs - this.beforeinsert = {}; - this.afterinsert = {}; - this.insteadofinsert = {}; - - this.beforedelete = {}; - this.afterdelete = {}; - this.insteadofdelete = {}; - - this.beforeupdate = {}; - this.afterupdate = {}; - this.insteadofupdate = {}; - - // Done - extend(this, params); -}); - -Table.prototype.indexColumns = function() { - var self = this; - self.xcolumns = {}; - self.columns.forEach(function(col) { - self.xcolumns[col.columnid] = col; - }); -}; - -/* -// -// View class for Alasql.js -// Date: 14.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -// Table class -var View = (alasql.View = function(params) { - // Columns - this.columns = []; - this.xcolumns = {}; - // Data array - this.query = []; - - extend(this, params); -}); - -/* -// -// Query class for Alasql.js -// Date: 14.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -// Table class - -/** - @class Query Main query class - */ -var Query = (alasql.Query = function(params) { - this.alasql = alasql; - - // Columns - this.columns = []; - this.xcolumns = {}; - this.selectGroup = []; - this.groupColumns = {}; - // Data array - extend(this, params); -}); - -/** - @class Recordset data object - */ -var Recordset = (alasql.Recordset = function(params) { - // Data array - extend(this, params); -}); - -/* -// -// Parser helper for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -var yy = (alasqlparser.yy = alasql.yy = {}); - -// Utility -yy.extend = extend; -// Option for case sensitive -yy.casesensitive = alasql.options.casesensitive; - -// Base class for all yy classes -var Base = (yy.Base = function(params) { - return yy.extend(this, params); -}); - -Base.prototype.toString = function() {}; -Base.prototype.toType = function() {}; -Base.prototype.toJS = function() {}; - -Base.prototype.compile = returnUndefined; -Base.prototype.exec = function() {}; - -Base.prototype.compile = returnUndefined; -Base.prototype.exec = function() {}; - -/* -// -// Statements class for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -// Statements container -yy.Statements = function(params) { - return yy.extend(this, params); -}; - -yy.Statements.prototype.toString = function() { - return this.statements - .map(function(st) { - return st.toString(); - }) - .join('; '); -}; - -// Compile array of statements into single statement -yy.Statements.prototype.compile = function(db) { - var statements = this.statements.map(function(st) { - return st.compile(db); - }); - if (statements.length === 1) { - return statements[0]; - } else { - return function(params, cb) { - var res = statements.map(function(st) { - return st(params); - }); - if (cb) { - cb(res); - } - return res; - }; - } -}; - -/* global alasql */ -/* global yy */ -/* -// -// SEARCH for Alasql.js -// Date: 04.05.2015 -// (c) 2015, Andrey Gershun -// -*/ - -function doSearch(databaseid, params, cb) { - var res; - var stope = {}; - var fromdata; - var selectors = cloneDeep(this.selectors); - - function processSelector(selectors, sidx, value) { - // var val; - - var val, // temp values use many places - nest, // temp value used many places - r, // temp value used many places - sel = selectors[sidx]; - - // if(!alasql.srch[sel.srchid]) { - // throw new Error('Selector "'+sel.srchid+'" not found'); - // }; - - var SECURITY_BREAK = 100000; - - if (sel.selid) { - // TODO Process Selector - if (sel.selid === 'PATH') { - var queue = [{node: value, stack: []}]; - var visited = {}; - //var path = []; - var objects = alasql.databases[alasql.useid].objects; - while (queue.length > 0) { - var q = queue.shift(); - var node = q.node; - var stack = q.stack; - var r = processSelector(sel.args, 0, node); - if (r.length > 0) { - if (sidx + 1 + 1 > selectors.length) { - return stack; - } else { - var rv = []; - if (stack && stack.length > 0) { - stack.forEach(function(stv) { - rv = rv.concat(processSelector(selectors, sidx + 1, stv)); - }); - } - return rv; - // return processSelector(selectors,sidx+1,stack); - } - } else { - if (typeof visited[node.$id] !== 'undefined') { - continue; - } else { - - visited[node.$id] = true; - if (node.$out && node.$out.length > 0) { - node.$out.forEach(function(edgeid) { - var edge = objects[edgeid]; - var stack2 = stack.concat(edge); - stack2.push(objects[edge.$out[0]]); - queue.push({ - node: objects[edge.$out[0]], - stack: stack2, - }); - }); - } - } - } - } - // Else return fail - return []; - } - if (sel.selid === 'NOT') { - var nest = processSelector(sel.args, 0, value); - - if (nest.length > 0) { - return []; - } else { - if (sidx + 1 + 1 > selectors.length) { - return [value]; - } else { - return processSelector(selectors, sidx + 1, value); - } - } - } else if (sel.selid === 'DISTINCT') { - var nest; - if (typeof sel.args === 'undefined' || sel.args.length === 0) { - nest = distinctArray(value); - } else { - nest = processSelector(sel.args, 0, value); - } - if (nest.length === 0) { - return []; - } else { - var res = distinctArray(nest); - if (sidx + 1 + 1 > selectors.length) { - return res; - } else { - return processSelector(selectors, sidx + 1, res); - } - } - } else if (sel.selid === 'AND') { - var res = true; - sel.args.forEach(function(se) { - res = res && processSelector(se, 0, value).length > 0; - }); - if (!res) { - return []; - } else { - if (sidx + 1 + 1 > selectors.length) { - return [value]; - } else { - return processSelector(selectors, sidx + 1, value); - } - } - } else if (sel.selid === 'OR') { - var res = false; - sel.args.forEach(function(se) { - res = res || processSelector(se, 0, value).length > 0; - }); - if (!res) { - return []; - } else { - if (sidx + 1 + 1 > selectors.length) { - return [value]; - } else { - return processSelector(selectors, sidx + 1, value); - } - } - } else if (sel.selid === 'ALL') { - var nest = processSelector(sel.args[0], 0, value); - if (nest.length === 0) { - return []; - } else { - if (sidx + 1 + 1 > selectors.length) { - return nest; - } else { - return processSelector(selectors, sidx + 1, nest); - } - } - } else if (sel.selid === 'ANY') { - var nest = processSelector(sel.args[0], 0, value); - - if (nest.length === 0) { - return []; - } else { - if (sidx + 1 + 1 > selectors.length) { - return [nest[0]]; - } else { - return processSelector(selectors, sidx + 1, [nest[0]]); - } - } - } else if (sel.selid === 'UNIONALL') { - var nest = []; - sel.args.forEach(function(se) { - nest = nest.concat(processSelector(se, 0, value)); - }); - if (nest.length === 0) { - return []; - } else { - if (sidx + 1 + 1 > selectors.length) { - return nest; - } else { - return processSelector(selectors, sidx + 1, nest); - } - } - } else if (sel.selid === 'UNION') { - var nest = []; - sel.args.forEach(function(se) { - nest = nest.concat(processSelector(se, 0, value)); - }); - var nest = distinctArray(nest); - if (nest.length === 0) { - return []; - } else { - if (sidx + 1 + 1 > selectors.length) { - return nest; - } else { - return processSelector(selectors, sidx + 1, nest); - } - } - } else if (sel.selid === 'IF') { - var nest = processSelector(sel.args, 0, value); - - if (nest.length === 0) { - return []; - } else { - if (sidx + 1 + 1 > selectors.length) { - return [value]; - } else { - return processSelector(selectors, sidx + 1, value); - } - } - } else if (sel.selid === 'REPEAT') { - - var lvar, - lmax, - lmin = sel.args[0].value; - if (!sel.args[1]) { - lmax = lmin; // Add security break - } else { - lmax = sel.args[1].value; - } - if (sel.args[2]) { - lvar = sel.args[2].variable; - } - //var lsel = sel.sels; - - var retval = []; - - if (lmin === 0) { - if (sidx + 1 + 1 > selectors.length) { - retval = [value]; - } else { - if (lvar) { - alasql.vars[lvar] = 0; - } - retval = retval.concat(processSelector(selectors, sidx + 1, value)); - } - } - - // var nests = processSelector(sel.sels,0,value).slice(); - if (lmax > 0) { - var nests = [{value: value, lvl: 1}]; - - var i = 0; - while (nests.length > 0) { - var nest = nests[0]; - - nests.shift(); - if (nest.lvl <= lmax) { - if (lvar) { - alasql.vars[lvar] = nest.lvl; - } - - var nest1 = processSelector(sel.sels, 0, nest.value); - - nest1.forEach(function(n) { - nests.push({value: n, lvl: nest.lvl + 1}); - }); - if (nest.lvl >= lmin) { - if (sidx + 1 + 1 > selectors.length) { - retval = retval.concat(nest1); - //return nests; - } else { - nest1.forEach(function(n) { - retval = retval.concat( - processSelector(selectors, sidx + 1, n) - ); - }); - } - } - } - // Security brake - i++; - if (i > SECURITY_BREAK) { - throw new Error('Security brake. Number of iterations = ' + i); - } - } - } - return retval; - } else if (sel.selid === 'OF') { - if (sidx + 1 + 1 > selectors.length) { - return [value]; - } else { - var r1 = []; - Object.keys(value).forEach(function(keyv) { - alasql.vars[sel.args[0].variable] = keyv; - r1 = r1.concat(processSelector(selectors, sidx + 1, value[keyv])); - }); - return r1; - } - } else if (sel.selid === 'TO') { - - var oldv = alasql.vars[sel.args[0]]; - var newv = []; - if (oldv !== undefined) { - - newv = oldv.slice(0); - - } else { - newv = []; - } - newv.push(value); - - if (sidx + 1 + 1 > selectors.length) { - return [value]; - } else { - alasql.vars[sel.args[0]] = newv; - var r1 = processSelector(selectors, sidx + 1, value); - - alasql.vars[sel.args[0]] = oldv; - return r1; - } - - } else if (sel.selid === 'ARRAY') { - var nest = processSelector(sel.args, 0, value); - if (nest.length > 0) { - val = nest; - } else { - return []; - } - if (sidx + 1 + 1 > selectors.length) { - return [val]; - } else { - return processSelector(selectors, sidx + 1, val); - } - } else if (sel.selid === 'SUM') { - var nest = processSelector(sel.args, 0, value); - if (nest.length > 0) { - var val = nest.reduce(function(sum, current) { - return sum + current; - }, 0); - } else { - return []; - } - if (sidx + 1 + 1 > selectors.length) { - return [val]; - } else { - return processSelector(selectors, sidx + 1, val); - } - } else if (sel.selid === 'AVG') { - nest = processSelector(sel.args, 0, value); - if (nest.length > 0) { - val = - nest.reduce(function(sum, current) { - return sum + current; - }, 0) / nest.length; - } else { - return []; - } - if (sidx + 1 + 1 > selectors.length) { - return [val]; - } else { - return processSelector(selectors, sidx + 1, val); - } - } else if (sel.selid === 'COUNT') { - nest = processSelector(sel.args, 0, value); - if (nest.length > 0) { - val = nest.length; - } else { - return []; - } - if (sidx + 1 + 1 > selectors.length) { - return [val]; - } else { - return processSelector(selectors, sidx + 1, val); - } - } else if (sel.selid === 'FIRST') { - nest = processSelector(sel.args, 0, value); - if (nest.length > 0) { - val = nest[0]; - } else { - return []; - } - - if (sidx + 1 + 1 > selectors.length) { - return [val]; - } else { - return processSelector(selectors, sidx + 1, val); - } - } else if (sel.selid === 'LAST') { - nest = processSelector(sel.args, 0, value); - if (nest.length > 0) { - val = nest[nest.length - 1]; - } else { - return []; - } - - if (sidx + 1 + 1 > selectors.length) { - return [val]; - } else { - return processSelector(selectors, sidx + 1, val); - } - } else if (sel.selid === 'MIN') { - nest = processSelector(sel.args, 0, value); - if (nest.length === 0) { - return []; - } - var val = nest.reduce(function(min, current) { - return Math.min(min, current); - }, Infinity); - if (sidx + 1 + 1 > selectors.length) { - return [val]; - } else { - return processSelector(selectors, sidx + 1, val); - } - } else if (sel.selid === 'MAX') { - var nest = processSelector(sel.args, 0, value); - if (nest.length === 0) { - return []; - } - var val = nest.reduce(function(max, current) { - return Math.max(max, current); - }, -Infinity); - if (sidx + 1 + 1 > selectors.length) { - return [val]; - } else { - return processSelector(selectors, sidx + 1, val); - } - } else if (sel.selid === 'PLUS') { - var retval = []; - // retval = retval.concat(processSelector(selectors,sidx+1,n)) - var nests = processSelector(sel.args, 0, value).slice(); - if (sidx + 1 + 1 > selectors.length) { - retval = retval.concat(nests); - } else { - nests.forEach(function(n) { - retval = retval.concat(processSelector(selectors, sidx + 1, n)); - }); - } - - var i = 0; - while (nests.length > 0) { - // nest = nests[0]; - // nests.shift(); - var nest = nests.shift(); - - nest = processSelector(sel.args, 0, nest); - - nests = nests.concat(nest); - - if (sidx + 1 + 1 > selectors.length) { - retval = retval.concat(nest); - //return retval; - } else { - nest.forEach(function(n) { - - var rn = processSelector(selectors, sidx + 1, n); - - retval = retval.concat(rn); - }); - } - - // Security brake - i++; - if (i > SECURITY_BREAK) { - throw new Error('Security brake. Number of iterations = ' + i); - } - } - return retval; - - } else if (sel.selid === 'STAR') { - var retval = []; - retval = processSelector(selectors, sidx + 1, value); - var nests = processSelector(sel.args, 0, value).slice(); - if (sidx + 1 + 1 > selectors.length) { - retval = retval.concat(nests); - //return nests; - } else { - nests.forEach(function(n) { - retval = retval.concat(processSelector(selectors, sidx + 1, n)); - }); - } - var i = 0; - while (nests.length > 0) { - var nest = nests[0]; - nests.shift(); - - nest = processSelector(sel.args, 0, nest); - - nests = nests.concat(nest); - - if (sidx + 1 + 1 <= selectors.length) { - nest.forEach(function(n) { - retval = retval.concat(processSelector(selectors, sidx + 1, n)); - }); - } - - // Security brake - i++; - if (i > SECURITY_BREAK) { - throw new Error('Loop brake. Number of iterations = ' + i); - } - } - - return retval; - } else if (sel.selid === 'QUESTION') { - var retval = []; - retval = retval.concat(processSelector(selectors, sidx + 1, value)); - var nest = processSelector(sel.args, 0, value); - if (sidx + 1 + 1 <= selectors.length) { - nest.forEach(function(n) { - retval = retval.concat(processSelector(selectors, sidx + 1, n)); - }); - } - return retval; - } else if (sel.selid === 'WITH') { - var nest = processSelector(sel.args, 0, value); - - if (nest.length === 0) { - return []; - } else { - - var r = {status: 1, values: nest}; - } - } else if (sel.selid === 'ROOT') { - if (sidx + 1 + 1 > selectors.length) { - return [value]; - } else { - return processSelector(selectors, sidx + 1, fromdata); - } - } else { - throw new Error('Wrong selector ' + sel.selid); - } - } else if (sel.srchid) { - var r = alasql.srch[sel.srchid.toUpperCase()](value, sel.args, stope, params); - - } else { - throw new Error('Selector not found'); - } - - if (typeof r === 'undefined') { - r = {status: 1, values: [value]}; - } - - var res = []; - if (r.status === 1) { - var arr = r.values; - - if (sidx + 1 + 1 > selectors.length) { - // if(sidx+1+1 > selectors.length) { - res = arr; - - } else { - for (var i = 0; i < r.values.length; i++) { - res = res.concat(processSelector(selectors, sidx + 1, arr[i])); - } - } - } - return res; - } - - if (selectors !== undefined && selectors.length > 0) { - - if ( - selectors && - selectors[0] && - selectors[0].srchid === 'PROP' && - selectors[0].args && - selectors[0].args[0] - ) { - - if (selectors[0].args[0].toUpperCase() === 'XML') { - stope.mode = 'XML'; - selectors.shift(); - } else if (selectors[0].args[0].toUpperCase() === 'HTML') { - stope.mode = 'HTML'; - selectors.shift(); - } else if (selectors[0].args[0].toUpperCase() === 'JSON') { - stope.mode = 'JSON'; - selectors.shift(); - } - } - if (selectors.length > 0 && selectors[0].srchid === 'VALUE') { - stope.value = true; - selectors.shift(); - } - } - - if (this.from instanceof yy.Column) { - var dbid = this.from.databaseid || databaseid; - fromdata = alasql.databases[dbid].tables[this.from.columnid].data; - //selectors.unshift({srchid:'CHILD'}); - } else if (this.from instanceof yy.FuncValue && alasql.from[this.from.funcid.toUpperCase()]) { - var args = this.from.args.map(function(arg) { - var as = arg.toJS(); - - var fn = new Function('params,alasql', 'var y;return ' + as).bind(this); - return fn(params, alasql); - }); - - fromdata = alasql.from[this.from.funcid.toUpperCase()].apply(this, args); - - } else if (typeof this.from === 'undefined') { - fromdata = alasql.databases[databaseid].objects; - } else { - var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS()); - fromdata = fromfn(params, alasql); - // Check for Mogo Collections - if ( - typeof Mongo === 'object' && - typeof Mongo.Collection !== 'object' && - fromdata instanceof Mongo.Collection - ) { - fromdata = fromdata.find().fetch(); - } - - // if(typeof fromdata == 'object' && Array.isArray(fromdata)) { - // selectors.unshift({srchid:'CHILD'}); - // } - } - - // If source data is array than first step is to run over array - // var selidx = 0; - // var selvalue = fromdata; - - if (selectors !== undefined && selectors.length > 0) { - // Init variables for TO() selectors - - if (false) { - selectors.forEach(function(selector) { - if (selector.srchid === 'TO') { - //* @todo move to TO selector - alasql.vars[selector.args[0]] = []; - // TODO - process nested selectors - } - }); - } - - res = processSelector(selectors, 0, fromdata); - } else { - res = fromdata; - } - - if (this.into) { - var a1, a2; - if (typeof this.into.args[0] !== 'undefined') { - a1 = new Function('params,alasql', 'var y;return ' + this.into.args[0].toJS())( - params, - alasql - ); - } - if (typeof this.into.args[1] !== 'undefined') { - a2 = new Function('params,alasql', 'var y;return ' + this.into.args[1].toJS())( - params, - alasql - ); - } - res = alasql.into[this.into.funcid.toUpperCase()](a1, a2, res, [], cb); - } else { - if (stope.value && res.length > 0) { - res = res[0]; - } - if (cb) { - res = cb(res); - } - } - return res; -} - -/** - Search class - @class - @example - SEARCH SUM(/a) FROM ? -- search over parameter object -*/ - -yy.Search = function(params) { - return yy.extend(this, params); -}; - -yy.Search.prototype.toString = function() { - var s = 'SEARCH' + ' '; - if (this.selectors) { - s += this.selectors.toString(); - } - if (this.from) { - s += 'FROM' + ' ' + this.from.toString(); - } - - return s; -}; - -yy.Search.prototype.toJS = function(context) { - - var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; - // var s = ''; - return s; -}; - -yy.Search.prototype.compile = function(databaseid) { - var dbid = databaseid; - var self = this; - - var statement = function(params, cb) { - - var res; - doSearch.bind(self)(dbid, params, function(data) { - - res = modify(statement.query, data); - - if (cb) { - res = cb(res); - } - }); - - // if(cb) res = cb(res); - return res; - }; - statement.query = {}; - return statement; -}; - -// List of search functions -alasql.srch = {}; - -alasql.srch.PROP = function(val, args, stope) { - - if (stope.mode === 'XML') { - var arr = []; - val.children.forEach(function(v) { - if (v.name.toUpperCase() === args[0].toUpperCase()) { - arr.push(v); - } - }); - if (arr.length > 0) { - return {status: 1, values: arr}; - } else { - return {status: -1, values: []}; - } - } else { - if ( - typeof val !== 'object' || - val === null || - typeof args !== 'object' || - typeof val[args[0]] === 'undefined' - ) { - return {status: -1, values: []}; - } else { - return {status: 1, values: [val[args[0]]]}; - } - } -}; - -alasql.srch.APROP = function(val, args) { - if ( - typeof val !== 'object' || - val === null || - typeof args !== 'object' || - typeof val[args[0]] === 'undefined' - ) { - return {status: 1, values: [undefined]}; - } else { - return {status: 1, values: [val[args[0]]]}; - } -}; - -// Test expression -alasql.srch.EQ = function(val, args, stope, params) { - var exprs = args[0].toJS('x', ''); - var exprfn = new Function('x,alasql,params', 'return ' + exprs); - if (val === exprfn(val, alasql, params)) { - return {status: 1, values: [val]}; - } else { - return {status: -1, values: []}; - } -}; - -// Test expression -alasql.srch.LIKE = function(val, args, stope, params) { - var exprs = args[0].toJS('x', ''); - var exprfn = new Function('x,alasql,params', 'return ' + exprs); - if ( - val.toUpperCase().match( - new RegExp( - '^' + - exprfn(val, alasql, params) - .toUpperCase() - .replace(/%/g, '.*') - .replace(/\?|_/g, '.') + - '$' - ), - 'g' - ) - ) { - return {status: 1, values: [val]}; - } else { - return {status: -1, values: []}; - } -}; - -alasql.srch.ATTR = function(val, args, stope) { - if (stope.mode === 'XML') { - if (typeof args === 'undefined') { - return {status: 1, values: [val.attributes]}; - } else { - if ( - typeof val === 'object' && - typeof val.attributes === 'object' && - typeof val.attributes[args[0]] !== 'undefined' - ) { - return {status: 1, values: [val.attributes[args[0]]]}; - } else { - return {status: -1, values: []}; - } - } - } else { - throw new Error('ATTR is not using in usual mode'); - } -}; - -alasql.srch.CONTENT = function(val, args, stope) { - if (stope.mode === 'XML') { - return {status: 1, values: [val.content]}; - } else { - throw new Error('ATTR is not using in usual mode'); - } -}; - -alasql.srch.SHARP = function(val, args) { - var obj = alasql.databases[alasql.useid].objects[args[0]]; - if (typeof val !== 'undefined' && val === obj) { - return {status: 1, values: [val]}; - } else { - return {status: -1, values: []}; - } -}; - -alasql.srch.PARENT = function(/*val,args,stope*/) { - // TODO: implement - console.error('PARENT not implemented', arguments); - - return {status: -1, values: []}; -}; - -alasql.srch.CHILD = function(val, args, stope) { - - if (typeof val === 'object') { - if (Array.isArray(val)) { - return {status: 1, values: val}; - } else { - if (stope.mode === 'XML') { - return { - status: 1, - values: Object.keys(val.children).map(function(key) { - return val.children[key]; - }), - }; - } else { - return { - status: 1, - values: Object.keys(val).map(function(key) { - return val[key]; - }), - }; - } - } - } else { - // If primitive value - return {status: 1, values: []}; - } -}; - -// Return all keys -alasql.srch.KEYS = function(val) { - if (typeof val === 'object' && val !== null) { - return {status: 1, values: Object.keys(val)}; - } else { - // If primitive value - return {status: 1, values: []}; - } -}; - -// Test expression -alasql.srch.WHERE = function(val, args, stope, params) { - var exprs = args[0].toJS('x', ''); - var exprfn = new Function('x,alasql,params', 'return ' + exprs); - if (exprfn(val, alasql, params)) { - return {status: 1, values: [val]}; - } else { - return {status: -1, values: []}; - } -}; - -alasql.srch.NAME = function(val, args) { - if (val.name === args[0]) { - return {status: 1, values: [val]}; - } else { - return {status: -1, values: []}; - } -}; - -alasql.srch.CLASS = function(val, args) { - - // Please avoid `===` here - if (val.$class == args) { - // jshint ignore:line - return {status: 1, values: [val]}; - } else { - return {status: -1, values: []}; - } -}; - -// Transform expression -alasql.srch.VERTEX = function(val) { - if (val.$node === 'VERTEX') { - return {status: 1, values: [val]}; - } else { - return {status: -1, values: []}; - } -}; - -// Transform expression -alasql.srch.INSTANCEOF = function(val, args) { - if (val instanceof alasql.fn[args[0]]) { - return {status: 1, values: [val]}; - } else { - return {status: -1, values: []}; - } -}; - -// Transform expression -alasql.srch.EDGE = function(val) { - if (val.$node === 'EDGE') { - return {status: 1, values: [val]}; - } else { - return {status: -1, values: []}; - } -}; - -// Transform expression -alasql.srch.EX = function(val, args, stope, params) { - var exprs = args[0].toJS('x', ''); - var exprfn = new Function('x,alasql,params', 'return ' + exprs); - return {status: 1, values: [exprfn(val, alasql, params)]}; -}; - -// Transform expression -alasql.srch.RETURN = function(val, args, stope, params) { - var res = {}; - if (args && args.length > 0) { - args.forEach(function(arg) { - var exprs = arg.toJS('x', ''); - var exprfn = new Function('x,alasql,params', 'return ' + exprs); - if (typeof arg.as === 'undefined') { - arg.as = arg.toString(); - } - res[arg.as] = exprfn(val, alasql, params); - }); - } - return {status: 1, values: [res]}; -}; - -// Transform expression -alasql.srch.REF = function(val) { - return {status: 1, values: [alasql.databases[alasql.useid].objects[val]]}; -}; - -// Transform expression -alasql.srch.OUT = function(val) { - if (val.$out && val.$out.length > 0) { - var res = val.$out.map(function(v) { - return alasql.databases[alasql.useid].objects[v]; - }); - return {status: 1, values: res}; - } else { - return {status: -1, values: []}; - } -}; - -alasql.srch.OUTOUT = function(val) { - if (val.$out && val.$out.length > 0) { - var res = []; - val.$out.forEach(function(v) { - var av = alasql.databases[alasql.useid].objects[v]; - if (av && av.$out && av.$out.length > 0) { - av.$out.forEach(function(vv) { - res = res.concat(alasql.databases[alasql.useid].objects[vv]); - }); - } - }); - return {status: 1, values: res}; - } else { - return {status: -1, values: []}; - } -}; - -// Transform expression -alasql.srch.IN = function(val) { - if (val.$in && val.$in.length > 0) { - var res = val.$in.map(function(v) { - return alasql.databases[alasql.useid].objects[v]; - }); - return {status: 1, values: res}; - } else { - return {status: -1, values: []}; - } -}; - -alasql.srch.ININ = function(val) { - if (val.$in && val.$in.length > 0) { - var res = []; - val.$in.forEach(function(v) { - var av = alasql.databases[alasql.useid].objects[v]; - if (av && av.$in && av.$in.length > 0) { - av.$in.forEach(function(vv) { - res = res.concat(alasql.databases[alasql.useid].objects[vv]); - }); - } - }); - return {status: 1, values: res}; - } else { - return {status: -1, values: []}; - } -}; - -// Transform expression -alasql.srch.AS = function(val, args) { - alasql.vars[args[0]] = val; - return {status: 1, values: [val]}; -}; - -// Transform expression -alasql.srch.AT = function(val, args) { - var v = alasql.vars[args[0]]; - return {status: 1, values: [v]}; -}; - -// Transform expression -alasql.srch.CLONEDEEP = function(val) { - // TODO something wrong - var z = cloneDeep(val); - return {status: 1, values: [z]}; -}; - -// // Transform expression -// alasql.srch.DELETE = function(val,args) { - -// }; - -// Transform expression -alasql.srch.SET = function(val, args, stope, params) { - - var s = args - .map(function(st) { - - if (st.method === '@') { - return "alasql.vars['" + st.variable + "']=" + st.expression.toJS('x', ''); - } else if (st.method === '$') { - return "params['" + st.variable + "']=" + st.expression.toJS('x', ''); - } else { - return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); - } - }) - .join(';'); - var setfn = new Function('x,params,alasql', s); - - setfn(val, params, alasql); - - return {status: 1, values: [val]}; -}; - -alasql.srch.ROW = function(val, args, stope, params) { - var s = 'var y;return ['; - - s += args - .map(function(arg) { - return arg.toJS('x', ''); - }) - .join(','); - s += ']'; - var setfn = new Function('x,params,alasql', s); - var rv = setfn(val, params, alasql); - - return {status: 1, values: [rv]}; -}; - -alasql.srch.D3 = function(val) { - if (val.$node !== 'VERTEX' && val.$node === 'EDGE') { - val.source = val.$in[0]; - val.target = val.$out[0]; - } - - return {status: 1, values: [val]}; -}; - -var compileSearchOrder = function(order) { - if (order) { - - if ( - order && - order.length === 1 && - order[0].expression && - typeof order[0].expression === 'function' - ) { - - var func = order[0].expression; - - return function(a, b) { - var ra = func(a), - rb = func(b); - if (ra > rb) { - return 1; - } - if (ra === rb) { - return 0; - } - return -1; - }; - } - - var s = ''; - var sk = ''; - order.forEach(function(ord) { - - // Date conversion - var dg = ''; - - if (ord.expression instanceof yy.NumValue) { - ord.expression = self.columns[ord.expression.value - 1]; - } - - if (ord.expression instanceof yy.Column) { - var columnid = ord.expression.columnid; - - if (alasql.options.valueof) { - dg = '.valueOf()'; // TODO Check - } - // COLLATE NOCASE - if (ord.nocase) { - dg += '.toUpperCase()'; - } - - if (columnid === '_') { - s += - 'if(a' + - dg + - (ord.direction === 'ASC' ? '>' : '<') + - 'b' + - dg + - ')return 1;'; - s += 'if(a' + dg + '==b' + dg + '){'; - } else { - s += - "if((a['" + - columnid + - "']||'')" + - dg + - (ord.direction === 'ASC' ? '>' : '<') + - "(b['" + - columnid + - "']||'')" + - dg + - ')return 1;'; - s += - "if((a['" + - columnid + - "']||'')" + - dg + - "==(b['" + - columnid + - "']||'')" + - dg + - '){'; - } - } else { - dg = '.valueOf()'; - // COLLATE NOCASE - if (ord.nocase) { - dg += '.toUpperCase()'; - } - s += - 'if((' + - ord.toJS('a', '') + - "||'')" + - dg + - (ord.direction === 'ASC' ? '>(' : '<(') + - ord.toJS('b', '') + - "||'')" + - dg + - ')return 1;'; - s += - 'if((' + - ord.toJS('a', '') + - "||'')" + - dg + - '==(' + - ord.toJS('b', '') + - "||'')" + - dg + - '){'; - } - - // TODO Add date comparision - // s += 'if(a[\''+columnid+"']"+dg+(ord.direction == 'ASC'?'>':'<')+'b[\''+columnid+"']"+dg+')return 1;'; - // s += 'if(a[\''+columnid+"']"+dg+'==b[\''+columnid+"']"+dg+'){'; - // } - sk += '}'; - }); - s += 'return 0;'; - s += sk + 'return -1'; - - return new Function('a,b', s); - } -}; - -alasql.srch.ORDERBY = function(val, args /*,stope*/) { - - var res = val.sort(compileSearchOrder(args)); - return {status: 1, values: res}; -}; - -// Main query procedure -function queryfn(query, oldscope, cb, A, B) { - var aaa = query.sources.length; - - var ms; - query.sourceslen = query.sources.length; - var slen = query.sourceslen; - query.query = query; // TODO Remove to prevent memory leaks - query.A = A; - query.B = B; - query.cb = cb; - query.oldscope = oldscope; - - // Run all subqueries before main statement - if (query.queriesfn) { - query.sourceslen += query.queriesfn.length; - slen += query.queriesfn.length; - - query.queriesdata = []; - - query.queriesfn.forEach(function(q, idx) { - // if(query.explain) ms = Date.now(); - - // var res = flatArray(q(query.params,null,queryfn2,(-idx-1),query)); - - // var res = flatArray(queryfn(q.query,null,queryfn2,(-idx-1),query)); - - q.query.params = query.params; - // query.queriesdata[idx] = - - // if(false) { - // queryfn(q.query,query.oldscope,queryfn2,(-idx-1),query); - // } else { - queryfn2([], -idx - 1, query); - // } - - // query.explaination.push({explid: query.explid++, description:'Query '+idx,ms:Date.now()-ms}); - // query.queriesdata[idx] = res; - // return res; - }); - - } - - var scope; - if (!oldscope) scope = {}; - else scope = cloneDeep(oldscope); - query.scope = scope; - - // First - refresh data sources - - var result; - query.sources.forEach(function(source, idx) { - // source.data = query.database.tables[source.tableid].data; - - source.query = query; - var rs = source.datafn(query, query.params, queryfn2, idx, alasql); - - if (typeof rs !== 'undefined') { - // TODO - this is a hack: check if result is array - check all cases and - // make it more logical - if ((query.intofn || query.intoallfn) && Array.isArray(rs)) rs = rs.length; - result = rs; - } - // - // Ugly hack to use in query.wherefn and source.srcwherefns functions - // constructions like this.queriesdata['test']. - // I can elimite it with source.srcwherefn.bind(this)() - // but it may be slow. - // - source.queriesdata = query.queriesdata; - }); - if (query.sources.length == 0 || 0 === slen) result = queryfn3(query); - - return result; -} - -function queryfn2(data, idx, query) { - - //console.trace(); - - if (idx >= 0) { - var source = query.sources[idx]; - source.data = data; - if (typeof source.data == 'function') { - source.getfn = source.data; - source.dontcache = source.getfn.dontcache; - - // var prevsource = query.sources[h-1]; - if ( - source.joinmode == 'OUTER' || - source.joinmode == 'RIGHT' || - source.joinmode == 'ANTI' - ) { - source.dontcache = false; - } - source.data = {}; - } - } else { - // subqueries - - query.queriesdata[-idx - 1] = flatArray(data); - - } - - query.sourceslen--; - if (query.sourceslen > 0) return; - - return queryfn3(query); -} - -function queryfn3(query) { - var scope = query.scope, - jlen; - - // Preindexation of data sources - // if(!oldscope) { - preIndex(query); - // } - - // query.sources.forEach(function(source) { - - // }); - - // Prepare variables - query.data = []; - query.xgroups = {}; - query.groups = []; - - // Level of Joins - var h = 0; - - // Start walking over data - - doJoin(query, scope, h); - - // If groupping, then filter groups with HAVING function - - if (query.groupfn) { - query.data = []; - if (0 === query.groups.length) { - var g = {}; - if (query.selectGroup.length > 0) { - - query.selectGroup.forEach(function(sg) { - if (sg.aggregatorid == 'COUNT' || sg.aggregatorid == 'SUM') { - g[sg.nick] = 0; - } else { - g[sg.nick] = undefined; - } - }); - } - query.groups = [g]; - - } - - // ****** - - if (query.aggrKeys.length > 0) { - var gfns = ''; - query.aggrKeys.forEach(function(col) { - gfns += - "g['" + - col.nick + - "']=alasql.aggr['" + - col.funcid + - "'](undefined,g['" + - col.nick + - "'],3);"; - // gfns += 'return g[\''+col.nick+'\];'; - }); - - var gfn = new Function('g,params,alasql', 'var y;' + gfns); - } - - // return "'"+colas+'\':alasql.aggr[\''+col.funcid+'\']('+colexp+',undefined,(acc={}),1),' - // +'\'__REDUCE__'+colas+'\':acc,'; - - // ******* - - // debugger; - // if(false && (query.groups.length == 1) && (Object.keys(query.groups[0]).length == 0)) { - - // } else { - for (var i = 0, ilen = query.groups.length; i < ilen; i++) { - var g = query.groups[i]; - - if (gfn) gfn(g, query.params, alasql); - - if (!query.havingfn || query.havingfn(g, query.params, alasql)) { - - var d = query.selectgfn(g, query.params, alasql); - query.data.push(d); - } - } - // } - - // query.groups = query.groups.filter(); - } - // Remove distinct values - doDistinct(query); - - // UNION / UNION ALL - if (query.unionallfn) { - // TODO Simplify this part of program - var ud, nd; - if (query.corresponding) { - if (!query.unionallfn.query.modifier) query.unionallfn.query.modifier = undefined; - ud = query.unionallfn(query.params); - } else { - if (!query.unionallfn.query.modifier) query.unionallfn.query.modifier = 'RECORDSET'; - nd = query.unionallfn(query.params); - ud = []; - ilen = nd.data.length; - for (var i = 0; i < ilen; i++) { - var r = {}; - for (var j = Math.min(query.columns.length, nd.columns.length) - 1; 0 <= j; j--) { - r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; - } - ud.push(r); - } - } - query.data = query.data.concat(ud); - } else if (query.unionfn) { - if (query.corresponding) { - if (!query.unionfn.query.modifier) query.unionfn.query.modifier = 'ARRAY'; - ud = query.unionfn(query.params); - } else { - if (!query.unionfn.query.modifier) query.unionfn.query.modifier = 'RECORDSET'; - nd = query.unionfn(query.params); - ud = []; - ilen = nd.data.length; - for (var i = 0; i < ilen; i++) { - r = {}; - jlen = Math.min(query.columns.length, nd.columns.length); - for (var j = 0; j < jlen; j++) { - r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; - } - ud.push(r); - } - } - - query.data = arrayUnionDeep(query.data, ud); - } else if (query.exceptfn) { - if (query.corresponding) { - if (!query.exceptfn.query.modifier) query.exceptfn.query.modifier = 'ARRAY'; - var ud = query.exceptfn(query.params); - } else { - if (!query.exceptfn.query.modifier) query.exceptfn.query.modifier = 'RECORDSET'; - var nd = query.exceptfn(query.params); - var ud = []; - for (var i = 0, ilen = nd.data.length; i < ilen; i++) { - var r = {}; - for (var j = Math.min(query.columns.length, nd.columns.length) - 1; 0 <= j; j--) { - r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; - } - ud.push(r); - } - } - - query.data = arrayExceptDeep(query.data, ud); - } else if (query.intersectfn) { - if (query.corresponding) { - if (!query.intersectfn.query.modifier) query.intersectfn.query.modifier = undefined; - ud = query.intersectfn(query.params); - } else { - if (!query.intersectfn.query.modifier) query.intersectfn.query.modifier = 'RECORDSET'; - nd = query.intersectfn(query.params); - ud = []; - ilen = nd.data.length; - for (i = 0; i < ilen; i++) { - r = {}; - jlen = Math.min(query.columns.length, nd.columns.length); - for (j = 0; j < jlen; j++) { - r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; - } - ud.push(r); - } - } - - query.data = arrayIntersectDeep(query.data, ud); - } - - // Ordering - if (query.orderfn) { - if (query.explain) var ms = Date.now(); - query.data = query.data.sort(query.orderfn); - if (query.explain) { - query.explaination.push({ - explid: query.explid++, - description: 'QUERY BY', - ms: Date.now() - ms, - }); - } - } - - // Reduce to limit and offset - doLimit(query); - - // Remove Angular.js artifacts and other unnecessary columns - // Issue #25 - - // TODO: Check what artefacts rest from Angular.js - if (typeof angular != 'undefined') { - query.removeKeys.push('$$hashKey'); - } - - if (query.removeKeys.length > 0) { - var removeKeys = query.removeKeys; - - // Remove from data - jlen = removeKeys.length; - if (jlen > 0) { - ilen = query.data.length; - for (i = 0; i < ilen; i++) { - for (j = 0; j < jlen; j++) { - delete query.data[i][removeKeys[j]]; - } - } - } - - // Remove from columns list - if (query.columns.length > 0) { - query.columns = query.columns.filter(function(column) { - var found = false; - removeKeys.forEach(function(key) { - if (column.columnid == key) found = true; - }); - return !found; - }); - } - } - - if (typeof query.removeLikeKeys != 'undefined' && query.removeLikeKeys.length > 0) { - var removeLikeKeys = query.removeLikeKeys; - - // Remove unused columns - // SELECT * REMOVE COLUMNS LIKE "%b" - for (var i = 0, ilen = query.data.length; i < ilen; i++) { - r = query.data[i]; - for (var k in r) { - for (j = 0; j < query.removeLikeKeys.length; j++) { - if (alasql.utils.like(query.removeLikeKeys[j], k)) { - // if(k.match(query.removeLikeKeys[j])) { - delete r[k]; - } - } - } - } - - if (query.columns.length > 0) { - query.columns = query.columns.filter(function(column) { - var found = false; - removeLikeKeys.forEach(function(key) { - // if(column.columnid.match(key)) found = true; - if (alasql.utils.like(key, column.columnid)) { - found = true; - } - }); - return !found; - }); - } - } - - if (query.pivotfn) query.pivotfn(); - if (query.unpivotfn) query.unpivotfn(); - - if (query.intoallfn) { - - // var res = query.intoallfn(query.columns,query.cb,query.A, query.B, alasql); - var res = query.intoallfn(query.columns, query.cb, query.params, query.alasql); - - // if(query.cb) res = query.cb(res,query.A, query.B); - - // debugger; - return res; - } else if (query.intofn) { - ilen = query.data.length; - for (i = 0; i < ilen; i++) { - query.intofn(query.data[i], i, query.params, query.alasql); - } - - if (query.cb) query.cb(query.data.length, query.A, query.B); - return query.data.length; - } else { - - res = query.data; - if (query.cb) res = query.cb(query.data, query.A, query.B); - return res; - } -} - -// Limiting -function doLimit(query) { - - if (query.limit) { - var offset = 0; - if (query.offset) { - offset = query.offset | 0 || 0; - offset = offset < 0 ? 0 : offset; - } - var limit; - if (query.percent) { - limit = ((query.data.length * query.limit / 100) | 0) + offset; - } else { - limit = (query.limit | 0) + offset; - } - query.data = query.data.slice(offset, limit); - } -} - -// Distinct -function doDistinct(query) { - if (query.distinct) { - var uniq = {}; - // TODO: Speedup, because Object.keys is slow** - // TODO: Problem with DISTINCT on objects - var keys = Object.keys(query.data[0] || []); - for (var i = 0, ilen = query.data.length; i < ilen; i++) { - var uix = keys - .map(function(k) { - return query.data[i][k]; - }) - .join('`'); - uniq[uix] = query.data[i]; - } - query.data = []; - for (var key in uniq) { - query.data.push(uniq[key]); - } - } -} - -// Optimization: preliminary indexation of joins -var preIndex = function(query) { - - // Loop over all sources - // Todo: make this loop smaller and more graspable - for (var k = 0, klen = query.sources.length; k < klen; k++) { - var source = query.sources[k]; - delete source.ix; - // If there is indexation rule - - if (k > 0 && source.optimization == 'ix' && source.onleftfn && source.onrightfn) { - // If there is no table.indices - create it - if (source.databaseid && alasql.databases[source.databaseid].tables[source.tableid]) { - if (!alasql.databases[source.databaseid].tables[source.tableid].indices) - query.database.tables[source.tableid].indices = {}; - // Check if index already exists - var ixx = - alasql.databases[source.databaseid].tables[source.tableid].indices[ - hash(source.onrightfns + '`' + source.srcwherefns) - ]; - if (!alasql.databases[source.databaseid].tables[source.tableid].dirty && ixx) { - source.ix = ixx; - } - } - - if (!source.ix) { - source.ix = {}; - // Walking over source data - var scope = {}; - var i = 0; - var ilen = source.data.length; - var dataw; - // while(source.getfn i= query.sources.length) { - // Todo: check if this runs once too many - - // Then apply where and select - - if (query.wherefn(scope, query.params, alasql)) { - - // var res = query.selectfn(scope, query.params, alasql); - - // If there is a GROUP BY then pipe to groupping function - if (query.groupfn) { - query.groupfn(scope, query.params, alasql); - } else { - // query.qwerty = 999; - - query.data.push(query.selectfn(scope, query.params, alasql)); - } - } - } else if (query.sources[h].applyselect) { - - var source = query.sources[h]; - source.applyselect( - query.params, - function(data) { - if (data.length > 0) { - - for (var i = 0; i < data.length; i++) { - scope[source.alias] = data[i]; - doJoin(query, scope, h + 1); - } - } else { - if (source.applymode == 'OUTER') { - scope[source.alias] = {}; - doJoin(query, scope, h + 1); - } - } - }, - scope - ); - - } else { - // STEP 1 - - var source = query.sources[h]; - var nextsource = query.sources[h + 1]; - - // if(source.joinmode == "LEFT" || source.joinmode == "INNER" || source.joinmode == "RIGHT" - // || source.joinmode == "OUTER" || source.joinmode == "SEMI") { - // Todo: check if this is smart - if (true) { - //source.joinmode != "ANTI") { - - var tableid = source.alias || source.tableid; - var pass = false; // For LEFT JOIN - var data = source.data; - var opt = false; - - // Reduce data for looping if there is optimization hint - if (!source.getfn || (source.getfn && !source.dontcache)) { - if ( - source.joinmode != 'RIGHT' && - source.joinmode != 'OUTER' && - source.joinmode != 'ANTI' && - source.optimization == 'ix' - ) { - data = source.ix[source.onleftfn(scope, query.params, alasql)] || []; - opt = true; - - } - } - - // Main cycle - var i = 0; - if (typeof data == 'undefined') { - throw new Error('Data source number ' + h + ' in undefined'); - } - var ilen = data.length; - var dataw; - - while ( - (dataw = data[i]) || - (!opt && (source.getfn && (dataw = source.getfn(i)))) || - i < ilen - ) { - if (!opt && source.getfn && !source.dontcache) data[i] = dataw; - - scope[tableid] = dataw; - // Reduce with ON and USING clause - if ( - !source.onleftfn || - source.onleftfn(scope, query.params, alasql) == - source.onrightfn(scope, query.params, alasql) - ) { - // For all non-standard JOINs like a-b=0 - if (source.onmiddlefn(scope, query.params, alasql)) { - // Recursively call new join - // if(source.joinmode == "LEFT" || source.joinmode == "INNER" || source.joinmode == "OUTER" || source.joinmode == "RIGHT" ) { - if (source.joinmode != 'SEMI' && source.joinmode != 'ANTI') { - - doJoin(query, scope, h + 1); - } - - // if(source.data[i].f = 200) debugger; - - // if(source.joinmode == "RIGHT" || source.joinmode == "ANTI" || source.joinmode == "OUTER") { - if (source.joinmode != 'LEFT' && source.joinmode != 'INNER') { - dataw._rightjoin = true; - } - - // for LEFT JOIN - pass = true; - } - } - i++; - } - - // Additional join for LEFT JOINS - if ( - (source.joinmode == 'LEFT' || - source.joinmode == 'OUTER' || - source.joinmode == 'SEMI') && - !pass - ) { - // Clear the scope after the loop - scope[tableid] = {}; - doJoin(query, scope, h + 1); - } - } - - // When there is no records - // if(data.length == 0 && query.groupfn) { - // scope[tableid] = undefined; - // doJoin(query,scope,h+1); - // } - - // STEP 2 - - if (h + 1 < query.sources.length) { - if ( - nextsource.joinmode == 'OUTER' || - nextsource.joinmode == 'RIGHT' || - nextsource.joinmode == 'ANTI' - ) { - scope[source.alias] = {}; - - var j = 0; - var jlen = nextsource.data.length; - var dataw; - - while ( - (dataw = nextsource.data[j]) || - (nextsource.getfn && (dataw = nextsource.getfn(j))) || - j < jlen - ) { - if (nextsource.getfn && !nextsource.dontcache) { - nextsource.data[j] = dataw; - } - - if (dataw._rightjoin) { - delete dataw._rightjoin; - } else { - // delete dataw._rightjoin; - - if (h == 0) { - scope[nextsource.alias] = dataw; - doJoin(query, scope, h + 2); - } else { - //scope[nextsource.alias] = dataw; - //doJoin(query, scope, h+2); - - } - } - j++; - } - // debugger; - } else { - - } - } else { - - } - - scope[tableid] = undefined; - - } -} - -function swapSources(query, h) { - var source = query.sources[h]; - var nextsource = query.sources[h + 1]; - - var onleftfn = source.onleftfn; - var onleftfns = source.onleftfns; - var onrightfn = source.onrightfn; - var onrightfns = source.onrightfns; - var optimization = source.optimization; - - source.onleftfn = nextsource.onrightfn; - source.onleftfns = nextsource.onrightfns; - source.onrightfn = nextsource.onleftfn; - source.onrightfns = nextsource.onleftfns; - source.optimization = nextsource.optimization; - - nextsource.onleftfn = onleftfn; - nextsource.onleftfns = onleftfns; - nextsource.onrightfn = onrightfn; - nextsource.onrightfns = onrightfns; - nextsource.optimization = optimization; - - query.sources[h] = nextsource; - query.sources[h + 1] = source; -} - -/* -// -// Select run-time part for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -// -// Main part of SELECT procedure -// - -/* global yy */ - -yy.Select = function(params) { - return yy.extend(this, params); -}; -yy.Select.prototype.toString = function() { - var s; - s = ''; - if (this.explain) { - s += 'EXPLAIN '; - } - s += 'SELECT '; - if (this.modifier) { - s += this.modifier + ' '; - } - if (this.distinct) { - s += 'DISTINCT '; - } - if (this.top) { - s += 'TOP ' + this.top.value + ' '; - if (this.percent) { - s += 'PERCENT '; - } - } - s += this.columns - .map(function(col) { - var s; - s = col.toString(); - if (typeof col.as !== 'undefined') { - s += ' AS ' + col.as; - } - return s; - }) - .join(', '); - if (this.from) { - s += - ' FROM ' + - this.from - .map(function(f) { - var ss; - ss = f.toString(); - if (f.as) { - ss += ' AS ' + f.as; - } - return ss; - }) - .join(','); - } - if (this.joins) { - s += this.joins - .map(function(jn) { - var ss; - ss = ' '; - if (jn.joinmode) { - ss += jn.joinmode + ' '; - } - if (jn.table) { - ss += 'JOIN ' + jn.table.toString(); - } else if (jn.select) { - ss += 'JOIN (' + jn.select.toString() + ')'; - } else if (jn instanceof alasql.yy.Apply) { - ss += jn.toString(); - } else { - throw new Error('Wrong type in JOIN mode'); - } - if (jn.as) { - ss += ' AS ' + jn.as; - } - if (jn.using) { - ss += ' USING ' + jn.using.toString(); - } - if (jn.on) { - ss += ' ON ' + jn.on.toString(); - } - return ss; - }) - .join(''); - } - if (this.where) { - s += ' WHERE ' + this.where.toString(); - } - if (this.group && this.group.length > 0) { - s += - ' GROUP BY ' + - this.group - .map(function(grp) { - return grp.toString(); - }) - .join(', '); - } - if (this.having) { - s += ' HAVING ' + this.having.toString(); - } - if (this.order && this.order.length > 0) { - s += - ' ORDER BY ' + - this.order - .map(function(ord) { - return ord.toString(); - }) - .join(', '); - } - if (this.limit) { - s += ' LIMIT ' + this.limit.value; - } - if (this.offset) { - s += ' OFFSET ' + this.offset.value; - } - if (this.union) { - s += ' UNION ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.union.toString(); - } - if (this.unionall) { - s += - ' UNION ALL ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.unionall.toString(); - } - if (this.except) { - s += ' EXCEPT ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.except.toString(); - } - if (this.intersect) { - s += - ' INTERSECT ' + - (this.corresponding ? 'CORRESPONDING ' : '') + - this.intersect.toString(); - } - return s; -}; - -/** - Select statement in expression - */ -yy.Select.prototype.toJS = function(context) { - - // if(this.expression.reduced) return 'true'; - // return this.expression.toJS(context, tableid, defcols); - - // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]'; - - var s = - 'alasql.utils.flatArray(this.queriesfn[' + - (this.queriesidx - 1) + - '](this.params,null,' + - context + - '))[0]'; - - return s; -}; - -// Compile SELECT statement -yy.Select.prototype.compile = function(databaseid, params) { - var db = alasql.databases[databaseid]; - // Create variable for query - var query = new Query(); - - // Array with columns to be removed - query.removeKeys = []; - query.aggrKeys = []; - - query.explain = this.explain; // Explain - query.explaination = []; - query.explid = 1; - - query.modifier = this.modifier; - - query.database = db; - // 0. Precompile whereexists - this.compileWhereExists(query); - - // 0. Precompile queries for IN, NOT IN, ANY and ALL operators - this.compileQueries(query); - - query.defcols = this.compileDefCols(query, databaseid); - - // 1. Compile FROM clause - query.fromfn = this.compileFrom(query); - - // 2. Compile JOIN clauses - if (this.joins) { - this.compileJoins(query); - } - - // todo?: 3. Compile SELECT clause - - // For ROWNUM() - query.rownums = []; - - this.compileSelectGroup0(query); - - if (this.group || query.selectGroup.length > 0) { - query.selectgfns = this.compileSelectGroup1(query); - } else { - query.selectfns = this.compileSelect1(query, params); - } - - // Remove columns clause - this.compileRemoveColumns(query); - - // 5. Optimize WHERE and JOINS - if (this.where) { - this.compileWhereJoins(query); - } - - // 4. Compile WHERE clause - query.wherefn = this.compileWhere(query); - - // 6. Compile GROUP BY - if (this.group || query.selectGroup.length > 0) { - query.groupfn = this.compileGroup(query); - } - - // 6. Compile HAVING - if (this.having) { - query.havingfn = this.compileHaving(query); - } - - // 8. Compile ORDER BY clause - if (this.order) { - query.orderfn = this.compileOrder(query); - } - - if (this.group || query.selectGroup.length > 0) { - query.selectgfn = this.compileSelectGroup2(query); - } else { - query.selectfn = this.compileSelect2(query); - } - - // 7. Compile DISTINCT, LIMIT and OFFSET - query.distinct = this.distinct; - - // 9. Compile PIVOT clause - if (this.pivot) query.pivotfn = this.compilePivot(query); - if (this.unpivot) query.pivotfn = this.compileUnpivot(query); - - // 10. Compile TOP/LIMIT/OFFSET/FETCH cleuse - if (this.top) { - query.limit = this.top.value; - } else if (this.limit) { - query.limit = this.limit.value; - if (this.offset) { - query.offset = this.offset.value; - } - } - - query.percent = this.percent; - - // 9. Compile ordering function for UNION and UNIONALL - query.corresponding = this.corresponding; // If CORRESPONDING flag exists - if (this.union) { - query.unionfn = this.union.compile(databaseid); - if (this.union.order) { - query.orderfn = this.union.compileOrder(query); - } else { - query.orderfn = null; - } - } else if (this.unionall) { - query.unionallfn = this.unionall.compile(databaseid); - if (this.unionall.order) { - query.orderfn = this.unionall.compileOrder(query); - } else { - query.orderfn = null; - } - } else if (this.except) { - query.exceptfn = this.except.compile(databaseid); - if (this.except.order) { - query.orderfn = this.except.compileOrder(query); - } else { - query.orderfn = null; - } - } else if (this.intersect) { - query.intersectfn = this.intersect.compile(databaseid); - if (this.intersect.order) { - query.intersectfn = this.intersect.compileOrder(query); - } else { - query.orderfn = null; - } - } - - // SELECT INTO - if (this.into) { - if (this.into instanceof yy.Table) { - // - // Save into the table in database - // - if ( - alasql.options.autocommit && - alasql.databases[this.into.databaseid || databaseid].engineid - ) { - // For external database when AUTOCOMMIT is ONs - query.intoallfns = - 'return alasql.engines["' + - alasql.databases[this.into.databaseid || databaseid].engineid + - '"]' + - '.intoTable("' + - (this.into.databaseid || databaseid) + - '","' + - this.into.tableid + - '",this.data, columns, cb);'; - } else { - // Into AlaSQL tables - query.intofns = - "alasql.databases['" + - (this.into.databaseid || databaseid) + - "'].tables" + - "['" + - this.into.tableid + - "'].data.push(r);"; - } - } else if (this.into instanceof yy.VarValue) { - // - // Save into local variable - // SELECT * INTO @VAR1 FROM ? - // - query.intoallfns = - 'alasql.vars["' + - this.into.variable + - '"]=this.data;res=this.data.length;if(cb)res=cb(res);return res;'; - } else if (this.into instanceof yy.FuncValue) { - // - // If this is INTO() function, then call it - // with one or two parameters - // - var qs = "return alasql.into['" + this.into.funcid.toUpperCase() + "']("; - if (this.into.args && this.into.args.length > 0) { - qs += this.into.args[0].toJS() + ','; - if (this.into.args.length > 1) { - qs += this.into.args[1].toJS() + ','; - } else { - qs += 'undefined,'; - } - } else { - qs += 'undefined, undefined,'; - } - query.intoallfns = qs + 'this.data,columns,cb)'; - - } else if (this.into instanceof yy.ParamValue) { - // - // Save data into parameters array - // like alasql('SELECT * INTO ? FROM ?',[outdata,srcdata]); - // - query.intofns = "params['" + this.into.param + "'].push(r)"; - } - - if (query.intofns) { - // Create intofn function - - query.intofn = new Function('r,i,params,alasql', 'var y;' + query.intofns); - } else if (query.intoallfns) { - // Create intoallfn function - - query.intoallfn = new Function('columns,cb,params,alasql', 'var y;' + query.intoallfns); - } - } - - // Now, compile all togeather into one function with query object in scope - var statement = function(params, cb, oldscope) { - query.params = params; - // Note the callback function has the data and error reversed due to existing code in promiseExec which has the - // err and data swapped. This trickles down into alasql.exec and further. Rather than risk breaking the whole thing, - // the (data, err) standard is maintained here. - var res1 = queryfn(query, oldscope, function(res, err) { - if (err) { - return cb(err, null); - } - if (query.rownums.length > 0) { - for (var i = 0, ilen = res.length; i < ilen; i++) { - for (var j = 0, jlen = query.rownums.length; j < jlen; j++) { - res[i][query.rownums[j]] = i + 1; - } - } - } - - var res2 = modify(query, res); - - if (cb) { - cb(res2); - } - - return res2; - }); - - // if(typeof res1 != 'undefined') res1 = modify(query,res1); - - return res1; - }; - - // statement.dbversion = ; - - statement.query = query; - return statement; -}; - -/** - Modify res according modifier - @function - @param {object} query Query object - @param res {object|number|string|boolean} res Data to be converted - */ -function modify(query, res) { - // jshint ignore:line - - /* If source is a primitive value then return it */ - if ( - typeof res === 'undefined' || - typeof res === 'number' || - typeof res === 'string' || - typeof res === 'boolean' - ) { - return res; - } - - var modifier = query.modifier || alasql.options.modifier; - var columns = query.columns; - if (typeof columns === 'undefined' || columns.length == 0) { - // Try to create columns - if (res.length > 0) { - var allcol = {}; - for (var i = Math.min(res.length, alasql.options.columnlookup || 10) - 1; 0 <= i; i--) { - for (var key in res[i]) { - allcol[key] = true; - } - } - - columns = Object.keys(allcol).map(function(columnid) { - return {columnid: columnid}; - }); - } else { - // Cannot recognize columns - columns = []; - } - } - - if (modifier === 'VALUE') { - - if (res.length > 0) { - var key; - if (columns && columns.length > 0) { - key = columns[0].columnid; - } else { - key = Object.keys(res[0])[0]; - } - res = res[0][key]; - } else { - res = undefined; - } - } else if (modifier === 'ROW') { - if (res.length > 0) { - var key; - var a = []; - for (var key in res[0]) { - a.push(res[0][key]); - } - res = a; - } else { - res = undefined; - } - } else if (modifier === 'COLUMN') { - var ar = []; - if (res.length > 0) { - var key; - if (columns && columns.length > 0) { - key = columns[0].columnid; - } else { - key = Object.keys(res[0])[0]; - } - - for (var i = 0, ilen = res.length; i < ilen; i++) { - ar.push(res[i][key]); - } - } - res = ar; - } else if (modifier === 'MATRIX') { - // Returns square matrix of rows - var ar = []; - for (var i = 0; i < res.length; i++) { - var a = []; - var r = res[i]; - for (var j = 0; j < columns.length; j++) { - a.push(r[columns[j].columnid]); - } - ar.push(a); - } - res = ar; - } else if (modifier === 'INDEX') { - var ar = {}; - var key, val; - if (columns && columns.length > 0) { - key = columns[0].columnid; - val = columns[1].columnid; - } else { - var okeys = Object.keys(res[0]); - key = okeys[0]; - val = okeys[1]; - } - for (var i = 0, ilen = res.length; i < ilen; i++) { - ar[res[i][key]] = res[i][val]; - } - res = ar; - // res = arrayOfArrays(res); - } else if (modifier === 'RECORDSET') { - res = new alasql.Recordset({columns: columns, data: res}); - // res = arrayOfArrays(res); - } else if (modifier === 'TEXTSTRING') { - var key; - if (columns && columns.length > 0) { - key = columns[0].columnid; - } else { - key = Object.keys(res[0])[0]; - } - - for (var i = 0, ilen = res.length; i < ilen; i++) { - res[i] = res[i][key]; - } - res = res.join('\n'); - // res = arrayOfArrays(res); - } - return res; -} - -yy.Select.prototype.execute = function(databaseid, params, cb) { - return this.compile(databaseid)(params, cb); - // throw new Error('Insert statement is should be compiled') -}; - -/* -// -// EXISTS and other subqueries functions functions for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.ExistsValue = function(params) { - return yy.extend(this, params); -}; -yy.ExistsValue.prototype.toString = function() { - return 'EXISTS(' + this.value.toString() + ')'; -}; - -yy.ExistsValue.prototype.toType = function() { - return 'boolean'; -}; - -yy.ExistsValue.prototype.toJS = function(context, tableid, defcols) { - - return 'this.existsfn[' + this.existsidx + '](params,null,' + context + ').data.length'; -}; - -yy.Select.prototype.compileWhereExists = function(query) { - if (!this.exists) return; - query.existsfn = this.exists.map(function(ex) { - var nq = ex.compile(query.database.databaseid); - - // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; - nq.query.modifier = 'RECORDSET'; - return nq; - }); -}; - -yy.Select.prototype.compileQueries = function(query) { - if (!this.queries) return; - query.queriesfn = this.queries.map(function(q) { - var nq = q.compile(query.database.databaseid); - - // if(!nq.query) nq.query = {}; - nq.query.modifier = 'RECORDSET'; - // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; - return nq; - }); -}; - -// -// Prepare subqueries and exists -// -alasql.precompile = function(statement, databaseid, params) { - - if (!statement) return; - statement.params = params; - if (statement.queries) { - - statement.queriesfn = statement.queries.map(function(q) { - var nq = q.compile(databaseid || statement.database.databaseid); - - // nq.query.modifier = undefined; - // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - if (statement.exists) { - - statement.existsfn = statement.exists.map(function(ex) { - var nq = ex.compile(databaseid || statement.database.databaseid); - - // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; - // if(!nq.query.modifier) nq.query.modifier = 'ARRAY'; - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } -}; - -/* -// -// Select compiler part for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* global yy, alasql, Mongo, returnTrue */ - -yy.Select.prototype.compileFrom = function(query) { - - var self = this; - query.sources = []; - // var tableid = this.from[0].tableid; - // var as = ''; - // if(self.from[0].as) as = this.from[0].as; - - query.aliases = {}; - if (!self.from) return; - - self.from.forEach(function(tq) { - - var ps = ''; - - var alias = tq.as || tq.tableid; - - if (tq instanceof yy.Table) { - - query.aliases[alias] = { - tableid: tq.tableid, - databaseid: tq.databaseid || query.database.databaseid, - type: 'table', - }; - } else if (tq instanceof yy.Select) { - query.aliases[alias] = {type: 'subquery'}; - } else if (tq instanceof yy.Search) { - query.aliases[alias] = {type: 'subsearch'}; - } else if (tq instanceof yy.ParamValue) { - query.aliases[alias] = {type: 'paramvalue'}; - } else if (tq instanceof yy.FuncValue) { - query.aliases[alias] = {type: 'funcvalue'}; - } else if (tq instanceof yy.VarValue) { - query.aliases[alias] = {type: 'varvalue'}; - } else if (tq instanceof yy.FromData) { - query.aliases[alias] = {type: 'fromdata'}; - } else if (tq instanceof yy.Json) { - query.aliases[alias] = {type: 'json'}; - } else if (tq.inserted) { - query.aliases[alias] = {type: 'inserted'}; - } else { - throw new Error('Wrong table at FROM'); - } - - var source = { - alias: alias, - databaseid: tq.databaseid || query.database.databaseid, - tableid: tq.tableid, - joinmode: 'INNER', - onmiddlefn: returnTrue, - srcwherefns: '', // for optimization - srcwherefn: returnTrue, - // columns: [] - }; - - if (tq instanceof yy.Table) { - // Get columns from table - source.columns = alasql.databases[source.databaseid].tables[source.tableid].columns; - - if ( - alasql.options.autocommit && - alasql.databases[source.databaseid].engineid && - !alasql.databases[source.databaseid].tables[source.tableid].view - ) { - - // TODO -- make view for external engine - source.datafn = function(query, params, cb, idx, alasql) { - return alasql.engines[alasql.databases[source.databaseid].engineid].fromTable( - source.databaseid, - source.tableid, - cb, - idx, - query - ); - }; - } else if (alasql.databases[source.databaseid].tables[source.tableid].view) { - source.datafn = function(query, params, cb, idx, alasql) { - var res = alasql.databases[source.databaseid].tables[source.tableid].select( - params - ); - if (cb) res = cb(res, idx, query); - return res; - }; - } else { - - source.datafn = function(query, params, cb, idx, alasql) { - /* - -*/ - var res = alasql.databases[source.databaseid].tables[source.tableid].data; - - if (cb) res = cb(res, idx, query); - - return res; - // return alasql.databases[source.databaseid].tables[source.tableid].data; - }; - } - } else if (tq instanceof yy.Select) { - source.subquery = tq.compile(query.database.databaseid); - if (typeof source.subquery.query.modifier === 'undefined') { - source.subquery.query.modifier = 'RECORDSET'; // Subqueries always return recordsets - } - source.columns = source.subquery.query.columns; - - // tq.columns; - - source.datafn = function(query, params, cb, idx, alasql) { - // return source.subquery(query.params, cb, idx, query); - var res; - source.subquery(query.params, function(data) { - res = data.data; - if (cb) res = cb(res, idx, query); - return res; - // return data.data; - }); - - return res; - }; - } else if (tq instanceof yy.Search) { - source.subsearch = tq; - source.columns = []; - - source.datafn = function(query, params, cb, idx, alasql) { - // return source.subquery(query.params, cb, idx, query); - var res; - source.subsearch.execute(query.database.databaseid, query.params, function(data) { - res = data; - if (cb) res = cb(res, idx, query); - return res; - // return data.data; - }); - - return res; - }; - } else if (tq instanceof yy.ParamValue) { - ps = "var res = alasql.prepareFromData(params['" + tq.param + "']"; - - if (tq.array) ps += ',true'; - ps += ');if(cb)res=cb(res,idx,query);return res'; - source.datafn = new Function('query,params,cb,idx,alasql', ps); - } else if (tq.inserted) { - ps = 'var res = alasql.prepareFromData(alasql.inserted'; - if (tq.array) ps += ',true'; - ps += ');if(cb)res=cb(res,idx,query);return res'; - source.datafn = new Function('query,params,cb,idx,alasql', ps); - } else if (tq instanceof yy.Json) { - ps = 'var res = alasql.prepareFromData(' + tq.toJS(); - - if (tq.array) ps += ',true'; - ps += ');if(cb)res=cb(res,idx,query);return res'; - source.datafn = new Function('query,params,cb,idx,alasql', ps); - } else if (tq instanceof yy.VarValue) { - ps = "var res = alasql.prepareFromData(alasql.vars['" + tq.variable + "']"; - - if (tq.array) ps += ',true'; - ps += ');if(cb)res=cb(res,idx,query);return res'; - source.datafn = new Function('query,params,cb,idx,alasql', ps); - } else if (tq instanceof yy.FuncValue) { - ps = "var res=alasql.from['" + tq.funcid.toUpperCase() + "']("; - - if (tq.args && tq.args.length > 0) { - if (tq.args[0]) { - ps += tq.args[0].toJS('query.oldscope') + ','; - } else { - ps += 'null,'; - } - if (tq.args[1]) { - ps += tq.args[1].toJS('query.oldscope') + ','; - } else { - ps += 'null,'; - } - } else { - ps += 'null,null,'; - } - ps += 'cb,idx,query'; - ps += ');/*if(cb)res=cb(res,idx,query);*/return res'; - - source.datafn = new Function('query, params, cb, idx, alasql', ps); - } else if (tq instanceof yy.FromData) { - source.datafn = function(query, params, cb, idx, alasql) { - var res = tq.data; - if (cb) res = cb(res, idx, query); - return res; - }; - } else { - throw new Error('Wrong table at FROM'); - } - // source.data = alasql.databases[source.databaseid].tables[source.tableid].data; - query.sources.push(source); - }); - // TODO Add joins - query.defaultTableid = query.sources[0].alias; - -}; - -alasql.prepareFromData = function(data, array) { - - var i, ilen; - var res = data; - if (typeof data === 'string') { - res = data.split(/\r?\n/); - if (array) { - for (i = 0, ilen = res.length; i < ilen; i++) { - res[i] = [res[i]]; - } - } - } else if (array) { - res = []; - for (i = 0, ilen = data.length; i < ilen; i++) { - res.push([data[i]]); - } - - } else if (typeof data === 'object' && !Array.isArray(data)) { - // } else if(typeof data == 'object' && !(typeof data.length == 'undefined')) { - if ( - typeof Mongo !== 'undefined' && - typeof Mongo.Collection !== 'undefined' && - data instanceof Mongo.Collection - ) { - res = data.find().fetch(); - } else { - res = []; - for (var key in data) { - if (data.hasOwnProperty(key)) res.push([key, data[key]]); - } - } - - } - - return res; -}; - -/* -// -// Select compiler part for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -// SELECT Compile functions - -/* global yy, alasql, returnTrue, arrayIntersect */ - -// Compile JOIN caluese -yy.Select.prototype.compileJoins = function(query) { - - // debugger; - var self = this; - - this.joins.forEach(function(jn) { - // Test CROSS-JOIN - var tq, ps, source; - if (jn.joinmode === 'CROSS') { - if (jn.using || jn.on) { - throw new Error('CROSS JOIN cannot have USING or ON clauses'); - } else { - jn.joinmode = 'INNER'; - } - } - - if (jn instanceof yy.Apply) { - - source = { - alias: jn.as, - applymode: jn.applymode, - onmiddlefn: returnTrue, - srcwherefns: '', // for optimization - srcwherefn: returnTrue, - columns: [], // TODO check this - }; - source.applyselect = jn.select.compile(query.database.databaseid); - source.columns = source.applyselect.query.columns; - - source.datafn = function(query, params, cb, idx, alasql) { - var res; - if (cb) res = cb(res, idx, query); - return res; - }; - - query.sources.push(source); - - return; - } - - if (jn.table) { - tq = jn.table; - source = { - alias: jn.as || tq.tableid, - databaseid: tq.databaseid || query.database.databaseid, - tableid: tq.tableid, - joinmode: jn.joinmode, - onmiddlefn: returnTrue, - srcwherefns: '', // for optimization - srcwherefn: returnTrue, - columns: [], - }; - // - - if (!alasql.databases[source.databaseid].tables[source.tableid]) { - throw new Error( - "Table '" + - source.tableid + - "' is not exists in database '" + - source.databaseid + - "'" - ); - } - - source.columns = alasql.databases[source.databaseid].tables[source.tableid].columns; - - // source.data = query.database.tables[source.tableid].data; - if (alasql.options.autocommit && alasql.databases[source.databaseid].engineid) { - - source.datafn = function(query, params, cb, idx, alasql) { - - return alasql.engines[alasql.databases[source.databaseid].engineid].fromTable( - source.databaseid, - source.tableid, - cb, - idx, - query - ); - }; - } else if (alasql.databases[source.databaseid].tables[source.tableid].view) { - source.datafn = function(query, params, cb, idx, alasql) { - var res = alasql.databases[source.databaseid].tables[source.tableid].select( - params - ); - if (cb) res = cb(res, idx, query); - return res; - }; - } else { - source.datafn = function(query, params, cb, idx, alasql) { - var res = alasql.databases[source.databaseid].tables[source.tableid].data; - if (cb) res = cb(res, idx, query); - return res; - }; - } - - // var alias = jn.as || tq.tableid; - // if(tq) { - query.aliases[source.alias] = { - tableid: tq.tableid, - databaseid: tq.databaseid || query.database.databaseid, - }; - // } - } else if (jn.select) { - tq = jn.select; - source = { - alias: jn.as, - // databaseid: jn.databaseid || query.database.databaseid, - // tableid: tq.tableid, - joinmode: jn.joinmode, - onmiddlefn: returnTrue, - srcwherefns: '', // for optimization - srcwherefn: returnTrue, - columns: [], - }; - - source.subquery = tq.compile(query.database.databaseid); - if (typeof source.subquery.query.modifier === 'undefined') { - source.subquery.query.modifier = 'RECORDSET'; // Subqueries always return recordsets - } - source.columns = source.subquery.query.columns; - - // if(jn instanceof yy.Apply) { - source.datafn = function(query, params, cb, idx, alasql) { - // return cb(null,idx,alasql); - return source.subquery(query.params, null, cb, idx).data; - }; - // } else { - // source.datafn = function(query, params, cb, idx, alasql) { - // return source.subquery(query.params, null, cb, idx); - // } - // } - query.aliases[source.alias] = {type: 'subquery'}; - } else if (jn.param) { - source = { - alias: jn.as, - // databaseid: jn.databaseid || query.database.databaseid, - // tableid: tq.tableid, - joinmode: jn.joinmode, - onmiddlefn: returnTrue, - srcwherefns: '', // for optimization - srcwherefn: returnTrue, - }; - // source.data = ; - var jnparam = jn.param.param; - - ps = "var res=alasql.prepareFromData(params['" + jnparam + "']"; - if (jn.array) ps += ',true'; - ps += ');if(cb)res=cb(res, idx, query);return res'; - - source.datafn = new Function('query,params,cb,idx, alasql', ps); - query.aliases[source.alias] = {type: 'paramvalue'}; - } else if (jn.variable) { - source = { - alias: jn.as, - // databaseid: jn.databaseid || query.database.databaseid, - // tableid: tq.tableid, - joinmode: jn.joinmode, - onmiddlefn: returnTrue, - srcwherefns: '', // for optimization - srcwherefn: returnTrue, - }; - // source.data = ; - // var jnparam = jn.param.param; - - ps = "var res=alasql.prepareFromData(alasql.vars['" + jn.variable + "']"; - if (jn.array) ps += ',true'; - ps += ');if(cb)res=cb(res, idx, query);return res'; - - source.datafn = new Function('query,params,cb,idx, alasql', ps); - query.aliases[source.alias] = {type: 'varvalue'}; - } else if (jn.func) { - source = { - alias: jn.as, - // databaseid: jn.databaseid || query.database.databaseid, - // tableid: tq.tableid, - joinmode: jn.joinmode, - onmiddlefn: returnTrue, - srcwherefns: '', // for optimization - srcwherefn: returnTrue, - }; - // source.data = ; - - var s = "var res=alasql.from['" + jn.func.funcid.toUpperCase() + "']("; - - var args = jn.func.args; - if (args && args.length > 0) { - if (args[0]) { - s += args[0].toJS('query.oldscope') + ','; - } else { - s += 'null,'; - } - if (args[1]) { - s += args[1].toJS('query.oldscope') + ','; - } else { - s += 'null,'; - } - } else { - s += 'null,null,'; - } - s += 'cb,idx,query'; - s += ');/*if(cb)res=cb(res,idx,query);*/return res'; - - source.datafn = new Function('query, params, cb, idx, alasql', s); - - query.aliases[source.alias] = {type: 'funcvalue'}; - } - - var alias = source.alias; - - // Test NATURAL-JOIN - if (jn.natural) { - if (jn.using || jn.on) { - throw new Error('NATURAL JOIN cannot have USING or ON clauses'); - } else { - // source.joinmode == "INNER"; - if (query.sources.length > 0) { - var prevSource = query.sources[query.sources.length - 1]; - var prevTable = - alasql.databases[prevSource.databaseid].tables[prevSource.tableid]; - var table = alasql.databases[source.databaseid].tables[source.tableid]; - - if (prevTable && table) { - var c1 = prevTable.columns.map(function(col) { - return col.columnid; - }); - var c2 = table.columns.map(function(col) { - return col.columnid; - }); - jn.using = arrayIntersect(c1, c2).map(function(colid) { - return {columnid: colid}; - }); - - } else { - throw new Error( - 'In this version of Alasql NATURAL JOIN ' + - 'works for tables with predefined columns only' - ); - } - } - } - } - - if (jn.using) { - prevSource = query.sources[query.sources.length - 1]; - - source.onleftfns = jn.using - .map(function(col) { - - return ( - "p['" + - (prevSource.alias || prevSource.tableid) + - "']['" + - col.columnid + - "']" - ); - }) - .join('+"`"+'); - - source.onleftfn = new Function('p,params,alasql', 'var y;return ' + source.onleftfns); - - source.onrightfns = jn.using - .map(function(col) { - return "p['" + (source.alias || source.tableid) + "']['" + col.columnid + "']"; - }) - .join('+"`"+'); - source.onrightfn = new Function('p,params,alasql', 'var y;return ' + source.onrightfns); - source.optimization = 'ix'; - - } else if (jn.on) { - - if (jn.on instanceof yy.Op && jn.on.op === '=' && !jn.on.allsome) { - - source.optimization = 'ix'; - - var lefts = ''; - var rights = ''; - var middles = ''; - var middlef = false; - // Test right and left sides - var ls = jn.on.left.toJS('p', query.defaultTableid, query.defcols); - var rs = jn.on.right.toJS('p', query.defaultTableid, query.defcols); - - if ( - ls.indexOf("p['" + alias + "']") > -1 && - !(rs.indexOf("p['" + alias + "']") > -1) - ) { - if ( - (ls.match(/p\['.*?'\]/g) || []).every(function(s) { - return s === "p['" + alias + "']"; - }) - ) { - rights = ls; - } else { - middlef = true; - } - } else if ( - !(ls.indexOf("p['" + alias + "']") > -1) && - rs.indexOf("p['" + alias + "']") > -1 - ) { - if ( - (rs.match(/p\['.*?'\]/g) || []).every(function(s) { - return s === "p['" + alias + "']"; - }) - ) { - lefts = ls; - } else { - middlef = true; - } - } else { - middlef = true; - } - - if ( - rs.indexOf("p['" + alias + "']") > -1 && - !(ls.indexOf("p['" + alias + "']") > -1) - ) { - if ( - (rs.match(/p\['.*?'\]/g) || []).every(function(s) { - return s === "p['" + alias + "']"; - }) - ) { - rights = rs; - } else { - middlef = true; - } - } else if ( - !(rs.indexOf("p['" + alias + "']") > -1) && - ls.indexOf("p['" + alias + "']") > -1 - ) { - if ( - (ls.match(/p\['.*?'\]/g) || []).every(function(s) { - return s === "p['" + alias + "']"; - }) - ) { - lefts = rs; - } else { - middlef = true; - } - } else { - middlef = true; - } - - if (middlef) { - // middles = jn.on.toJS('p',query.defaultTableid); - // } else { - rights = ''; - lefts = ''; - middles = jn.on.toJS('p', query.defaultTableid, query.defcols); - source.optimization = 'no'; - // What to here? - } - - source.onleftfns = lefts; - source.onrightfns = rights; - source.onmiddlefns = middles || 'true'; - - source.onleftfn = new Function( - 'p,params,alasql', - 'var y;return ' + source.onleftfns - ); - source.onrightfn = new Function( - 'p,params,alasql', - 'var y;return ' + source.onrightfns - ); - source.onmiddlefn = new Function( - 'p,params,alasql', - 'var y;return ' + source.onmiddlefns - ); - - // } else if(jn.on instanceof yy.Op && jn.on.op == 'AND') { - - } else { - - source.optimization = 'no'; - // source.onleftfn = returnTrue; - // source.onleftfns = "true"; - source.onmiddlefns = jn.on.toJS('p', query.defaultTableid, query.defcols); - source.onmiddlefn = new Function( - 'p,params,alasql', - 'var y;return ' + jn.on.toJS('p', query.defaultTableid, query.defcols) - ); - } - - // Optimization function - } - - // source.data = alasql.databases[source.databaseid].tables[source.tableid].data; - - // TODO SubQueries - - query.sources.push(source); - }); - -}; - -yy.Select.prototype.compileWhere = function(query) { - if (this.where) { - if (typeof this.where == 'function') { - return this.where; - } else { - var s = this.where.toJS('p', query.defaultTableid, query.defcols); - query.wherefns = s; - - return new Function('p,params,alasql', 'var y;return ' + s); - } - } else - return function() { - return true; - }; -}; - -yy.Select.prototype.compileWhereJoins = function(query) { - return; - - // TODO Fix Where optimization - - optimizeWhereJoin(query, this.where.expression); - - //for sources compile wherefs - query.sources.forEach(function(source) { - if (source.srcwherefns) { - source.srcwherefn = new Function( - 'p,params,alasql', - 'var y;return ' + source.srcwherefns - ); - } - if (source.wxleftfns) { - source.wxleftfn = new Function('p,params,alasql', 'var y;return ' + source.wxleftfns); - } - if (source.wxrightfns) { - source.wxrightfn = new Function('p,params,alasql', 'var y;return ' + source.wxrightfns); - } - - }); -}; - -function optimizeWhereJoin(query, ast) { - if (!ast) return false; - if (!(ast instanceof yy.Op)) return; - if (ast.op != '=' && ast.op != 'AND') return; - if (ast.allsome) return; - - var s = ast.toJS('p', query.defaultTableid, query.defcols); - var fsrc = []; - query.sources.forEach(function(source, idx) { - // Optimization allowed only for tables only - if (source.tableid) { - // This is a good place to remove all unnecessary optimizations - if (s.indexOf("p['" + source.alias + "']") > -1) fsrc.push(source); - } - }); - - // if(fsrc.length < query.sources.length) return; - - if (fsrc.length == 0) { - - return; - } else if (fsrc.length == 1) { - if ( - !(s.match(/p\[\'.*?\'\]/g) || []).every(function(s) { - return s == "p['" + fsrc[0].alias + "']"; - }) - ) { - return; - // This is means, that we have column from parent query - // So we return without optimization - } - - var src = fsrc[0]; // optmiization source - src.srcwherefns = src.srcwherefns ? src.srcwherefns + '&&' + s : s; - - if (ast instanceof yy.Op && (ast.op == '=' && !ast.allsome)) { - if (ast.left instanceof yy.Column) { - var ls = ast.left.toJS('p', query.defaultTableid, query.defcols); - var rs = ast.right.toJS('p', query.defaultTableid, query.defcols); - if (rs.indexOf("p['" + fsrc[0].alias + "']") == -1) { - fsrc[0].wxleftfns = ls; - fsrc[0].wxrightfns = rs; - } - } - if (ast.right instanceof yy.Column) { - var ls = ast.left.toJS('p', query.defaultTableid, query.defcols); - var rs = ast.right.toJS('p', query.defaultTableid, query.defcols); - if (ls.indexOf("p['" + fsrc[0].alias + "']") == -1) { - fsrc[0].wxleftfns = rs; - fsrc[0].wxrightfns = ls; - } - } - } - ast.reduced = true; // To do not duplicate wherefn and srcwherefn - return; - } else { - if ((ast.op = 'AND')) { - optimizeWhereJoin(query, ast.left); - optimizeWhereJoin(query, ast.right); - } - } -} - -/* -// -// Select compiler part for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/** - Compile group of statements - */ -yy.Select.prototype.compileGroup = function(query) { - - if (query.sources.length > 0) { - var tableid = query.sources[0].alias; - } else { - // If SELECT contains group aggregators without source tables - var tableid = ''; - } - var defcols = query.defcols; - - var allgroup = [[]]; - if (this.group) { - allgroup = decartes(this.group, query); - } - - // Prepare groups - //var allgroup = [['a'], ['a','b'], ['a', 'b', 'c']]; - - // Union all arrays to get a maximum - var allgroups = []; - allgroup.forEach(function(a) { - allgroups = arrayUnion(allgroups, a); - }); - - query.allgroups = allgroups; - - query.ingroup = []; - - // Create negative array - - var s = ''; - // s+= query.selectfns; - allgroup.forEach(function(agroup) { - // Start of group function - s += 'var g=this.xgroups['; - - // var gcols = this.group.map(function(col){return col.columnid}); // Group fields with r - // Array with group columns from record - var rg = agroup.map(function(col2) { - var columnid = col2.split('\t')[0]; - var coljs = col2.split('\t')[1]; - // Check, if aggregator exists but GROUP BY is not exists - if (columnid === '') { - return '1'; // Create fictive groupping column for fictive GROUP BY - } - // else return "r['"+columnid+"']"; - query.ingroup.push(columnid); - - return coljs; - }); - - if (rg.length === 0) { - rg = ["''"]; - } - - s += rg.join('+"`"+'); - s += '];if(!g) {this.groups.push((g=this.xgroups['; - s += rg.join('+"`"+'); - s += '] = {'; - // s += ']=r'; - s += agroup - .map(function(col2) { - var columnid = col2.split('\t')[0]; - var coljs = col2.split('\t')[1]; - - if (columnid === '') { - return ''; - } - return "'" + columnid + "':" + coljs + ','; - }) - .join(''); - - var neggroup = arrayDiff(allgroups, agroup); - - s += neggroup - .map(function(col2) { - var columnid = col2.split('\t')[0]; - // var coljs = col2.split('\t')[1] - return "'" + columnid + "':null,"; - }) - .join(''); - - var aft = '', - aft2 = ''; - - if (typeof query.groupStar !== 'undefined') { - aft2 += - "for(var f in p['" + - query.groupStar + - "']) {g[f]=p['" + - query.groupStar + - "'][f];};"; - } - - /* - */ - // s += self.columns.map(function(col){ - - s += query.selectGroup - .map(function(col) { - - var colexp = col.expression.toJS('p', tableid, defcols); - var colas = col.nick; - // if(typeof colas == 'undefined') { - // if(col instanceof yy.Column) colas = col.columnid; - // else colas = col.toString(); - // }; - if (col instanceof yy.AggrValue) { - if (col.distinct) { - aft += - ",g['$$_VALUES_" + - colas + - "']={},g['$$_VALUES_" + - colas + - "'][" + - colexp + - ']=true'; - } - if (col.aggregatorid === 'SUM') { - return "'" + colas + "':(" + colexp + ')||0,'; - } else if ( - col.aggregatorid === 'MIN' || - col.aggregatorid === 'MAX' || - col.aggregatorid === 'FIRST' || - col.aggregatorid === 'LAST' - // || col.aggregatorid == 'AVG' - // ) { return "'"+col.as+'\':r[\''+col.as+'\'],'; }//f.field.arguments[0].toJS(); - ) { - return "'" + colas + "':" + colexp + ','; //f.field.arguments[0].toJS(); - } else if (col.aggregatorid === 'ARRAY') { - return "'" + colas + "':[" + colexp + '],'; - } else if (col.aggregatorid === 'COUNT') { - if (col.expression.columnid === '*') { - return "'" + colas + "':1,"; - } else { - // return "'"+colas+'\':(typeof '+colexp+' != "undefined")?1:0,'; - // } else { - return "'" + colas + "':(typeof " + colexp + ' != "undefined")?1:0,'; - } - - // else if(col.aggregatorid == 'MIN') { return "'"+col.as+'\':r[\''+col.as+'\'],'; } - // else if(col.aggregatorid == 'MAX') { return "'"+col.as+'\':r[\''+col.as+'\'],'; } - } else if (col.aggregatorid === 'AVG') { - query.removeKeys.push('_SUM_' + colas); - query.removeKeys.push('_COUNT_' + colas); - - return ( - '' + - "'" + - colas + - "':" + - colexp + - ",'_SUM_" + - colas + - "':(" + - colexp + - ")||0,'_COUNT_" + - colas + - "':(typeof " + - colexp + - ' != "undefined")?1:0,' - ); - } else if (col.aggregatorid === 'AGGR') { - aft += ",g['" + colas + "']=" + col.expression.toJS('g', -1); - return ''; - } else if (col.aggregatorid === 'REDUCE') { - // query.removeKeys.push('_REDUCE_'+colas); - query.aggrKeys.push(col); - - // return "'"+colas+'\':alasql.aggr[\''+col.funcid+'\']('+colexp+',undefined,(acc={}),1),' - // +'\'__REDUCE__'+colas+'\':acc,'; - return ( - "'" + - colas + - "':alasql.aggr['" + - col.funcid + - "'](" + - colexp + - ',undefined,1),' - ); - } - return ''; - } - - return ''; - }) - .join(''); - - s += '}' + aft + ',g));' + aft2 + '} else {'; - - /* - // var neggroup = arrayDiff(allgroups,agroup); - - // s += neggroup.map(function(columnid){ - // return "g['"+columnid+"']=null;"; - // }).join(''); -*/ - - // s += self.columns.map(function(col){ - s += query.selectGroup - .map(function(col) { - var colas = col.nick; - - var colexp = col.expression.toJS('p', tableid, defcols); - - if (col instanceof yy.AggrValue) { - var pre = '', - post = ''; - if (col.distinct) { - var pre = - 'if(typeof ' + - colexp + - '!="undefined" && (!g[\'$$_VALUES_' + - colas + - "'][" + - colexp + - '])) \ - {'; - var post = "g['$$_VALUES_" + colas + "'][" + colexp + ']=true;}'; - } - if (col.aggregatorid === 'SUM') { - return pre + "g['" + colas + "']+=(" + colexp + '||0);' + post; //f.field.arguments[0].toJS(); - } else if (col.aggregatorid === 'COUNT') { - - if (col.expression.columnid === '*') { - return pre + "g['" + colas + "']++;" + post; - } else { - return ( - pre + - 'if(typeof ' + - colexp + - '!="undefined") g[\'' + - colas + - "']++;" + - post - ); - } - } else if (col.aggregatorid === 'ARRAY') { - return pre + "g['" + colas + "'].push(" + colexp + ');' + post; - } else if (col.aggregatorid === 'MIN') { - return ( - pre + - "g['" + - colas + - "']=Math.min(g['" + - colas + - "']," + - colexp + - ');' + - post - ); - } else if (col.aggregatorid === 'MAX') { - return ( - pre + - "g['" + - colas + - "']=Math.max(g['" + - colas + - "']," + - colexp + - ');' + - post - ); - } else if (col.aggregatorid === 'FIRST') { - return ''; - } else if (col.aggregatorid === 'LAST') { - return pre + "g['" + colas + "']=" + colexp + ';' + post; - } else if (col.aggregatorid === 'AVG') { - return ( - '' + - pre + - "g['_SUM_" + - colas + - "']+=(y=" + - colexp + - ')||0;' + - "g['_COUNT_" + - colas + - '\']+=(typeof y!="undefined")?1:0;' + - "g['" + - colas + - "']=g['_SUM_" + - colas + - "']/g['_COUNT_" + - colas + - "'];" + - post - ); - // } - // else if(col.aggregatorid == 'AVG') { srg.push(colas+':0'); } - } else if (col.aggregatorid === 'AGGR') { - return ( - '' + - pre + - "g['" + - colas + - "']=" + - col.expression.toJS('g', -1) + - ';' + - post - ); - } else if (col.aggregatorid === 'REDUCE') { - return ( - '' + - pre + - "g['" + - colas + - "']=alasql.aggr." + - col.funcid + - '(' + - colexp + - ",g['" + - colas + - "'],2);" + - post - ); - } - - return ''; - } - - return ''; - }) - .join(''); - - // s += selectFields.map(function(f){ - - // if(f.constructor.name == 'LiteralValue') return ''; - // if (f.field instanceof SQLParser.nodes.FunctionValue - // && (f.field.name.toUpperCase() == 'SUM' || f.field.name.toUpperCase() == 'COUNT')) { - // return 'group.'+f.name.value+'=+(+group.'+f.name.value+'||0)+'+f.field.arguments[0].toJS('rec','')+';'; //f.field.arguments[0].toJS(); - // return 'group.'+f.name.value+'+='+f.field.arguments[0].toJS('rec','')+';'; //f.field.arguments[0].toJS(); - // return 'group.'+f.name.value+'+=rec.'+f.name.value+';'; //f.field.arguments[0].toJS(); - // }; - // return ''; - // }).join(''); - - // s += ' group.amt += rec.emplid;'; - // s += 'group.count++;'; - s += '}'; - }); - - return new Function('p,params,alasql', 'var y;' + s); -}; - -/* -// -// Select compiler part for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -// yy.Select.prototype.compileSources = function(query) { - -// }; - -function compileSelectStar(query, aliases, joinstar) { - var sp = '', - ss = [], - columnIds = {}; - - aliases.forEach(function(alias) { - - // if(!alias) { - // sp += 'for(var k1 in p) var w=p[k1];for(var k2 in w){r[k2]=w[k2]};'; - // } else { - - // TODO move this out of this function - query.ixsources = {}; - query.sources.forEach(function(source) { - query.ixsources[source.alias] = source; - }); - - // Fixed - var columns; - if (query.ixsources[alias]) { - var columns = query.ixsources[alias].columns; - } - - // if(columns.length == 0 && query.aliases[alias].tableid) { - // var columns = alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns; - // }; - - // Check if this is a Table or other - if (joinstar && alasql.options.joinstar == 'json') { - sp += "r['" + alias + "']={};"; - } - - if (columns && columns.length > 0) { - columns.forEach(function(tcol) { - if (joinstar && alasql.options.joinstar == 'underscore') { - ss.push( - "'" + - alias + - '_' + - tcol.columnid + - "':p['" + - alias + - "']['" + - tcol.columnid + - "']" - ); - } else if (joinstar && alasql.options.joinstar == 'json') { - // ss.push('\''+alias+'_'+tcol.columnid+'\':p[\''+alias+'\'][\''+tcol.columnid+'\']'); - sp += - "r['" + - alias + - "']['" + - tcol.columnid + - "']=p['" + - alias + - "']['" + - tcol.columnid + - "'];"; - } else { - var value = "p['" + alias + "']['" + tcol.columnid + "']"; - if (!columnIds[tcol.columnid]) { - var key = "'" + tcol.columnid + "':"; - ss.push(key + value); - columnIds[tcol.columnid] = { - id: ss.length - 1, - value: value, - key: key, - }; - } else { - var newValue = - value + - ' !== undefined ? ' + - value + - ' : ' + - columnIds[tcol.columnid].value; - ss[columnIds[tcol.columnid].id] = columnIds[tcol.columnid].key + newValue; - columnIds[tcol.columnid].value = newValue; - } - } - - query.selectColumns[escapeq(tcol.columnid)] = true; - - var coldef = { - columnid: tcol.columnid, - dbtypeid: tcol.dbtypeid, - dbsize: tcol.dbsize, - dbprecision: tcol.dbprecision, - dbenum: tcol.dbenum, - }; - query.columns.push(coldef); - query.xcolumns[coldef.columnid] = coldef; - }); - - } else { - - // if column not exist, then copy all - sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};'; - - query.dirtyColumns = true; - } - // } - - }); - - return {s: ss.join(','), sp: sp}; -} - -yy.Select.prototype.compileSelect1 = function(query, params) { - var self = this; - query.columns = []; - query.xcolumns = {}; - query.selectColumns = {}; - query.dirtyColumns = false; - var s = 'var r={'; - var sp = ''; - var ss = []; - - this.columns.forEach(function(col) { - - if (col instanceof yy.Column) { - if (col.columnid === '*') { - if (col.func) { - sp += - "r=params['" + - col.param + - "'](p['" + - query.sources[0].alias + - "'],p,params,alasql);"; - } else if (col.tableid) { - //Copy all - var ret = compileSelectStar(query, [col.tableid], false); - if (ret.s) { - ss = ss.concat(ret.s); - } - sp += ret.sp; - } else { - - var ret = compileSelectStar(query, Object.keys(query.aliases), true); //query.aliases[alias].tableid); - if (ret.s) { - ss = ss.concat(ret.s); - } - sp += ret.sp; - - // TODO Remove these lines - // In case of no information - // sp += 'for(var k1 in p){var w=p[k1];'+ - // 'for(k2 in w) {r[k2]=w[k2]}}' - } - } else { - // If field, otherwise - expression - var tbid = col.tableid; - - var dbid = - col.databaseid || query.sources[0].databaseid || query.database.databaseid; - if (!tbid) tbid = query.defcols[col.columnid]; - if (!tbid) tbid = query.defaultTableid; - if (col.columnid !== '_') { - if ( - false && - tbid && - !query.defcols['.'][col.tableid] && - !query.defcols[col.columnid] - ) { - ss.push( - "'" + - escapeq(col.as || col.columnid) + - "':p['" + - query.defaultTableid + - "']['" + - col.tableid + - "']['" + - col.columnid + - "']" - ); - } else { - // workaround for multisheet xlsx export with custom COLUMNS - var isMultisheetParam = - params && - params.length > 1 && - Array.isArray(params[0]) && - params[0].length >= 1 && - params[0][0].hasOwnProperty('sheetid'); - if (isMultisheetParam) { - sp = - 'var r={};var w=p["' + - tbid + - '"];' + - 'var cols=[' + - self.columns - .map(function(col) { - return "'" + col.columnid + "'"; - }) - .join(',') + - '];var colas=[' + - self.columns - .map(function(col) { - return "'" + (col.as || col.columnid) + "'"; - }) - .join(',') + - '];' + - "for (var i=0;i 0) { - - var tcol = xcolumns[col.columnid]; - - if (undefined === tcol) { - throw new Error('Column does not exist: ' + col.columnid); - } - - var coldef = { - columnid: col.as || col.columnid, - dbtypeid: tcol.dbtypeid, - dbsize: tcol.dbsize, - dbpecision: tcol.dbprecision, - dbenum: tcol.dbenum, - }; - - query.columns.push(coldef); - query.xcolumns[coldef.columnid] = coldef; - } else { - var coldef = { - columnid: col.as || col.columnid, - // dbtypeid:tcol.dbtypeid, - // dbsize:tcol.dbsize, - // dbpecision:tcol.dbprecision, - // dbenum: tcol.dbenum, - }; - - query.columns.push(coldef); - query.xcolumns[coldef.columnid] = coldef; - - query.dirtyColumns = true; - } - } else { - var coldef = { - columnid: col.as || col.columnid, - // dbtypeid:tcol.dbtypeid, - // dbsize:tcol.dbsize, - // dbpecision:tcol.dbprecision, - // dbenum: tcol.dbenum, - }; - - query.columns.push(coldef); - query.xcolumns[coldef.columnid] = coldef; - // This is a subquery? - // throw new Error('There is now such table \''+col.tableid+'\''); - } - } - } else if (col instanceof yy.AggrValue) { - if (!self.group) { - // self.group=[new yy.Column({columnid:'q',as:'q' })]; - self.group = ['']; - } - if (!col.as) { - col.as = escapeq(col.toString()); - } - - if ( - col.aggregatorid === 'SUM' || - col.aggregatorid === 'MAX' || - col.aggregatorid === 'MIN' || - col.aggregatorid === 'FIRST' || - col.aggregatorid === 'LAST' || - col.aggregatorid === 'AVG' || - col.aggregatorid === 'ARRAY' || - col.aggregatorid === 'REDUCE' - ) { - ss.push( - "'" + - escapeq(col.as) + - "':" + - n2u(col.expression.toJS('p', query.defaultTableid, query.defcols)) - ); - } else if (col.aggregatorid === 'COUNT') { - ss.push("'" + escapeq(col.as) + "':1"); - // Nothing - } - // todo: confirm that no default action must be implemented - - // query.selectColumns[col.aggregatorid+'('+escapeq(col.expression.toString())+')'] = thtd; - - var coldef = { - columnid: col.as || col.columnid || col.toString(), - // dbtypeid:tcol.dbtypeid, - // dbsize:tcol.dbsize, - // dbpecision:tcol.dbprecision, - // dbenum: tcol.dbenum, - }; - - query.columns.push(coldef); - query.xcolumns[coldef.columnid] = coldef; - - // else if (col.aggregatorid == 'MAX') { - // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid)) - // } else if (col.aggregatorid == 'MIN') { - // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid)) - // } - } else { - - ss.push( - "'" + - escapeq(col.as || col.columnid || col.toString()) + - "':" + - n2u(col.toJS('p', query.defaultTableid, query.defcols)) - ); - // ss.push('\''+escapeq(col.toString())+'\':'+col.toJS("p",query.defaultTableid)); - //if(col instanceof yy.Expression) { - query.selectColumns[escapeq(col.as || col.columnid || col.toString())] = true; - - var coldef = { - columnid: col.as || col.columnid || col.toString(), - // dbtypeid:tcol.dbtypeid, - // dbsize:tcol.dbsize, - // dbpecision:tcol.dbprecision, - // dbenum: tcol.dbenum, - }; - - query.columns.push(coldef); - query.xcolumns[coldef.columnid] = coldef; - } - }); - s += ss.join(',') + '};' + sp; - return s; - -}; -yy.Select.prototype.compileSelect2 = function(query) { - var s = query.selectfns; - if (this.orderColumns && this.orderColumns.length > 0) { - this.orderColumns.forEach(function(v, idx) { - var key = '$$$' + idx; - if (v instanceof yy.Column && query.xcolumns[v.columnid]) { - s += "r['" + key + "']=r['" + v.columnid + "'];"; - } else { - s += "r['" + key + "']=" + v.toJS('p', query.defaultTableid, query.defcols) + ';'; - } - query.removeKeys.push(key); - }); - } - - return new Function('p,params,alasql', 'var y;' + s + 'return r'); -}; - -yy.Select.prototype.compileSelectGroup0 = function(query) { - var self = this; - self.columns.forEach(function(col, idx) { - if (!(col instanceof yy.Column && col.columnid === '*')) { - var colas; - // = col.as; - if (col instanceof yy.Column) { - colas = escapeq(col.columnid); - } else { - colas = escapeq(col.toString(true)); - - } - for (var i = 0; i < idx; i++) { - if (colas === self.columns[i].nick) { - colas = self.columns[i].nick + ':' + idx; - break; - } - } - // } - col.nick = colas; - if ( - col.funcid && - (col.funcid.toUpperCase() === 'ROWNUM' || col.funcid.toUpperCase() === 'ROW_NUMBER') - ) { - query.rownums.push(col.as); - } - - // } - } else { - query.groupStar = col.tableid || 'default'; - } - }); - - this.columns.forEach(function(col) { - if (col.findAggregator) { - col.findAggregator(query); - } - }); - - if (this.having) { - if (this.having.findAggregator) { - this.having.findAggregator(query); - } - } -}; - -yy.Select.prototype.compileSelectGroup1 = function(query) { - var self = this; - var s = 'var r = {};'; - - self.columns.forEach(function(col) { - - if (col instanceof yy.Column && col.columnid === '*') { - // s += 'for(var k in g){r[k]=g[k]};'; - // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};'; - - s += 'for(var k in g) {r[k]=g[k]};'; - return ''; - - } else { - // var colas = col.as; - var colas = col.as; - if (colas === undefined) { - if (col instanceof yy.Column) { - colas = escapeq(col.columnid); - } else { - colas = col.nick; - } - } - query.groupColumns[colas] = col.nick; - - // if(col.as) { - s += "r['" + colas + "']="; - // // } else { - // // s += 'r[\''+escapeq()+'\']='; - // // }; - // // s += ';'; - - s += n2u(col.toJS('g', '')) + ';'; - - for (var i = 0; i < query.removeKeys.length; i++) { - // THis part should be intellectual - if (query.removeKeys[i] === colas) { - query.removeKeys.splice(i, 1); - break; - } - } - } - }); - // return new Function('g,params,alasql',s+'return r'); - return s; -}; - -yy.Select.prototype.compileSelectGroup2 = function(query) { - var self = this; - var s = query.selectgfns; - self.columns.forEach(function(col) { - - if (query.ingroup.indexOf(col.nick) > -1) { - s += "r['" + (col.as || col.nick) + "']=g['" + col.nick + "'];"; - } - }); - - if (this.orderColumns && this.orderColumns.length > 0) { - this.orderColumns.forEach(function(v, idx) { - - var key = '$$$' + idx; - - if (v instanceof yy.Column && query.groupColumns[v.columnid]) { - s += "r['" + key + "']=r['" + v.columnid + "'];"; - } else { - s += "r['" + key + "']=" + v.toJS('g', '') + ';'; - } - query.removeKeys.push(key); - }); - } - - return new Function('g,params,alasql', 'var y;' + s + 'return r'); -}; - -// SELECY * REMOVE [COLUMNS] col-list, LIKE '' -yy.Select.prototype.compileRemoveColumns = function(query) { - var self = this; - if (typeof this.removecolumns !== 'undefined') { - query.removeKeys = query.removeKeys.concat( - this.removecolumns - .filter(function(column) { - return typeof column.like === 'undefined'; - }) - .map(function(column) { - return column.columnid; - }) - ); - - query.removeLikeKeys = this.removecolumns - .filter(function(column) { - return typeof column.like !== 'undefined'; - }) - .map(function(column) { - // return new RegExp((column.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'); - return column.like.value; - }); - } -}; - -/* global yy */ - -yy.Select.prototype.compileHaving = function(query) { - if (this.having) { - var s = this.having.toJS('g', -1); - query.havingfns = s; - - return new Function('g,params,alasql', 'var y;return ' + s); - } - - return function() { - return true; - }; -}; - -yy.Select.prototype.compileOrder = function(query) { - var self = this; - self.orderColumns = []; - if (this.order) { - - if ( - this.order && - this.order.length == 1 && - this.order[0].expression && - typeof this.order[0].expression == 'function' - ) { - - var func = this.order[0].expression; - - return function(a, b) { - var ra = func(a), - rb = func(b); - if (ra > rb) return 1; - if (ra == rb) return 0; - return -1; - }; - } - - var s = ''; - var sk = ''; - this.order.forEach(function(ord, idx) { - - if (ord.expression instanceof yy.NumValue) { - var v = self.columns[ord.expression.value - 1]; - } else { - var v = ord.expression; - } - self.orderColumns.push(v); - - var key = '$$$' + idx; - - // Date conversion - var dg = ''; - //if(alasql.options.valueof) - if (ord.expression instanceof yy.Column) { - var columnid = ord.expression.columnid; - if (query.xcolumns[columnid]) { - var dbtypeid = query.xcolumns[columnid].dbtypeid; - if (dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') - dg = '.valueOf()'; - // TODO Add other types mapping - } else { - if (alasql.options.valueof) dg = '.valueOf()'; // TODO Check - } - // dg = '.valueOf()'; - } - // COLLATE NOCASE - if (ord.nocase) dg += '.toUpperCase()'; - s += - "if((a['" + - key + - "']||'')" + - dg + - (ord.direction == 'ASC' ? '>' : '<') + - "(b['" + - key + - "']||'')" + - dg + - ')return 1;'; - s += "if((a['" + key + "']||'')" + dg + "==(b['" + key + "']||'')" + dg + '){'; - - /* -if(false) { - - if(ord.expression instanceof yy.NumValue) { - ord.expression = self.columns[ord.expression.value-1]; - - ord.expression = new yy.Column({columnid:ord.expression.nick}); - }; - - if(ord.expression instanceof yy.Column) { - var columnid = ord.expression.columnid; - if(query.xcolumns[columnid]) { - var dbtypeid = query.xcolumns[columnid].dbtypeid; - if( dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') dg = '.valueOf()'; - // TODO Add other types mapping - } else { - if(alasql.options.valueof) dg = '.valueOf()'; // TODO Check - } - // COLLATE NOCASE - if(ord.nocase) dg += '.toUpperCase()'; - - s += 'if((a[\''+columnid+"']||'')"+dg+(ord.direction == 'ASC'?'>':'<')+'(b[\''+columnid+"']||'')"+dg+')return 1;'; - s += 'if((a[\''+columnid+"']||'')"+dg+'==(b[\''+columnid+"']||'')"+dg+'){'; - - } else { - dg = '.valueOf()'; - // COLLATE NOCASE - if(ord.nocase) dg += '.toUpperCase()'; - s += 'if(('+ord.toJS('a','')+"||'')"+dg+(ord.direction == 'ASC'?'>(':'<(')+ord.toJS('b','')+"||'')"+dg+')return 1;'; - s += 'if(('+ord.toJS('a','')+"||'')"+dg+'==('+ord.toJS('b','')+"||'')"+dg+'){'; - } - - // TODO Add date comparision - -} -*/ - sk += '}'; - }); - s += 'return 0;'; - s += sk + 'return -1'; - query.orderfns = s; - - return new Function('a,b', 'var y;' + s); - } -}; - -// Pivot functions -/** - Compile Pivot functions - @param {object} query Source query - @return {function} Pivoting functions -*/ -yy.Select.prototype.compilePivot = function(query) { - var self = this; - /** @type {string} Main pivoting column */ - - var columnid = self.pivot.columnid; - var exprcolid = self.pivot.expr.expression.columnid; - var aggr = self.pivot.expr.aggregatorid; - var inlist = self.pivot.inlist; - - if (inlist) { - inlist = inlist.map(function(l) { - return l.expr.columnid; - }); - } - - // Function for PIVOT post production - return function() { - var query = this; - var cols = query.columns - .filter(function(col) { - return col.columnid != columnid && col.columnid != exprcolid; - }) - .map(function(col) { - return col.columnid; - }); - - var newcols = []; - var gnewcols = {}; - var gr = {}; - var ga = {}; - var data = []; - query.data.forEach(function(d) { - if (!inlist || inlist.indexOf(d[columnid]) > -1) { - var gx = cols - .map(function(colid) { - return d[colid]; - }) - .join('`'); - var g = gr[gx]; - if (!g) { - g = {}; - gr[gx] = g; - data.push(g); - cols.forEach(function(colid) { - g[colid] = d[colid]; - }); - } - - if (!ga[gx]) { - ga[gx] = {}; - } - - if (ga[gx][d[columnid]]) { - ga[gx][d[columnid]]++; - } else { - ga[gx][d[columnid]] = 1; - } - - if (!gnewcols[d[columnid]]) { - gnewcols[d[columnid]] = true; - newcols.push(d[columnid]); - } - - if (aggr == 'SUM' || aggr == 'AVG') { - if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0; - g[d[columnid]] += d[exprcolid]; - } else if (aggr == 'COUNT') { - if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0; - g[d[columnid]]++; - } else if (aggr == 'MIN') { - if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = Infinity; - if (d[exprcolid] < g[d[columnid]]) g[d[columnid]] = d[exprcolid]; - } else if (aggr == 'MAX') { - if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = -Infinity; - if (d[exprcolid] > g[d[columnid]]) g[d[columnid]] = d[exprcolid]; - } else if (aggr == 'FIRST') { - if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid]; - } else if (aggr == 'LAST') { - g[d[columnid]] = d[exprcolid]; - } else if (alasql.aggr[aggr]) { - // Custom aggregator - alasql.aggr[aggr](g[d[columnid]], d[exprcolid]); - } else { - throw new Error('Wrong aggregator in PIVOT clause'); - } - } - }); - - if (aggr == 'AVG') { - for (var gx in gr) { - var d = gr[gx]; - for (var colid in d) { - if (cols.indexOf(colid) == -1 && colid != exprcolid) { - d[colid] = d[colid] / ga[gx][colid]; - } - } - } - } - - // columns - query.data = data; - - if (inlist) newcols = inlist; - - var ncol = query.columns.filter(function(col) { - return col.columnid == exprcolid; - })[0]; - query.columns = query.columns.filter(function(col) { - return !(col.columnid == columnid || col.columnid == exprcolid); - }); - newcols.forEach(function(colid) { - var nc = cloneDeep(ncol); - nc.columnid = colid; - query.columns.push(nc); - }); - }; -}; - -// var columnid = this.pivot.columnid; - -// return function(data){ - -// if(false) { - -// } - -// if(false) { - -// } -// }; - -/** - Compile UNPIVOT clause - @param {object} query Query object - @return {function} Function for unpivoting -*/ -yy.Select.prototype.compileUnpivot = function(query) { - var self = this; - var tocolumnid = self.unpivot.tocolumnid; - var forcolumnid = self.unpivot.forcolumnid; - var inlist = self.unpivot.inlist.map(function(l) { - return l.columnid; - }); - - return function() { - var data = []; - - var xcols = query.columns - .map(function(col) { - return col.columnid; - }) - .filter(function(colid) { - return inlist.indexOf(colid) == -1 && colid != forcolumnid && colid != tocolumnid; - }); - - query.data.forEach(function(d) { - inlist.forEach(function(colid) { - var nd = {}; - xcols.forEach(function(xcolid) { - nd[xcolid] = d[xcolid]; - }); - nd[forcolumnid] = colid; - nd[tocolumnid] = d[colid]; - data.push(nd); - }); - }); - - query.data = data; - - // }); - }; -}; - -/* -// -// ROLLUP(), CUBE(), GROUPING SETS() for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/** - Calculate ROLLUP() combination - */ - -var rollup = function(a, query) { - var rr = []; - var mask = 0; - var glen = a.length; - for (var g = 0; g < glen + 1; g++) { - var ss = []; - for (var i = 0; i < glen; i++) { - if (a[i] instanceof yy.Column) { - a[i].nick = escapeq(a[i].columnid); - - query.groupColumns[escapeq(a[i].columnid)] = a[i].nick; - var aaa = a[i].nick + '\t' + a[i].toJS('p', query.sources[0].alias, query.defcols); - } else { - query.groupColumns[escapeq(a[i].toString())] = escapeq(a[i].toString()); - var aaa = - escapeq(a[i].toString()) + - '\t' + - a[i].toJS('p', query.sources[0].alias, query.defcols); - } - - if (mask & (1 << i)) ss.push(aaa); - } - rr.push(ss); - mask = (mask << 1) + 1; - } - return rr; -}; - -/** - Calculate CUBE() - */ -var cube = function(a, query) { - var rr = []; - var glen = a.length; - var glenCube = 1 << glen; - for (var g = 0; g < glenCube; g++) { - var ss = []; - for (var i = 0; i < glen; i++) { - if (g & (1 << i)) - //ss.push(a[i]); - //ss = cartes(ss,decartes(a[i])); - - // var aaa = a[i].toString()+'\t' - // +a[i].toJS('p',query.sources[0].alias,query.defcols); - - ss = ss.concat(decartes(a[i], query)); - // - } - rr.push(ss); - } - return rr; -}; - -/** - GROUPING SETS() - */ -var groupingsets = function(a, query) { - return a.reduce(function(acc, d) { - acc = acc.concat(decartes(d, query)); - return acc; - }, []); -}; - -/** - Cartesian production - */ -var cartes = function(a1, a2) { - var rrr = []; - for (var i1 = 0; i1 < a1.length; i1++) { - for (var i2 = 0; i2 < a2.length; i2++) { - rrr.push(a1[i1].concat(a2[i2])); - } - } - return rrr; -}; - -/** - Prepare groups function - */ -function decartes(gv, query) { - - if (Array.isArray(gv)) { - var res = [[]]; - for (var t = 0; t < gv.length; t++) { - if (gv[t] instanceof yy.Column) { - - gv[t].nick = escapeq(gv[t].columnid); - query.groupColumns[gv[t].nick] = gv[t].nick; - res = res.map(function(r) { - return r.concat( - gv[t].nick + '\t' + gv[t].toJS('p', query.sources[0].alias, query.defcols) - ); - }); - // res = res.map(function(r){return r.concat(gv[t].columnid)}); - } else if (gv[t] instanceof yy.FuncValue) { - query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString()); - res = res.map(function(r) { - return r.concat( - escapeq(gv[t].toString()) + - '\t' + - gv[t].toJS('p', query.sources[0].alias, query.defcols) - ); - }); - // to be defined - } else if (gv[t] instanceof yy.GroupExpression) { - if (gv[t].type == 'ROLLUP') res = cartes(res, rollup(gv[t].group, query)); - else if (gv[t].type == 'CUBE') res = cartes(res, cube(gv[t].group, query)); - else if (gv[t].type == 'GROUPING SETS') - res = cartes(res, groupingsets(gv[t].group, query)); - else throw new Error('Unknown grouping function'); - } else if (gv[t] === '') { - - res = [['1\t1']]; - } else { - // if(gv[t]) - - res = res.map(function(r) { - query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString()); - return r.concat( - escapeq(gv[t].toString()) + - '\t' + - gv[t].toJS('p', query.sources[0].alias, query.defcols) - ); - }); - // res = res.concat(gv[t]); - } - - } - return res; - } else if (gv instanceof yy.FuncValue) { - - query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString()); - return [gv.toString() + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; - } else if (gv instanceof yy.Column) { - gv.nick = escapeq(gv.columnid); - query.groupColumns[gv.nick] = gv.nick; - return [gv.nick + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; // Is this ever happened? - // } else if(gv instanceof yy.Expression) { - // return [gv.columnid]; // Is this ever happened? - } else { - query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString()); - return [ - escapeq(gv.toString()) + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols), - ]; - // throw new Error('Single argument in the group without array'); - } - -} - -/* -// -// Select run-time part for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Select.prototype.compileDefCols = function(query, databaseid) { - - var defcols = {'.': {}}; - if (this.from) { - this.from.forEach(function(fr) { - defcols['.'][fr.as || fr.tableid] = true; - if (fr instanceof yy.Table) { - var alias = fr.as || fr.tableid; - - var table = alasql.databases[fr.databaseid || databaseid].tables[fr.tableid]; - - if (undefined === table) { - throw new Error('Table does not exist: ' + fr.tableid); - } - - if (table.columns) { - table.columns.forEach(function(col) { - if (defcols[col.columnid]) { - defcols[col.columnid] = '-'; // Ambigous - } else { - defcols[col.columnid] = alias; - } - }); - } - } else if (fr instanceof yy.Select) { - } else if (fr instanceof yy.Search) { - } else if (fr instanceof yy.ParamValue) { - } else if (fr instanceof yy.VarValue) { - } else if (fr instanceof yy.FuncValue) { - } else if (fr instanceof yy.FromData) { - } else if (fr instanceof yy.Json) { - } else if (fr.inserted) { - } else { - - throw new Error('Unknown type of FROM clause'); - } - }); - } - - if (this.joins) { - this.joins.forEach(function(jn) { - defcols['.'][jn.as || jn.table.tableid] = true; - - if (jn.table) { - var alias = jn.table.tableid; - if (jn.as) alias = jn.as; - var alias = jn.as || jn.table.tableid; - var table = - alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid]; - - if (table.columns) { - table.columns.forEach(function(col) { - if (defcols[col.columnid]) { - defcols[col.columnid] = '-'; // Ambigous - } else { - defcols[col.columnid] = alias; - } - }); - } - } else if (jn.select) { - } else if (jn.param) { - } else if (jn.func) { - } else { - throw new Error('Unknown type of FROM clause'); - } - }); - } - // for(var k in defcols) { - // if(defcols[k] == '-') defcols[k] = undefined; - // } - - return defcols; -}; - -/* -// -// UNION for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -// SELECT UNION statement - -yy.Union = function(params) { - return yy.extend(this, params); -}; -yy.Union.prototype.toString = function() { - return 'UNION'; -}; - -yy.Union.prototype.compile = function(tableid) { - return null; -}; - -/* -// -// CROSS AND OUTER APPLY for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Apply = function(params) { - return yy.extend(this, params); -}; - -yy.Apply.prototype.toString = function() { - var s = this.applymode + ' APPLY (' + this.select.toString() + ')'; - - if (this.as) s += ' AS ' + this.as; - - return s; -}; - -/* -// -// CROSS AND OUTER APPLY for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Over = function(params) { - return yy.extend(this, params); -}; -yy.Over.prototype.toString = function() { - var s = 'OVER ('; - if (this.partition) { - s += 'PARTITION BY ' + this.partition.toString(); - if (this.order) s += ' '; - } - if (this.order) { - s += 'ORDER BY ' + this.order.toString(); - } - s += ')'; - return s; -}; - -/* -// -// Expressions for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/** - Expression statement ( = 2*2; ) - @class - @param {object} params Initial parameters -*/ -yy.ExpressionStatement = function(params) { - return yy.extend(this, params); -}; - -/** - Convert AST to string - @this ExpressionStatement - @return {string} -*/ -yy.ExpressionStatement.prototype.toString = function() { - return this.expression.toString(); -}; -/** - Execute statement - @param {string} databaseid Database identificatro - @param {object} params Statement parameters - @param {statement-callback} cb Callback - @return {object} Result value -*/ -yy.ExpressionStatement.prototype.execute = function(databaseid, params, cb) { - if (this.expression) { - - alasql.precompile(this, databaseid, params); // Precompile queries - var exprfn = new Function( - 'params,alasql,p', - 'var y;return ' + this.expression.toJS('({})', '', null) - ).bind(this); - var res = exprfn(params, alasql); - if (cb) { - res = cb(res); - } - return res; - } -}; - -/** - Expression class - @class - @param {object} params Initial parameters -*/ - -yy.Expression = function(params) { - return yy.extend(this, params); -}; - -/** - Convert AST to string - @this ExpressionStatement - @return {string} -*/ -yy.Expression.prototype.toString = function(dontas) { - var s = this.expression.toString(dontas); - if (this.order) { - s += ' ' + this.order.toString(); - } - if (this.nocase) { - s += ' COLLATE NOCASE'; - } - if (this.direction) { - s += ' ' + this.direction; - } - return s; -}; - -/** - Find aggregator in AST subtree - @this ExpressionStatement - @param {object} query Query object -*/ -yy.Expression.prototype.findAggregator = function(query) { - if (this.expression.findAggregator) { - this.expression.findAggregator(query); - } -}; - -/** - Convert AST to JavaScript expression - @this ExpressionStatement - @param {string} context Context string, e.g. 'p','g', or 'x' - @param {string} tableid Default table name - @param {object} defcols Default columns dictionary - @return {string} JavaScript expression -*/ - -yy.Expression.prototype.toJS = function(context, tableid, defcols) { - - if (this.expression.reduced) { - return 'true'; - } - return this.expression.toJS(context, tableid, defcols); -}; - -/** - Compile AST to JavaScript expression - @this ExpressionStatement - @param {string} context Context string, e.g. 'p','g', or 'x' - @param {string} tableid Default table name - @param {object} defcols Default columns dictionary - @return {string} JavaScript expression -*/ - -yy.Expression.prototype.compile = function(context, tableid, defcols) { - - if (this.reduced) { - return returnTrue(); - } - return new Function('p', 'var y;return ' + this.toJS(context, tableid, defcols)); -}; - -/** - JavaScript class - @class -*/ -yy.JavaScript = function(params) { - return yy.extend(this, params); -}; -yy.JavaScript.prototype.toString = function() { - var s = '``' + this.value + '``'; - return s; -}; - -yy.JavaScript.prototype.toJS = function(/* context, tableid, defcols*/) { - - return '(' + this.value + ')'; -}; -yy.JavaScript.prototype.execute = function(databaseid, params, cb) { - var res = 1; - var expr = new Function('params,alasql,p', this.value); - expr(params, alasql); - if (cb) { - res = cb(res); - } - return res; -}; - -/** - Literal class - @class - @example - MyVar, [My vairable], `MySQL variable` -*/ - -yy.Literal = function(params) { - return yy.extend(this, params); -}; -yy.Literal.prototype.toString = function(dontas) { - var s = this.value; - if (this.value1) { - s = this.value1 + '.' + s; - } - if (this.alias && !dontas) s += ' AS ' + this.alias; - // else s = tableid+'.'+s; - return s; -}; - -/** - Join class - @class -*/ - -yy.Join = function(params) { - return yy.extend(this, params); -}; -yy.Join.prototype.toString = function() { - var s = ' '; - if (this.joinmode) { - s += this.joinmode + ' '; - } - s += 'JOIN ' + this.table.toString(); - return s; -}; - -// } - -/** - Table class - @class -*/ - -yy.Table = function(params) { - return yy.extend(this, params); -}; -yy.Table.prototype.toString = function() { - var s = this.tableid; - // if(this.joinmode) - if (this.databaseid) { - s = this.databaseid + '.' + s; - } - return s; -}; - -/** - View class - @class -*/ - -yy.View = function(params) { - return yy.extend(this, params); -}; -yy.View.prototype.toString = function() { - var s = this.viewid; - // if(this.joinmode) - if (this.databaseid) { - s = this.databaseid + '.' + s; - } - return s; -}; - -/** - Binary operation class - @class -*/ -yy.Op = function(params) { - return yy.extend(this, params); -}; -yy.Op.prototype.toString = function() { - if (this.op === 'IN' || this.op === 'NOT IN') { - return this.left.toString() + ' ' + this.op + ' (' + this.right.toString() + ')'; - } - if (this.allsome) { - return ( - this.left.toString() + - ' ' + - this.op + - ' ' + - this.allsome + - ' (' + - this.right.toString() + - ')' - ); - } - if (this.op === '->' || this.op === '!') { - var s = this.left.toString() + this.op; - - if (typeof this.right !== 'string' && typeof this.right !== 'number') { - s += '('; - } - - s += this.right.toString(); - - if (typeof this.right !== 'string' && typeof this.right !== 'number') { - s += ')'; - } - - return s; - } - return ( - this.left.toString() + - ' ' + - this.op + - ' ' + - (this.allsome ? this.allsome + ' ' : '') + - this.right.toString() - ); -}; - -yy.Op.prototype.findAggregator = function(query) { - - if (this.left && this.left.findAggregator) { - this.left.findAggregator(query); - } - // Do not go in > ALL - if (this.right && this.right.findAggregator && !this.allsome) { - this.right.findAggregator(query); - } -}; - -yy.Op.prototype.toType = function(tableid) { - if (['-', '*', '/', '%', '^'].indexOf(this.op) > -1) { - return 'number'; - } - if (['||'].indexOf(this.op) > -1) { - return 'string'; - } - if (this.op === '+') { - if (this.left.toType(tableid) === 'string' || this.right.toType(tableid) === 'string') { - return 'string'; - } - if (this.left.toType(tableid) === 'number' || this.right.toType(tableid) === 'number') { - return 'number'; - } - } - - if ( - [ - 'AND', - 'OR', - 'NOT', - '=', - '==', - '===', - '!=', - '!==', - '!===', - '>', - '>=', - '<', - '<=', - 'IN', - 'NOT IN', - 'LIKE', - 'NOT LIKE', - 'REGEXP', - 'GLOB', - ].indexOf(this.op) > -1 - ) { - return 'boolean'; - } - - if ( - this.op === 'BETWEEN' || - this.op === 'NOT BETWEEN' || - this.op === 'IS NULL' || - this.op === 'IS NOT NULL' - ) { - return 'boolean'; - } - - if (this.allsome) { - return 'boolean'; - } - - if (!this.op) { - return this.left.toType(); - } - - return 'unknown'; -}; - -yy.Op.prototype.toJS = function(context, tableid, defcols) { - - var s; - var refs = []; - var op = this.op; - var _this = this; - //var leftJS = function(){return _this.left.toJS(context,tableid, defcols)}; - //var rightJS = function(){return _this.right.toJS(context,tableid, defcols)}; - var accessedLeft = false, - accessedRight = false; - var ref = function(expr) { - if (expr.toJS) { - expr = expr.toJS(context, tableid, defcols); - } - var i = refs.push(expr) - 1; - return 'y[' + i + ']'; - }; - var leftJS = function() { - return ref(_this.left); - }; - var rightJS = function() { - return ref(_this.right); - }; - - if (this.op === '=') { - op = '==='; - } else if (this.op === '<>') { - op = '!='; - } else if (this.op === 'OR') { - op = '||'; - } - - // Arrow operator - if (this.op === '->') { - // Expression to prevent error if object is empty (#344) - var ljs = '(' + leftJS() + '||{})'; - - if (typeof this.right === 'string') { - s = ljs + '["' + this.right + '"]'; - } else if (typeof this.right === 'number') { - s = ljs + '[' + this.right + ']'; - } else if (this.right instanceof yy.FuncValue) { - var ss = []; - if (!(!this.right.args || 0 === this.right.args.length)) { - var ss = this.right.args.map(ref); - } - s = '' + ljs + "['" + this.right.funcid + "'](" + ss.join(',') + ')'; - } else { - s = '' + ljs + '[' + rightJS() + ']'; - } - } - - if (this.op === '!') { - if (typeof this.right === 'string') { - s = - '' + - 'alasql.databases[alasql.useid].objects[' + - leftJS() + - ']["' + - this.right + - '"]'; - } - // TODO - add other cases - } - - if (this.op === 'IS') { - s = - '' + - '(' + - '(' + - leftJS() + - '==null)' + // Cant be === - ' === ' + - '(' + - rightJS() + - '==null)' + // Cant be === - ')'; - } - - if (this.op === '==') { - s = '' + 'alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + ')'; - } - - if (this.op === '===' || this.op === '!===') { - s = - '' + - '(' + - (this.op === '!===' ? '!' : '') + - '(' + - '(' + - leftJS() + - ').valueOf()' + - '===' + - '(' + - rightJS() + - ').valueOf()' + - ')' + - ')'; - } - - if (this.op === '!==') { - s = '' + '(!alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + '))'; - } - if (this.op === '||') { - s = '' + "(''+(" + leftJS() + "||'')+(" + rightJS() + '||""))'; - } - if (this.op === 'LIKE' || this.op === 'NOT LIKE') { - var s = - '(' + - (this.op === 'NOT LIKE' ? '!' : '') + - 'alasql.utils.like(' + - rightJS() + - ',' + - leftJS(); - if (this.escape) { - s += ',' + ref(this.escape); - } - s += '))'; - } - if (this.op === 'REGEXP') { - s = 'alasql.stdfn.REGEXP_LIKE(' + leftJS() + ',' + rightJS() + ')'; - } - if (this.op === 'GLOB') { - s = 'alasql.utils.glob(' + leftJS() + ',' + rightJS() + ')'; - } - - if (this.op === 'BETWEEN' || this.op === 'NOT BETWEEN') { - var left = leftJS(); - s = - '' + - '(' + - (this.op === 'NOT BETWEEN' ? '!' : '') + - '(' + - '(' + - ref(this.right1) + - '<=' + - left + - ') && (' + - left + - '<=' + - ref(this.right2) + - ')' + - ')' + - ')'; - - } - - if (this.op === 'IN') { - if (this.right instanceof yy.Select) { - s = '('; - // s += 'this.query.queriesdata['+this.queriesidx+']'; - // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,context))'; - s += - 'alasql.utils.flatArray(this.queriesfn[' + - this.queriesidx + - '](params,null,' + - context + - '))'; - s += '.indexOf('; - s += leftJS() + ')>-1)'; - } else if (Array.isArray(this.right)) { - // if(this.right.length == 0) return 'false'; - s = '([' + this.right.map(ref).join(',') + '].indexOf(' + leftJS() + ')>-1)'; - - } else { - s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)'; - - // } else { - // throw new Error('Wrong IN operator without SELECT part'); - } - } - - if (this.op === 'NOT IN') { - if (this.right instanceof yy.Select) { - s = '('; - //this.query.queriesdata['+this.queriesidx+'] - // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,p))'; - s += 'alasql.utils.flatArray(this.queriesfn[' + this.queriesidx + '](params,null,p))'; - s += '.indexOf('; - s += leftJS() + ')<0)'; - } else if (Array.isArray(this.right)) { - // if(this.right.length == 0) return 'true'; - s = '([' + this.right.map(ref).join(',') + '].indexOf('; - s += leftJS() + ')<0)'; - } else { - s = '(' + rightJS() + '.indexOf('; - s += leftJS() + ')==-1)'; - - // throw new Error('Wrong NOT IN operator without SELECT part'); - } - } - - if (this.allsome === 'ALL') { - var s; - if (this.right instanceof yy.Select) { - // var s = 'this.query.queriesdata['+this.queriesidx+']'; - s = - 'alasql.utils.flatArray(this.query.queriesfn[' + - this.queriesidx + - '](params,null,p))'; - - s += '.every(function(b){return ('; - s += leftJS() + ')' + op + 'b})'; - } else if (Array.isArray(this.right)) { - s = - '' + - (this.right.length == 1 - ? ref(this.right[0]) - : '[' + this.right.map(ref).join(',') + ']'); - s += '.every(function(b){return ('; - s += leftJS() + ')' + op + 'b})'; - } else { - throw new Error('NOT IN operator without SELECT'); - } - } - - if (this.allsome === 'SOME' || this.allsome === 'ANY') { - var s; - if (this.right instanceof yy.Select) { - // var s = 'this.query.queriesdata['+this.queriesidx+']'; - s = - 'alasql.utils.flatArray(this.query.queriesfn[' + - this.queriesidx + - '](params,null,p))'; - s += '.some(function(b){return ('; - s += leftJS() + ')' + op + 'b})'; - } else if (Array.isArray(this.right)) { - s = - '' + - (this.right.length == 1 - ? ref(this.right[0]) - : '[' + this.right.map(ref).join(',') + ']'); - s += '.some(function(b){return ('; - s += leftJS() + ')' + op + 'b})'; - } else { - throw new Error('SOME/ANY operator without SELECT'); - } - } - - // Special case for AND optimization (if reduced) - if (this.op === 'AND') { - if (this.left.reduced) { - if (this.right.reduced) { - return 'true'; - } else { - s = rightJS(); - } - } else if (this.right.reduced) { - s = leftJS(); - } - - // Otherwise process as regular operation (see below) - op = '&&'; - } - - // if(this.op === '^') { - // // return 'Math.pow(' - // // + leftJS() - // // + ',' - // // + rightJS() - // // + ')'; - // } - - // Change names - - var expr = s || '(' + leftJS() + op + rightJS() + ')'; - - var declareRefs = 'y=[(' + refs.join('), (') + ')]'; - - if (op === '&&' || op === '||' || op === 'IS' || op === 'IS NULL' || op === 'IS NOT NULL') { - return '(' + declareRefs + ', ' + expr + ')'; - } - - return ( - '(' + declareRefs + ', ' + 'y.some(function(e){return e == null}) ? void 0 : ' + expr + ')' - ); -}; - -yy.VarValue = function(params) { - return yy.extend(this, params); -}; -yy.VarValue.prototype.toString = function() { - return '@' + this.variable; -}; - -yy.VarValue.prototype.toType = function() { - return 'unknown'; -}; - -yy.VarValue.prototype.toJS = function() { - return "alasql.vars['" + this.variable + "']"; -}; - -yy.NumValue = function(params) { - return yy.extend(this, params); -}; -yy.NumValue.prototype.toString = function() { - return this.value.toString(); -}; - -yy.NumValue.prototype.toType = function() { - return 'number'; -}; - -yy.NumValue.prototype.toJS = function() { - return '' + this.value; -}; - -yy.StringValue = function(params) { - return yy.extend(this, params); -}; -yy.StringValue.prototype.toString = function() { - return "'" + this.value.toString() + "'"; -}; - -yy.StringValue.prototype.toType = function() { - return 'string'; -}; - -yy.StringValue.prototype.toJS = function() { - - // return "'"+doubleqq(this.value)+"'"; - return "'" + escapeq(this.value) + "'"; -}; - -yy.DomainValueValue = function(params) { - return yy.extend(this, params); -}; -yy.DomainValueValue.prototype.toString = function() { - return 'VALUE'; -}; - -yy.DomainValueValue.prototype.toType = function() { - return 'object'; -}; - -yy.DomainValueValue.prototype.toJS = function(context, tableid, defcols) { - - // return "'"+doubleqq(this.value)+"'"; - return context; -}; - -yy.ArrayValue = function(params) { - return yy.extend(this, params); -}; -yy.ArrayValue.prototype.toString = function() { - return 'ARRAY[]'; -}; - -yy.ArrayValue.prototype.toType = function() { - return 'object'; -}; - -yy.ArrayValue.prototype.toJS = function(context, tableid, defcols) { - - // return "'"+doubleqq(this.value)+"'"; - return ( - '[(' + - this.value - .map(function(el) { - return el.toJS(context, tableid, defcols); - }) - .join('), (') + - ')]' - ); -}; - -yy.LogicValue = function(params) { - return yy.extend(this, params); -}; -yy.LogicValue.prototype.toString = function() { - return this.value ? 'TRUE' : 'FALSE'; -}; - -yy.LogicValue.prototype.toType = function() { - return 'boolean'; -}; - -yy.LogicValue.prototype.toJS = function() { - return this.value ? 'true' : 'false'; -}; - -yy.NullValue = function(params) { - return yy.extend(this, params); -}; -yy.NullValue.prototype.toString = function() { - return 'NULL'; -}; -yy.NullValue.prototype.toJS = function() { - return 'undefined'; - // return 'undefined'; -}; - -yy.ParamValue = function(params) { - return yy.extend(this, params); -}; -yy.ParamValue.prototype.toString = function() { - return '$' + this.param; -}; -yy.ParamValue.prototype.toJS = function() { - if (typeof this.param === 'string') { - return "params['" + this.param + "']"; - } - - return 'params[' + this.param + ']'; -}; - -yy.UniOp = function(params) { - return yy.extend(this, params); -}; -yy.UniOp.prototype.toString = function() { - var s; - s = void 0; - if (this.op === '~') { - s = this.op + this.right.toString(); - } - if (this.op === '-') { - s = this.op + this.right.toString(); - } - if (this.op === '+') { - s = this.op + this.right.toString(); - } - if (this.op === '#') { - s = this.op + this.right.toString(); - } - if (this.op === 'NOT') { - s = this.op + '(' + this.right.toString() + ')'; - } - if (this.op === null) { - s = '(' + this.right.toString() + ')'; - } - if (!s) { - s = '(' + this.right.toString() + ')'; - } - return s; -}; - -yy.UniOp.prototype.findAggregator = function(query) { - if (this.right.findAggregator) { - this.right.findAggregator(query); - } -}; - -yy.UniOp.prototype.toType = function() { - if (this.op === '-') { - return 'number'; - } - - if (this.op === '+') { - return 'number'; - } - - if (this.op === 'NOT') { - return 'boolean'; - } - - // Todo: implement default case -}; - -yy.UniOp.prototype.toJS = function(context, tableid, defcols) { - if (this.op === '~') { - return '(~(' + this.right.toJS(context, tableid, defcols) + '))'; - } - - if (this.op === '-') { - return '(-(' + this.right.toJS(context, tableid, defcols) + '))'; - } - - if (this.op === '+') { - return '(' + this.right.toJS(context, tableid, defcols) + ')'; - } - - if (this.op === 'NOT') { - return '!(' + this.right.toJS(context, tableid, defcols) + ')'; - } - - if (this.op === '#') { - if (this.right instanceof yy.Column) { - return "(alasql.databases[alasql.useid].objects['" + this.right.columnid + "'])"; - } else { - return ( - '(alasql.databases[alasql.useid].objects[' + - this.right.toJS(context, tableid, defcols) + - '])' - ); - } - } - - // Please avoid === here - if (this.op == null) { - // jshint ignore:line - return '(' + this.right.toJS(context, tableid, defcols) + ')'; - } - - // Todo: implement default case. -}; - -yy.Column = function(params) { - return yy.extend(this, params); -}; -yy.Column.prototype.toString = function(dontas) { - var s; - if (this.columnid == +this.columnid) { - // jshint ignore:line - s = '[' + this.columnid + ']'; - } else { - s = this.columnid; - } - if (this.tableid) { - if (+this.columnid === this.columnid) { - s = this.tableid + s; - } else { - s = this.tableid + '.' + s; - } - if (this.databaseid) { - s = this.databaseid + '.' + s; - } - } - if (this.alias && !dontas) s += ' AS ' + this.alias; - return s; -}; - -yy.Column.prototype.toJS = function(context, tableid, defcols) { - - var s = ''; - if (!this.tableid && tableid === '' && !defcols) { - if (this.columnid !== '_') { - s = context + "['" + this.columnid + "']"; - } else { - if (context === 'g') { - s = "g['_']"; - } else { - s = context; - } - } - } else { - if (context === 'g') { - // if(this.columnid == '_') { - // } else { - s = "g['" + this.nick + "']"; - // } - } else if (this.tableid) { - if (this.columnid !== '_') { - // if() { - // s = context+'[\''+tableid + '\'][\''+this.tableid+'\'][\''+this.columnid+'\']'; - // } else { - s = context + "['" + this.tableid + "']['" + this.columnid + "']"; - // } - } else { - if (context === 'g') { - s = "g['_']"; - } else { - s = context + "['" + this.tableid + "']"; - } - } - } else if (defcols) { - var tbid = defcols[this.columnid]; - if (tbid === '-') { - throw new Error( - 'Cannot resolve column "' + - this.columnid + - '" because it exists in two source tables' - ); - } else if (tbid) { - if (this.columnid !== '_') { - s = context + "['" + tbid + "']['" + this.columnid + "']"; - } else { - s = context + "['" + tbid + "']"; - } - - } else { - if (this.columnid !== '_') { - // if(defcols['.'][this.tableid]) { - - // s = context+'[\''+tableid + '\'][\''+this.tableid + '\'][\''+this.columnid+'\']'; - // } else { - s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']"; - // } - } else { - s = context + "['" + (this.tableid || tableid) + "']"; - } - } - } else if (tableid === -1) { - // if(this.columnid != '') { - s = context + "['" + this.columnid + "']"; - // } else { - // s = context; - // } - } else { - if (this.columnid !== '_') { - s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']"; - } else { - s = context + "['" + (this.tableid || tableid) + "']"; - } - } - } - - // console.trace(new Error()); - - return s; -}; - -yy.AggrValue = function(params) { - return yy.extend(this, params); -}; -yy.AggrValue.prototype.toString = function(dontas) { - var s = ''; - if (this.aggregatorid === 'REDUCE') { - s += this.funcid + '('; - } else { - s += this.aggregatorid + '('; - } - - if (this.distinct) { - s += 'DISTINCT '; - } - - if (this.expression) { - s += this.expression.toString(); - } - - s += ')'; - - if (this.over) { - s += ' ' + this.over.toString(); - } - - if (this.alias && !dontas) s += ' AS ' + this.alias; - // if(this.alias) s += ' AS '+this.alias; - return s; -}; - -yy.AggrValue.prototype.findAggregator = function(query) { - - // var colas = this.as || this.toString(); - - var colas = escapeq(this.toString()) + ':' + query.selectGroup.length; - - // if(!query.selectColumns[colas]) { - // } - - var found = false; - - if (!found) { - if (!this.nick) { - this.nick = colas; - var found = false; - for (var i = 0; i < query.removeKeys.length; i++) { - if (query.removeKeys[i] === colas) { - found = true; - break; - } - } - if (!found) { - query.removeKeys.push(colas); - } - } - query.selectGroup.push(this); - } - - // this.reduced = true; - return; -}; - -yy.AggrValue.prototype.toType = function() { - if ( - ['SUM', 'COUNT', 'AVG', 'MIN', 'MAX', 'AGGR', 'VAR', 'STDDEV'].indexOf(this.aggregatorid) > - -1 - ) { - return 'number'; - } - - if (['ARRAY'].indexOf(this.aggregatorid) > -1) { - return 'array'; - } - - if (['FIRST', 'LAST'].indexOf(this.aggregatorid) > -1) { - return this.expression.toType(); - } - - // todo: implement default; -}; - -yy.AggrValue.prototype.toJS = function(/*context, tableid, defcols*/) { - - var colas = this.nick; - if (colas === undefined) { - colas = this.toString(); - } - return "g['" + colas + "']"; -}; - -yy.OrderExpression = function(params) { - return yy.extend(this, params); -}; -yy.OrderExpression.prototype.toString = yy.Expression.prototype.toString; - -yy.GroupExpression = function(params) { - return yy.extend(this, params); -}; -yy.GroupExpression.prototype.toString = function() { - return this.type + '(' + this.group.toString() + ')'; -}; - -// Alasql Linq library - -yy.FromData = function(params) { - return yy.extend(this, params); -}; -yy.FromData.prototype.toString = function() { - if (this.data) return 'DATA(' + ((Math.random() * 10e15) | 0) + ')'; - else return '?'; -}; -yy.FromData.prototype.toJS = function() { - -}; - -yy.Select.prototype.exec = function(params, cb) { - if (this.preparams) params = this.preparams.concat(params); - - var databaseid = alasql.useid; - db = alasql.databases[databaseid]; - var sql = this.toString(); - var hh = hash(sql); - - var statement = this.compile(databaseid); - if (!statement) return; - statement.sql = sql; - statement.dbversion = db.dbversion; - - // Secure sqlCache size - if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) { - db.resetSqlCache(); - } - db.sqlCacheSize++; - db.sqlCache[hh] = statement; - var res = (alasql.res = statement(params, cb)); - return res; -}; - -yy.Select.prototype.Select = function() { - var self = this; - var agrs = []; - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } else if (arguments.length == 1) { - if (Array.isArray(arguments[0])) { - args = arguments[0]; - } else { - args = [arguments[0]]; - } - } else { - throw new Error('Wrong number of arguments of Select() function'); - } - - self.columns = []; - - args.forEach(function(arg) { - if (typeof arg == 'string') { - self.columns.push(new yy.Column({columnid: arg})); - } else if (typeof arg == 'function') { - var pari = 0; - if (self.preparams) { - pari = self.preparams.length; - } else { - self.preparams = []; - } - self.preparams.push(arg); - self.columns.push(new yy.Column({columnid: '*', func: arg, param: pari})); - } else { - // Unknown type - } - }); - - return self; -}; - -yy.Select.prototype.From = function(tableid) { - var self = this; - if (!self.from) self.from = []; - if (Array.isArray(tableid)) { - var pari = 0; - if (self.preparams) { - pari = self.preparams.length; - } else { - self.preparams = []; - } - self.preparams.push(tableid); - self.from.push(new yy.ParamValue({param: pari})); - } else if (typeof tableid == 'string') { - self.from.push(new yy.Table({tableid: tableid})); - } else { - throw new Error('Unknown arguments in From() function'); - } - return self; -}; - -yy.Select.prototype.OrderBy = function() { - var self = this; - var agrs = []; - - self.order = []; - - if (arguments.length == 0) { - // self.order.push(new yy.OrderExpression({expression: new yy.Column({columnid:"_"}), direction:'ASC'})); - args = ['_']; - } else if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } else if (arguments.length == 1) { - if (Array.isArray(arguments[0])) { - args = arguments[0]; - } else { - args = [arguments[0]]; - } - } else { - throw new Error('Wrong number of arguments of Select() function'); - } - - if (args.length > 0) { - args.forEach(function(arg) { - var expr = new yy.Column({columnid: arg}); - if (typeof arg == 'function') { - expr = arg; - } - self.order.push(new yy.OrderExpression({expression: expr, direction: 'ASC'})); - }); - } - return self; -}; - -yy.Select.prototype.Top = function(topnum) { - var self = this; - self.top = new yy.NumValue({value: topnum}); - return self; -}; - -yy.Select.prototype.GroupBy = function() { - var self = this; - var agrs = []; - - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } else if (arguments.length == 1) { - if (Array.isArray(arguments[0])) { - args = arguments[0]; - } else { - args = [arguments[0]]; - } - } else { - throw new Error('Wrong number of arguments of Select() function'); - } - - self.group = []; - - args.forEach(function(arg) { - var expr = new yy.Column({columnid: arg}); - self.group.push(expr); - }); - - return self; -}; - -yy.Select.prototype.Where = function(expr) { - var self = this; - if (typeof expr == 'function') { - self.where = expr; - } - return self; -}; - -/* -// -// Functions for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.FuncValue = function(params) { - return yy.extend(this, params); -}; -yy.FuncValue.prototype.toString = function(dontas) { - var s = ''; - - if (alasql.fn[this.funcid]) s += this.funcid; - else if (alasql.aggr[this.funcid]) s += this.funcid; - else if (alasql.stdlib[this.funcid.toUpperCase()] || alasql.stdfn[this.funcid.toUpperCase()]) - s += this.funcid.toUpperCase(); - - s += '('; - if (this.args && this.args.length > 0) { - s += this.args - .map(function(arg) { - return arg.toString(); - }) - .join(','); - } - s += ')'; - if (this.as && !dontas) s += ' AS ' + this.as.toString(); - // if(this.alias) s += ' AS '+this.alias; - return s; -}; - -yy.FuncValue.prototype.execute = function(databaseid, params, cb) { - var res = 1; - alasql.precompile(this, databaseid, params); // Precompile queries - - var expr = new Function('params,alasql', 'var y;return ' + this.toJS('', '', null)); - expr(params, alasql); - if (cb) res = cb(res); - return res; -}; - -yy.FuncValue.prototype.findAggregator = function(query) { - if (this.args && this.args.length > 0) { - this.args.forEach(function(arg) { - if (arg.findAggregator) arg.findAggregator(query); - }); - } -}; - -yy.FuncValue.prototype.toJS = function(context, tableid, defcols) { - var s = ''; - var funcid = this.funcid; - // IF this is standard compile functions - if (!alasql.fn[funcid] && alasql.stdlib[funcid.toUpperCase()]) { - if (this.args && this.args.length > 0) { - s += alasql.stdlib[funcid.toUpperCase()].apply( - this, - this.args.map(function(arg) { - return arg.toJS(context, tableid); - }) - ); - } else { - s += alasql.stdlib[funcid.toUpperCase()](); - } - } else if (!alasql.fn[funcid] && alasql.stdfn[funcid.toUpperCase()]) { - if (this.newid) s += 'new '; - s += 'alasql.stdfn.' + this.funcid.toUpperCase() + '('; - // if(this.args) s += this.args.toJS(context, tableid); - if (this.args && this.args.length > 0) { - s += this.args - .map(function(arg) { - return arg.toJS(context, tableid, defcols); - }) - .join(','); - } - s += ')'; - } else { - // This is user-defined run-time function - // TODO arguments!!! - // var s = ''; - if (this.newid) s += 'new '; - s += 'alasql.fn.' + this.funcid + '('; - // if(this.args) s += this.args.toJS(context, tableid); - if (this.args && this.args.length > 0) { - s += this.args - .map(function(arg) { - return arg.toJS(context, tableid, defcols); - }) - .join(','); - } - s += ')'; - } - - // if(this.alias) s += ' AS '+this.alias; - return s; -}; - -var stdlib = (alasql.stdlib = {}); -var stdfn = (alasql.stdfn = {}); - -stdlib.ABS = function(a) { - return 'Math.abs(' + a + ')'; -}; -stdlib.CLONEDEEP = function(a) { - return 'alasql.utils.cloneDeep(' + a + ')'; -}; - -stdfn.CONCAT = function() { - return Array.prototype.slice.call(arguments).join(''); -}; -stdlib.EXP = function(a) { - return 'Math.pow(Math.E,' + a + ')'; -}; - -stdlib.IIF = function(a, b, c) { - if (arguments.length == 3) { - return '((' + a + ')?(' + b + '):(' + c + '))'; - } else { - throw new Error('Number of arguments of IFF is not equals to 3'); - } -}; -stdlib.IFNULL = function(a, b) { - return '(' + a + '||' + b + ')'; -}; -stdlib.INSTR = function(s, p) { - return '((' + s + ').indexOf(' + p + ')+1)'; -}; - -//stdlib.LEN = stdlib.LENGTH = function(s) {return '('+s+'+"").length';}; - -stdlib.LEN = stdlib.LENGTH = function(s) { - return und(s, 'y.length'); -}; -//stdlib.LENGTH = function(s) {return '('+s+').length'}; - -stdlib.LOWER = stdlib.LCASE = function(s) { - return und(s, 'String(y).toLowerCase()'); -}; -//stdlib.LCASE = function(s) {return '('+s+').toLowerCase()';} - -// Returns a character expression after it removes leading blanks. -// see https://docs.microsoft.com/en-us/sql/t-sql/functions/ltrim-transact-sql -stdlib.LTRIM = function(s) { - return und(s, 'y.replace(/^[ ]+/,"")'); -}; - -// Returns a character string after truncating all trailing spaces. -// see https://docs.microsoft.com/en-us/sql/t-sql/functions/rtrim-transact-sql -stdlib.RTRIM = function(s) { - return und(s, 'y.replace(/[ ]+$/,"")'); -}; - -stdlib.MAX = stdlib.GREATEST = function() { - return 'Math.max(' + Array.prototype.join.call(arguments, ',') + ')'; -}; - -stdlib.MIN = stdlib.LEAST = function() { - return 'Math.min(' + Array.prototype.join.call(arguments, ',') + ')'; -}; - -stdlib.SUBSTRING = stdlib.SUBSTR = stdlib.MID = function(a, b, c) { - if (arguments.length == 2) return und(a, 'y.substr(' + b + '-1)'); - else if (arguments.length == 3) return und(a, 'y.substr(' + b + '-1,' + c + ')'); -}; - -stdfn.REGEXP_LIKE = function(a, b, c) { - - return (a || '').search(RegExp(b, c)) > -1; -}; - -// Here we uses undefined instead of null -stdlib.ISNULL = stdlib.NULLIF = function(a, b) { - return '(' + a + '==' + b + '?undefined:' + a + ')'; -}; - -stdlib.POWER = function(a, b) { - return 'Math.pow(' + a + ',' + b + ')'; -}; - -stdlib.RANDOM = function(r) { - if (arguments.length == 0) { - return 'Math.random()'; - } else { - return '(Math.random()*(' + r + ')|0)'; - } -}; -stdlib.ROUND = function(s, d) { - if (arguments.length == 2) { - return 'Math.round((' + s + ')*Math.pow(10,(' + d + ')))/Math.pow(10,(' + d + '))'; - } else { - return 'Math.round(' + s + ')'; - } -}; -stdlib.CEIL = stdlib.CEILING = function(s) { - return 'Math.ceil(' + s + ')'; -}; -stdlib.FLOOR = function(s) { - return 'Math.floor(' + s + ')'; -}; - -stdlib.ROWNUM = function() { - return '1'; -}; -stdlib.ROW_NUMBER = function() { - return '1'; -}; - -stdlib.SQRT = function(s) { - return 'Math.sqrt(' + s + ')'; -}; - -stdlib.TRIM = function(s) { - return und(s, 'y.trim()'); -}; - -stdlib.UPPER = stdlib.UCASE = function(s) { - return und(s, 'String(y).toUpperCase()'); -}; - -// Concatination of strings -stdfn.CONCAT_WS = function() { - var args = Array.prototype.slice.call(arguments); - return args.slice(1, args.length).join(args[0]); -}; - -//stdlib.UCASE = function(s) {return '('+s+').toUpperCase()';} -//REPLACE -// RTRIM -// SUBSTR -// TRIM -//REPLACE -// RTRIM -// SUBSTR -// TRIM - -// Aggregator for joining strings -alasql.aggr.GROUP_CONCAT = function(v, s, stage) { - if (stage === 1) { - return '' + v; - } else if (stage === 2) { - s += ',' + v; - return s; - } - return s; -}; - -alasql.aggr.MEDIAN = function(v, s, stage) { - if (stage === 2) { - if (v !== null) { - s.push(v); - } - return s; - } else if (stage === 1) { - if (v === null) { - return []; - } - return [v]; - } else { - if (!s.length) { - return s; - } - - var r = s.sort(); - var p = (r.length + 1) / 2; - if (Number.isInteger(p)) { - return r[p - 1]; - } - - return (r[Math.floor(p - 1)] + r[Math.ceil(p - 1)]) / 2; - } -}; - -alasql.aggr.QUART = function(v, s, stage, nth) { - //Quartile (first quartile per default or input param) - if (stage === 2) { - if (v !== null) { - s.push(v); - } - return s; - } else if (stage === 1) { - if (v === null) { - return []; - } - return [v]; - } else { - if (!s.length) { - return s; - } - - nth = !nth ? 1 : nth; - var r = s.sort(); - var p = nth * (r.length + 1) / 4; - if (Number.isInteger(p)) { - return r[p - 1]; //Integer value - } - return r[Math.floor(p)]; //Math.ceil -1 or Math.floor - } -}; - -alasql.aggr.QUART2 = function(v, s, stage) { - //Second Quartile - return alasql.aggr.QUART(v, s, stage, 2); -}; -alasql.aggr.QUART3 = function(v, s, stage) { - //Third Quartile - return alasql.aggr.QUART(v, s, stage, 3); -}; - -// Standard deviation -alasql.aggr.VAR = function(v, s, stage) { - if (stage === 1) { - if (v === null) { - return {arr: [], sum: 0}; - } - return {arr: [v], sum: v}; - } else if (stage === 2) { - if (v === null) { - return s; - } - s.arr.push(v); - s.sum += v; - return s; - } else { - var N = s.arr.length; - var avg = s.sum / N; - var std = 0; - for (var i = 0; i < N; i++) { - std += (s.arr[i] - avg) * (s.arr[i] - avg); - } - std = std / (N - 1); - return std; - } -}; - -alasql.aggr.STDEV = function(v, s, stage) { - if (stage === 1 || stage === 2) { - return alasql.aggr.VAR(v, s, stage); - } else { - return Math.sqrt(alasql.aggr.VAR(v, s, stage)); - } -}; - -// Standard deviation -// alasql.aggr.VARP = function(v,s,acc){ - -// }; - -alasql.aggr.VARP = function(v, s, stage) { - if (stage == 1) { - return {arr: [v], sum: v}; - } else if (stage == 2) { - s.arr.push(v); - s.sum += v; - return s; - } else { - var N = s.arr.length; - var avg = s.sum / N; - var std = 0; - for (var i = 0; i < N; i++) { - std += (s.arr[i] - avg) * (s.arr[i] - avg); - } - std = std / N; - return std; - } -}; - -alasql.aggr.STD = alasql.aggr.STDDEV = alasql.aggr.STDEVP = function(v, s, stage) { - if (stage == 1 || stage == 2) { - return alasql.aggr.VARP(v, s, stage); - } else { - return Math.sqrt(alasql.aggr.VARP(v, s, stage)); - } -}; - -alasql._aggrOriginal = alasql.aggr; -alasql.aggr = {}; -Object.keys(alasql._aggrOriginal).forEach(function(k) { - alasql.aggr[k] = function(v, s, stage) { - if (stage === 3 && typeof s === 'undefined') return undefined; - return alasql._aggrOriginal[k].apply(null, arguments); - }; -}); - -// String functions -stdfn.REPLACE = function(target, pattern, replacement) { - return (target || '').split(pattern).join(replacement); -}; - -// This array is required for fast GUID generation -var lut = []; -for (var i = 0; i < 256; i++) { - lut[i] = (i < 16 ? '0' : '') + i.toString(16); -} - -stdfn.NEWID = stdfn.UUID = stdfn.GEN_RANDOM_UUID = function() { - var d0 = (Math.random() * 0xffffffff) | 0; - var d1 = (Math.random() * 0xffffffff) | 0; - var d2 = (Math.random() * 0xffffffff) | 0; - var d3 = (Math.random() * 0xffffffff) | 0; - return ( - lut[d0 & 0xff] + - lut[(d0 >> 8) & 0xff] + - lut[(d0 >> 16) & 0xff] + - lut[(d0 >> 24) & 0xff] + - '-' + - lut[d1 & 0xff] + - lut[(d1 >> 8) & 0xff] + - '-' + - lut[((d1 >> 16) & 0x0f) | 0x40] + - lut[(d1 >> 24) & 0xff] + - '-' + - lut[(d2 & 0x3f) | 0x80] + - lut[(d2 >> 8) & 0xff] + - '-' + - lut[(d2 >> 16) & 0xff] + - lut[(d2 >> 24) & 0xff] + - lut[d3 & 0xff] + - lut[(d3 >> 8) & 0xff] + - lut[(d3 >> 16) & 0xff] + - lut[(d3 >> 24) & 0xff] - ); -}; - -/* -// -// CASE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.CaseValue = function(params) { - return yy.extend(this, params); -}; -yy.CaseValue.prototype.toString = function() { - var s = 'CASE '; - if (this.expression) s += this.expression.toString(); - if (this.whens) { - s += this.whens - .map(function(w) { - return ' WHEN ' + w.when.toString() + ' THEN ' + w.then.toString(); - }) - .join(); - } - s += ' END'; - return s; -}; - -yy.CaseValue.prototype.findAggregator = function(query) { - - if (this.expression && this.expression.findAggregator) this.expression.findAggregator(query); - if (this.whens && this.whens.length > 0) { - this.whens.forEach(function(w) { - if (w.when.findAggregator) w.when.findAggregator(query); - if (w.then.findAggregator) w.then.findAggregator(query); - }); - } - if (this.elses && this.elses.findAggregator) this.elses.findAggregator(query); -}; - -yy.CaseValue.prototype.toJS = function(context, tableid, defcols) { - var s = '((function(' + context + ',params,alasql){var y,r;'; - if (this.expression) { - // this.expression.toJS(context, tableid) - s += 'v=' + this.expression.toJS(context, tableid, defcols) + ';'; - s += (this.whens || []) - .map(function(w) { - return ( - ' if(v==' + - w.when.toJS(context, tableid, defcols) + - ') {r=' + - w.then.toJS(context, tableid, defcols) + - '}' - ); - }) - .join(' else '); - if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}'; - } else { - s += (this.whens || []) - .map(function(w) { - return ( - ' if(' + - w.when.toJS(context, tableid, defcols) + - ') {r=' + - w.then.toJS(context, tableid, defcols) + - '}' - ); - }) - .join(' else '); - if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}'; - } - // TODO remove bind from CASE - s += ';return r;}).bind(this))(' + context + ',params,alasql)'; - - return s; -}; - -/* -// -// JSON for Alasql.js -// Date: 19.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Json = function(params) { - return yy.extend(this, params); -}; -yy.Json.prototype.toString = function() { - var s = ''; // '@' - s += JSONtoString(this.value); - s += ''; - return s; -}; - -var JSONtoString = (alasql.utils.JSONtoString = function(obj) { - var s = ''; - if (typeof obj == 'string') s = '"' + obj + '"'; - else if (typeof obj == 'number') s = obj; - else if (typeof obj == 'boolean') s = obj; - else if (typeof obj == 'object') { - if (Array.isArray(obj)) { - s += - '[' + - obj - .map(function(b) { - return JSONtoString(b); - }) - .join(',') + - ']'; - } else if (!obj.toJS || obj instanceof yy.Json) { - // to prevent recursion - s = '{'; - var ss = []; - for (var k in obj) { - var s1 = ''; - if (typeof k == 'string') s1 += '"' + k + '"'; - else if (typeof k == 'number') s1 += k; - else if (typeof k == 'boolean') s1 += k; - else { - throw new Error('THis is not ES6... no expressions on left side yet'); - } - s1 += ':' + JSONtoString(obj[k]); - ss.push(s1); - } - s += ss.join(',') + '}'; - } else if (obj.toString) { - s = obj.toString(); - } else { - throw new Error('1Can not show JSON object ' + JSON.stringify(obj)); - } - } else { - throw new Error('2Can not show JSON object ' + JSON.stringify(obj)); - } - - return s; -}); - -function JSONtoJS(obj, context, tableid, defcols) { - var s = ''; - if (typeof obj == 'string') s = '"' + obj + '"'; - else if (typeof obj == 'number') s = '(' + obj + ')'; - else if (typeof obj == 'boolean') s = obj; - else if (typeof obj == 'object') { - if (Array.isArray(obj)) { - s += - '[' + - obj - .map(function(b) { - return JSONtoJS(b, context, tableid, defcols); - }) - .join(',') + - ']'; - } else if (!obj.toJS || obj instanceof yy.Json) { - // to prevent recursion - s = '{'; - var ss = []; - for (var k in obj) { - var s1 = ''; - if (typeof k == 'string') s1 += '"' + k + '"'; - else if (typeof k == 'number') s1 += k; - else if (typeof k == 'boolean') s1 += k; - else { - throw new Error('THis is not ES6... no expressions on left side yet'); - } - s1 += ':' + JSONtoJS(obj[k], context, tableid, defcols); - ss.push(s1); - } - s += ss.join(',') + '}'; - } else if (obj.toJS) { - s = obj.toJS(context, tableid, defcols); - } else { - throw new Error('1Can not parse JSON object ' + JSON.stringify(obj)); - } - } else { - throw new Error('2Can not parse JSON object ' + JSON.stringify(obj)); - } - - return s; -} - -yy.Json.prototype.toJS = function(context, tableid, defcols) { - // TODO redo - return JSONtoJS(this.value, context, tableid, defcols); -}; - -/* -// -// CAST and CONVERT functions -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Convert = function(params) { - return yy.extend(this, params); -}; -yy.Convert.prototype.toString = function() { - var s = 'CONVERT('; - s += this.dbtypeid; - if (typeof this.dbsize != 'undefined') { - s += '(' + this.dbsize; - if (this.dbprecision) s += ',' + this.dbprecision; - s += ')'; - } - s += ',' + this.expression.toString(); - if (this.style) s += ',' + this.style; - s += ')'; - return s; -}; -yy.Convert.prototype.toJS = function(context, tableid, defcols) { - // if(this.style) { - return ( - 'alasql.stdfn.CONVERT(' + - this.expression.toJS(context, tableid, defcols) + - ',{dbtypeid:"' + - this.dbtypeid + - '",dbsize:' + - this.dbsize + - ',dbprecision:' + - this.dbprecision + - ',style:' + - this.style + - '})' - ); - // } - - throw new Error('There is not such type conversion for ' + this.toString()); -}; - -/** - Convert one type to another - */ -alasql.stdfn.CONVERT = function(value, args) { - var val = value; - - if (args.style) { - // TODO 9,109, 20,120,21,121,126,130,131 conversions - var t; - if (/\d{8}/.test(val)) { - t = new Date(+val.substr(0, 4), +val.substr(4, 2) - 1, +val.substr(6, 2)); - } else { - t = new Date(val); - } - switch (args.style) { - case 1: // mm/dd/yy - val = - ('0' + (t.getMonth() + 1)).substr(-2) + - '/' + - ('0' + t.getDate()).substr(-2) + - '/' + - ('0' + t.getYear()).substr(-2); - break; - case 2: // yy.mm.dd - val = - ('0' + t.getYear()).substr(-2) + - '.' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '.' + - ('0' + t.getDate()).substr(-2); - break; - case 3: // dd/mm/yy - val = - ('0' + t.getDate()).substr(-2) + - '/' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '/' + - ('0' + t.getYear()).substr(-2); - break; - case 4: // dd.mm.yy - val = - ('0' + t.getDate()).substr(-2) + - '.' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '.' + - ('0' + t.getYear()).substr(-2); - break; - case 5: // dd-mm-yy - val = - ('0' + t.getDate()).substr(-2) + - '-' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '-' + - ('0' + t.getYear()).substr(-2); - break; - case 6: // dd mon yy - val = - ('0' + t.getDate()).substr(-2) + - ' ' + - t - .toString() - .substr(4, 3) - .toLowerCase() + - ' ' + - ('0' + t.getYear()).substr(-2); - break; - case 7: // Mon dd,yy - val = - t.toString().substr(4, 3) + - ' ' + - ('0' + t.getDate()).substr(-2) + - ',' + - ('0' + t.getYear()).substr(-2); - break; - case 8: // hh:mm:ss - case 108: // hh:mm:ss - val = - ('0' + t.getHours()).substr(-2) + - ':' + - ('0' + t.getMinutes()).substr(-2) + - ':' + - ('0' + t.getSeconds()).substr(-2); - break; - case 10: // mm-dd-yy - val = - ('0' + (t.getMonth() + 1)).substr(-2) + - '-' + - ('0' + t.getDate()).substr(-2) + - '-' + - ('0' + t.getYear()).substr(-2); - break; - case 11: // yy/mm/dd - val = - ('0' + t.getYear()).substr(-2) + - '/' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '/' + - ('0' + t.getDate()).substr(-2); - break; - case 12: // yymmdd - val = - ('0' + t.getYear()).substr(-2) + - ('0' + (t.getMonth() + 1)).substr(-2) + - ('0' + t.getDate()).substr(-2); - break; - case 101: // mm/dd/yyyy - val = - ('0' + (t.getMonth() + 1)).substr(-2) + - '/' + - ('0' + t.getDate()).substr(-2) + - '/' + - t.getFullYear(); - break; - case 102: // yyyy.mm.dd - val = - t.getFullYear() + - '.' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '.' + - ('0' + t.getDate()).substr(-2); - break; - case 103: // dd/mm/yyyy - val = - ('0' + t.getDate()).substr(-2) + - '/' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '/' + - t.getFullYear(); - break; - case 104: // dd.mm.yyyy - val = - ('0' + t.getDate()).substr(-2) + - '.' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '.' + - t.getFullYear(); - break; - case 105: // dd-mm-yyyy - val = - ('0' + t.getDate()).substr(-2) + - '-' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '-' + - t.getFullYear(); - break; - case 106: // dd mon yyyy - val = - ('0' + t.getDate()).substr(-2) + - ' ' + - t - .toString() - .substr(4, 3) - .toLowerCase() + - ' ' + - t.getFullYear(); - break; - case 107: // Mon dd,yyyy - val = - t.toString().substr(4, 3) + - ' ' + - ('0' + t.getDate()).substr(-2) + - ',' + - t.getFullYear(); - break; - case 110: // mm-dd-yyyy - val = - ('0' + (t.getMonth() + 1)).substr(-2) + - '-' + - ('0' + t.getDate()).substr(-2) + - '-' + - t.getFullYear(); - break; - case 111: // yyyy/mm/dd - val = - t.getFullYear() + - '/' + - ('0' + (t.getMonth() + 1)).substr(-2) + - '/' + - ('0' + t.getDate()).substr(-2); - break; - - case 112: // yyyymmdd - val = - t.getFullYear() + - ('0' + (t.getMonth() + 1)).substr(-2) + - ('0' + t.getDate()).substr(-2); - break; - default: - throw new Error('The CONVERT style ' + args.style + ' is not realized yet.'); - } - } - - var udbtypeid = args.dbtypeid.toUpperCase(); - - if (args.dbtypeid == 'Date') { - return new Date(val); - } else if (udbtypeid == 'DATE') { - var d = new Date(val); - var s = - d.getFullYear() + - '.' + - ('0' + (d.getMonth() + 1)).substr(-2) + - '.' + - ('0' + d.getDate()).substr(-2); - return s; - } else if (udbtypeid == 'DATETIME' || udbtypeid == 'DATETIME2') { - var d = new Date(val); - var s = - d.getFullYear() + - '.' + - ('0' + (d.getMonth() + 1)).substr(-2) + - '.' + - ('0' + d.getDate()).substr(-2); - s += - ' ' + - ('0' + d.getHours()).substr(-2) + - ':' + - ('0' + d.getMinutes()).substr(-2) + - ':' + - ('0' + d.getSeconds()).substr(-2); - s += '.' + ('00' + d.getMilliseconds()).substr(-3); - return s; - } else if (['MONEY'].indexOf(udbtypeid) > -1) { - var m = +val; - return (m | 0) + ((m * 100) % 100) / 100; - } else if (['BOOLEAN'].indexOf(udbtypeid) > -1) { - return !!val; - } else if ( - ['INT', 'INTEGER', 'SMALLINT', 'BIGINT', 'SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf( - args.dbtypeid.toUpperCase() - ) > -1 - ) { - return val | 0; - } else if ( - ['STRING', 'VARCHAR', 'NVARCHAR', 'CHARACTER VARIABLE'].indexOf( - args.dbtypeid.toUpperCase() - ) > -1 - ) { - if (args.dbsize) return ('' + val).substr(0, args.dbsize); - else return '' + val; - } else if (['CHAR', 'CHARACTER', 'NCHAR'].indexOf(udbtypeid) > -1) { - return (val + new Array(args.dbsize + 1).join(' ')).substr(0, args.dbsize); - //else return ""+val.substr(0,1); - } else if (['NUMBER', 'FLOAT', 'DECIMAL', 'NUMERIC'].indexOf(udbtypeid) > -1) { - var m = +val; - //toPrecision sets the number of numbers total in the result - m = args.dbsize !== undefined ? parseFloat(m.toPrecision(args.dbsize)) : m; - //toFixed sets the number of numbers to the right of the decimal - m = args.dbprecision !== undefined ? parseFloat(m.toFixed(args.dbprecision)) : m; - return m; - } else if (['JSON'].indexOf(udbtypeid) > -1) { - if (typeof val == 'object') return val; - try { - return JSON.parse(val); - } catch (err) { - throw new Error('Cannot convert string to JSON'); - } - } - return val; -}; - -/* -// -// CREATE TABLE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* global alasql, yy, hash */ - -yy.ColumnDef = function(params) { - return yy.extend(this, params); -}; -yy.ColumnDef.prototype.toString = function() { - var s = this.columnid; - if (this.dbtypeid) { - s += ' ' + this.dbtypeid; - } - - if (this.dbsize) { - s += '(' + this.dbsize; - if (this.dbprecision) { - s += ',' + this.dbprecision; - } - s += ')'; - } - - if (this.primarykey) { - s += ' PRIMARY KEY'; - } - - if (this.notnull) { - s += ' NOT NULL'; - } - - return s; -}; - -yy.CreateTable = function(params) { - return yy.extend(this, params); -}; -yy.CreateTable.prototype.toString = function() { - var s = 'CREATE'; - if (this.temporary) { - s += ' TEMPORARY'; - } - - if (this.view) { - s += ' VIEW'; - } else { - s += ' ' + (this["class"] ? 'CLASS' : 'TABLE'); - } - if (this.ifnotexists) { - s += ' IF NOT EXISTS'; - } - s += ' ' + this.table.toString(); - if (this.viewcolumns) { - s += - '(' + - this.viewcolumns - .map(function(vcol) { - return vcol.toString(); - }) - .join(',') + - ')'; - } - if (this.as) { - s += ' AS ' + this.as; - } else { - var ss = this.columns.map(function(col) { - return col.toString(); - }); - s += ' (' + ss.join(',') + ')'; - } - - if (this.view && this.select) { - s += ' AS ' + this.select.toString(); - } - - return s; -}; - -// CREATE TABLE -//yy.CreateTable.prototype.compile = returnUndefined; -yy.CreateTable.prototype.execute = function(databaseid, params, cb) { - // var self = this; - var db = alasql.databases[this.table.databaseid || databaseid]; - - var tableid = this.table.tableid; - if (!tableid) { - throw new Error('Table name is not defined'); - } - - // var ifnotexists = this.ifnotexists; - var columns = this.columns; - // if(false) { - // if(!columns) { - // throw new Error('Columns are not defined'); - // } - // } - var constraints = this.constraints || []; - - // IF NOT EXISTS - if (this.ifnotexists && db.tables[tableid]) { - return cb ? cb(0) : 0; - } - - if (db.tables[tableid]) { - throw new Error( - "Can not create table '" + - tableid + - "', because it already exists in the database '" + - db.databaseid + - "'" - ); - } - - var table = (db.tables[tableid] = new alasql.Table()); // TODO Can use special object? - // If this is a class - if (this["class"]) { - table.isclass = true; - } - - var ss = []; // DEFAULT function components - var uss = []; // ON UPDATE function components - if (columns) { - columns.forEach(function(col) { - var dbtypeid = col.dbtypeid; - if (!alasql.fn[dbtypeid]) { - dbtypeid = dbtypeid.toUpperCase(); - } - - // Process SERIAL data type like Postgress - if (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(dbtypeid) > -1) { - col.identity = {value: 1, step: 1}; - } - - var newcol = { - columnid: col.columnid, - dbtypeid: dbtypeid, - dbsize: col.dbsize, // Fixed issue #150 - dbprecision: col.dbprecision, // Fixed issue #150 - notnull: col.notnull, - identity: col.identity, - }; - if (col.identity) { - table.identities[col.columnid] = { - value: +col.identity.value, - step: +col.identity.step, - }; - // ss.push('\''+col.columnid+'\':(alasql.databases[\''+db.databaseid+'\'].tables[\'' - // +tableid+'\'].identities[\''+col.columnid+'\'].value)'); - } - if (col.check) { - table.checks.push({ - id: col.check.constrantid, - fn: new Function('r', 'var y;return ' + col.check.expression.toJS('r', '')), - }); - } - - if (col["default"]) { - ss.push("'" + col.columnid + "':" + col["default"].toJS('r', '')); - } - - // Check for primary key - if (col.primarykey) { - var pk = (table.pk = {}); - pk.columns = [col.columnid]; - pk.onrightfns = "r['" + col.columnid + "']"; - pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns); - pk.hh = hash(pk.onrightfns); - table.uniqs[pk.hh] = {}; - } - - // UNIQUE clause - if (col.unique) { - var uk = {}; - table.uk = table.uk || []; - table.uk.push(uk); - uk.columns = [col.columnid]; - uk.onrightfns = "r['" + col.columnid + "']"; - uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns); - uk.hh = hash(uk.onrightfns); - table.uniqs[uk.hh] = {}; - } - - // UNIQUE clause - if (col.foreignkey) { - - var fk = col.foreignkey.table; - var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid]; - if (typeof fk.columnid === 'undefined') { - if (fktable.pk.columns && fktable.pk.columns.length > 0) { - fk.columnid = fktable.pk.columns[0]; - } else { - throw new Error('FOREIGN KEY allowed only to tables with PRIMARY KEYs'); - } - } - - var fkfn = function(r) { - var rr = {}; - if (typeof r[col.columnid] === 'undefined') { - return true; - } - rr[fk.columnid] = r[col.columnid]; - var addr = fktable.pk.onrightfn(rr); - - if (!fktable.uniqs[fktable.pk.hh][addr]) { - throw new Error( - 'Foreign key "' + - r[col.columnid] + - '" is not found in table ' + - fktable.tableid - ); - } - return true; - }; - table.checks.push({fn: fkfn}); - - } - - if (col.onupdate) { - uss.push("r['" + col.columnid + "']=" + col.onupdate.toJS('r', '')); - } - - table.columns.push(newcol); - table.xcolumns[newcol.columnid] = newcol; - }); - } - table.defaultfns = ss.join(','); - table.onupdatefns = uss.join(';'); - - // if(constraints) { - constraints.forEach(function(con) { - - var checkfn; - - if (con.type === 'PRIMARY KEY') { - if (table.pk) { - throw new Error('Primary key already exists'); - } - var pk = (table.pk = {}); - pk.columns = con.columns; - pk.onrightfns = pk.columns - .map(function(columnid) { - return "r['" + columnid + "']"; - }) - .join("+'`'+"); - pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns); - pk.hh = hash(pk.onrightfns); - table.uniqs[pk.hh] = {}; - } else if (con.type === 'CHECK') { - - checkfn = new Function('r', 'var y;return ' + con.expression.toJS('r', '')); - } else if (con.type === 'UNIQUE') { - - var uk = {}; - table.uk = table.uk || []; - table.uk.push(uk); - uk.columns = con.columns; - uk.onrightfns = uk.columns - .map(function(columnid) { - return "r['" + columnid + "']"; - }) - .join("+'`'+"); - uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns); - uk.hh = hash(uk.onrightfns); - table.uniqs[uk.hh] = {}; - } else if (con.type === 'FOREIGN KEY') { - - var col = table.xcolumns[con.columns[0]]; - var fk = con.fktable; - if (con.fkcolumns && con.fkcolumns.length > 0) { - fk.columnid = con.fkcolumns[0]; - } - var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid]; - if (typeof fk.columnid === 'undefined') { - fk.columnid = fktable.pk.columns[0]; - } - - checkfn = function(r) { - var rr = {}; - if (typeof r[col.columnid] === 'undefined') { - return true; - } - rr[fk.columnid] = r[col.columnid]; - var addr = fktable.pk.onrightfn(rr); - - if (!fktable.uniqs[fktable.pk.hh][addr]) { - - throw new Error( - 'Foreign key "' + - r[col.columnid] + - '" is not found in table ' + - fktable.tableid - ); - } - return true; - }; - } - if (checkfn) { - table.checks.push({fn: checkfn, id: con.constraintid, fk: con.type === 'FOREIGN KEY'}); - } - }); - - if (this.view && this.viewcolumns) { - var self = this; - this.viewcolumns.forEach(function(vcol, idx) { - self.select.columns[idx].as = vcol.columnid; - }); - } - - //Used in 420from queryfn when table.view = true! - if (this.view && this.select) { - table.view = true; - - table.select = this.select.compile(this.table.databaseid || databaseid); - } - - if (db.engineid) { - - return alasql.engines[db.engineid].createTable( - this.table.databaseid || databaseid, - tableid, - this.ifnotexists, - cb - ); - - // return res1; - } - - // } - // if(table.pk) { - - table.insert = function(r, orreplace) { - var oldinserted = alasql.inserted; - alasql.inserted = [r]; - - var table = this; - - var toreplace = false; // For INSERT OR REPLACE - - /* - // IDENTINY or AUTO_INCREMENT - // if(table.identities && table.identities.length>0) { - // table.identities.forEach(function(ident){ - // r[ident.columnid] = ident.value; - // }); - // } -*/ - // Trigger prevent functionality - var prevent = false; - for (var tr in table.beforeinsert) { - var trigger = table.beforeinsert[tr]; - if (trigger) { - if (trigger.funcid) { - if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true; - } else if (trigger.statement) { - if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; - } - } - } - if (prevent) return; - - // Trigger prevent functionality - var escape = false; - for (tr in table.insteadofinsert) { - escape = true; - trigger = table.insteadofinsert[tr]; - if (trigger) { - if (trigger.funcid) { - alasql.fn[trigger.funcid](r); - } else if (trigger.statement) { - trigger.statement.execute(databaseid); - } - } - } - if (escape) return; - - for (var columnid in table.identities) { - var ident = table.identities[columnid]; - - r[columnid] = ident.value; - - } - - if (table.checks && table.checks.length > 0) { - table.checks.forEach(function(check) { - if (!check.fn(r)) { - // if(orreplace) toreplace=true; else - throw new Error('Violation of CHECK constraint ' + (check.id || '')); - } - }); - } - - table.columns.forEach(function(column) { - if (column.notnull && typeof r[column.columnid] === 'undefined') { - throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid); - } - }); - if (table.pk) { - var pk = table.pk; - var addr = pk.onrightfn(r); - - if (typeof table.uniqs[pk.hh][addr] !== 'undefined') { - - if (orreplace) toreplace = table.uniqs[pk.hh][addr]; - else - throw new Error( - 'Cannot insert record, because it already exists in primary key index' - ); - } - // table.uniqs[pk.hh][addr]=r; - } - - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - var ukaddr = uk.onrightfn(r); - if (typeof table.uniqs[uk.hh][ukaddr] !== 'undefined') { - if (orreplace) toreplace = table.uniqs[uk.hh][ukaddr]; - else - throw new Error( - 'Cannot insert record, because it already exists in unique index' - ); - } - // table.uniqs[uk.hh][ukaddr]=r; - }); - } - - if (toreplace) { - // Do UPDATE!!! - - table.update( - function(t) { - for (var f in r) t[f] = r[f]; - }, - table.data.indexOf(toreplace), - params - ); - } else { - table.data.push(r); - - // Final change before insert - - // Update indices - - for (var columnid in table.identities) { - var ident = table.identities[columnid]; - - ident.value += ident.step; - - } - - if (table.pk) { - var pk = table.pk; - var addr = pk.onrightfn(r); - table.uniqs[pk.hh][addr] = r; - } - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - var ukaddr = uk.onrightfn(r); - table.uniqs[uk.hh][ukaddr] = r; - }); - } - } - - // Trigger prevent functionality - for (var tr in table.afterinsert) { - var trigger = table.afterinsert[tr]; - if (trigger) { - if (trigger.funcid) { - alasql.fn[trigger.funcid](r); - } else if (trigger.statement) { - trigger.statement.execute(databaseid); - } - } - } - alasql.inserted = oldinserted; - }; - - table["delete"] = function(index) { - var table = this; - var r = table.data[index]; - - // Prevent trigger - var prevent = false; - for (var tr in table.beforedelete) { - var trigger = table.beforedelete[tr]; - if (trigger) { - if (trigger.funcid) { - if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true; - } else if (trigger.statement) { - if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; - } - } - } - if (prevent) return false; - - // Trigger prevent functionality - var escape = false; - for (var tr in table.insteadofdelete) { - escape = true; - var trigger = table.insteadofdelete[tr]; - if (trigger) { - if (trigger.funcid) { - alasql.fn[trigger.funcid](r); - } else if (trigger.statement) { - trigger.statement.execute(databaseid); - } - } - } - if (escape) return; - - if (this.pk) { - var pk = this.pk; - var addr = pk.onrightfn(r); - if (typeof this.uniqs[pk.hh][addr] === 'undefined') { - throw new Error('Something wrong with primary key index on table'); - } else { - this.uniqs[pk.hh][addr] = undefined; - } - } - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - var ukaddr = uk.onrightfn(r); - if (typeof table.uniqs[uk.hh][ukaddr] === 'undefined') { - throw new Error('Something wrong with unique index on table'); - } - table.uniqs[uk.hh][ukaddr] = undefined; - }); - } - }; - - table.deleteall = function() { - this.data.length = 0; - if (this.pk) { - // var r = this.data[i]; - this.uniqs[this.pk.hh] = {}; - } - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - table.uniqs[uk.hh] = {}; - }); - } - }; - - table.update = function(assignfn, i, params) { - // TODO: Analyze the speed - var r = cloneDeep(this.data[i]); - - var pk; - // PART 1 - PRECHECK - if (this.pk) { - pk = this.pk; - pk.pkaddr = pk.onrightfn(r, params); - if (typeof this.uniqs[pk.hh][pk.pkaddr] === 'undefined') { - throw new Error('Something wrong with index on table'); - } - } - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - uk.ukaddr = uk.onrightfn(r); - if (typeof table.uniqs[uk.hh][uk.ukaddr] === 'undefined') { - throw new Error('Something wrong with unique index on table'); - } - }); - } - - assignfn(r, params, alasql); - - // Prevent trigger - var prevent = false; - for (var tr in table.beforeupdate) { - var trigger = table.beforeupdate[tr]; - if (trigger) { - if (trigger.funcid) { - if (alasql.fn[trigger.funcid](this.data[i], r) === false) - prevent = prevent || true; - } else if (trigger.statement) { - if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; - } - } - } - if (prevent) return false; - - // Trigger prevent functionality - var escape = false; - for (var tr in table.insteadofupdate) { - escape = true; - var trigger = table.insteadofupdate[tr]; - if (trigger) { - if (trigger.funcid) { - alasql.fn[trigger.funcid](this.data[i], r); - } else if (trigger.statement) { - trigger.statement.execute(databaseid); - } - } - } - if (escape) return; - - // PART 2 - POST CHECK - if (table.checks && table.checks.length > 0) { - table.checks.forEach(function(check) { - if (!check.fn(r)) { - throw new Error('Violation of CHECK constraint ' + (check.id || '')); - } - }); - } - - table.columns.forEach(function(column) { - if (column.notnull && typeof r[column.columnid] === 'undefined') { - throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid); - } - }); - if (this.pk) { - pk.newpkaddr = pk.onrightfn(r); - if ( - typeof this.uniqs[pk.hh][pk.newpkaddr] !== 'undefined' && - pk.newpkaddr !== pk.pkaddr - ) { - throw new Error('Record already exists'); - } - } - - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - uk.newukaddr = uk.onrightfn(r); - if ( - typeof table.uniqs[uk.hh][uk.newukaddr] !== 'undefined' && - uk.newukaddr !== uk.ukaddr - ) { - throw new Error('Record already exists'); - } - }); - } - - // PART 3 UPDATE - if (this.pk) { - this.uniqs[pk.hh][pk.pkaddr] = undefined; - this.uniqs[pk.hh][pk.newpkaddr] = r; - } - if (table.uk && table.uk.length) { - table.uk.forEach(function(uk) { - table.uniqs[uk.hh][uk.ukaddr] = undefined; - table.uniqs[uk.hh][uk.newukaddr] = r; - }); - } - - this.data[i] = r; - - // Trigger prevent functionality - for (var tr in table.afterupdate) { - var trigger = table.afterupdate[tr]; - if (trigger) { - if (trigger.funcid) { - alasql.fn[trigger.funcid](this.data[i], r); - } else if (trigger.statement) { - trigger.statement.execute(databaseid); - } - } - } - }; - - var res; - - if (!alasql.options.nocount) { - res = 1; - } - - if (cb) res = cb(res); - return res; -}; - -// -// Date functions -// -// (c) 2014, Andrey Gershun -// - -/** Standard JavaScript data types */ - -alasql.fn.Date = Object; -alasql.fn.Date = Date; -alasql.fn.Number = Number; -alasql.fn.String = String; -alasql.fn.Boolean = Boolean; - -/** Extend Object with properties */ -stdfn.EXTEND = alasql.utils.extend; - -stdfn.CHAR = String.fromCharCode.bind(String); -stdfn.ASCII = function(a) { - return a.charCodeAt(0); -}; - -/** - Return first non-null argument - See https://msdn.microsoft.com/en-us/library/ms190349.aspx -*/ -stdfn.COALESCE = function() { - for (var i = 0; i < arguments.length; i++) { - if (typeof arguments[i] == 'undefined') continue; - if (typeof arguments[i] == 'number' && isNaN(arguments[i])) continue; - return arguments[i]; - } - return undefined; -}; - -stdfn.USER = function() { - return 'alasql'; -}; - -stdfn.OBJECT_ID = function(objid) { - return !!alasql.tables[objid]; -}; - -stdfn.DATE = function(d) { - if (/\d{8}/.test(d)) return new Date(+d.substr(0, 4), +d.substr(4, 2) - 1, +d.substr(6, 2)); - return new Date(d); -}; - -stdfn.NOW = function() { - var d = new Date(); - var s = - d.getFullYear() + - '.' + - ('0' + (d.getMonth() + 1)).substr(-2) + - '.' + - ('0' + d.getDate()).substr(-2); - s += - ' ' + - ('0' + d.getHours()).substr(-2) + - ':' + - ('0' + d.getMinutes()).substr(-2) + - ':' + - ('0' + d.getSeconds()).substr(-2); - s += '.' + ('00' + d.getMilliseconds()).substr(-3); - return s; -}; - -stdfn.GETDATE = stdfn.NOW; -stdfn.CURRENT_TIMESTAMP = stdfn.NOW; - -stdfn.SECOND = function(d) { - var d = new Date(d); - return d.getSeconds(); -}; - -stdfn.MINUTE = function(d) { - var d = new Date(d); - return d.getMinutes(); -}; - -stdfn.HOUR = function(d) { - var d = new Date(d); - return d.getHours(); -}; - -stdfn.DAYOFWEEK = stdfn.WEEKDAY = function(d) { - var d = new Date(d); - return d.getDay(); -}; - -stdfn.DAY = stdfn.DAYOFMONTH = function(d) { - var d = new Date(d); - return d.getDate(); -}; - -stdfn.MONTH = function(d) { - var d = new Date(d); - return d.getMonth() + 1; -}; - -stdfn.YEAR = function(d) { - var d = new Date(d); - return d.getFullYear(); -}; - -var PERIODS = { - year: 1000 * 3600 * 24 * 365, - quarter: 1000 * 3600 * 24 * 365 / 4, - month: 1000 * 3600 * 24 * 30, - week: 1000 * 3600 * 24 * 7, - day: 1000 * 3600 * 24, - dayofyear: 1000 * 3600 * 24, - weekday: 1000 * 3600 * 24, - hour: 1000 * 3600, - minute: 1000 * 60, - second: 1000, - millisecond: 1, - microsecond: 0.001, -}; - -alasql.stdfn.DATEDIFF = function(period, d1, d2) { - var interval = new Date(d2).getTime() - new Date(d1).getTime(); - return interval / PERIODS[period.toLowerCase()]; -}; - -alasql.stdfn.DATEADD = function(period, interval, d) { - var nd = new Date(d).getTime() + interval * PERIODS[period.toLowerCase()]; - return new Date(nd); -}; - -alasql.stdfn.INTERVAL = function(interval, period) { - return interval * PERIODS[period.toLowerCase()]; -}; - -alasql.stdfn.DATE_ADD = alasql.stdfn.ADDDATE = function(d, interval) { - var nd = new Date(d).getTime() + interval; - return new Date(nd); -}; - -alasql.stdfn.DATE_SUB = alasql.stdfn.SUBDATE = function(d, interval) { - var nd = new Date(d).getTime() - interval; - return new Date(nd); -}; - -/* -// -// DROP TABLE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.DropTable = function(params) { - return yy.extend(this, params); -}; -yy.DropTable.prototype.toString = function() { - var s = 'DROP' + ' '; - if (this.view) s += 'VIEW'; - else s += 'TABLE'; - if (this.ifexists) s += ' IF EXISTS'; - s += ' ' + this.tables.toString(); - return s; -}; - -// DROP TABLE -/** - Drop tables - @param {string} databaseid Database id - @param {object} params Parameters - @param {callback} cb Callback function - @return Number of dropped tables - @example - DROP TABLE one; - DROP TABLE IF NOT EXISTS two, three; -*/ -yy.DropTable.prototype.execute = function(databaseid, params, cb) { - var ifexists = this.ifexists; - var res = 0; // No tables removed - var count = 0; - var tlen = this.tables.length; - - // For each table in the list - this.tables.forEach(function(table) { - var db = alasql.databases[table.databaseid || databaseid]; - var tableid = table.tableid; - - /** @todo Test with AUTOCOMMIT flag is ON */ - /** @todo Test with IndexedDB and multiple tables */ - - if (!ifexists || (ifexists && db.tables[tableid])) { - if (!db.tables[tableid]) { - if (!alasql.options.dropifnotexists) { - throw new Error( - "Can not drop table '" + - table.tableid + - "', because it does not exist in the database." - ); - } - } else { - if (db.engineid /*&& alasql.options.autocommit*/) { - alasql.engines[db.engineid].dropTable( - table.databaseid || databaseid, - tableid, - ifexists, - function(res1) { - delete db.tables[tableid]; - res += res1; - count++; - if (count == tlen && cb) cb(res); - } - ); - } else { - delete db.tables[tableid]; - res++; - count++; - if (count == tlen && cb) cb(res); - } - } - } else { - count++; - if (count == tlen && cb) cb(res); - } - }); - // if(cb) res = cb(res); - return res; -}; - -yy.TruncateTable = function(params) { - return yy.extend(this, params); -}; -yy.TruncateTable.prototype.toString = function() { - var s = 'TRUNCATE TABLE'; - s += ' ' + this.table.toString(); - return s; -}; - -yy.TruncateTable.prototype.execute = function(databaseid, params, cb) { - var db = alasql.databases[this.table.databaseid || databaseid]; - var tableid = this.table.tableid; - if (db.engineid) { - return alasql.engines[db.engineid].truncateTable( - this.table.databaseid || databaseid, - tableid, - this.ifexists, - cb - ); - } - if (db.tables[tableid]) { - db.tables[tableid].data = []; - } else { - throw new Error('Cannot truncate table becaues it does not exist'); - } - return cb ? cb(0) : 0; -}; - -/* -// -// CREATE VERTEX for AlaSQL -// Date: 21.04.2015 -// (c) 2015, Andrey Gershun -// -*/ - -yy.CreateVertex = function(params) { - return yy.extend(this, params); -}; -yy.CreateVertex.prototype.toString = function() { - var s = 'CREATE VERTEX '; - if (this["class"]) { - s += this["class"] + ' '; - } - if (this.sharp) { - s += '#' + this.sharp + ' '; - } - if (this.sets) { - s += this.sets.toString(); - } else if (this.content) { - s += this.content.toString(); - } else if (this.select) { - s += this.select.toString(); - } - - return s; -}; - -yy.CreateVertex.prototype.toJS = function(context) { - - var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; - // var s = ''; - return s; -}; - -// CREATE TABLE - -yy.CreateVertex.prototype.compile = function(databaseid) { - var dbid = databaseid; - - // CREATE VERTEX #id - var sharp = this.sharp; - - // CREATE VERTEX "Name" - if (typeof this.name !== 'undefined') { - var s = 'x.name=' + this.name.toJS(); - var namefn = new Function('x', s); - } - - if (this.sets && this.sets.length > 0) { - var s = this.sets - .map(function(st) { - return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); - }) - .join(';'); - var setfn = new Function('x,params,alasql', s); - } - - // Todo: check for content, select and default - - var statement = function(params, cb) { - var res; - - // CREATE VERTEX without parameters - var db = alasql.databases[dbid]; - var id; - if (typeof sharp !== 'undefined') { - id = sharp; - } else { - id = db.counter++; - } - var vertex = {$id: id, $node: 'VERTEX'}; - db.objects[vertex.$id] = vertex; - res = vertex; - if (namefn) { - namefn(vertex); - } - if (setfn) { - setfn(vertex, params, alasql); - } - - if (cb) { - res = cb(res); - } - return res; - }; - return statement; -}; - -yy.CreateEdge = function(params) { - return yy.extend(this, params); -}; -yy.CreateEdge.prototype.toString = function() { - - var s = 'CREATE EDGE' + ' '; - if (this["class"]) { - s += this["class"] + ' '; - } - // todo: SET - // todo: CONTENT - // todo: SELECT - return s; -}; - -yy.CreateEdge.prototype.toJS = function(context) { - var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; - return s; -}; - -// CREATE TABLE - -yy.CreateEdge.prototype.compile = function(databaseid) { - var dbid = databaseid; - var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS()); - var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS()); - - // CREATE VERTEX "Name" - if (typeof this.name !== 'undefined') { - var s = 'x.name=' + this.name.toJS(); - var namefn = new Function('x', s); - } - - if (this.sets && this.sets.length > 0) { - var s = this.sets - .map(function(st) { - return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); - }) - .join(';'); - var setfn = new Function('x,params,alasql', 'var y;' + s); - } - - /* - todo: handle content, select and default - else if(this.content) { - - } else if(this.select) { - - } else { - } - */ - - var statement = function(params, cb) { - var res = 0; - // CREATE VERTEX without parameters - var db = alasql.databases[dbid]; - var edge = {$id: db.counter++, $node: 'EDGE'}; - var v1 = fromfn(params, alasql); - var v2 = tofn(params, alasql); - // Set link - edge.$in = [v1.$id]; - edge.$out = [v2.$id]; - // Set sides - if (v1.$out === undefined) { - v1.$out = []; - } - v1.$out.push(edge.$id); - - if (typeof v2.$in === undefined) { - v2.$in = []; - } - v2.$in.push(edge.$id); - - // Save in objects - db.objects[edge.$id] = edge; - res = edge; - if (namefn) { - namefn(edge); - } - - if (setfn) { - setfn(edge, params, alasql); - } - - if (cb) { - res = cb(res); - } - - return res; - }; - return statement; -}; - -yy.CreateGraph = function(params) { - return yy.extend(this, params); -}; -yy.CreateGraph.prototype.toString = function() { - var s = 'CREATE GRAPH' + ' '; - if (this["class"]) { - s += this["class"] + ' '; - } - return s; -}; - -yy.CreateGraph.prototype.execute = function(databaseid, params, cb) { - var res = []; - if (this.from) { - if (alasql.from[this.from.funcid]) { - this.graph = alasql.from[this.from.funcid.toUpperCase()]; - } - } - - // stop; - this.graph.forEach(function(g) { - if (g.source) { - // GREATE EDGE - var e = {}; - if (typeof g.as !== 'undefined') { - alasql.vars[g.as] = e; - } - - if (typeof g.prop !== 'undefined') { - // e[g.prop] = e; - // v.$id = g.prop; // We do not create $id for edge automatically - e.name = g.prop; - } - if (typeof g.sharp !== 'undefined') { - e.$id = g.sharp; - } - if (typeof g.name !== 'undefined') { - e.name = g.name; - } - if (typeof g["class"] !== 'undefined') { - e.$class = g["class"]; - } - - var db = alasql.databases[databaseid]; - if (typeof e.$id === 'undefined') { - e.$id = db.counter++; - } - e.$node = 'EDGE'; - if (typeof g.json !== 'undefined') { - extend( - e, - new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql) - ); - } - - var v1; - if (g.source.vars) { - var vo = alasql.vars[g.source.vars]; - if (typeof vo === 'object') { - v1 = vo; - } else { - v1 = db.objects[vo]; - } - } else { - var av1 = g.source.sharp; - if (typeof av1 === 'undefined') { - av1 = g.source.prop; - } - v1 = alasql.databases[databaseid].objects[av1]; - if ( - typeof v1 === 'undefined' && - alasql.options.autovertex && - (typeof g.source.prop !== 'undefined' || typeof g.source.name !== 'undefined') - ) { - v1 = findVertex(g.source.prop || g.source.name); - if (typeof v1 === 'undefined') { - v1 = createVertex(g.source); - } - } - } - - var v2; - if (g.source.vars) { - var vo = alasql.vars[g.target.vars]; - if (typeof vo === 'object') { - v2 = vo; - } else { - v2 = db.objects[vo]; - } - } else { - var av2 = g.target.sharp; - if (typeof av2 === 'undefined') { - av2 = g.target.prop; - } - v2 = alasql.databases[databaseid].objects[av2]; - if ( - typeof v2 === 'undefined' && - alasql.options.autovertex && - (typeof g.target.prop !== 'undefined' || typeof g.target.name !== 'undefined') - ) { - v2 = findVertex(g.target.prop || g.target.name); - if (typeof v2 === 'undefined') { - v2 = createVertex(g.target); - } - } - } - - // Set link - e.$in = [v1.$id]; - e.$out = [v2.$id]; - // Set sides - if (typeof v1.$out === 'undefined') { - v1.$out = []; - } - v1.$out.push(e.$id); - if (typeof v2.$in === 'undefined') { - v2.$in = []; - } - v2.$in.push(e.$id); - - db.objects[e.$id] = e; - if (typeof e.$class !== 'undefined') { - if (typeof alasql.databases[databaseid].tables[e.$class] === 'undefined') { - throw new Error('No such class. Pleace use CREATE CLASS'); - } else { - // TODO - add insert() - alasql.databases[databaseid].tables[e.$class].data.push(e); - } - } - - res.push(e.$id); - } else { - createVertex(g); - } - }); - - if (cb) { - res = cb(res); - } - return res; - - // Find vertex by name - function findVertex(name) { - var objects = alasql.databases[alasql.useid].objects; - for (var k in objects) { - if (objects[k].name === name) { - return objects[k]; - } - } - return undefined; - } - - function createVertex(g) { - // GREATE VERTEX - var v = {}; - if (typeof g.as !== 'undefined') { - alasql.vars[g.as] = v; - } - - if (typeof g.prop !== 'undefined') { - // v[g.prop] = true; - v.$id = g.prop; - v.name = g.prop; - } - - if (typeof g.sharp !== 'undefined') { - v.$id = g.sharp; - } - if (typeof g.name !== 'undefined') { - v.name = g.name; - } - if (typeof g["class"] !== 'undefined') { - v.$class = g["class"]; - } - - var db = alasql.databases[databaseid]; - if (typeof v.$id === 'undefined') { - v.$id = db.counter++; - } - v.$node = 'VERTEX'; - if (typeof g.json !== 'undefined') { - extend( - v, - new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql) - ); - } - db.objects[v.$id] = v; - if (typeof v.$class !== 'undefined') { - if (typeof alasql.databases[databaseid].tables[v.$class] === 'undefined') { - throw new Error('No such class. Pleace use CREATE CLASS'); - } else { - // TODO - add insert() - alasql.databases[databaseid].tables[v.$class].data.push(v); - } - } - - res.push(v.$id); - return v; - } -}; - -yy.CreateGraph.prototype.compile1 = function(databaseid) { - var dbid = databaseid; - var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS()); - var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS()); - - // CREATE VERTEX "Name" - if (typeof this.name !== 'undefined') { - var s = 'x.name=' + this.name.toJS(); - var namefn = new Function('x', s); - } - - if (this.sets && this.sets.length > 0) { - var s = this.sets - .map(function(st) { - return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); - }) - .join(';'); - var setfn = new Function('x,params,alasql', 'var y;' + s); - } - - // Todo: handle content, select and default - - var statement = function(params, cb) { - var res = 0; - // CREATE VERTEX without parameters - var db = alasql.databases[dbid]; - var edge = {$id: db.counter++, $node: 'EDGE'}; - var v1 = fromfn(params, alasql); - var v2 = tofn(params, alasql); - // Set link - edge.$in = [v1.$id]; - edge.$out = [v2.$id]; - // Set sides - if (typeof v1.$out === 'undefined') { - v1.$out = []; - } - v1.$out.push(edge.$id); - - if (typeof v2.$in === 'undefined') { - v2.$in = []; - } - v2.$in.push(edge.$id); - // Save in objects - db.objects[edge.$id] = edge; - res = edge; - if (namefn) { - namefn(edge); - } - if (setfn) { - setfn(edge, params, alasql); - } - - if (cb) { - res = cb(res); - } - return res; - }; - return statement; -}; - -/* -// -// ALTER TABLE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ -/* global alasql yy */ - -// ALTER TABLE table1 RENAME TO table2 -yy.AlterTable = function(params) { - return yy.extend(this, params); -}; -yy.AlterTable.prototype.toString = function() { - var s = 'ALTER TABLE ' + this.table.toString(); - if (this.renameto) s += ' RENAME TO ' + this.renameto; - return s; -}; - -yy.AlterTable.prototype.execute = function(databaseid, params, cb) { - var db = alasql.databases[databaseid]; - db.dbversion = Date.now(); - - if (this.renameto) { - var oldtableid = this.table.tableid; - var newtableid = this.renameto; - var res = 1; - if (db.tables[newtableid]) { - throw new Error( - "Can not rename a table '" + - oldtableid + - "' to '" + - newtableid + - "', because the table with this name already exists" - ); - } else if (newtableid === oldtableid) { - throw new Error("Can not rename a table '" + oldtableid + "' to itself"); - } else { - db.tables[newtableid] = db.tables[oldtableid]; - delete db.tables[oldtableid]; - res = 1; - } - if (cb) cb(res); - return res; - } else if (this.addcolumn) { - db = alasql.databases[this.table.databaseid || databaseid]; - db.dbversion++; - var tableid = this.table.tableid; - var table = db.tables[tableid]; - var columnid = this.addcolumn.columnid; - if (table.xcolumns[columnid]) { - throw new Error( - 'Cannot add column "' + - columnid + - '", because it already exists in the table "' + - tableid + - '"' - ); - } - - var col = { - columnid: columnid, - dbtypeid: this.dbtypeid, - dbsize: this.dbsize, - dbprecision: this.dbprecision, - dbenum: this.dbenum, - defaultfns: null, // TODO defaultfns!!! - }; - - var defaultfn = function() {}; - - table.columns.push(col); - table.xcolumns[columnid] = col; - - for (var i = 0, ilen = table.data.length; i < ilen; i++) { - - table.data[i][columnid] = defaultfn(); - } - - // TODO - return cb ? cb(1) : 1; - } else if (this.modifycolumn) { - var db = alasql.databases[this.table.databaseid || databaseid]; - db.dbversion++; - var tableid = this.table.tableid; - var table = db.tables[tableid]; - var columnid = this.modifycolumn.columnid; - - if (!table.xcolumns[columnid]) { - throw new Error( - 'Cannot modify column "' + - columnid + - '", because it was not found in the table "' + - tableid + - '"' - ); - } - - col = table.xcolumns[columnid]; - col.dbtypeid = this.dbtypeid; - col.dbsize = this.dbsize; - col.dbprecision = this.dbprecision; - col.dbenum = this.dbenum; - - // TODO - return cb ? cb(1) : 1; - } else if (this.renamecolumn) { - var db = alasql.databases[this.table.databaseid || databaseid]; - db.dbversion++; - - var tableid = this.table.tableid; - var table = db.tables[tableid]; - var columnid = this.renamecolumn; - var tocolumnid = this.to; - - var col; - if (!table.xcolumns[columnid]) { - throw new Error( - 'Column "' + columnid + '" is not found in the table "' + tableid + '"' - ); - } - if (table.xcolumns[tocolumnid]) { - throw new Error( - 'Column "' + tocolumnid + '" already exists in the table "' + tableid + '"' - ); - } - - if (columnid != tocolumnid) { - for (var j = 0; j < table.columns.length; j++) { - if (table.columns[j].columnid == columnid) { - table.columns[j].columnid = tocolumnid; - } - } - - table.xcolumns[tocolumnid] = table.xcolumns[columnid]; - delete table.xcolumns[columnid]; - - for (var i = 0, ilen = table.data.length; i < ilen; i++) { - - table.data[i][tocolumnid] = table.data[i][columnid]; - delete table.data[i][columnid]; - } - return table.data.length; - } else { - return cb ? cb(0) : 0; - } - } else if (this.dropcolumn) { - var db = alasql.databases[this.table.databaseid || databaseid]; - db.dbversion++; - var tableid = this.table.tableid; - var table = db.tables[tableid]; - var columnid = this.dropcolumn; - - var found = false; - for (var j = 0; j < table.columns.length; j++) { - if (table.columns[j].columnid == columnid) { - found = true; - table.columns.splice(j, 1); - break; - } - } - - if (!found) { - throw new Error( - 'Cannot drop column "' + - columnid + - '", because it was not found in the table "' + - tableid + - '"' - ); - } - - delete table.xcolumns[columnid]; - - for (i = 0, ilen = table.data.length; i < ilen; i++) { - delete table.data[i][columnid]; - } - return cb ? cb(table.data.length) : table.data.length; - } else { - throw Error('Unknown ALTER TABLE method'); - } -}; - -/* -// -// CREATE TABLE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.CreateIndex = function(params) { - return yy.extend(this, params); -}; -yy.CreateIndex.prototype.toString = function() { - var s = 'CREATE'; - if (this.unique) s += ' UNIQUE'; - s += ' INDEX ' + this.indexid + ' ON ' + this.table.toString(); - s += '(' + this.columns.toString() + ')'; - return s; -}; - -// CREATE TABLE -yy.CreateIndex.prototype.execute = function(databaseid, params, cb) { - // var self = this; - var db = alasql.databases[databaseid]; - var tableid = this.table.tableid; - var table = db.tables[tableid]; - var indexid = this.indexid; - db.indices[indexid] = tableid; - - var rightfns = this.columns - .map(function(expr) { - return expr.expression.toJS('r', ''); - }) - .join("+'`'+"); - - var rightfn = new Function('r,params,alasql', 'return ' + rightfns); - - if (this.unique) { - table.uniqdefs[indexid] = { - rightfns: rightfns, - }; - var ux = (table.uniqs[indexid] = {}); - if (table.data.length > 0) { - for (var i = 0, ilen = table.data.length; i < ilen; i++) { - var addr = rightfns(table.data[i]); - if (!ux[addr]) { - ux[addr] = {num: 0}; - } - ux[addr].num++; - } - } - } else { - var hh = hash(rightfns); - table.inddefs[indexid] = {rightfns: rightfns, hh: hh}; - table.indices[hh] = {}; - - var ix = (table.indices[hh] = {}); - if (table.data.length > 0) { - for (var i = 0, ilen = table.data.length; i < ilen; i++) { - var addr = rightfn(table.data[i], params, alasql); - if (!ix[addr]) { - ix[addr] = []; - } - ix[addr].push(table.data[i]); - } - } - } - var res = 1; - if (cb) res = cb(res); - return res; -}; - -yy.Reindex = function(params) { - return yy.extend(this, params); -}; -yy.Reindex.prototype.toString = function() { - var s = 'REINDEX ' + this.indexid; - return s; -}; - -// CREATE TABLE -yy.Reindex.prototype.execute = function(databaseid, params, cb) { - // var self = this; - var db = alasql.databases[databaseid]; - var indexid = this.indexid; - - var tableid = db.indices[indexid]; - var table = db.tables[tableid]; - table.indexColumns(); - var res = 1; - if (cb) res = cb(res); - return res; -}; - -/* -// -// DROP TABLE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.DropIndex = function(params) { - return yy.extend(this, params); -}; -yy.DropIndex.prototype.toString = function() { - return 'DROP INDEX' + this.indexid; -}; - -// DROP TABLE -yy.DropIndex.prototype.compile = function(db) { - var indexid = this.indexid; - return function() { - return 1; - }; -}; - -/* -// -// WITH SELECT for Alasql.js -// Date: 11.01.2015 -// (c) 2015, Andrey Gershun -// -*/ - -yy.WithSelect = function(params) { - return yy.extend(this, params); -}; -yy.WithSelect.prototype.toString = function() { - var s = 'WITH '; - s += - this.withs - .map(function(w) { - return w.name + ' AS (' + w.select.toString() + ')'; - }) - .join(',') + ' '; - s += this.select.toString(); - return s; -}; - -yy.WithSelect.prototype.execute = function(databaseid, params, cb) { - var self = this; - // Create temporary tables - var savedTables = []; - self.withs.forEach(function(w) { - savedTables.push(alasql.databases[databaseid].tables[w.name]); - var tb = (alasql.databases[databaseid].tables[w.name] = new Table({tableid: w.name})); - tb.data = w.select.execute(databaseid, params); - }); - - var res = 1; - res = this.select.execute(databaseid, params, function(data) { - // Clear temporary tables - // setTimeout(function(){ - self.withs.forEach(function(w, idx) { - if (savedTables[idx]) alasql.databases[databaseid].tables[w.name] = savedTables[idx]; - else delete alasql.databases[databaseid].tables[w.name]; - }); - // },0); - - if (cb) data = cb(data); - return data; - }); - return res; -}; - -/* -// -// IF for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.If = function(params) { - return yy.extend(this, params); -}; -yy.If.prototype.toString = function() { - var s = 'IF' + ' '; - s += this.expression.toString(); - s += ' ' + this.thenstat.toString(); - if (this.elsestat) s += ' ELSE ' + this.thenstat.toString(); - return s; -}; - -// CREATE TABLE - -yy.If.prototype.execute = function(databaseid, params, cb) { - var res; - - var fn = new Function( - 'params,alasql,p', - 'var y;return ' + this.expression.toJS('({})', '', null) - ).bind(this); - - if (fn(params, alasql)) res = this.thenstat.execute(databaseid, params, cb); - else { - if (this.elsestat) res = this.elsestat.execute(databaseid, params, cb); - else { - if (cb) res = cb(res); - } - } - // else res = this.elsestat.execute(databaseid,params,cb,scope); - return res; -}; - -/* -// -// CREATE VIEW for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.While = function(params) { - return yy.extend(this, params); -}; -yy.While.prototype.toString = function() { - var s = 'WHILE '; - s += this.expression.toString(); - s += ' ' + this.loopstat.toString(); - return s; -}; - -yy.While.prototype.execute = function(databaseid, params, cb) { - var self = this; - var res = []; - - var fn = new Function('params,alasql,p', 'var y;return ' + this.expression.toJS()); - - if (cb) { - var first = false; - loop(); - function loop(data) { - if (first) { - res.push(data); - } else { - first = true; - } - setTimeout(function() { - if (fn(params, alasql)) { - self.loopstat.execute(databaseid, params, loop); - } else { - res = cb(res); - } - }, 0); - } - } else { - while (fn(params, alasql)) { - var res1 = self.loopstat.execute(databaseid, params); - res.push(res1); - } - } - return res; -}; - -yy.Break = function(params) { - return yy.extend(this, params); -}; -yy.Break.prototype.toString = function() { - var s = 'BREAK'; - return s; -}; - -yy.Break.prototype.execute = function(databaseid, params, cb, scope) { - var res = 1; - if (cb) res = cb(res); - return res; -}; - -yy.Continue = function(params) { - return yy.extend(this, params); -}; -yy.Continue.prototype.toString = function() { - var s = 'CONTINUE'; - return s; -}; - -yy.Continue.prototype.execute = function(databaseid, params, cb, scope) { - var res = 1; - if (cb) res = cb(res); - return res; -}; - -yy.BeginEnd = function(params) { - return yy.extend(this, params); -}; -yy.BeginEnd.prototype.toString = function() { - var s = 'BEGIN ' + this.statements.toString() + ' END'; - return s; -}; - -yy.BeginEnd.prototype.execute = function(databaseid, params, cb, scope) { - var self = this; - var res = []; - - var idx = 0; - runone(); - function runone() { - self.statements[idx].execute(databaseid, params, function(data) { - res.push(data); - idx++; - if (idx < self.statements.length) return runone(); - if (cb) res = cb(res); - }); - } - return res; -}; - -/* -// -// INSERT for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* global yy alasql*/ -yy.Insert = function(params) { - return yy.extend(this, params); -}; -yy.Insert.prototype.toString = function() { - var s = 'INSERT '; - if (this.orreplace) s += 'OR REPLACE '; - if (this.replaceonly) s = 'REPLACE '; - s += 'INTO ' + this.into.toString(); - if (this.columns) s += '(' + this.columns.toString() + ')'; - if (this.values) s += ' VALUES ' + this.values.toString(); - if (this.select) s += ' ' + this.select.toString(); - return s; -}; - -yy.Insert.prototype.toJS = function(context, tableid, defcols) { - - // if(this.expression.reduced) return 'true'; - // return this.expression.toJS(context, tableid, defcols); - - // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]'; - - var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; - - return s; -}; - -yy.Insert.prototype.compile = function(databaseid) { - var self = this; - databaseid = self.into.databaseid || databaseid; - var db = alasql.databases[databaseid]; - - var tableid = self.into.tableid; - var table = db.tables[tableid]; - - if (!table) { - throw "Table '" + tableid + "' could not be found"; - } - - // Check, if this dirty flag is required - var s = ''; - var sw = ''; - var s = "db.tables['" + tableid + "'].dirty=true;"; - var s3 = 'var a,aa=[],x;'; - - var s33; - - // INSERT INTO table VALUES - if (this.values) { - if (this.exists) { - this.existsfn = this.exists.map(function(ex) { - var nq = ex.compile(databaseid); - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - if (this.queries) { - this.queriesfn = this.queries.map(function(q) { - var nq = q.compile(databaseid); - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - - self.values.forEach(function(values) { - var ss = []; - - // s += 'db.tables[\''+tableid+'\'].data.push({'; - - // s += ''; - if (self.columns) { - self.columns.forEach(function(col, idx) { - - // ss.push(col.columnid +':'+ self.values[idx].value.toString()); - - // if(rec[f.name.value] == "NULL") rec[f.name.value] = undefined; - - // if(table.xflds[f.name.value].dbtypeid == "INT") rec[f.name.value] = +rec[f.name.value]|0; - // else if(table.xflds[f.name.value].dbtypeid == "FLOAT") rec[f.name.value] = +rec[f.name.value]; - var q = "'" + col.columnid + "':"; - if (table.xcolumns && table.xcolumns[col.columnid]) { - if ( - ['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf( - table.xcolumns[col.columnid].dbtypeid - ) >= 0 - ) { - //q += '' - q += '(x=' + values[idx].toJS() + ',x==undefined?undefined:+x)'; - } else if (alasql.fn[table.xcolumns[col.columnid].dbtypeid]) { - q += '(new ' + table.xcolumns[col.columnid].dbtypeid + '('; - q += values[idx].toJS(); - q += '))'; - } else { - q += values[idx].toJS(); - } - } else { - q += values[idx].toJS(); - } - ss.push(q); - }); - } else { - // var table = db.tables[tableid]; - - if (Array.isArray(values) && table.columns && table.columns.length > 0) { - table.columns.forEach(function(col, idx) { - var q = "'" + col.columnid + "':"; - // var val = values[idx].toJS(); - - if (['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(col.dbtypeid) >= 0) { - q += '+' + values[idx].toJS(); - } else if (alasql.fn[col.dbtypeid]) { - q += '(new ' + col.dbtypeid + '('; - q += values[idx].toJS(); - q += '))'; - } else { - q += values[idx].toJS(); - } - - ss.push(q); - - }); - } else { - - // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};'; - sw = JSONtoJS(values); - } - } - - if (db.tables[tableid].defaultfns) { - ss.unshift(db.tables[tableid].defaultfns); - } - if (sw) { - s += 'a=' + sw + ';'; - } else { - s += 'a={' + ss.join(',') + '};'; - } - - // If this is a class - if (db.tables[tableid].isclass) { - s += "var db=alasql.databases['" + databaseid + "'];"; - s += 'a.$class="' + tableid + '";'; - s += 'a.$id=db.counter++;'; - s += 'db.objects[a.$id]=a;'; - } - // s += 'db.tables[\''+tableid+'\'].insert(r);'; - if (db.tables[tableid].insert) { - s += "var db=alasql.databases['" + databaseid + "'];"; - s += - "db.tables['" + - tableid + - "'].insert(a," + - (self.orreplace ? 'true' : 'false') + - ');'; - } else { - s += 'aa.push(a);'; - } - }); - - s33 = s3 + s; - - if (db.tables[tableid].insert) { - // s += 'alasql.databases[\''+databaseid+'\'].tables[\''+tableid+'\'].insert(r);'; - } else { - s += - "alasql.databases['" + - databaseid + - "'].tables['" + - tableid + - "'].data=" + - "alasql.databases['" + - databaseid + - "'].tables['" + - tableid + - "'].data.concat(aa);"; - } - - if (db.tables[tableid].insert) { - if (db.tables[tableid].isclass) { - s += 'return a.$id;'; - } else { - s += 'return ' + self.values.length; - } - } else { - s += 'return ' + self.values.length; - } - - var insertfn = new Function('db, params, alasql', 'var y;' + s3 + s).bind(this); - - // INSERT INTO table SELECT - } else if (this.select) { - this.select.modifier = 'RECORDSET'; - var selectfn = this.select.compile(databaseid); - if (db.engineid && alasql.engines[db.engineid].intoTable) { - var statement = function(params, cb) { - var aa = selectfn(params); - var res = alasql.engines[db.engineid].intoTable( - db.databaseid, - tableid, - aa.data, - null, - cb - ); - return res; - }; - return statement; - } else { - - var defaultfns = 'return alasql.utils.extend(r,{' + table.defaultfns + '})'; - var defaultfn = new Function('r,db,params,alasql', defaultfns); - var insertfn = function(db, params, alasql) { - var res = selectfn(params).data; - if (db.tables[tableid].insert) { - // If insert() function exists (issue #92) - for (var i = 0, ilen = res.length; i < ilen; i++) { - var r = cloneDeep(res[i]); - defaultfn(r, db, params, alasql); - db.tables[tableid].insert(r, self.orreplace); - } - } else { - db.tables[tableid].data = db.tables[tableid].data.concat(res); - } - if (alasql.options.nocount) return; - else return res.length; - }; - } - } else if (this["default"]) { - var insertfns = - "db.tables['" + tableid + "'].data.push({" + table.defaultfns + '});return 1;'; - var insertfn = new Function('db,params,alasql', insertfns); - } else { - throw new Error('Wrong INSERT parameters'); - } - - if (db.engineid && alasql.engines[db.engineid].intoTable && alasql.options.autocommit) { - var statement = function(params, cb) { - var aa = new Function('db,params', 'var y;' + s33 + 'return aa;')(db, params); - - var res = alasql.engines[db.engineid].intoTable(db.databaseid, tableid, aa, null, cb); - // if(cb) cb(res); - return res; - }; - } else { - var statement = function(params, cb) { - - var db = alasql.databases[databaseid]; - - if (alasql.options.autocommit && db.engineid) { - alasql.engines[db.engineid].loadTableData(databaseid, tableid); - } - - var res = insertfn(db, params, alasql); - - if (alasql.options.autocommit && db.engineid) { - alasql.engines[db.engineid].saveTableData(databaseid, tableid); - } - // var res = insertfn(db, params); - if (alasql.options.nocount) res = undefined; - if (cb) cb(res); - return res; - }; - } - - return statement; -}; - -yy.Insert.prototype.execute = function(databaseid, params, cb) { - return this.compile(databaseid)(params, cb); - // throw new Error('Insert statement is should be compiled') -}; - -/* -// -// TRIGGER for Alasql.js -// Date: 29.12.2015 -// -*/ - -yy.CreateTrigger = function(params) { - return yy.extend(this, params); -}; -yy.CreateTrigger.prototype.toString = function() { - var s = 'CREATE TRIGGER ' + this.trigger + ' '; - if (this.when) s += this.when + ' '; - s += this.action + ' ON '; - if (this.table.databaseid) s += this.table.databaseid + '.'; - s += this.table.tableid + ' '; - s += this.statement.toString(); - return s; -}; - -yy.CreateTrigger.prototype.execute = function(databaseid, params, cb) { - var res = 1; // No tables removed - var triggerid = this.trigger; - databaseid = this.table.databaseid || databaseid; - var db = alasql.databases[databaseid]; - var tableid = this.table.tableid; - - var trigger = { - action: this.action, - when: this.when, - statement: this.statement, - funcid: this.funcid, - }; - - db.triggers[triggerid] = trigger; - if (trigger.action == 'INSERT' && trigger.when == 'BEFORE') { - db.tables[tableid].beforeinsert[triggerid] = trigger; - } else if (trigger.action == 'INSERT' && trigger.when == 'AFTER') { - db.tables[tableid].afterinsert[triggerid] = trigger; - } else if (trigger.action == 'INSERT' && trigger.when == 'INSTEADOF') { - db.tables[tableid].insteadofinsert[triggerid] = trigger; - } else if (trigger.action == 'DELETE' && trigger.when == 'BEFORE') { - db.tables[tableid].beforedelete[triggerid] = trigger; - } else if (trigger.action == 'DELETE' && trigger.when == 'AFTER') { - db.tables[tableid].afterdelete[triggerid] = trigger; - } else if (trigger.action == 'DELETE' && trigger.when == 'INSTEADOF') { - db.tables[tableid].insteadofdelete[triggerid] = trigger; - } else if (trigger.action == 'UPDATE' && trigger.when == 'BEFORE') { - db.tables[tableid].beforeupdate[triggerid] = trigger; - } else if (trigger.action == 'UPDATE' && trigger.when == 'AFTER') { - db.tables[tableid].afterupdate[triggerid] = trigger; - } else if (trigger.action == 'UPDATE' && trigger.when == 'INSTEADOF') { - db.tables[tableid].insteadofupdate[triggerid] = trigger; - } - - if (cb) res = cb(res); - return res; -}; - -yy.DropTrigger = function(params) { - return yy.extend(this, params); -}; -yy.DropTrigger.prototype.toString = function() { - var s = 'DROP TRIGGER ' + this.trigger; - return s; -}; - -/** - Drop trigger - @param {string} databaseid Database id - @param {object} params Parameters - @param {callback} cb Callback function - @return Number of dropped triggers - @example - DROP TRIGGER one; -*/ -yy.DropTrigger.prototype.execute = function(databaseid, params, cb) { - var res = 0; // No tables removed - var db = alasql.databases[databaseid]; - var triggerid = this.trigger; - // For each table in the list - var tableid = db.triggers[triggerid]; - if (tableid) { - res = 1; - delete db.tables[tableid].beforeinsert[triggerid]; - delete db.tables[tableid].afterinsert[triggerid]; - delete db.tables[tableid].insteadofinsert[triggerid]; - delete db.tables[tableid].beforedelte[triggerid]; - delete db.tables[tableid].afterdelete[triggerid]; - delete db.tables[tableid].insteadofdelete[triggerid]; - delete db.tables[tableid].beforeupdate[triggerid]; - delete db.tables[tableid].afterupdate[triggerid]; - delete db.tables[tableid].insteadofupdate[triggerid]; - delete db.triggers[triggerid]; - } else { - throw new Error('Trigger not found'); - } - if (cb) res = cb(res); - return res; -}; - -/* -// -// DELETE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Delete = function(params) { - return yy.extend(this, params); -}; -yy.Delete.prototype.toString = function() { - var s = 'DELETE FROM ' + this.table.toString(); - if (this.where) s += ' WHERE ' + this.where.toString(); - return s; -}; - -yy.Delete.prototype.compile = function(databaseid) { - - databaseid = this.table.databaseid || databaseid; - var tableid = this.table.tableid; - var statement; - var db = alasql.databases[databaseid]; - - if (this.where) { - - // this.query = {}; - - if (this.exists) { - this.existsfn = this.exists.map(function(ex) { - var nq = ex.compile(databaseid); - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - if (this.queries) { - this.queriesfn = this.queries.map(function(q) { - var nq = q.compile(databaseid); - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - - // try { - - // var query = {}; - - var wherefn = new Function( - 'r,params,alasql', - 'var y;return (' + this.where.toJS('r', '') + ')' - ).bind(this); - - statement = function(params, cb) { - if (db.engineid && alasql.engines[db.engineid].deleteFromTable) { - return alasql.engines[db.engineid].deleteFromTable( - databaseid, - tableid, - wherefn, - params, - cb - ); - } - - if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') { - alasql.engines[db.engineid].loadTableData(databaseid, tableid); - } - - var table = db.tables[tableid]; - // table.dirty = true; - var orignum = table.data.length; - - var newtable = []; - for (var i = 0, ilen = table.data.length; i < ilen; i++) { - if (wherefn(table.data[i], params, alasql)) { - // Check for transaction - if it is not possible then return all back - if (table["delete"]) { - table["delete"](i, params, alasql); - } else { - // Simply do not push - } - } else newtable.push(table.data[i]); - } - // table.data = table.data.filter(function(r){return !;}); - table.data = newtable; - - // Trigger prevent functionality - for (var tr in table.afterdelete) { - var trigger = table.afterdelete[tr]; - if (trigger) { - if (trigger.funcid) { - alasql.fn[trigger.funcid](); - } else if (trigger.statement) { - trigger.statement.execute(databaseid); - } - } - } - - var res = orignum - table.data.length; - if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') { - alasql.engines[db.engineid].saveTableData(databaseid, tableid); - } - - if (cb) cb(res); - return res; - }; - // .bind(query); - - // if(!this.queries) return; - // query.queriesfn = this.queries.map(function(q) { - // return q.compile(alasql.useid); - // }); - } else { - statement = function(params, cb) { - if (alasql.options.autocommit && db.engineid) { - alasql.engines[db.engineid].loadTableData(databaseid, tableid); - } - - var table = db.tables[tableid]; - table.dirty = true; - var orignum = db.tables[tableid].data.length; - //table.deleteall(); - // Delete all records from the array - db.tables[tableid].data.length = 0; - - // Reset PRIMARY KEY and indexes - for (var ix in db.tables[tableid].uniqs) { - db.tables[tableid].uniqs[ix] = {}; - } - - for (var ix in db.tables[tableid].indices) { - db.tables[tableid].indices[ix] = {}; - } - - if (alasql.options.autocommit && db.engineid) { - alasql.engines[db.engineid].saveTableData(databaseid, tableid); - } - - if (cb) cb(orignum); - return orignum; - }; - } - - return statement; -}; - -yy.Delete.prototype.execute = function(databaseid, params, cb) { - return this.compile(databaseid)(params, cb); -}; - -/* -// -// UPDATE for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* global yy alasql */ - -yy.Update = function(params) { - return yy.extend(this, params); -}; -yy.Update.prototype.toString = function() { - var s = 'UPDATE ' + this.table.toString(); - if (this.columns) s += ' SET ' + this.columns.toString(); - if (this.where) s += ' WHERE ' + this.where.toString(); - return s; -}; - -yy.SetColumn = function(params) { - return yy.extend(this, params); -}; -yy.SetColumn.prototype.toString = function() { - return this.column.toString() + '=' + this.expression.toString(); -}; - -yy.Update.prototype.compile = function(databaseid) { - - databaseid = this.table.databaseid || databaseid; - var tableid = this.table.tableid; - - if (this.where) { - if (this.exists) { - this.existsfn = this.exists.map(function(ex) { - var nq = ex.compile(databaseid); - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - if (this.queries) { - this.queriesfn = this.queries.map(function(q) { - var nq = q.compile(databaseid); - nq.query.modifier = 'RECORDSET'; - return nq; - }); - } - - var wherefn = new Function( - 'r,params,alasql', - 'var y;return ' + this.where.toJS('r', '') - ).bind(this); - } - - // Construct update function - var s = alasql.databases[databaseid].tables[tableid].onupdatefns || ''; - s += ';'; - this.columns.forEach(function(col) { - s += "r['" + col.column.columnid + "']=" + col.expression.toJS('r', '') + ';'; - }); - - var assignfn = new Function('r,params,alasql', 'var y;' + s); - - var statement = function(params, cb) { - var db = alasql.databases[databaseid]; - - if (db.engineid && alasql.engines[db.engineid].updateTable) { - - return alasql.engines[db.engineid].updateTable( - databaseid, - tableid, - assignfn, - wherefn, - params, - cb - ); - } - - if (alasql.options.autocommit && db.engineid) { - alasql.engines[db.engineid].loadTableData(databaseid, tableid); - } - - var table = db.tables[tableid]; - if (!table) { - throw new Error("Table '" + tableid + "' not exists"); - } - // table.dirty = true; - var numrows = 0; - for (var i = 0, ilen = table.data.length; i < ilen; i++) { - if (!wherefn || wherefn(table.data[i], params, alasql)) { - if (table.update) { - table.update(assignfn, i, params); - } else { - assignfn(table.data[i], params, alasql); - } - numrows++; - } - } - - if (alasql.options.autocommit && db.engineid) { - alasql.engines[db.engineid].saveTableData(databaseid, tableid); - } - - if (cb) cb(numrows); - return numrows; - }; - return statement; -}; - -yy.Update.prototype.execute = function(databaseid, params, cb) { - return this.compile(databaseid)(params, cb); -}; - -/* -// -// SET for Alasql.js -// Date: 01.12.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* global alasql, yy */ - -yy.Merge = function(params) { - return yy.extend(this, params); -}; -yy.Merge.prototype.toString = function() { - var s = 'MERGE '; - s += this.into.tableid + ' '; - if (this.into.as) s += 'AS ' + this.into.as + ' '; - s += 'USING ' + this.using.tableid + ' '; - if (this.using.as) s += 'AS ' + this.using.as + ' '; - s += 'ON ' + this.on.toString() + ' '; - this.matches.forEach(function(m) { - s += 'WHEN '; - if (!m.matched) s += 'NOT '; - s += 'MATCHED '; - if (m.bytarget) s += 'BY TARGET '; - if (m.bysource) s += 'BY SOURCE '; - if (m.expr) s += 'AND' + ' ' + m.expr.toString() + ' '; - s += 'THEN '; - if (m.action["delete"]) s += 'DELETE '; - if (m.action.insert) { - s += 'INSERT '; - if (m.action.columns) s += '(' + m.action.columns.toString() + ') '; - if (m.action.values) s += 'VALUES (' + m.action.values.toString() + ') '; - if (m.action.defaultvalues) s += 'DEFAULT VALUES '; - } - if (m.action.update) { - s += 'UPDATE '; - s += - m.action.update - .map(function(u) { - return u.toString(); - }) - .join(',') + ' '; - } - }); - - return s; -}; - -yy.Merge.prototype.execute = function(databaseid, params, cb) { - var res = 1; - - if (cb) res = cb(res); - return res; -}; - -/* -// -// UPDATE for Alasql.js -// Date: 03.11.2014 -// Modified: 16.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* global yy alasql */ - -// CREATE DATABASE databaseid -yy.CreateDatabase = function(params) { - return yy.extend(this, params); -}; -yy.CreateDatabase.prototype.toString = function() { - var s = 'CREATE'; - if (this.engineid) s += ' ' + this.engineid; - s += ' DATABASE'; - if (this.ifnotexists) s += ' IF NOT EXISTS'; - s += ' ' + this.databaseid; - if (this.args && this.args.length > 0) { - s += - '(' + - this.args - .map(function(arg) { - return arg.toString(); - }) - .join(', ') + - ')'; - } - if (this.as) s += ' AS ' + this.as; - return s; -}; -//yy.CreateDatabase.prototype.compile = returnUndefined; -yy.CreateDatabase.prototype.execute = function(databaseid, params, cb) { - var args; - if (this.args && this.args.length > 0) { - args = this.args.map(function(arg) { - - return new Function('params,alasql', 'var y;return ' + arg.toJS())(params, alasql); - }); - } - if (this.engineid) { - var res = alasql.engines[this.engineid].createDatabase( - this.databaseid, - this.args, - this.ifnotexists, - this.as, - cb - ); - return res; - } else { - var dbid = this.databaseid; - if (alasql.databases[dbid]) { - throw new Error("Database '" + dbid + "' already exists"); - } - var a = new alasql.Database(dbid); - var res = 1; - if (cb) return cb(res); - return res; - } -}; - -// CREATE DATABASE databaseid -yy.AttachDatabase = function(params) { - return yy.extend(this, params); -}; -yy.AttachDatabase.prototype.toString = function(args) { - var s = 'ATTACH'; - if (this.engineid) s += ' ' + this.engineid; - s += ' DATABASE' + ' ' + this.databaseid; - // TODO add params - if (args) { - s += '('; - if (args.length > 0) { - s += args - .map(function(arg) { - return arg.toString(); - }) - .join(', '); - } - s += ')'; - } - if (this.as) s += ' AS' + ' ' + this.as; - return s; -}; -//yy.CreateDatabase.prototype.compile = returnUndefined; -yy.AttachDatabase.prototype.execute = function(databaseid, params, cb) { - if (!alasql.engines[this.engineid]) { - throw new Error('Engine "' + this.engineid + '" is not defined.'); - } - var res = alasql.engines[this.engineid].attachDatabase( - this.databaseid, - this.as, - this.args, - params, - cb - ); - return res; -}; - -// CREATE DATABASE databaseid -yy.DetachDatabase = function(params) { - return yy.extend(this, params); -}; -yy.DetachDatabase.prototype.toString = function() { - var s = 'DETACH'; - s += ' DATABASE' + ' ' + this.databaseid; - return s; -}; -//yy.CreateDatabase.prototype.compile = returnUndefined; -yy.DetachDatabase.prototype.execute = function(databaseid, params, cb) { - if (!alasql.databases[this.databaseid].engineid) { - throw new Error( - 'Cannot detach database "' + this.engineid + '", because it was not attached.' - ); - } - var res; - - var dbid = this.databaseid; - - if (dbid === alasql.DEFAULTDATABASEID) { - throw new Error('Drop of default database is prohibited'); - } - - if (!alasql.databases[dbid]) { - if (!this.ifexists) { - throw new Error("Database '" + dbid + "' does not exist"); - } else { - res = 0; - } - } else { - delete alasql.databases[dbid]; - if (dbid === alasql.useid) { - alasql.use(); - } - res = 1; - } - if (cb) cb(res); - return res; - // var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, cb); - // return res; -}; - -// USE DATABSE databaseid -// USE databaseid -yy.UseDatabase = function(params) { - return yy.extend(this, params); -}; -yy.UseDatabase.prototype.toString = function() { - return 'USE' + ' ' + 'DATABASE' + ' ' + this.databaseid; -}; -//yy.UseDatabase.prototype.compile = returnUndefined; -yy.UseDatabase.prototype.execute = function(databaseid, params, cb) { - var dbid = this.databaseid; - if (!alasql.databases[dbid]) { - throw new Error("Database '" + dbid + "' does not exist"); - } - alasql.use(dbid); - var res = 1; - if (cb) cb(res); - return res; -}; - -// DROP DATABASE databaseid -yy.DropDatabase = function(params) { - return yy.extend(this, params); -}; -yy.DropDatabase.prototype.toString = function() { - var s = 'DROP'; - if (this.ifexists) s += ' IF EXISTS'; - s += ' DATABASE ' + this.databaseid; - return s; -}; -//yy.DropDatabase.prototype.compile = returnUndefined; -yy.DropDatabase.prototype.execute = function(databaseid, params, cb) { - if (this.engineid) { - return alasql.engines[this.engineid].dropDatabase(this.databaseid, this.ifexists, cb); - } - var res; - - var dbid = this.databaseid; - - if (dbid === alasql.DEFAULTDATABASEID) { - throw new Error('Drop of default database is prohibited'); - } - if (!alasql.databases[dbid]) { - if (!this.ifexists) { - throw new Error("Database '" + dbid + "' does not exist"); - } else { - res = 0; - } - } else { - if (alasql.databases[dbid].engineid) { - throw new Error( - "Cannot drop database '" + dbid + "', because it is attached. Detach it." - ); - } - - delete alasql.databases[dbid]; - if (dbid === alasql.useid) { - alasql.use(); - } - res = 1; - } - if (cb) cb(res); - return res; -}; - -/* -// -// SET for Alasql.js -// Date: 01.12.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Declare = function(params) { - return yy.extend(this, params); -}; -yy.Declare.prototype.toString = function() { - var s = 'DECLARE '; - if (this.declares && this.declares.length > 0) { - s = this.declares - .map(function(declare) { - var s = ''; - s += '@' + declare.variable + ' '; - s += declare.dbtypeid; - if (this.dbsize) { - s += '(' + this.dbsize; - if (this.dbprecision) { - s += ',' + this.dbprecision; - } - s += ')'; - } - if (declare.expression) { - s += ' = ' + declare.expression.toString(); - } - return s; - }) - .join(','); - } - return s; -}; - -yy.Declare.prototype.execute = function(databaseid, params, cb) { - var res = 1; - if (this.declares && this.declares.length > 0) { - this.declares.map(function(declare) { - var dbtypeid = declare.dbtypeid; - if (!alasql.fn[dbtypeid]) { - dbtypeid = dbtypeid.toUpperCase(); - } - alasql.declares[declare.variable] = { - dbtypeid: dbtypeid, - dbsize: declare.dbsize, - dbprecision: declare.dbprecision, - }; - - // Set value - if (declare.expression) { - - alasql.vars[declare.variable] = new Function( - 'params,alasql', - 'return ' + declare.expression.toJS('({})', '', null) - )(params, alasql); - if (alasql.declares[declare.variable]) { - alasql.vars[declare.variable] = alasql.stdfn.CONVERT( - alasql.vars[declare.variable], - alasql.declares[declare.variable] - ); - } - } - }); - } - if (cb) { - res = cb(res); - } - return res; -}; - -/* -// -// SHOW for Alasql.js -// Date: 19.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.ShowDatabases = function(params) { - return yy.extend(this, params); -}; -yy.ShowDatabases.prototype.toString = function() { - var s = 'SHOW DATABASES'; - if (this.like) s += 'LIKE ' + this.like.toString(); - return s; -}; -yy.ShowDatabases.prototype.execute = function(databaseid, params, cb) { - if (this.engineid) { - return alasql.engines[this.engineid].showDatabases(this.like, cb); - } else { - var self = this; - var res = []; - for (var dbid in alasql.databases) { - res.push({databaseid: dbid}); - } - if (self.like && res && res.length > 0) { - res = res.filter(function(d) { - // return d.databaseid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g')); - return alasql.utils.like(self.like.value, d.databaseid); - }); - } - if (cb) cb(res); - return res; - } -}; - -yy.ShowTables = function(params) { - return yy.extend(this, params); -}; -yy.ShowTables.prototype.toString = function() { - var s = 'SHOW TABLES'; - if (this.databaseid) s += ' FROM ' + this.databaseid; - if (this.like) s += ' LIKE ' + this.like.toString(); - return s; -}; -yy.ShowTables.prototype.execute = function(databaseid, params, cb) { - var db = alasql.databases[this.databaseid || databaseid]; - - var self = this; - var res = []; - for (var tableid in db.tables) { - res.push({tableid: tableid}); - } - if (self.like && res && res.length > 0) { - res = res.filter(function(d) { - //return d.tableid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g')); - return alasql.utils.like(self.like.value, d.tableid); - }); - } - if (cb) cb(res); - return res; -}; - -yy.ShowColumns = function(params) { - return yy.extend(this, params); -}; -yy.ShowColumns.prototype.toString = function() { - var s = 'SHOW COLUMNS'; - if (this.table.tableid) s += ' FROM ' + this.table.tableid; - if (this.databaseid) s += ' FROM ' + this.databaseid; - return s; -}; - -yy.ShowColumns.prototype.execute = function(databaseid, params, cb) { - var db = alasql.databases[this.databaseid || databaseid]; - var table = db.tables[this.table.tableid]; - - if (table && table.columns) { - var res = table.columns.map(function(col) { - return {columnid: col.columnid, dbtypeid: col.dbtypeid, dbsize: col.dbsize}; - }); - if (cb) cb(res); - return res; - } else { - if (cb) cb([]); - return []; - } -}; - -yy.ShowIndex = function(params) { - return yy.extend(this, params); -}; -yy.ShowIndex.prototype.toString = function() { - var s = 'SHOW INDEX'; - if (this.table.tableid) s += ' FROM ' + this.table.tableid; - if (this.databaseid) s += ' FROM ' + this.databaseid; - return s; -}; -yy.ShowIndex.prototype.execute = function(databaseid, params, cb) { - var db = alasql.databases[this.databaseid || databaseid]; - var table = db.tables[this.table.tableid]; - var res = []; - if (table && table.indices) { - for (var ind in table.indices) { - res.push({hh: ind, len: Object.keys(table.indices[ind]).length}); - } - } - - if (cb) cb(res); - return res; -}; - -yy.ShowCreateTable = function(params) { - return yy.extend(this, params); -}; -yy.ShowCreateTable.prototype.toString = function() { - var s = 'SHOW CREATE TABLE ' + this.table.tableid; - if (this.databaseid) s += ' FROM ' + this.databaseid; - return s; -}; -yy.ShowCreateTable.prototype.execute = function(databaseid) { - var db = alasql.databases[this.databaseid || databaseid]; - var table = db.tables[this.table.tableid]; - if (table) { - var s = 'CREATE TABLE ' + this.table.tableid + ' ('; - var ss = []; - if (table.columns) { - table.columns.forEach(function(col) { - var a = col.columnid + ' ' + col.dbtypeid; - if (col.dbsize) a += '(' + col.dbsize + ')'; - if (col.primarykey) a += ' PRIMARY KEY'; - // TODO extend - ss.push(a); - }); - s += ss.join(', '); - } - s += ')'; - return s; - } else { - throw new Error('There is no such table "' + this.table.tableid + '"'); - } -}; - -/* -// -// SET for Alasql.js -// Date: 01.12.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.SetVariable = function(params) { - return yy.extend(this, params); -}; -yy.SetVariable.prototype.toString = function() { - var s = 'SET '; - if (typeof this.value != 'undefined') - s += this.variable.toUpperCase() + ' ' + (this.value ? 'ON' : 'OFF'); - if (this.expression) s += this.method + this.variable + ' = ' + this.expression.toString(); - return s; -}; - -yy.SetVariable.prototype.execute = function(databaseid, params, cb) { - - if (typeof this.value != 'undefined') { - var val = this.value; - if (val == 'ON') val = true; - else if (val == 'OFF') val = false; - // if(this.method == '@') { - alasql.options[this.variable] = val; - // } else { - // params[this.variable] = val; - // } - } else if (this.expression) { - if (this.exists) { - this.existsfn = this.exists.map(function(ex) { - var nq = ex.compile(databaseid); - if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET'; - return nq; - // return ex.compile(databaseid); - // TODO Include modifier - }); - } - if (this.queries) { - this.queriesfn = this.queries.map(function(q) { - var nq = q.compile(databaseid); - if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET'; - return nq; - // TODO Include modifier - }); - } - - var res = new Function( - 'params,alasql', - 'return ' + this.expression.toJS('({})', '', null) - ).bind(this)(params, alasql); - if (alasql.declares[this.variable]) { - res = alasql.stdfn.CONVERT(res, alasql.declares[this.variable]); - } - if (this.props && this.props.length > 0) { - if (this.method == '@') { - var fs = "alasql.vars['" + this.variable + "']"; - } else { - var fs = "params['" + this.variable + "']"; - } - fs += this.props - .map(function(prop) { - if (typeof prop == 'string') { - return "['" + prop + "']"; - } else if (typeof prop == 'number') { - return '[' + prop + ']'; - } else { - - return '[' + prop.toJS() + ']'; - // } else { - - // throw new Error('Wrong SET property'); - } - }) - .join(); - - new Function('value,params,alasql', 'var y;' + fs + '=value')(res, params, alasql); - } else { - if (this.method == '@') { - alasql.vars[this.variable] = res; - } else { - params[this.variable] = res; - } - } - } - var res = 1; - if (cb) res = cb(res); - return res; -}; - -// Console functions - -/* global alasql, yy */ - -alasql.test = function(name, times, fn) { - if (arguments.length === 0) { - alasql.log(alasql.con.results); - return; - } - - var tm = Date.now(); - - if (arguments.length === 1) { - fn(); - alasql.con.log(Date.now() - tm); - return; - } - - if (arguments.length === 2) { - fn = times; - times = 1; - } - - for (var i = 0; i < times; i++) { - fn(); - } - alasql.con.results[name] = Date.now() - tm; -}; - -// Console -// alasql.log = function(sql, params) { - -// }; - -/* global alasql, yy, utils */ - -// Console -alasql.log = function(sql, params) { - var olduseid = alasql.useid; - var target = alasql.options.logtarget; - // For node other - if (utils.isNode) { - target = 'console'; - } - - var res; - if (typeof sql === 'string') { - res = alasql(sql, params); - } else { - res = sql; - } - - // For Node and console.output - if (target === 'console' || utils.isNode) { - if (typeof sql === 'string' && alasql.options.logprompt) { - console.log(olduseid + '>', sql); - } - - if (Array.isArray(res)) { - if (console.table) { - // For Chrome and other consoles - console.table(res); - } else { - // Add print procedure - console.log(JSONtoString(res)); - } - } else { - console.log(JSONtoString(res)); - } - } else { - var el; - if (target === 'output') { - el = document.getElementsByTagName('output')[0]; - } else { - if (typeof target === 'string') { - el = document.getElementById(target); - } else { - // in case of DOM - el = target; - } - } - - var s = ''; - - if (typeof sql === 'string' && alasql.options.logprompt) { - // s += '

'+olduseid+'> '+alasql.pretty(sql)+'

'; - s += '
' + alasql.pretty(sql) + '
'; - } - - if (Array.isArray(res)) { - if (res.length === 0) { - s += '

[ ]

'; - } else if (typeof res[0] !== 'object' || Array.isArray(res[0])) { - for (var i = 0, ilen = res.length; i < ilen; i++) { - s += '

' + loghtml(res[i]) + '

'; - } - } else { - s += loghtml(res); - } - } else { - s += loghtml(res); - } - el.innerHTML += s; - } -}; - -alasql.clear = function() { - var target = alasql.options.logtarget; - // For node other - - if (utils.isNode || utils.isMeteorServer) { - if (console.clear) { - console.clear(); - } - } else { - var el; - if (target === 'output') { - el = document.getElementsByTagName('output')[0]; - } else { - if (typeof target === 'string') { - el = document.getElementById(target); - } else { - // in case of DOM - el = target; - } - } - el.innerHTML = ''; - } -}; - -alasql.write = function(s) { - - var target = alasql.options.logtarget; - // For node other - if (utils.isNode || utils.isMeteorServer) { - if (console.log) { - console.log(s); - } - } else { - var el; - if (target === 'output') { - el = document.getElementsByTagName('output')[0]; - } else { - if (typeof target === 'string') { - el = document.getElementById(target); - } else { - // in case of DOM - el = target; - } - } - el.innerHTML += s; - } -}; - -function loghtml(res) { - - var s = ''; - if (res === undefined) { - s += 'undefined'; - } else if (Array.isArray(res)) { - s += ''; - s += ''; - var cols = []; - for (var colid in res[0]) { - cols.push(colid); - } - s += '
#'; - cols.forEach(function(colid) { - s += '' + colid; - }); - for (var i = 0, ilen = res.length; i < ilen; i++) { - s += '
' + (i + 1); - cols.forEach(function(colid) { - s += ' '; - if (res[i][colid] == +res[i][colid]) { - // jshint ignore:line - s += '
'; - if (typeof res[i][colid] === 'undefined') { - s += 'NULL'; - } else { - s += res[i][colid]; - } - s += '
'; - } else { - if (typeof res[i][colid] === 'undefined') { - s += 'NULL'; - } else if (typeof res[i][colid] === 'string') { - s += res[i][colid]; - } else { - s += JSONtoString(res[i][colid]); - } - // s += res[i][colid]; - } - }); - } - - s += '
'; - } else { - s += '

' + JSONtoString(res) + '

'; - } - // if() {} - - // if(typeof res == 'object') { - // s += '

'+JSON.stringify(res)+'

'; - // } else { - // } - return s; -} - -function scrollTo(element, to, duration) { - if (duration <= 0) { - return; - } - var difference = to - element.scrollTop; - var perTick = difference / duration * 10; - - setTimeout(function() { - if (element.scrollTop === to) { - return; - } - element.scrollTop = element.scrollTop + perTick; - scrollTo(element, to, duration - 10); - }, 10); -} - -alasql.prompt = function(el, useidel, firstsql) { - if (utils.isNode) { - throw new Error('The prompt not realized for Node.js'); - } - - var prompti = 0; - - if (typeof el === 'string') { - el = document.getElementById(el); - } - - if (typeof useidel === 'string') { - useidel = document.getElementById(useidel); - } - - useidel.textContent = alasql.useid; - - if (firstsql) { - alasql.prompthistory.push(firstsql); - prompti = alasql.prompthistory.length; - try { - var tm = Date.now(); - alasql.log(firstsql); - alasql.write('

' + (Date.now() - tm) + ' ms

'); - } catch (err) { - alasql.write('

' + olduseid + '> ' + sql + '

'); - alasql.write('

' + err + '

'); - } - } - - var y = el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop; - scrollTo(document.getElementsByTagName('body')[0], y, 500); - - el.onkeydown = function(event) { - if (event.which === 13) { - var sql = el.value; - var olduseid = alasql.useid; - el.value = ''; - alasql.prompthistory.push(sql); - prompti = alasql.prompthistory.length; - try { - var tm = Date.now(); - alasql.log(sql); - alasql.write('

' + (Date.now() - tm) + ' ms

'); - } catch (err) { - alasql.write('

' + olduseid + '> ' + alasql.pretty(sql, false) + '

'); - alasql.write('

' + err + '

'); - } - el.focus(); - - useidel.textContent = alasql.useid; - var y = - el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop; - scrollTo(document.getElementsByTagName('body')[0], y, 500); - } else if (event.which === 38) { - prompti--; - if (prompti < 0) { - prompti = 0; - } - if (alasql.prompthistory[prompti]) { - el.value = alasql.prompthistory[prompti]; - event.preventDefault(); - } - } else if (event.which === 40) { - prompti++; - if (prompti >= alasql.prompthistory.length) { - prompti = alasql.prompthistory.length; - el.value = ''; - } else if (alasql.prompthistory[prompti]) { - el.value = alasql.prompthistory[prompti]; - event.preventDefault(); - } - } - }; -}; - -/* -// -// Commit for Alasql.js -// Date: 01.12.2014 -// (c) 2014, Andrey Gershun -// -*/ -yy.BeginTransaction = function(params) { - return yy.extend(this, params); -}; -yy.BeginTransaction.prototype.toString = function() { - return 'BEGIN TRANSACTION'; -}; - -yy.BeginTransaction.prototype.execute = function(databaseid, params, cb) { - var res = 1; - if (alasql.databases[databaseid].engineid) { - return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid, cb); - } else { - // alasql commit!!! - } - if (cb) cb(res); - return res; -}; - -yy.CommitTransaction = function(params) { - return yy.extend(this, params); -}; -yy.CommitTransaction.prototype.toString = function() { - return 'COMMIT TRANSACTION'; -}; - -yy.CommitTransaction.prototype.execute = function(databaseid, params, cb) { - var res = 1; - if (alasql.databases[databaseid].engineid) { - return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid, cb); - } else { - // alasql commit!!! - } - if (cb) cb(res); - return res; -}; - -yy.RollbackTransaction = function(params) { - return yy.extend(this, params); -}; -yy.RollbackTransaction.prototype.toString = function() { - return 'ROLLBACK TRANSACTION'; -}; - -yy.RollbackTransaction.prototype.execute = function(databaseid, params, cb) { - var res = 1; - if (alasql.databases[databaseid].engineid) { - return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid, cb); - } else { - // alasql commit!!! - } - if (cb) cb(res); - return res; -}; - -if (alasql.options.tsql) { - // - // Check tables and views - // IF OBJECT_ID('dbo.Employees') IS NOT NULL - // DROP TABLE dbo.Employees; - // IF OBJECT_ID('dbo.VSortedOrders', 'V') IS NOT NULL - // DROP VIEW dbo.VSortedOrders; - - alasql.stdfn.OBJECT_ID = function(name, type) { - if (typeof type == 'undefined') type = 'T'; - type = type.toUpperCase(); - - var sname = name.split('.'); - var dbid = alasql.useid; - var objname = sname[0]; - if (sname.length == 2) { - dbid = sname[0]; - objname = sname[1]; - } - - var tables = alasql.databases[dbid].tables; - dbid = alasql.databases[dbid].databaseid; - for (var tableid in tables) { - if (tableid == objname) { - // TODO: What OBJECT_ID actually returns - - if (tables[tableid].view && type == 'V') return dbid + '.' + tableid; - if (!tables[tableid].view && type == 'T') return dbid + '.' + tableid; - return undefined; - } - } - - return undefined; - }; -} - -if (alasql.options.mysql) { -} - -if (alasql.options.mysql || alasql.options.sqlite) { - // Pseudo INFORMATION_SCHEMA function - alasql.from.INFORMATION_SCHEMA = function(filename, opts, cb, idx, query) { - if (filename == 'VIEWS' || filename == 'TABLES') { - var res = []; - for (var databaseid in alasql.databases) { - var tables = alasql.databases[databaseid].tables; - for (var tableid in tables) { - if ( - (tables[tableid].view && filename == 'VIEWS') || - (!tables[tableid].view && filename == 'TABLES') - ) { - res.push({TABLE_CATALOG: databaseid, TABLE_NAME: tableid}); - } - } - } - if (cb) res = cb(res, idx, query); - return res; - } - throw new Error('Unknown INFORMATION_SCHEMA table'); - }; -} - -if (alasql.options.postgres) { -} - -if (alasql.options.oracle) { -} - -if (alasql.options.sqlite) { -} - -// -// into functions -// -// (c) 2014 Andrey Gershun -// - -alasql.into.SQL = function(filename, opts, data, columns, cb) { - var res; - if (typeof filename === 'object') { - opts = filename; - filename = undefined; - } - var opt = {}; - alasql.utils.extend(opt, opts); - if (typeof opt.tableid === 'undefined') { - throw new Error('Table for INSERT TO is not defined.'); - } - - var s = ''; - if (columns.length === 0) { - if (typeof data[0] === 'object') { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); - } else { - // What should I do? - // columns = [{columnid:"_"}]; - } - } - - for (var i = 0, ilen = data.length; i < ilen; i++) { - s += 'INSERT INTO ' + opts.tableid + '('; - s += columns - .map(function(col) { - return col.columnid; - }) - .join(','); - s += ') VALUES ('; - s += columns.map(function(col) { - var val = data[i][col.columnid]; - if (col.typeid) { - if ( - col.typeid === 'STRING' || - col.typeid === 'VARCHAR' || - col.typeid === 'NVARCHAR' || - col.typeid === 'CHAR' || - col.typeid === 'NCHAR' - ) { - val = "'" + escapeqq(val) + "'"; - } - } else { - if (typeof val == 'string') { - val = "'" + escapeqq(val) + "'"; - } - } - return val; - }); - s += ');\n'; - } - // if(filename === '') { - // res = s; - // } else { - // res = data.length; - filename = alasql.utils.autoExtFilename(filename, 'sql', opts); - res = alasql.utils.saveFile(filename, s); - if (cb) { - res = cb(res); - } - return res; -}; - -alasql.into.HTML = function(selector, opts, data, columns, cb) { - var res = 1; - if (typeof exports !== 'object') { - var opt = {headers: true}; - alasql.utils.extend(opt, opts); - - var sel = document.querySelector(selector); - if (!sel) { - throw new Error('Selected HTML element is not found'); - } - - if (columns.length === 0) { - if (typeof data[0] === 'object') { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); - } else { - // What should I do? - // columns = [{columnid:"_"}]; - } - } - - var tbe = document.createElement('table'); - var thead = document.createElement('thead'); - tbe.appendChild(thead); - if (opt.headers) { - var tre = document.createElement('tr'); - for (var i = 0; i < columns.length; i++) { - var the = document.createElement('th'); - the.textContent = columns[i].columnid; - tre.appendChild(the); - } - thead.appendChild(tre); - } - - var tbody = document.createElement('tbody'); - tbe.appendChild(tbody); - for (var j = 0; j < data.length; j++) { - var tre = document.createElement('tr'); - for (var i = 0; i < columns.length; i++) { - var the = document.createElement('td'); - the.textContent = data[j][columns[i].columnid]; - tre.appendChild(the); - } - tbody.appendChild(tre); - } - alasql.utils.domEmptyChildren(sel); - - sel.appendChild(tbe); - } - if (cb) { - res = cb(res); - } - return res; -}; - -alasql.into.JSON = function(filename, opts, data, columns, cb) { - var res = 1; - if (typeof filename === 'object') { - opts = filename; - filename = undefined; - } - var s = JSON.stringify(data); - - filename = alasql.utils.autoExtFilename(filename, 'json', opts); - res = alasql.utils.saveFile(filename, s); - if (cb) { - res = cb(res); - } - return res; -}; - -alasql.into.TXT = function(filename, opts, data, columns, cb) { - // If columns is empty - if (columns.length === 0 && data.length > 0) { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); - } - // If one parameter - if (typeof filename === 'object') { - opts = filename; - filename = undefined; - } - - var res = data.length; - var s = ''; - if (data.length > 0) { - var key = columns[0].columnid; - s += data - .map(function(d) { - return d[key]; - }) - .join('\n'); - } - - // } else { - // if(utils.isNode) { - // process.stdout.write(s); - // } else { - - // }; - // } - filename = alasql.utils.autoExtFilename(filename, 'txt', opts); - res = alasql.utils.saveFile(filename, s); - if (cb) { - res = cb(res); - } - return res; -}; - -alasql.into.TAB = alasql.into.TSV = function(filename, opts, data, columns, cb) { - var opt = {}; - alasql.utils.extend(opt, opts); - opt.separator = '\t'; - filename = alasql.utils.autoExtFilename(filename, 'tab', opts); - opt.autoExt = false; - return alasql.into.CSV(filename, opt, data, columns, cb); -}; - -alasql.into.CSV = function(filename, opts, data, columns, cb) { - if (columns.length === 0 && data.length > 0) { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); - } - if (typeof filename === 'object') { - opts = filename; - filename = undefined; - } - - var opt = {headers: true}; - //opt.separator = ','; - opt.separator = ';'; - opt.quote = '"'; - - opt.utf8Bom = true; - if (opts && !opts.headers && typeof opts.headers !== 'undefined') { - opt.utf8Bom = false; - } - - alasql.utils.extend(opt, opts); - var res = data.length; - var s = opt.utf8Bom ? '\ufeff' : ''; - if (opt.headers) { - s += - opt.quote + - columns - .map(function(col) { - return col.columnid.trim(); - }) - .join(opt.quote + opt.separator + opt.quote) + - opt.quote + - '\r\n'; - } - - data.forEach(function(d) { - s += - columns - .map(function(col) { - var s = d[col.columnid]; - // escape the character wherever it appears in the field - if (opt.quote !== '') { - s = (s + '').replace( - new RegExp('\\' + opt.quote, 'g'), - opt.quote + opt.quote - ); - } - // if((s+"").indexOf(opt.separator) > -1 || (s+"").indexOf(opt.quote) > -1) s = opt.quote + s + opt.quote; - - //Excel 2013 needs quotes around strings - thanks for _not_ complying with RFC for CSV - if (+s != s) { - // jshint ignore:line - s = opt.quote + s + opt.quote; - } - - return s; - }) - .join(opt.separator) + '\r\n'; - }); - - filename = alasql.utils.autoExtFilename(filename, 'csv', opts); - res = alasql.utils.saveFile(filename, s, null, {disableAutoBom: true}); - if (cb) { - res = cb(res); - } - return res; -}; - -// -// 831xl.js - Coloring Excel -// 18.04.2015 -// Generate XLS file with colors and styles -// with Excel - -alasql.into.XLS = function(filename, opts, data, columns, cb) { - // If filename is not defined then output to the result - if (typeof filename == 'object') { - opts = filename; - filename = undefined; - } - - // Set sheets - var sheets = {}; - if (opts && opts.sheets) { - sheets = opts.sheets; - } - - // Default sheet - var sheet = {headers: true}; - if (typeof sheets['Sheet1'] != 'undefined') { - sheet = sheets[0]; - } else { - if (typeof opts != 'undefined') { - sheet = opts; - } - } - - // Set sheet name and default is 'Sheet1' - if (typeof sheet.sheetid == 'undefined') { - sheet.sheetid = 'Sheet1'; - } - - var s = toHTML(); - - // File is ready to save - filename = alasql.utils.autoExtFilename(filename, 'xls', opts); - var res = alasql.utils.saveFile(filename, s); - if (cb) res = cb(res); - return res; - - function toHTML() { - // Generate prologue - var s = - ' \ - \ - '; - - // Generate body - s += ' 0) { - if (typeof data[0] == 'object') { - if (Array.isArray(data[0])) { - columns = data[0].map(function(d, columnidx) { - return {columnid: columnidx}; - }); - } else { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); - } - } - } - } - - // Prepare columns - columns.forEach(function(column, columnidx) { - if (typeof sheet.column != 'undefined') { - extend(column, sheet.column); - } - - if (typeof column.width == 'undefined') { - if (sheet.column && sheet.column.width != 'undefined') { - column.width = sheet.column.width; - } else { - column.width = '120px'; - } - } - if (typeof column.width == 'number') column.width = column.width + 'px'; - if (typeof column.columnid == 'undefined') column.columnid = columnidx; - if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim(); - if (sheet.headers && Array.isArray(sheet.headers)) - column.title = sheet.headers[columnidx]; - }); - - // Set columns widths - s += ''; - columns.forEach(function(column) { - s += ''; - }); - s += ''; - - // Headers - if (sheet.headers) { - s += ''; - s += ''; - - // TODO: Skip columns to body - - // Headers - columns.forEach(function(column, columnidx) { - s += ' 0) { - // TODO: Skip columns to body - - // Loop over data rows - data.forEach(function(row, rowidx) { - // Limit number of rows on the sheet - if (rowidx > sheet.limit) return; - // Create row - s += ' \ - \ - \ - \ - \ - \ - \ - \ - 0 \ - \ - \ - '; - - var s2 = ''; // for styles - - var s3 = ' '; - - var styles = {}; // hash based storage for styles - var stylesn = 62; // First style - - // Generate style - function hstyle(st) { - // Prepare string - var s = ''; - for (var key in st) { - s += '<' + key; - for (var attr in st[key]) { - s += ' '; - if (attr.substr(0, 2) == 'x:') { - s += attr; - } else { - s += 'ss:'; - } - s += attr + '="' + st[key][attr] + '"'; - } - s += '/>'; - } - - var hh = hash(s); - // Store in hash - if (styles[hh]) { - } else { - styles[hh] = {styleid: stylesn}; - s2 += ''; - stylesn++; - } - return 's' + styles[hh].styleid; - } - - function values(obj) { - try { - return Object.values(obj); - } catch (e) { - // support for older runtimes - return Object.keys(obj).map(function(e) { - return obj[e]; - }); - } - } - - var sheetidx = 0; - for (var sheetid in sheets) { - var sheet = sheets[sheetid]; - var idx = typeof sheet.dataidx != 'undefined' ? sheet.dataidx : sheetidx++; - var data = values(sheetsdata[idx]); - // If columns defined in sheet, then take them - var columns = undefined; - if (typeof sheet.columns != 'undefined') { - columns = sheet.columns; - } else { - // Autogenerate columns if they are passed as parameters - columns = sheetscolumns[idx]; - if (columns === undefined || (columns.length == 0 && data.length > 0)) { - if (typeof data[0] == 'object') { - if (Array.isArray(data[0])) { - columns = data[0].map(function(d, columnidx) { - return {columnid: columnidx}; - }); - } else { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); - } - } - } - } - - // Prepare columns - columns.forEach(function(column, columnidx) { - if (typeof sheet.column != 'undefined') { - extend(column, sheet.column); - } - - if (typeof column.width == 'undefined') { - if (sheet.column && typeof sheet.column.width != 'undefined') { - column.width = sheet.column.width; - } else { - column.width = 120; - } - } - if (typeof column.width == 'number') column.width = column.width; - if (typeof column.columnid == 'undefined') column.columnid = columnidx; - if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim(); - if (sheet.headers && Array.isArray(sheet.headers)) - column.title = sheet.headers[columnidx]; - }); - - // Header - s3 += - ' \ - '; - - columns.forEach(function(column, columnidx) { - s3 += - ''; - }); - - // Headers - if (sheet.headers) { - s3 += ''; - - // TODO: Skip columns to body - - // Headers - columns.forEach(function(column, columnidx) { - s3 += ' 0) { - // Loop over data rows - data.forEach(function(row, rowidx) { - // Limit number of rows on the sheet - if (rowidx > sheet.limit) return; - - // Extend row properties - var srow = {}; - extend(srow, sheet.row); - if (sheet.rows && sheet.rows[rowidx]) { - extend(srow, sheet.rows[rowidx]); - } - - s3 += '' - - // Data - columns.forEach(function(column, columnidx) { - // Parameters - var cell = {}; - extend(cell, sheet.cell); - extend(cell, srow.cell); - if (typeof sheet.column != 'undefined') { - extend(cell, sheet.column.cell); - } - extend(cell, column.cell); - if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) { - extend(cell, sheet.cells[rowidx][columnidx]); - } - - // Create value - var value = row[column.columnid]; - if (typeof cell.value == 'function') { - value = cell.value(value, sheet, row, column, cell, rowidx, columnidx); - } - - // Define cell type - var typeid = cell.typeid; - if (typeof typeid == 'function') { - typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx); - } - - if (typeof typeid == 'undefined') { - if (typeof value == 'number') typeid = 'number'; - else if (typeof value == 'string') typeid = 'string'; - else if (typeof value == 'boolean') typeid = 'boolean'; - else if (typeof value == 'object') { - if (value instanceof Date) typeid = 'date'; - } - } - - var Type = 'String'; - if (typeid == 'number') Type = 'Number'; - else if (typeid == 'date') Type = 'Date'; - // TODO: What else? - - // Prepare Data types styles - var typestyle = ''; - - if (typeid == 'money') { - typestyle = - 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;'; - } else if (typeid == 'number') { - typestyle = ' '; - } else if (typeid == 'date') { - typestyle = 'mso-number-format:"Short Date";'; - } else { - // For other types is saved - if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) { - typestyle = opts.types[typeid].typestyle; - } - } - - // TODO Replace with extend... - typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style - - s3 += ''; - - // TODO Replace with extend... - var format = cell.format; - if (typeof value == 'undefined') { - s3 += ''; - } else if (typeof format != 'undefined') { - if (typeof format == 'function') { - s3 += format(value); - } else if (typeof format == 'string') { - s3 += value; // TODO - add string format - } else { - throw new Error( - 'Unknown format type. Should be function or string' - ); - } - } else { - if (typeid == 'number' || typeid == 'date') { - s3 += value.toString(); - } else if (typeid == 'money') { - s3 += (+value).toFixed(2); - } else { - s3 += value; - } - } - - // s3 += row[column.columnid]; - s3 += ''; - }); - - s3 += ''; - }); - } - // Finish - s3 += '
'; - } - - s3 += '
'; - - return s1 + s2 + s3; - } -}; - -/** - Export to XLSX function - @function - @param {string|object} filename Filename or options - @param {object|undefined} opts Options or undefined - @param {array} data Data - @param {array} columns Columns - @parab {callback} cb Callback function - @return {number} Number of files processed -*/ - -alasql.into.XLSX = function(filename, opts, data, columns, cb) { - /** @type {number} result */ - var res = 1; - - if (deepEqual(columns, [{columnid: '_'}])) { - data = data.map(function(dat) { - return dat._; - }); - columns = undefined; - // res = [{_:1}]; - } else { - // data = data1; - } - - filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts); - - var XLSX = getXLSX(); - - /* If called without filename, use opts */ - if (typeof filename == 'object') { - opts = filename; - filename = undefined; - } - - /** @type {object} Workbook */ - var wb = {SheetNames: [], Sheets: {}}; - - // ToDo: check if cb must be treated differently here - if (opts.sourcefilename) { - alasql.utils.loadBinaryFile(opts.sourcefilename, !!cb, function(data) { - wb = XLSX.read(data, {type: 'binary'}); - doExport(); - }); - } else { - doExport(); - } - - /* Return result */ - if (cb) res = cb(res); - return res; - - /** - Export workbook - @function - */ - function doExport() { - /* - If opts is array of arrays then this is a - multisheet workboook, else it is a singlesheet - */ - if (typeof opts == 'object' && Array.isArray(opts)) { - if (data && data.length > 0) { - data.forEach(function(dat, idx) { - prepareSheet(opts[idx], dat, undefined, idx + 1); - }); - } - } else { - prepareSheet(opts, data, columns, 1); - } - - saveWorkbook(cb); - } - - /** - Prepare sheet - @params {object} opts - @params {array|object} data - @params {array} columns Columns - */ - function prepareSheet(opts, data, columns, idx) { - /** Default options for sheet */ - var opt = {sheetid: 'Sheet ' + idx, headers: true}; - alasql.utils.extend(opt, opts); - - var dataLength = Object.keys(data).length; - - // Generate columns if they are not defined - if ((!columns || columns.length == 0) && dataLength > 0) { - columns = Object.keys(data[0]).map(function(columnid) { - return {columnid: columnid}; - }); - } - - var cells = {}; - - if (wb.SheetNames.indexOf(opt.sheetid) > -1) { - cells = wb.Sheets[opt.sheetid]; - } else { - wb.SheetNames.push(opt.sheetid); - wb.Sheets[opt.sheetid] = {}; - cells = wb.Sheets[opt.sheetid]; - } - - var range = 'A1'; - if (opt.range) range = opt.range; - - var col0 = alasql.utils.xlscn(range.match(/[A-Z]+/)[0]); - var row0 = +range.match(/[0-9]+/)[0] - 1; - - if (wb.Sheets[opt.sheetid]['!ref']) { - var rangem = wb.Sheets[opt.sheetid]['!ref']; - var colm = alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]); - var rowm = +rangem.match(/[0-9]+/)[0] - 1; - } else { - var colm = 1, - rowm = 1; - } - var colmax = Math.max(col0 + columns.length, colm); - var rowmax = Math.max(row0 + dataLength + 2, rowm); - - var i = row0 + 1; - - wb.Sheets[opt.sheetid]['!ref'] = 'A1:' + alasql.utils.xlsnc(colmax) + rowmax; - // var i = 1; - - if (opt.headers) { - columns.forEach(function(col, idx) { - cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = {v: col.columnid.trim()}; - }); - i++; - } - - for (var j = 0; j < dataLength; j++) { - columns.forEach(function(col, idx) { - var cell = {v: data[j][col.columnid]}; - if (typeof data[j][col.columnid] == 'number') { - cell.t = 'n'; - } else if (typeof data[j][col.columnid] == 'string') { - cell.t = 's'; - } else if (typeof data[j][col.columnid] == 'boolean') { - cell.t = 'b'; - } else if (typeof data[j][col.columnid] == 'object') { - if (data[j][col.columnid] instanceof Date) { - cell.t = 'd'; - } - } - cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = cell; - }); - i++; - } - } - - /** - Save Workbook - @params {array} wb Workbook - @params {callback} cb Callback - */ - function saveWorkbook(cb) { - - var XLSX; - - if (typeof filename == 'undefined') { - res = wb; - } else { - XLSX = getXLSX(); - - if (utils.isNode || utils.isMeteorServer) { - XLSX.writeFile(wb, filename); - } else { - var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'}; - var wbout = XLSX.write(wb, wopts); - - 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; - } - - /* the saveAs call downloads a file on the local machine */ - // saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), '"'+filename+'"') - // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}), filename) - // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.ms-excel"}), '"'+filename+'"'); - if (isIE() == 9) { - throw new Error( - 'Cannot save XLSX files in IE9. Please use XLS() export function' - ); - // var URI = 'data:text/plain;charset=utf-8,'; - - /** @todo Check if this code is required */ - - // alert('ie9'); - } else { - saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), filename); - } - } - } - - } -}; - -/* -// -// FROM functions Alasql.js -// Date: 11.12.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/** - Meteor - */ - -/* global alasql Tabletop document Event */ - -alasql.from.METEOR = function(filename, opts, cb, idx, query) { - var res = filename.find(opts).fetch(); - if (cb) { - res = cb(res, idx, query); - } - return res; -}; - -/** - Google Spreadsheet reader - */ -alasql.from.TABLETOP = function(key, opts, cb, idx, query) { - var res = []; - - var opt = {headers: true, simpleSheet: true, key: key}; - alasql.utils.extend(opt, opts); - opt.callback = function(data) { - res = data; - if (cb) { - res = cb(res, idx, query); - } - }; - - Tabletop.init(opt); - return null; -}; - -alasql.from.HTML = function(selector, opts, cb, idx, query) { - var opt = {}; - alasql.utils.extend(opt, opts); - - var sel = document.querySelector(selector); - if (!sel && sel.tagName !== 'TABLE') { - throw new Error('Selected HTML element is not a TABLE'); - } - - var res = []; - var headers = opt.headers; - - if (headers && !Array.isArray(headers)) { - headers = []; - var ths = sel.querySelector('thead tr').children; - for (var i = 0; i < ths.length; i++) { - if ( - !(ths.item(i).style && ths.item(i).style.display === 'none' && opt.skipdisplaynone) - ) { - headers.push(ths.item(i).textContent); - } else { - headers.push(undefined); - } - } - } - - var trs = sel.querySelectorAll('tbody tr'); - - for (var j = 0; j < trs.length; j++) { - var tds = trs.item(j).children; - var r = {}; - for (i = 0; i < tds.length; i++) { - if ( - !(tds.item(i).style && tds.item(i).style.display === 'none' && opt.skipdisplaynone) - ) { - if (headers) { - r[headers[i]] = tds.item(i).textContent; - } else { - r[i] = tds.item(i).textContent; - - } - } - } - res.push(r); - } - - if (cb) { - res = cb(res, idx, query); - } - return res; -}; - -alasql.from.RANGE = function(start, finish, cb, idx, query) { - var res = []; - for (var i = start; i <= finish; i++) { - res.push(i); - } - // res = new alasql.Recordset({data:res,columns:{columnid:'_'}}); - if (cb) { - res = cb(res, idx, query); - } - return res; -}; - -// Read data from any file -alasql.from.FILE = function(filename, opts, cb, idx, query) { - var fname; - if (typeof filename === 'string') { - fname = filename; - } else if (filename instanceof Event) { - fname = filename.target.files[0].name; - } else { - throw new Error('Wrong usage of FILE() function'); - } - - var parts = fname.split('.'); - - var ext = parts[parts.length - 1].toUpperCase(); - - if (alasql.from[ext]) { - - return alasql.from[ext](filename, opts, cb, idx, query); - } else { - throw new Error('Cannot recognize file type for loading'); - } -}; - -// Read JSON file - -alasql.from.JSON = function(filename, opts, cb, idx, query) { - var res; - - filename = alasql.utils.autoExtFilename(filename, 'json', opts); - alasql.utils.loadFile(filename, !!cb, function(data) { - - // res = [{a:1}]; - res = JSON.parse(data); - if (cb) { - res = cb(res, idx, query); - } - }); - return res; -}; - -alasql.from.TXT = function(filename, opts, cb, idx, query) { - var res; - filename = alasql.utils.autoExtFilename(filename, 'txt', opts); - alasql.utils.loadFile(filename, !!cb, function(data) { - res = data.split(/\r?\n/); - - // Remove last line if empty - if (res[res.length - 1] === '') { - res.pop(); - } - for (var i = 0, ilen = res.length; i < ilen; i++) { - // Please avoid '===' here - if (res[i] == +res[i]) { - // eslint:ignore - // jshint ignore:line - res[i] = +res[i]; - } - res[i] = [res[i]]; - } - if (cb) { - res = cb(res, idx, query); - } - }); - return res; -}; - -alasql.from.TAB = alasql.from.TSV = function(filename, opts, cb, idx, query) { - opts = opts || {}; - opts.separator = '\t'; - filename = alasql.utils.autoExtFilename(filename, 'tab', opts); - opts.autoext = false; - return alasql.from.CSV(filename, opts, cb, idx, query); -}; - -alasql.from.CSV = function(contents, opts, cb, idx, query) { - var opt = { - separator: ',', - quote: '"', - headers: true, - }; - alasql.utils.extend(opt, opts); - var res; - var hs = []; - function parseText(text) { - var delimiterCode = opt.separator.charCodeAt(0); - var quoteCode = opt.quote.charCodeAt(0); - - var EOL = {}, - EOF = {}, - rows = [], - N = text.length, - I = 0, - n = 0, - t, - eol; - function token() { - if (I >= N) { - return EOF; - } - if (eol) { - return (eol = false, EOL); - } - var j = I; - if (text.charCodeAt(j) === quoteCode) { - var i = j; - while (i++ < N) { - if (text.charCodeAt(i) === quoteCode) { - if (text.charCodeAt(i + 1) !== quoteCode) { - break; - } - ++i; - } - } - I = i + 2; - var c = text.charCodeAt(i + 1); - if (c === 13) { - eol = true; - if (text.charCodeAt(i + 2) === 10) { - ++I; - } - } else if (c === 10) { - eol = true; - } - return text.substring(j + 1, i).replace(/""/g, '"'); - } - while (I < N) { - var c = text.charCodeAt(I++), - k = 1; - if (c === 10) { - eol = true; - } else if (c === 13) { - eol = true; - if (text.charCodeAt(I) === 10) { - ++I; - ++k; - } - } else if (c !== delimiterCode) { - continue; - } - return text.substring(j, I - k); - } - return text.substring(j); - } - - while ((t = token()) !== EOF) { - var a = []; - while (t !== EOL && t !== EOF) { - a.push(t.trim()); - t = token(); - } - - if (opt.headers) { - if (n === 0) { - if (typeof opt.headers === 'boolean') { - hs = a; - } else if (Array.isArray(opt.headers)) { - hs = opt.headers; - var r = {}; - hs.forEach(function(h, idx) { - r[h] = a[idx]; - // Please avoid === here - if ( - typeof r[h] !== 'undefined' && - r[h].length !== 0 && - r[h].trim() == +r[h] - ) { - // jshint ignore:line - r[h] = +r[h]; - } - }); - rows.push(r); - } - } else { - var r = {}; - hs.forEach(function(h, idx) { - r[h] = a[idx]; - if ( - typeof r[h] !== 'undefined' && - r[h].length !== 0 && - r[h].trim() == +r[h] - ) { - // jshint ignore:line - r[h] = +r[h]; - } - }); - rows.push(r); - } - n++; - } else { - rows.push(a); - } - } - - res = rows; - - if (opt.headers) { - if (query && query.sources && query.sources[idx]) { - var columns = (query.sources[idx].columns = []); - hs.forEach(function(h) { - columns.push({columnid: h}); - }); - } - } - - if (cb) { - res = cb(res, idx, query); - } - } - if (new RegExp('\n').test(contents)) { - parseText(contents); - } else { - contents = alasql.utils.autoExtFilename(contents, 'csv', opts); - alasql.utils.loadFile(contents, !!cb, parseText, query.cb); - } - return res; -}; - -function XLSXLSX(X, filename, opts, cb, idx, query) { - var opt = {}; - opts = opts || {}; - alasql.utils.extend(opt, opts); - if (typeof opt.headers === 'undefined') { - opt.headers = true; - } - var res; - - /** - * see https://github.com/SheetJS/js-xlsx/blob/5ae6b1965bfe3764656a96f536b356cd1586fec7/README.md - * for example of using readAsArrayBuffer under `Parsing Workbooks` - */ - function fixdata(data) { - var o = '', - l = 0, - w = 10240; - for (; l < data.byteLength / w; ++l) - o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w))); - o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w))); - return o; - } - function getHeaderText(text) { - // if casesensitive option is set to false and there is a text value return lowercase value of text - if (text && alasql.options.casesensitive === false) { - return text.toLowerCase(); - } else { - return text; - } - } - filename = alasql.utils.autoExtFilename(filename, 'xls', opts); - alasql.utils.loadBinaryFile( - filename, - !!cb, - function(data) { - // function processData(data) { - if (data instanceof ArrayBuffer) { - var arr = fixdata(data); - var workbook = X.read(btoa(arr), {type: 'base64'}); - } else { - var workbook = X.read(data, {type: 'binary'}); - } - - var sheetid; - if (typeof opt.sheetid === 'undefined') { - sheetid = workbook.SheetNames[0]; - } else if (typeof opt.sheetid === 'number') { - sheetid = workbook.SheetNames[opt.sheetid]; - } else { - sheetid = opt.sheetid; - } - var range; - var res = []; - if (typeof opt.range === 'undefined') { - range = workbook.Sheets[sheetid]['!ref']; - } else { - range = opt.range; - if (workbook.Sheets[sheetid][range]) { - range = workbook.Sheets[sheetid][range]; - } - } - // if range has some value then data is present in the current sheet - // else current sheet is empty - if (range) { - var rg = range.split(':'); - var col0 = rg[0].match(/[A-Z]+/)[0]; - var row0 = +rg[0].match(/[0-9]+/)[0]; - var col1 = rg[1].match(/[A-Z]+/)[0]; - var row1 = +rg[1].match(/[0-9]+/)[0]; - - var hh = {}; - var xlscnCol0 = alasql.utils.xlscn(col0); - var xlscnCol1 = alasql.utils.xlscn(col1); - for (var j = xlscnCol0; j <= xlscnCol1; j++) { - var col = alasql.utils.xlsnc(j); - if (opt.headers) { - if (workbook.Sheets[sheetid][col + '' + row0]) { - hh[col] = getHeaderText(workbook.Sheets[sheetid][col + '' + row0].v); - } else { - hh[col] = getHeaderText(col); - } - } else { - hh[col] = col; - } - } - if (opt.headers) { - row0++; - } - for (var i = row0; i <= row1; i++) { - var row = {}; - for (var j = xlscnCol0; j <= xlscnCol1; j++) { - var col = alasql.utils.xlsnc(j); - if (workbook.Sheets[sheetid][col + '' + i]) { - row[hh[col]] = workbook.Sheets[sheetid][col + '' + i].v; - } - } - res.push(row); - } - } else { - res.push([]); - } - - // Remove last empty line (issue #548) - if ( - res.length > 0 && - res[res.length - 1] && - Object.keys(res[res.length - 1]).length == 0 - ) { - res.pop(); - } - - if (cb) { - res = cb(res, idx, query); - } - }, - function(err) { - throw err; - } - ); - - return res; -} - -alasql.from.XLS = function(filename, opts, cb, idx, query) { - opts = opts || {}; - filename = alasql.utils.autoExtFilename(filename, 'xls', opts); - opts.autoExt = false; - return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); -}; - -alasql.from.XLSX = function(filename, opts, cb, idx, query) { - opts = opts || {}; - filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts); - opts.autoExt = false; - return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); -}; - -alasql.from.ODS = function(filename, opts, cb, idx, query) { - opts = opts || {}; - filename = alasql.utils.autoExtFilename(filename, 'ods', opts); - opts.autoExt = false; - return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); -}; - -alasql.from.XML = function(filename, opts, cb, idx, query) { - var res; - - alasql.utils.loadFile(filename, !!cb, function(data) { - - // res = [{a:1}]; - - res = xmlparse(data).root; - - if (cb) res = cb(res, idx, query); - }); - return res; -}; - -/** - * Parse the given string of `xml`. - * - * @param {String} xml - * @return {Object} - * @api public - */ - -function xmlparse(xml) { - xml = xml.trim(); - - // strip comments - xml = xml.replace(//g, ''); - - return document(); - - /** - * XML document. - */ - - function document() { - return { - declaration: declaration(), - root: tag(), - }; - } - - /** - * Declaration. - */ - - function declaration() { - var m = match(/^<\?xml\s*/); - if (!m) return; - - // tag - var node = { - attributes: {}, - }; - - // attributes - while (!(eos() || is('?>'))) { - var attr = attribute(); - if (!attr) return node; - node.attributes[attr.name] = attr.value; - } - - match(/\?>\s*/); - - return node; - } - - /** - * Tag. - */ - - function tag() { - var m = match(/^<([\w-:.]+)\s*/); - if (!m) return; - - // name - var node = { - name: m[1], - attributes: {}, - children: [], - }; - - // attributes - while (!(eos() || is('>') || is('?>') || is('/>'))) { - var attr = attribute(); - if (!attr) return node; - node.attributes[attr.name] = attr.value; - } - - // self closing tag - if (match(/^\s*\/>\s*/)) { - return node; - } - - match(/\??>\s*/); - - // content - node.content = content(); - - // children - var child; - while ((child = tag())) { - node.children.push(child); - } - - // closing - match(/^<\/[\w-:.]+>\s*/); - - return node; - } - - /** - * Text content. - */ - - function content() { - var m = match(/^([^<]*)/); - if (m) return m[1]; - return ''; - } - - /** - * Attribute. - */ - - function attribute() { - var m = match(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/); - if (!m) return; - return {name: m[1], value: strip(m[2])}; - } - - /** - * Strip quotes from `val`. - */ - - function strip(val) { - return val.replace(/^['"]|['"]$/g, ''); - } - - /** - * Match `re` and advance the string. - */ - - function match(re) { - var m = xml.match(re); - if (!m) return; - xml = xml.slice(m[0].length); - return m; - } - - /** - * End-of-source. - */ - - function eos() { - return 0 == xml.length; - } - - /** - * Check for `prefix`. - */ - - function is(prefix) { - return 0 == xml.indexOf(prefix); - } -} - -alasql.from.GEXF = function(filename, opts, cb, idx, query) { - var res; - alasql('SEARCH FROM XML(' + filename + ')', [], function(data) { - res = data; - - if (cb) res = cb(res); - }); - return res; -}; - -/* -// -// HELP for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* globals: alasql, yy */ - -/** - Print statement - @class - @param {object} params Initial setup properties -*/ - -/* global alasql, yy */ - -yy.Print = function(params) { - return yy.extend(this, params); -}; - -/** - Generate SQL string - @this Print statement object -*/ -yy.Print.prototype.toString = function() { - var s = 'PRINT'; - if (this.statement) s += ' ' + this.statement.toString(); - return s; -}; - -/** - Print result of select statement or expression - @param {string} databaseid Database identificator - @param {object} params Query parameters - @param {statement-callback} cb Callback function - @this Print statement object -*/ -yy.Print.prototype.execute = function(databaseid, params, cb) { - - var self = this; - var res = 1; - - alasql.precompile(this, databaseid, params); /** @todo Change from alasql to this */ - - if (this.exprs && this.exprs.length > 0) { - var rs = this.exprs.map(function(expr) { - - var exprfn = new Function( - 'params,alasql,p', - 'var y;return ' + expr.toJS('({})', '', null) - ).bind(self); - var r = exprfn(params, alasql); - return JSONtoString(r); - }); - console.log.apply(console, rs); - } else if (this.select) { - var r = this.select.execute(databaseid, params); - console.log(JSONtoString(r)); - } else { - console.log(); - } - - if (cb) res = cb(res); - return res; -}; - -/* -// -// HELP for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Source = function(params) { - return yy.extend(this, params); -}; -yy.Source.prototype.toString = function() { - var s = 'SOURCE'; - if (this.url) s += " '" + this.url + " '"; - return s; -}; - -// SOURCE FILE -yy.Source.prototype.execute = function(databaseid, params, cb) { - - var res; - loadFile( - this.url, - !!cb, - function(data) { - - // res = 1; - res = alasql(data); - if (cb) res = cb(res); - return res; - }, - function(err) { - throw err; - } - ); - return res; -}; - -/* -// -// HELP for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -/* global alasql, yy */ - -yy.Require = function(params) { - return yy.extend(this, params); -}; -yy.Require.prototype.toString = function() { - var s = 'REQUIRE'; - if (this.paths && this.paths.length > 0) { - s += this.paths - .map(function(path) { - return path.toString(); - }) - .join(','); - } - if (this.plugins && this.plugins.length > 0) { - s += this.plugins - .map(function(plugin) { - return plugin.toUpperCase(); - }) - .join(','); - } - return s; -}; - -/** - Attach plug-in for Alasql - */ -yy.Require.prototype.execute = function(databaseid, params, cb) { - var self = this; - var res = 0; - var ss = ''; - - if (this.paths && this.paths.length > 0) { - this.paths.forEach(function(path) { - loadFile(path.value, !!cb, function(data) { - res++; - - ss += data; - if (res < self.paths.length) return; - - new Function('params,alasql', ss)(params, alasql); - if (cb) res = cb(res); - }); - }); - } else if (this.plugins && this.plugins.length > 0) { - this.plugins.forEach(function(plugin) { - // If plugin is not loaded already - if (!alasql.plugins[plugin]) { - loadFile(alasql.path + '/alasql-' + plugin.toLowerCase() + '.js', !!cb, function( - data - ) { - // Execute all plugins at the same time - res++; - ss += data; - if (res < self.plugins.length) return; - - new Function('params,alasql', ss)(params, alasql); - alasql.plugins[plugin] = true; // Plugin is loaded - if (cb) res = cb(res); - }); - } - }); - } else { - if (cb) res = cb(res); - } - return res; -}; - -/* -// -// HELP for Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -yy.Assert = function(params) { - return yy.extend(this, params); -}; -yy.Source.prototype.toString = function() { - var s = 'ASSERT'; - if (this.value) s += ' ' + JSON.stringify(this.value); - return s; -}; - -// SOURCE FILE -yy.Assert.prototype.execute = function(databaseid) { - - if (!deepEqual(alasql.res, this.value)) { - // if(this.message) { - // throw this. - // } else { - throw new Error( - (this.message || 'Assert wrong') + - ': ' + - JSON.stringify(alasql.res) + - ' == ' + - JSON.stringify(this.value) - ); - // } - } - return 1; -}; - -// -// 91websql.js -// WebSQL database support -// (c) 2014, Andrey Gershun -// - -var WEBSQL = (alasql.engines.WEBSQL = function() {}); - -WEBSQL.createDatabase = function(wdbid, args, dbid, cb) { - var res = 1; - var wdb = openDatabase(wdbid, args[0], args[1], args[2]); - if (this.dbid) { - var db = alasql.createDatabase(this.dbid); - db.engineid = 'WEBSQL'; - db.wdbid = wdbid; - sb.wdb = db; - } - if (!wdb) { - throw new Error('Cannot create WebSQL database "' + databaseid + '"'); - } - if (cb) cb(res); - return res; -}; - -WEBSQL.dropDatabase = function(databaseid) { - throw new Error('This is impossible to drop WebSQL database.'); -}; - -WEBSQL.attachDatabase = function(databaseid, dbid, args, params, cb) { - var res = 1; - if (alasql.databases[dbid]) { - throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); - } - alasqlopenDatabase(databaseid, args[0], args[1], args[2]); - return res; -}; - -// -// 91indexeddb.js -// AlaSQL IndexedDB module -// Date: 18.04.2015 -// (c) Andrey Gershun -// - -/* global alasql, yy, utils*/ - -var IDB = (alasql.engines.INDEXEDDB = function() { - ''; -}); - -if (utils.hasIndexedDB) { - // For Chrome it work normally, for Firefox - simple shim - if (typeof utils.global.indexedDB.webkitGetDatabaseNames == 'function') { - IDB.getDatabaseNames = utils.global.indexedDB.webkitGetDatabaseNames.bind( - utils.global.indexedDB - ); - } else { - IDB.getDatabaseNames = function() { - var request = {}; - var result = { - contains: function(name) { - return true; // Always return true - }, - notsupported: true, - }; - setTimeout(function() { - var event = {target: {result: result}}; - request.onsuccess(event); - }, 0); - return request; - }; - IDB.getDatabaseNamesNotSupported = true; - } -} - -// -// SHOW DATABASES -// work only in chrome -// -IDB.showDatabases = function(like, cb) { - - var request = IDB.getDatabaseNames(); - request.onsuccess = function(event) { - var dblist = event.target.result; - if (IDB.getDatabaseNamesNotSupported) { - throw new Error('SHOW DATABASE is not supported in this browser'); - } - var res = []; - if (like) { - var relike = new RegExp(like.value.replace(/\%/g, '.*'), 'g'); - } - for (var i = 0; i < dblist.length; i++) { - if (!like || dblist[i].match(relike)) { - res.push({databaseid: dblist[i]}); - } - } - cb(res); - }; -}; - -IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) { - - var indexedDB = utils.global.indexedDB; - if (ifnotexists) { - var request2 = indexedDB.open(ixdbid, 1); - request2.onsuccess = function(event) { - event.target.result.close(); - if (cb) cb(1); - }; - } else { - var request1 = indexedDB.open(ixdbid, 1); - request1.onupgradeneeded = function(e) { - - e.target.transaction.abort(); - }; - request1.onsuccess = function(e) { - - if (ifnotexists) { - if (cb) cb(0); - } else { - throw new Error( - 'IndexedDB: Cannot create new database "' + - ixdbid + - '" because it already exists' - ); - } - }; - } - -}; - -IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) { - var indexedDB = utils.global.indexedDB; - if (IDB.getDatabaseNamesNotSupported) { - // Hack for Firefox - if (ifnotexists) { - - var dbExists = true; - var request2 = indexedDB.open(ixdbid); - - request2.onupgradeneeded = function(e) { - - dbExists = false; - // e.target.transaction.abort(); - // cb(0); - }; - request2.onsuccess = function(event) { - - event.target.result.close(); - if (dbExists) { - if (cb) cb(0); - } else { - if (cb) cb(1); - } - }; - } else { - - var request1 = indexedDB.open(ixdbid); - request1.onupgradeneeded = function(e) { - e.target.transaction.abort(); - }; - request1.onabort = function(event) { - if (cb) cb(1); - }; - request1.onsuccess = function(event) { - event.target.result.close(); - throw new Error( - 'IndexedDB: Cannot create new database "' + - ixdbid + - '" because it already exists' - ); - // cb(0); - }; - } - } else { - var request1 = IDB.getDatabaseNames(); - request1.onsuccess = function(event) { - var dblist = event.target.result; - if (dblist.contains(ixdbid)) { - if (ifnotexists) { - if (cb) cb(0); - return; - } else { - throw new Error( - 'IndexedDB: Cannot create new database "' + - ixdbid + - '" because it already exists' - ); - } - } - - var request2 = indexedDB.open(ixdbid, 1); - request2.onsuccess = function(event) { - event.target.result.close(); - if (cb) cb(1); - }; - }; - } -}; - -IDB.dropDatabase = function(ixdbid, ifexists, cb) { - var indexedDB = utils.global.indexedDB; - var request1 = IDB.getDatabaseNames(); - request1.onsuccess = function(event) { - var dblist = event.target.result; - if (!dblist.contains(ixdbid)) { - if (ifexists) { - if (cb) cb(0); - return; - } else { - throw new Error( - 'IndexedDB: Cannot drop new database "' + ixdbid + '" because it does not exist' - ); - } - } - var request2 = indexedDB.deleteDatabase(ixdbid); - request2.onsuccess = function(event) { - - if (cb) cb(1); - }; - }; -}; - -IDB.attachDatabase = function(ixdbid, dbid, args, params, cb) { - if (!utils.hasIndexedDB) { - throw new Error('The current browser does not support IndexedDB'); - } - var indexedDB = utils.global.indexedDB; - var request1 = IDB.getDatabaseNames(); - request1.onsuccess = function(event) { - var dblist = event.target.result; - if (!dblist.contains(ixdbid)) { - throw new Error( - 'IndexedDB: Cannot attach database "' + ixdbid + '" because it does not exist' - ); - } - var request2 = indexedDB.open(ixdbid); - request2.onsuccess = function(event) { - var ixdb = event.target.result; - var db = new alasql.Database(dbid || ixdbid); - db.engineid = 'INDEXEDDB'; - db.ixdbid = ixdbid; - db.tables = []; - var tblist = ixdb.objectStoreNames; - for (var i = 0; i < tblist.length; i++) { - db.tables[tblist[i]] = {}; - } - - event.target.result.close(); - if (cb) cb(1); - }; - }; -}; - -IDB.createTable = function(databaseid, tableid, ifnotexists, cb) { - var indexedDB = utils.global.indexedDB; - - var ixdbid = alasql.databases[databaseid].ixdbid; - - var request1 = IDB.getDatabaseNames(); - request1.onsuccess = function(event__) { - var dblist = event__.target.result; - if (!dblist.contains(ixdbid)) { - throw new Error( - 'IndexedDB: Cannot create table in database "' + - ixdbid + - '" because it does not exist' - ); - } - var request2 = indexedDB.open(ixdbid); - request2.onversionchange = function(event_) { - - event_.target.result.close(); - }; - request2.onsuccess = function(event_) { - var version = event_.target.result.version; - event_.target.result.close(); - - var request3 = indexedDB.open(ixdbid, version + 1); - request3.onupgradeneeded = function(event) { - var ixdb = event.target.result; - - var store = ixdb.createObjectStore(tableid, {autoIncrement: true}); - - }; - request3.onsuccess = function(event) { - - event.target.result.close(); - if (cb) cb(1); - }; - request3.onerror = function(event) { - throw event; - - }; - request3.onblocked = function(event) { - throw new Error( - 'Cannot create table "' + - tableid + - '" because database "' + - databaseid + - '" is blocked' - ); - - }; - }; - }; -}; - -IDB.dropTable = function(databaseid, tableid, ifexists, cb) { - var indexedDB = utils.global.indexedDB; - var ixdbid = alasql.databases[databaseid].ixdbid; - - var request1 = IDB.getDatabaseNames(); - request1.onsuccess = function(event) { - var dblist = event.target.result; - - if (!dblist.contains(ixdbid)) { - throw new Error( - 'IndexedDB: Cannot drop table in database "' + - ixdbid + - '" because it does not exist' - ); - } - - var request2 = indexedDB.open(ixdbid); - request2.onversionchange = function(event) { - event.target.result.close(); - }; - - request2.onsuccess = function(event) { - var version = event.target.result.version; - event.target.result.close(); - - var request3 = indexedDB.open(ixdbid, version + 1); - request3.onupgradeneeded = function(event) { - var ixdb = event.target.result; - if (ixdb.objectStoreNames.contains(tableid)) { - ixdb.deleteObjectStore(tableid); - delete alasql.databases[databaseid].tables[tableid]; - } else { - if (!ifexists) { - throw new Error( - 'IndexedDB: Cannot drop table "' + - tableid + - '" because it does not exist' - ); - } - } - // var store = ixdb.createObjectStore(tableid); - - }; - request3.onsuccess = function(event) { - - event.target.result.close(); - if (cb) cb(1); - }; - request3.onerror = function(event) { - - throw event; - }; - request3.onblocked = function(event) { - throw new Error( - 'Cannot drop table "' + - tableid + - '" because database "' + - databaseid + - '" is blocked' - ); - - }; - }; - }; -}; - -IDB.intoTable = function(databaseid, tableid, value, columns, cb) { - - // console.trace(); - - var indexedDB = utils.global.indexedDB; - var ixdbid = alasql.databases[databaseid].ixdbid; - var request1 = indexedDB.open(ixdbid); - request1.onsuccess = function(event) { - var ixdb = event.target.result; - var tx = ixdb.transaction([tableid], 'readwrite'); - var tb = tx.objectStore(tableid); - - for (var i = 0, ilen = value.length; i < ilen; i++) { - tb.add(value[i]); - } - tx.oncomplete = function() { - ixdb.close(); - - if (cb) cb(ilen); - }; - }; - -}; - -IDB.fromTable = function(databaseid, tableid, cb, idx, query) { - - // console.trace(); - var indexedDB = utils.global.indexedDB; - var ixdbid = alasql.databases[databaseid].ixdbid; - var request = indexedDB.open(ixdbid); - request.onsuccess = function(event) { - var res = []; - var ixdb = event.target.result; - - var tx = ixdb.transaction([tableid]); - var store = tx.objectStore(tableid); - var cur = store.openCursor(); - - cur.onblocked = function(event) { - - }; - cur.onerror = function(event) { - - }; - cur.onsuccess = function(event) { - - var cursor = event.target.result; - - if (cursor) { - res.push(cursor.value); - cursor["continue"](); - } else { - - ixdb.close(); - if (cb) cb(res, idx, query); - } - }; - }; -}; - -IDB.deleteFromTable = function(databaseid, tableid, wherefn, params, cb) { - - // console.trace(); - var indexedDB = utils.global.indexedDB; - var ixdbid = alasql.databases[databaseid].ixdbid; - var request = indexedDB.open(ixdbid); - request.onsuccess = function(event) { - var res = []; - var ixdb = event.target.result; - - var tx = ixdb.transaction([tableid], 'readwrite'); - var store = tx.objectStore(tableid); - var cur = store.openCursor(); - var num = 0; - - cur.onblocked = function(event) { - - }; - cur.onerror = function(event) { - - }; - cur.onsuccess = function(event) { - - var cursor = event.target.result; - - if (cursor) { - if (!wherefn || wherefn(cursor.value, params)) { - - cursor["delete"](); - num++; - } - cursor["continue"](); - } else { - - ixdb.close(); - if (cb) cb(num); - } - }; - }; -}; - -IDB.updateTable = function(databaseid, tableid, assignfn, wherefn, params, cb) { - - // console.trace(); - var indexedDB = utils.global.indexedDB; - var ixdbid = alasql.databases[databaseid].ixdbid; - var request = indexedDB.open(ixdbid); - request.onsuccess = function(event) { - var res = []; - var ixdb = event.target.result; - - var tx = ixdb.transaction([tableid], 'readwrite'); - var store = tx.objectStore(tableid); - var cur = store.openCursor(); - var num = 0; - - cur.onblocked = function(event) { - - }; - cur.onerror = function(event) { - - }; - cur.onsuccess = function(event) { - - var cursor = event.target.result; - - if (cursor) { - if (!wherefn || wherefn(cursor.value, params)) { - - var r = cursor.value; - assignfn(r, params); - - cursor.update(r); - num++; - } - cursor["continue"](); - } else { - - ixdb.close(); - if (cb) cb(num); - } - }; - }; -}; - -// -// 91localstorage.js -// localStorage and DOM-Storage engine -// Date: 09.12.2014 -// (c) Andrey Gershun -// - -/* global alasql, yy, localStorage*/ - -var LS = (alasql.engines.LOCALSTORAGE = function() {}); - -/** - Read data from localStorage with security breaks - @param key {string} Address in localStorage - @return {object} JSON object -*/ -LS.get = function(key) { - var s = localStorage.getItem(key); - if (typeof s === 'undefined') return; - var v; - try { - v = JSON.parse(s); - } catch (err) { - throw new Error('Cannot parse JSON object from localStorage' + s); - } - return v; -}; - -/** - Store data into localStorage with security breaks - @param key {string} Address in localStorage - @return {object} JSON object -*/ -LS.set = function(key, value) { - if (typeof value === 'undefined') localStorage.removeItem(key); - else localStorage.setItem(key, JSON.stringify(value)); -}; - -/** - Store table structure and data into localStorage - @param databaseid {string} AlaSQL database id (not external localStorage) - @param tableid {string} Table name - @return Nothing -*/ -LS.storeTable = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - var table = db.tables[tableid]; - // Create empty structure for table - var tbl = {}; - tbl.columns = table.columns; - tbl.data = table.data; - tbl.identities = table.identities; - // TODO: May be add indexes, objects and other fields? - LS.set(db.lsdbid + '.' + tableid, tbl); -}; - -/** - Restore table structure and data - @param databaseid {string} AlaSQL database id (not external localStorage) - @param tableid {string} Table name - @return Nothing -*/ -LS.restoreTable = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - var tbl = LS.get(db.lsdbid + '.' + tableid); - var table = new alasql.Table(); - for (var f in tbl) { - table[f] = tbl[f]; - } - db.tables[tableid] = table; - table.indexColumns(); - // We need to add other things here - return table; -}; - -/** - Remove table from localStorage - @param databaseid {string} AlaSQL database id (not external localStorage) - @param tableid {string} Table name -*/ - -LS.removeTable = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - localStorage.removeItem(db.lsdbid + '.' + tableid); -}; - -/** - Create database in localStorage - @param lsdbid {string} localStorage database id - @param args {array} List of parameters (not used in localStorage) - @param ifnotexists {boolean} Check if database does not exist - @param databaseid {string} AlaSQL database id (not external localStorage) - @param cb {function} Callback -*/ - -LS.createDatabase = function(lsdbid, args, ifnotexists, databaseid, cb) { - var res = 1; - var ls = LS.get('alasql'); // Read list of all databases - if (!(ifnotexists && ls && ls.databases && ls.databases[lsdbid])) { - if (!ls) ls = {databases: {}}; // Empty record - if (ls.databases && ls.databases[lsdbid]) { - throw new Error( - 'localStorage: Cannot create new database "' + - lsdbid + - '" because it already exists' - ); - } - ls.databases[lsdbid] = true; - LS.set('alasql', ls); - LS.set(lsdbid, {databaseid: lsdbid, tables: {}}); // Create database record - } else { - res = 0; - } - if (cb) res = cb(res); - return res; -}; - -/** - Drop external database - @param lsdbid {string} localStorage database id - @param ifexists {boolean} Check if database exists - @param cb {function} Callback -*/ -LS.dropDatabase = function(lsdbid, ifexists, cb) { - var res = 1; - var ls = LS.get('alasql'); - if (!(ifexists && ls && ls.databases && !ls.databases[lsdbid])) { - // 1. Remove record from 'alasql' record - if (!ls) { - if (!ifexists) { - throw new Error('There is no any AlaSQL databases in localStorage'); - } else { - return cb ? cb(0) : 0; - } - } - - if (ls.databases && !ls.databases[lsdbid]) { - throw new Error( - 'localStorage: Cannot drop database "' + - lsdbid + - '" because there is no such database' - ); - } - delete ls.databases[lsdbid]; - LS.set('alasql', ls); - - // 2. Remove tables definitions - var db = LS.get(lsdbid); - for (var tableid in db.tables) { - localStorage.removeItem(lsdbid + '.' + tableid); - } - - // 3. Remove database definition - localStorage.removeItem(lsdbid); - } else { - res = 0; - } - if (cb) res = cb(res); - return res; -}; - -/** - Attach existing localStorage database to AlaSQL database - @param lsdibid {string} localStorage database id - @param -*/ - -LS.attachDatabase = function(lsdbid, databaseid, args, params, cb) { - var res = 1; - if (alasql.databases[databaseid]) { - throw new Error( - 'Unable to attach database as "' + databaseid + '" because it already exists' - ); - } - if (!databaseid) databaseid = lsdbid; - var db = new alasql.Database(databaseid); - db.engineid = 'LOCALSTORAGE'; - db.lsdbid = lsdbid; - db.tables = LS.get(lsdbid).tables; - // IF AUTOABORT IS OFF then copy data to memory - if (!alasql.options.autocommit) { - if (db.tables) { - for (var tbid in db.tables) { - LS.restoreTable(databaseid, tbid); - // db.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid); - } - } - } - if (cb) res = cb(res); - return res; -}; - -/** - Show list of databases from localStorage - @param like {string} Mathing pattern - @param cb {function} Callback -*/ -LS.showDatabases = function(like, cb) { - var res = []; - var ls = LS.get('alasql'); - if (like) { - // TODO: If we have a special function for LIKE patterns? - var relike = new RegExp(like.value.replace(/%/g, '.*'), 'g'); - } - if (ls && ls.databases) { - for (var dbid in ls.databases) { - res.push({databaseid: dbid}); - } - if (like && res && res.length > 0) { - res = res.filter(function(d) { - return d.databaseid.match(relike); - }); - } - } - if (cb) res = cb(res); - return res; -}; - -/** - Create table in localStorage database - @param databaseid {string} AlaSQL database id - @param tableid {string} Table id - @param ifnotexists {boolean} If not exists flag - @param cb {function} Callback -*/ - -LS.createTable = function(databaseid, tableid, ifnotexists, cb) { - var res = 1; - var lsdbid = alasql.databases[databaseid].lsdbid; - var tb = LS.get(lsdbid + '.' + tableid); - // Check if such record exists - if (tb && !ifnotexists) { - throw new Error( - 'Table "' + tableid + '" alsready exists in localStorage database "' + lsdbid + '"' - ); - } - var lsdb = LS.get(lsdbid); - var table = alasql.databases[databaseid].tables[tableid]; - - // TODO: Check if required - lsdb.tables[tableid] = true; - - LS.set(lsdbid, lsdb); - LS.storeTable(databaseid, tableid); - - if (cb) res = cb(res); - return res; -}; - -/** - Empty table and reset identities - @param databaseid {string} AlaSQL database id (not external localStorage) - @param tableid {string} Table name - @param ifexists {boolean} If exists flag - @param cb {function} Callback - @return 1 on success -*/ -LS.truncateTable = function(databaseid, tableid, ifexists, cb) { - var res = 1; - var lsdbid = alasql.databases[databaseid].lsdbid; - var lsdb; - if (alasql.options.autocommit) { - lsdb = LS.get(lsdbid); - } else { - lsdb = alasql.databases[databaseid]; - } - - if (!ifexists && !lsdb.tables[tableid]) { - throw new Error( - 'Cannot truncate table "' + tableid + '" in localStorage, because it does not exist' - ); - } - - //load table - var tbl = LS.restoreTable(databaseid, tableid); - - //clear data from table - tbl.data = []; - //TODO reset all identities - //but identities are not working on LOCALSTORAGE - //See test 607 for details - - //store table - LS.storeTable(databaseid, tableid); - - if (cb) res = cb(res); - return res; -}; - -/** - Create table in localStorage database - @param databaseid {string} AlaSQL database id - @param tableid {string} Table id - @param ifexists {boolean} If exists flag - @param cb {function} Callback -*/ - -LS.dropTable = function(databaseid, tableid, ifexists, cb) { - var res = 1; - var lsdbid = alasql.databases[databaseid].lsdbid; - var lsdb; - - if (alasql.options.autocommit) { - lsdb = LS.get(lsdbid); - } else { - lsdb = alasql.databases[databaseid]; - } - if (!ifexists && !lsdb.tables[tableid]) { - throw new Error( - 'Cannot drop table "' + tableid + '" in localStorage, because it does not exist' - ); - } - delete lsdb.tables[tableid]; - LS.set(lsdbid, lsdb); - // localStorage.removeItem(lsdbid+'.'+tableid); - LS.removeTable(databaseid, tableid); - if (cb) res = cb(res); - return res; -}; - -/** - Read all data from table -*/ - -LS.fromTable = function(databaseid, tableid, cb, idx, query) { - - var lsdbid = alasql.databases[databaseid].lsdbid; - // var res = LS.get(lsdbid+'.'+tableid); - - var res = LS.restoreTable(databaseid, tableid).data; - - if (cb) res = cb(res, idx, query); - return res; -}; - -/** - Insert data into the table - @param databaseid {string} Database id - @param tableid {string} Table id - @param value {array} Array of values - @param columns {array} Columns (not used) - @param cb {function} Callback -*/ - -LS.intoTable = function(databaseid, tableid, value, columns, cb) { - - var lsdbid = alasql.databases[databaseid].lsdbid; - var res = value.length; - // var tb = LS.get(lsdbid+'.'+tableid); - var tb = LS.restoreTable(databaseid, tableid); - for (var columnid in tb.identities) { - var ident = tb.identities[columnid]; - - for (var index in value) { - value[index][columnid] = ident.value; - ident.value += ident.step; - } - } - if (!tb.data) tb.data = []; - tb.data = tb.data.concat(value); - // LS.set(lsdbid+'.'+tableid, tb); - LS.storeTable(databaseid, tableid); - - if (cb) res = cb(res); - - return res; -}; - -/** - Laad data from table -*/ -LS.loadTableData = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - var lsdbid = alasql.databases[databaseid].lsdbid; - LS.restoreTable(databaseid, tableid); - // db.tables[tableid].data = LS.get(lsdbid+'.'+tableid); -}; - -/** - Save data to the table -*/ - -LS.saveTableData = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - var lsdbid = alasql.databases[databaseid].lsdbid; - LS.storeTable(lsdbid, tableid); - // LS.set(lsdbid+'.'+tableid,db.tables[tableid].data); - db.tables[tableid].data = undefined; -}; - -/** - Commit -*/ - -LS.commit = function(databaseid, cb) { - - var db = alasql.databases[databaseid]; - var lsdbid = alasql.databases[databaseid].lsdbid; - var lsdb = {databaseid: lsdbid, tables: {}}; - if (db.tables) { - for (var tbid in db.tables) { - // TODO: Question - do we need this line - lsdb.tables[tbid] = true; - LS.storeTable(databaseid, tbid); - // LS.set(lsdbid+'.'+tbid, db.tables[tbid].data); - } - } - LS.set(lsdbid, lsdb); - return cb ? cb(1) : 1; -}; - -/** - Alias BEGIN = COMMIT -*/ -LS.begin = LS.commit; - -/** - ROLLBACK -*/ - -LS.rollback = function(databaseid, cb) { - // This does not work and should be fixed - // Plus test 151 and 231 - - return; - - var db = alasql.databases[databaseid]; - db.dbversion++; - - var lsdbid = alasql.databases[databaseid].lsdbid; - var lsdb = LS.get(lsdbid); - // if(!alasql.options.autocommit) { - - delete alasql.databases[databaseid]; - alasql.databases[databaseid] = new alasql.Database(databaseid); - extend(alasql.databases[databaseid], lsdb); - alasql.databases[databaseid].databaseid = databaseid; - alasql.databases[databaseid].engineid = 'LOCALSTORAGE'; - - if (lsdb.tables) { - for (var tbid in lsdb.tables) { - // var tb = new alasql.Table({columns: db.tables[tbid].columns}); - // extend(tb,lsdb.tables[tbid]); - // lsdb.tables[tbid] = true; - - // if(!alasql.options.autocommit) { - - // lsdb.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid); - LS.restoreTable(databaseid, tbid); - // } - // lsdb.tables[tbid].indexColumns(); - - // index columns - // convert types - } - } - // } - -}; - -// -// 91websql.js -// WebSQL database support -// (c) 2014, Andrey Gershun -// - -var SQLITE = (alasql.engines.SQLITE = function() {}); - -SQLITE.createDatabase = function(wdbid, args, ifnotexists, dbid, cb) { - throw new Error('Connot create SQLITE database in memory. Attach it.'); -}; - -SQLITE.dropDatabase = function(databaseid) { - throw new Error('This is impossible to drop SQLite database. Detach it.'); -}; - -SQLITE.attachDatabase = function(sqldbid, dbid, args, params, cb) { - var res = 1; - if (alasql.databases[dbid]) { - throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); - } - - if ((args[0] && args[0] instanceof yy.StringValue) || args[0] instanceof yy.ParamValue) { - if (args[0] instanceof yy.StringValue) { - var value = args[0].value; - } else if (args[0] instanceof yy.ParamValue) { - var value = params[args[0].param]; - } - alasql.utils.loadBinaryFile( - value, - true, - function(data) { - var db = new alasql.Database(dbid || sqldbid); - db.engineid = 'SQLITE'; - db.sqldbid = sqldbid; - var sqldb = (db.sqldb = new SQL.Database(data)); - db.tables = []; - var tables = sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values; - - tables.forEach(function(tbl) { - db.tables[tbl[1]] = {}; - var columns = (db.tables[tbl[1]].columns = []); - var ast = alasql.parse(tbl[4]); - - var coldefs = ast.statements[0].columns; - if (coldefs && coldefs.length > 0) { - coldefs.forEach(function(cd) { - columns.push(cd); - }); - } - }); - - cb(1); - }, - function(err) { - throw new Error('Cannot open SQLite database file "' + args[0].value + '"'); - } - ); - return res; - } else { - throw new Error('Cannot attach SQLite database without a file'); - } - - return res; -}; - -SQLITE.fromTable = function(databaseid, tableid, cb, idx, query) { - var data = alasql.databases[databaseid].sqldb.exec('SELECT * FROM ' + tableid); - var columns = (query.sources[idx].columns = []); - if (data[0].columns.length > 0) { - data[0].columns.forEach(function(columnid) { - columns.push({columnid: columnid}); - }); - } - - var res = []; - if (data[0].values.length > 0) { - data[0].values.forEach(function(d) { - var r = {}; - columns.forEach(function(col, idx) { - r[col.columnid] = d[idx]; - }); - res.push(r); - }); - } - if (cb) cb(res, idx, query); -}; - -SQLITE.intoTable = function(databaseid, tableid, value, columns, cb) { - var sqldb = alasql.databases[databaseid].sqldb; - for (var i = 0, ilen = value.length; i < ilen; i++) { - var s = 'INSERT INTO ' + tableid + ' ('; - var d = value[i]; - var keys = Object.keys(d); - s += keys.join(','); - s += ') VALUES ('; - s += keys - .map(function(k) { - v = d[k]; - if (typeof v == 'string') v = "'" + v + "'"; - return v; - }) - .join(','); - s += ')'; - sqldb.exec(s); - } - var res = ilen; - if (cb) cb(res); - return res; -}; - -// -// 91localstorage.js -// localStorage and DOM-Storage engine -// Date: 09.12.2014 -// (c) Andrey Gershun -// - -var FS = (alasql.engines.FILESTORAGE = alasql.engines.FILE = function() {}); - -FS.createDatabase = function(fsdbid, args, ifnotexists, dbid, cb) { - - var res = 1; - var filename = args[0].value; - - alasql.utils.fileExists(filename, function(fex) { - - if (fex) { - if (ifnotexists) { - res = 0; - if (cb) res = cb(res); - return res; - } else { - throw new Error('Cannot create new database file, because it already exists'); - } - } else { - var data = {tables: {}}; - alasql.utils.saveFile(filename, JSON.stringify(data), function(data) { - if (cb) res = cb(res); - }); - } - }); - return res; -}; - -FS.dropDatabase = function(fsdbid, ifexists, cb) { - var res; - var filename = fsdbid.value; - - alasql.utils.fileExists(filename, function(fex) { - if (fex) { - res = 1; - alasql.utils.deleteFile(filename, function() { - res = 1; - if (cb) res = cb(res); - }); - } else { - if (!ifexists) { - throw new Error('Cannot drop database file, because it does not exist'); - } - res = 0; - if (cb) res = cb(res); - } - }); - return res; -}; - -FS.attachDatabase = function(fsdbid, dbid, args, params, cb) { - - var res = 1; - if (alasql.databases[dbid]) { - throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); - } - var db = new alasql.Database(dbid || fsdbid); - db.engineid = 'FILESTORAGE'; - // db.fsdbid = fsdbid; - db.filename = args[0].value; - loadFile(db.filename, !!cb, function(s) { - try { - db.data = JSON.parse(s); - } catch (err) { - throw new Error('Data in FileStorage database are corrupted'); - } - db.tables = db.data.tables; - // IF AUTOCOMMIT IS OFF then copy data to memory - if (!alasql.options.autocommit) { - if (db.tables) { - for (var tbid in db.tables) { - db.tables[tbid].data = db.data[tbid]; - } - } - } - if (cb) res = cb(res); - }); - return res; -}; - -FS.createTable = function(databaseid, tableid, ifnotexists, cb) { - var db = alasql.databases[databaseid]; - var tb = db.data[tableid]; - var res = 1; - - if (tb && !ifnotexists) { - throw new Error('Table "' + tableid + '" alsready exists in the database "' + fsdbid + '"'); - } - var table = alasql.databases[databaseid].tables[tableid]; - db.data.tables[tableid] = {columns: table.columns}; - db.data[tableid] = []; - - FS.updateFile(databaseid); - - if (cb) cb(res); - return res; -}; - -FS.updateFile = function(databaseid) { - - var db = alasql.databases[databaseid]; - if (db.issaving) { - db.postsave = true; - return; - } - db.issaving = true; - db.postsave = false; - alasql.utils.saveFile(db.filename, JSON.stringify(db.data), function() { - db.issaving = false; - - if (db.postsave) { - setTimeout(function() { - FS.updateFile(databaseid); - }, 50); // TODO Test with different timeout parameters - } - }); -}; - -FS.dropTable = function(databaseid, tableid, ifexists, cb) { - var res = 1; - var db = alasql.databases[databaseid]; - if (!ifexists && !db.tables[tableid]) { - throw new Error( - 'Cannot drop table "' + tableid + '" in fileStorage, because it does not exist' - ); - } - delete db.tables[tableid]; - delete db.data.tables[tableid]; - delete db.data[tableid]; - FS.updateFile(databaseid); - if (cb) cb(res); - return res; -}; - -FS.fromTable = function(databaseid, tableid, cb, idx, query) { - - var db = alasql.databases[databaseid]; - var res = db.data[tableid]; - if (cb) res = cb(res, idx, query); - return res; -}; - -FS.intoTable = function(databaseid, tableid, value, columns, cb) { - var db = alasql.databases[databaseid]; - var res = value.length; - var tb = db.data[tableid]; - if (!tb) tb = []; - db.data[tableid] = tb.concat(value); - FS.updateFile(databaseid); - if (cb) cb(res); - return res; -}; - -FS.loadTableData = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - db.tables[tableid].data = db.data[tableid]; -}; - -FS.saveTableData = function(databaseid, tableid) { - var db = alasql.databases[databaseid]; - db.data[tableid] = db.tables[tableid].data; - db.tables[tableid].data = null; - FS.updateFile(databaseid); -}; - -FS.commit = function(databaseid, cb) { - - var db = alasql.databases[databaseid]; - var fsdb = {tables: {}}; - if (db.tables) { - for (var tbid in db.tables) { - db.data.tables[tbid] = {columns: db.tables[tbid].columns}; - db.data[tbid] = db.tables[tbid].data; - } - } - FS.updateFile(databaseid); - return cb ? cb(1) : 1; -}; - -FS.begin = FS.commit; - -FS.rollback = function(databaseid, cb) { - var res = 1; - var db = alasql.databases[databaseid]; - db.dbversion++; - - // var lsdbid = alasql.databases[databaseid].lsdbid; - // lsdb = LS.get(lsdbid); - wait(); - function wait() { - setTimeout(function() { - if (db.issaving) { - return wait(); - } else { - alasql.loadFile(db.filename, !!cb, function(data) { - db.data = data; - db.tables = {}; - for (var tbid in db.data.tables) { - var tb = new alasql.Table({columns: db.data.tables[tbid].columns}); - extend(tb, db.data.tables[tbid]); - db.tables[tbid] = tb; - if (!alasql.options.autocommit) { - db.tables[tbid].data = db.data[tbid]; - } - db.tables[tbid].indexColumns(); - - // index columns - // convert types - } - - delete alasql.databases[databaseid]; - alasql.databases[databaseid] = new alasql.Database(databaseid); - extend(alasql.databases[databaseid], db); - alasql.databases[databaseid].engineid = 'FILESTORAGE'; - alasql.databases[databaseid].filename = db.filename; - - if (cb) res = cb(res); - // Todo: check why no return - }); - } - }, 100); - } - - // if(!alasql.options.autocommit) { - -}; - -if(utils.isBrowser && !utils.isWebWorker) { - -alasql = alasql || false; - -if (!alasql) { - throw new Error('alasql was not found'); -} - -alasql.worker = function() { - throw new Error('Can find webworker in this enviroment'); -}; - -if (typeof Worker !== 'undefined') { - alasql.worker = function(path, paths, cb) { - // var path; - if (path === true) { - path = undefined; - } - - if (typeof path === 'undefined') { - var sc = document.getElementsByTagName('script'); - for (var i = 0; i < sc.length; i++) { - if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') { - path = sc[i].src.substr(0, sc[i].src.length - 16) + 'alasql.js'; - break; - } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') { - path = sc[i].src.substr(0, sc[i].src.length - 20) + 'alasql.min.js'; - break; - } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') { - path = sc[i].src; - break; - } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') { - path = sc[i].src.substr(0, sc[i].src.length - 13) + 'alasql.min.js'; - break; - } - } - } - - if (typeof path === 'undefined') { - throw new Error('Path to alasql.js is not specified'); - } else if (path !== false) { - var js = "importScripts('"; - js += path; - js += - "');self.onmessage = function(event) {" + - 'alasql(event.data.sql,event.data.params, function(data){' + - 'postMessage({id:event.data.id, data:data});});}'; - - var blob = new Blob([js], {type: 'text/plain'}); - alasql.webworker = new Worker(URL.createObjectURL(blob)); - - alasql.webworker.onmessage = function(event) { - var id = event.data.id; - - alasql.buffer[id](event.data.data); - delete alasql.buffer[id]; - }; - - alasql.webworker.onerror = function(e) { - throw e; - }; - - if (arguments.length > 1) { - var sql = - 'REQUIRE ' + - paths - .map(function(p) { - return '"' + p + '"'; - }) - .join(','); - alasql(sql, [], cb); - } - } else if (path === false) { - delete alasql.webworker; - return; - } - }; -} - -/* FileSaver.js - * A saveAs() FileSaver implementation. - * 1.3.2 - * 2016-06-16 18:25:19 - * - * By Eli Grey, http://eligrey.com - * License: MIT - * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md - */ - -/*global self */ -/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */ - -/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ - -var saveAs = - saveAs || - (function(view) { - 'use strict'; - // IE <10 is explicitly unsupported - if ( - typeof view === 'undefined' || - (typeof navigator !== 'undefined' && /MSIE [1-9]\./.test(navigator.userAgent)) - ) { - return; - } - var doc = view.document, - // only get URL when necessary in case Blob.js hasn't overridden it yet - get_URL = function() { - return view.URL || view.webkitURL || view; - }, - save_link = doc.createElementNS('http://www.w3.org/1999/xhtml', 'a'), - can_use_save_link = 'download' in save_link, - click = function(node) { - var event = new MouseEvent('click'); - node.dispatchEvent(event); - }, - is_safari = /constructor/i.test(view.HTMLElement) || view.safari, - is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent), - throw_outside = function(ex) { - (view.setImmediate || view.setTimeout)(function() { - throw ex; - }, 0); - }, - force_saveable_type = 'application/octet-stream', - // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to - arbitrary_revoke_timeout = 1000 * 40, // in ms - revoke = function(file) { - var revoker = function() { - if (typeof file === 'string') { - // file is an object URL - get_URL().revokeObjectURL(file); - } else { - // file is a File - file.remove(); - } - }; - setTimeout(revoker, arbitrary_revoke_timeout); - }, - dispatch = function(filesaver, event_types, event) { - event_types = [].concat(event_types); - var i = event_types.length; - while (i--) { - var listener = filesaver['on' + event_types[i]]; - if (typeof listener === 'function') { - try { - listener.call(filesaver, event || filesaver); - } catch (ex) { - throw_outside(ex); - } - } - } - }, - auto_bom = function(blob) { - // prepend BOM for UTF-8 XML and text/* types (including HTML) - // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF - if ( - /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test( - blob.type - ) - ) { - return new Blob([String.fromCharCode(0xfeff), blob], {type: blob.type}); - } - return blob; - }, - FileSaver = function(blob, name, no_auto_bom) { - if (!no_auto_bom) { - blob = auto_bom(blob); - } - // First try a.download, then web filesystem, then object URLs - var filesaver = this, - type = blob.type, - force = type === force_saveable_type, - object_url, - dispatch_all = function() { - dispatch(filesaver, 'writestart progress write writeend'.split(' ')); - }, - // on any filesys errors revert to saving with object URLs - fs_error = function() { - if ((is_chrome_ios || (force && is_safari)) && view.FileReader) { - // Safari doesn't allow downloading of blob urls - var reader = new FileReader(); - reader.onloadend = function() { - var url = is_chrome_ios - ? reader.result - : reader.result.replace( - /^data:[^;]*;/, - 'data:attachment/file;' - ); - var popup = view.open(url, '_blank'); - if (!popup) view.location.href = url; - url = undefined; // release reference before dispatching - filesaver.readyState = filesaver.DONE; - dispatch_all(); - }; - reader.readAsDataURL(blob); - filesaver.readyState = filesaver.INIT; - return; - } - // don't create more object URLs than needed - if (!object_url) { - object_url = get_URL().createObjectURL(blob); - } - if (force) { - view.location.href = object_url; - } else { - var opened = view.open(object_url, '_blank'); - if (!opened) { - // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html - view.location.href = object_url; - } - } - filesaver.readyState = filesaver.DONE; - dispatch_all(); - revoke(object_url); - }; - filesaver.readyState = filesaver.INIT; - - if (can_use_save_link) { - object_url = get_URL().createObjectURL(blob); - setTimeout(function() { - save_link.href = object_url; - save_link.download = name; - click(save_link); - dispatch_all(); - revoke(object_url); - filesaver.readyState = filesaver.DONE; - }); - return; - } - - fs_error(); - }, - FS_proto = FileSaver.prototype, - saveAs = function(blob, name, no_auto_bom) { - return new FileSaver(blob, name || blob.name || 'download', no_auto_bom); - }; - // IE 10+ (native saveAs) - if (typeof navigator !== 'undefined' && navigator.msSaveOrOpenBlob) { - return function(blob, name, no_auto_bom) { - name = name || blob.name || 'download'; - - if (!no_auto_bom) { - blob = auto_bom(blob); - } - return navigator.msSaveOrOpenBlob(blob, name); - }; - } - - FS_proto.abort = function() {}; - FS_proto.readyState = FS_proto.INIT = 0; - FS_proto.WRITING = 1; - FS_proto.DONE = 2; - - FS_proto.error = FS_proto.onwritestart = FS_proto.onprogress = FS_proto.onwrite = FS_proto.onabort = FS_proto.onerror = FS_proto.onwriteend = null; - - return saveAs; - })( - (typeof self !== 'undefined' && self) || - (typeof window !== 'undefined' && window) || - this.content - ); -// `self` is undefined in Firefox for Android content script context -// while `this` is nsIContentFrameMessageManager -// with an attribute `content` that corresponds to the window - -if (typeof module !== 'undefined' && module.exports) { - module.exports.saveAs = saveAs; -} else if (typeof define !== 'undefined' && define !== null && define.amd !== null) { - define('FileSaver.js', function() { - return saveAs; - }); -} - -/* eslint-disable */ - -/* -// -// Last part of Alasql.js -// Date: 03.11.2014 -// (c) 2014, Andrey Gershun -// -*/ - -// This is a final part of Alasql - -//*only-for-browser/* -if(utils.isCordova || utils.isMeteorServer || utils.isNode ){ - console.warn('It looks like you are using the browser version of AlaSQL. Please use the alasql.fs.js file instead.') -} -//*/ - -// FileSaveAs -alasql.utils.saveAs = saveAs; - -}; - -// Create default database -new Database("alasql"); - -// Set default database -alasql.use("alasql"); - -return alasql; -})); - +//! AlaSQL v0.4.11-update-dependencies-ac1eccc0undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT +/* +@module alasql +@version 0.4.11-update-dependencies-ac1eccc0undefined + +AlaSQL - JavaScript SQL database +© 2014-2016 Andrey Gershun & Mathias Rangel Wulff + +@license +The MIT License (MIT) + +Copyright 2014-2016 Andrey Gershun (agershun@gmail.com) & Mathias Rangel Wulff (m@rawu.dk) + +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. +*/ + +/* eslint-disable */ + +"use strict"; + +/** + @fileoverview AlaSQL JavaScript SQL library + @see http://github.com/agershun/alasql +*/ + +/** + Callback from statement + @callback statement-callback + @param {object} data Result data +*/ + +/** + UMD envelope for AlaSQL +*/ + +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + define([], factory); + } else if (typeof exports === 'object') { + /** alasql main function */ + module.exports = factory(); + } else { + root.alasql = factory(); + } +}(this, function () { + +/** + AlaSQL - Main Alasql class + @function + @param {string|function|object} sql - SQL-statement or data object for fuent interface + @param {object} params - SQL parameters + @param {function} cb - callback function + @param {object} scope - Scope for nested queries + @return {any} - Result data object + + @example + Standard sync call: + alasql('CREATE TABLE one'); + Query: + var res = alasql('SELECT * FROM one'); + Call with parameters: + var res = alasql('SELECT * FROM ?',[data]); + Standard async call with callback function: + alasql('SELECT * FROM ?',[data],function(res){ + console.log(data); + }); + Call with scope for subquery (to pass common values): + var scope = {one:{a:2,b;20}} + alasql('SELECT * FROM ? two WHERE two.a = one.a',[data],null,scope); + Call for fluent interface with data object: + alasql(data).Where(function(x){return x.a == 10}).exec(); + Call for fluent interface without data object: + alasql().From(data).Where(function(x){return x.a == 10}).exec(); + */ + +var alasql = function(sql, params, cb, scope) { + + params = params||[]; + + if(typeof importScripts !== 'function' && alasql.webworker) { + var id = alasql.lastid++; + alasql.buffer[id] = cb; + alasql.webworker.postMessage({id:id,sql:sql,params:params}); + return; + } + + if(arguments.length === 0) { + // Without arguments - Fluent interface + return new yy.Select({ + columns:[new yy.Column({columnid:'*'})], + from: [new yy.ParamValue({param:0})] + }); + } else if(arguments.length === 1){ + // Access promise notation without using `.promise(...)` + if(sql.constructor === Array){ + return alasql.promise(sql); + } + } + // Avoid setting params if not needed even with callback + if(typeof params === 'function'){ + scope = cb; + cb = params; + params = []; + } + + if(typeof params !== 'object'){ + params = [params]; + } + + // Standard interface + // alasql('#sql'); + if(typeof sql === 'string' && sql[0]==='#' && typeof document === "object") { + sql = document.querySelector(sql).textContent; + } else if(typeof sql === 'object' && sql instanceof HTMLElement) { + sql = sql.textContent; + } else if(typeof sql === 'function') { + // to run multiline functions + sql = sql.toString(); + sql = (/\/\*([\S\s]+)\*\//m.exec(sql) || ['','Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function.'])[1]; + } + // Run SQL + return alasql.exec(sql, params, cb, scope); +}; + +/** + Current version of alasql + @constant {string} +*/ +alasql.version = '0.4.11-update-dependencies-ac1eccc0undefined'; + +/** + Debug flag + @type {boolean} +*/ +alasql.debug = undefined; // Initial debug variable + +//*only-for-browser/* +var require = function(){return null}; // as alasqlparser.js is generated, we can not "remove" referenses to +var __dirname = ''; +//*/ + +/* parser generated by jison 0.4.18 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +var alasqlparser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,13],$V1=[1,104],$V2=[1,102],$V3=[1,103],$V4=[1,6],$V5=[1,42],$V6=[1,79],$V7=[1,76],$V8=[1,94],$V9=[1,93],$Va=[1,69],$Vb=[1,101],$Vc=[1,85],$Vd=[1,64],$Ve=[1,71],$Vf=[1,84],$Vg=[1,66],$Vh=[1,70],$Vi=[1,68],$Vj=[1,61],$Vk=[1,74],$Vl=[1,62],$Vm=[1,67],$Vn=[1,83],$Vo=[1,77],$Vp=[1,86],$Vq=[1,87],$Vr=[1,81],$Vs=[1,82],$Vt=[1,80],$Vu=[1,88],$Vv=[1,89],$Vw=[1,90],$Vx=[1,91],$Vy=[1,92],$Vz=[1,98],$VA=[1,65],$VB=[1,78],$VC=[1,72],$VD=[1,96],$VE=[1,97],$VF=[1,63],$VG=[1,73],$VH=[1,108],$VI=[1,107],$VJ=[10,306,602,764],$VK=[10,306,310,602,764],$VL=[1,115],$VM=[1,116],$VN=[1,117],$VO=[1,118],$VP=[1,119],$VQ=[130,353,410],$VR=[1,127],$VS=[1,126],$VT=[1,134],$VU=[1,164],$VV=[1,175],$VW=[1,178],$VX=[1,173],$VY=[1,181],$VZ=[1,185],$V_=[1,160],$V$=[1,182],$V01=[1,169],$V11=[1,171],$V21=[1,174],$V31=[1,183],$V41=[1,166],$V51=[1,193],$V61=[1,188],$V71=[1,189],$V81=[1,194],$V91=[1,195],$Va1=[1,196],$Vb1=[1,197],$Vc1=[1,198],$Vd1=[1,199],$Ve1=[1,200],$Vf1=[1,201],$Vg1=[1,202],$Vh1=[1,176],$Vi1=[1,177],$Vj1=[1,179],$Vk1=[1,180],$Vl1=[1,186],$Vm1=[1,192],$Vn1=[1,184],$Vo1=[1,187],$Vp1=[1,172],$Vq1=[1,170],$Vr1=[1,191],$Vs1=[1,203],$Vt1=[2,4,5],$Vu1=[2,471],$Vv1=[1,206],$Vw1=[1,211],$Vx1=[1,220],$Vy1=[1,216],$Vz1=[10,72,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VA1=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$VB1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC1=[1,249],$VD1=[1,256],$VE1=[1,265],$VF1=[1,270],$VG1=[1,269],$VH1=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VI1=[2,162],$VJ1=[1,281],$VK1=[10,74,78,306,310,505,602,764],$VL1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,302,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,344,356,368,369,370,373,374,386,389,396,400,401,402,403,404,405,406,408,409,417,418,420,424,426,433,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,514,515,516,517,602,764],$VM1=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VN1=[1,562],$VO1=[1,564],$VP1=[2,503],$VQ1=[1,569],$VR1=[1,580],$VS1=[1,583],$VT1=[1,584],$VU1=[10,78,89,132,137,146,189,296,306,310,470,602,764],$VV1=[10,74,306,310,602,764],$VW1=[2,567],$VX1=[1,602],$VY1=[2,4,5,156],$VZ1=[1,640],$V_1=[1,612],$V$1=[1,646],$V02=[1,647],$V12=[1,620],$V22=[1,631],$V32=[1,618],$V42=[1,626],$V52=[1,619],$V62=[1,627],$V72=[1,629],$V82=[1,621],$V92=[1,622],$Va2=[1,641],$Vb2=[1,638],$Vc2=[1,639],$Vd2=[1,615],$Ve2=[1,617],$Vf2=[1,609],$Vg2=[1,610],$Vh2=[1,611],$Vi2=[1,613],$Vj2=[1,614],$Vk2=[1,616],$Vl2=[1,623],$Vm2=[1,624],$Vn2=[1,628],$Vo2=[1,630],$Vp2=[1,632],$Vq2=[1,633],$Vr2=[1,634],$Vs2=[1,635],$Vt2=[1,636],$Vu2=[1,642],$Vv2=[1,643],$Vw2=[1,644],$Vx2=[1,645],$Vy2=[2,287],$Vz2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA2=[2,359],$VB2=[1,668],$VC2=[1,678],$VD2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE2=[1,694],$VF2=[1,703],$VG2=[1,702],$VH2=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VI2=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2=[2,202],$VK2=[1,725],$VL2=[10,72,78,93,98,118,128,162,168,169,183,232,245,247,306,310,602,764],$VM2=[2,163],$VN2=[1,728],$VO2=[2,4,5,112],$VP2=[1,741],$VQ2=[1,760],$VR2=[1,740],$VS2=[1,739],$VT2=[1,734],$VU2=[1,735],$VV2=[1,737],$VW2=[1,738],$VX2=[1,742],$VY2=[1,743],$VZ2=[1,744],$V_2=[1,745],$V$2=[1,746],$V03=[1,747],$V13=[1,748],$V23=[1,749],$V33=[1,750],$V43=[1,751],$V53=[1,752],$V63=[1,753],$V73=[1,754],$V83=[1,755],$V93=[1,756],$Va3=[1,757],$Vb3=[1,759],$Vc3=[1,761],$Vd3=[1,762],$Ve3=[1,763],$Vf3=[1,764],$Vg3=[1,765],$Vh3=[1,766],$Vi3=[1,767],$Vj3=[1,770],$Vk3=[1,771],$Vl3=[1,772],$Vm3=[1,773],$Vn3=[1,774],$Vo3=[1,775],$Vp3=[1,776],$Vq3=[1,777],$Vr3=[1,778],$Vs3=[1,779],$Vt3=[1,780],$Vu3=[1,781],$Vv3=[74,89,189],$Vw3=[10,74,78,154,187,230,297,306,310,343,356,368,369,373,374,602,764],$Vx3=[1,798],$Vy3=[10,74,78,300,306,310,602,764],$Vz3=[1,799],$VA3=[1,805],$VB3=[1,806],$VC3=[1,810],$VD3=[10,74,78,306,310,602,764],$VE3=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,312,317,420,424],$VF3=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VG3=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VH3=[2,4,5,132,296],$VI3=[1,844],$VJ3=[10,74,76,78,306,310,602,764],$VK3=[2,738],$VL3=[10,74,76,78,132,139,141,145,152,306,310,420,424,602,764],$VM3=[2,1161],$VN3=[10,74,76,78,139,141,145,152,306,310,420,424,602,764],$VO3=[10,74,76,78,139,141,145,306,310,420,424,602,764],$VP3=[10,74,78,139,141,306,310,602,764],$VQ3=[10,78,89,132,146,189,296,306,310,470,602,764],$VR3=[335,338,339],$VS3=[2,764],$VT3=[1,869],$VU3=[1,870],$VV3=[1,871],$VW3=[1,872],$VX3=[1,881],$VY3=[1,880],$VZ3=[164,166,334],$V_3=[2,444],$V$3=[1,936],$V04=[2,4,5,77,131,156,290,291,292,293],$V14=[1,951],$V24=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V34=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V44=[2,375],$V54=[1,958],$V64=[306,308,310],$V74=[74,300],$V84=[74,300,426],$V94=[1,965],$Va4=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vb4=[74,426],$Vc4=[1,978],$Vd4=[1,977],$Ve4=[1,984],$Vf4=[10,72,78,93,98,118,128,162,168,169,232,245,247,306,310,602,764],$Vg4=[1,1010],$Vh4=[10,72,78,306,310,602,764],$Vi4=[1,1016],$Vj4=[1,1017],$Vk4=[1,1018],$Vl4=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$Vm4=[1,1068],$Vn4=[1,1067],$Vo4=[1,1081],$Vp4=[1,1080],$Vq4=[1,1088],$Vr4=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$Vs4=[1,1119],$Vt4=[10,78,89,146,189,306,310,470,602,764],$Vu4=[1,1139],$Vv4=[1,1138],$Vw4=[1,1137],$Vx4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy4=[1,1153],$Vz4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VB4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VD4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE4=[2,406],$VF4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VG4=[2,285],$VH4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VI4=[10,78,306,310,602,764],$VJ4=[1,1189],$VK4=[10,77,78,143,145,152,181,302,306,310,420,424,602,764],$VL4=[10,74,78,306,308,310,464,602,764],$VM4=[1,1200],$VN4=[10,72,78,118,128,162,168,169,232,245,247,306,310,602,764],$VO4=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VP4=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VQ4=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VR4=[2,1085],$VS4=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VT4=[1,1252],$VU4=[10,74,78,128,306,308,310,464,602,764],$VV4=[115,116,124],$VW4=[2,584],$VX4=[1,1280],$VY4=[76,139],$VZ4=[2,724],$V_4=[1,1297],$V$4=[1,1298],$V05=[2,4,5,10,53,72,76,89,124,146,156,189,230,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$V15=[2,330],$V25=[1,1322],$V35=[1,1336],$V45=[1,1338],$V55=[2,487],$V65=[74,78],$V75=[10,306,308,310,464,602,764],$V85=[10,72,78,118,162,168,169,232,245,247,306,310,602,764],$V95=[1,1354],$Va5=[1,1358],$Vb5=[1,1359],$Vc5=[1,1361],$Vd5=[1,1362],$Ve5=[1,1363],$Vf5=[1,1364],$Vg5=[1,1365],$Vh5=[1,1366],$Vi5=[1,1367],$Vj5=[1,1368],$Vk5=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vl5=[1,1393],$Vm5=[10,72,78,118,162,168,169,245,247,306,310,602,764],$Vn5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vo5=[1,1490],$Vp5=[1,1492],$Vq5=[2,4,5,77,143,145,152,156,181,290,291,292,293,302,420,424],$Vr5=[1,1506],$Vs5=[10,72,74,78,162,168,169,245,247,306,310,602,764],$Vt5=[1,1524],$Vu5=[1,1526],$Vv5=[1,1527],$Vw5=[1,1523],$Vx5=[1,1522],$Vy5=[1,1521],$Vz5=[1,1528],$VA5=[1,1518],$VB5=[1,1519],$VC5=[1,1520],$VD5=[1,1545],$VE5=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VF5=[1,1556],$VG5=[1,1564],$VH5=[1,1563],$VI5=[10,72,78,162,168,169,245,247,306,310,602,764],$VJ5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VK5=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VL5=[1,1621],$VM5=[1,1623],$VN5=[1,1620],$VO5=[1,1622],$VP5=[187,193,368,369,370,373],$VQ5=[2,515],$VR5=[1,1628],$VS5=[1,1647],$VT5=[10,72,78,162,168,169,306,310,602,764],$VU5=[1,1657],$VV5=[1,1658],$VW5=[1,1659],$VX5=[1,1678],$VY5=[4,10,243,306,310,343,356,602,764],$VZ5=[1,1726],$V_5=[10,72,74,78,118,162,168,169,239,245,247,306,310,602,764],$V$5=[2,4,5,77],$V06=[1,1820],$V16=[1,1832],$V26=[1,1851],$V36=[10,72,78,162,168,169,306,310,415,602,764],$V46=[10,74,78,230,306,310,602,764]; +var parser = {trace: function trace() { }, +yy: {}, +symbols_: {"error":2,"Literal":3,"LITERAL":4,"BRALITERAL":5,"NonReserved":6,"LiteralWithSpaces":7,"main":8,"Statements":9,"EOF":10,"Statements_group0":11,"AStatement":12,"ExplainStatement":13,"EXPLAIN":14,"QUERY":15,"PLAN":16,"Statement":17,"AlterTable":18,"AttachDatabase":19,"Call":20,"CreateDatabase":21,"CreateIndex":22,"CreateGraph":23,"CreateTable":24,"CreateView":25,"CreateEdge":26,"CreateVertex":27,"Declare":28,"Delete":29,"DetachDatabase":30,"DropDatabase":31,"DropIndex":32,"DropTable":33,"DropView":34,"If":35,"Insert":36,"Merge":37,"Reindex":38,"RenameTable":39,"Select":40,"ShowCreateTable":41,"ShowColumns":42,"ShowDatabases":43,"ShowIndex":44,"ShowTables":45,"TruncateTable":46,"WithSelect":47,"CreateTrigger":48,"DropTrigger":49,"BeginTransaction":50,"CommitTransaction":51,"RollbackTransaction":52,"EndTransaction":53,"UseDatabase":54,"Update":55,"JavaScript":56,"Source":57,"Assert":58,"While":59,"Continue":60,"Break":61,"BeginEnd":62,"Print":63,"Require":64,"SetVariable":65,"ExpressionStatement":66,"AddRule":67,"Query":68,"Echo":69,"CreateFunction":70,"CreateAggregate":71,"WITH":72,"WithTablesList":73,"COMMA":74,"WithTable":75,"AS":76,"LPAR":77,"RPAR":78,"SelectClause":79,"Select_option0":80,"IntoClause":81,"FromClause":82,"Select_option1":83,"WhereClause":84,"GroupClause":85,"OrderClause":86,"LimitClause":87,"UnionClause":88,"SEARCH":89,"Select_repetition0":90,"Select_option2":91,"PivotClause":92,"PIVOT":93,"Expression":94,"FOR":95,"PivotClause_option0":96,"PivotClause_option1":97,"UNPIVOT":98,"IN":99,"ColumnsList":100,"PivotClause_option2":101,"PivotClause2":102,"AsList":103,"AsLiteral":104,"AsPart":105,"RemoveClause":106,"REMOVE":107,"RemoveClause_option0":108,"RemoveColumnsList":109,"RemoveColumn":110,"Column":111,"LIKE":112,"StringValue":113,"ArrowDot":114,"ARROW":115,"DOT":116,"SearchSelector":117,"ORDER":118,"BY":119,"OrderExpressionsList":120,"SearchSelector_option0":121,"DOTDOT":122,"CARET":123,"EQ":124,"SearchSelector_repetition_plus0":125,"SearchSelector_repetition_plus1":126,"SearchSelector_option1":127,"WHERE":128,"OF":129,"CLASS":130,"NUMBER":131,"STRING":132,"SLASH":133,"VERTEX":134,"EDGE":135,"EXCLAMATION":136,"SHARP":137,"MODULO":138,"GT":139,"LT":140,"GTGT":141,"LTLT":142,"DOLLAR":143,"Json":144,"AT":145,"SET":146,"SetColumnsList":147,"TO":148,"VALUE":149,"ROW":150,"ExprList":151,"COLON":152,"PlusStar":153,"NOT":154,"SearchSelector_repetition2":155,"IF":156,"SearchSelector_repetition3":157,"Aggregator":158,"SearchSelector_repetition4":159,"SearchSelector_group0":160,"SearchSelector_repetition5":161,"UNION":162,"SearchSelectorList":163,"ALL":164,"SearchSelector_repetition6":165,"ANY":166,"SearchSelector_repetition7":167,"INTERSECT":168,"EXCEPT":169,"AND":170,"OR":171,"PATH":172,"RETURN":173,"ResultColumns":174,"REPEAT":175,"SearchSelector_repetition8":176,"SearchSelectorList_repetition0":177,"SearchSelectorList_repetition1":178,"PLUS":179,"STAR":180,"QUESTION":181,"SearchFrom":182,"FROM":183,"SelectModifier":184,"DISTINCT":185,"TopClause":186,"UNIQUE":187,"SelectClause_option0":188,"SELECT":189,"COLUMN":190,"MATRIX":191,"TEXTSTRING":192,"INDEX":193,"RECORDSET":194,"TOP":195,"NumValue":196,"TopClause_option0":197,"INTO":198,"Table":199,"FuncValue":200,"ParamValue":201,"VarValue":202,"FromTablesList":203,"JoinTablesList":204,"ApplyClause":205,"CROSS":206,"APPLY":207,"OUTER":208,"FromTable":209,"FromTable_option0":210,"FromTable_option1":211,"INDEXED":212,"INSERTED":213,"FromString":214,"JoinTable":215,"JoinMode":216,"JoinTableAs":217,"OnClause":218,"JoinTableAs_option0":219,"JoinTableAs_option1":220,"JoinModeMode":221,"NATURAL":222,"JOIN":223,"INNER":224,"LEFT":225,"RIGHT":226,"FULL":227,"SEMI":228,"ANTI":229,"ON":230,"USING":231,"GROUP":232,"GroupExpressionsList":233,"HavingClause":234,"GroupExpression":235,"GROUPING":236,"ROLLUP":237,"CUBE":238,"HAVING":239,"CORRESPONDING":240,"OrderExpression":241,"DIRECTION":242,"COLLATE":243,"NOCASE":244,"LIMIT":245,"OffsetClause":246,"OFFSET":247,"LimitClause_option0":248,"FETCH":249,"LimitClause_option1":250,"LimitClause_option2":251,"LimitClause_option3":252,"ResultColumn":253,"Star":254,"AggrValue":255,"Op":256,"LogicValue":257,"NullValue":258,"ExistsValue":259,"CaseValue":260,"CastClause":261,"ArrayValue":262,"NewClause":263,"Expression_group0":264,"CURRENT_TIMESTAMP":265,"JAVASCRIPT":266,"CREATE":267,"FUNCTION":268,"AGGREGATE":269,"NEW":270,"CAST":271,"ColumnType":272,"CONVERT":273,"PrimitiveValue":274,"OverClause":275,"OVER":276,"OverPartitionClause":277,"OverOrderByClause":278,"PARTITION":279,"SUM":280,"COUNT":281,"MIN":282,"MAX":283,"AVG":284,"FIRST":285,"LAST":286,"AGGR":287,"ARRAY":288,"FuncValue_option0":289,"REPLACE":290,"DATEADD":291,"DATEDIFF":292,"INTERVAL":293,"TRUE":294,"FALSE":295,"NSTRING":296,"NULL":297,"EXISTS":298,"ARRAYLBRA":299,"RBRA":300,"ParamValue_group0":301,"BRAQUESTION":302,"CASE":303,"WhensList":304,"ElseClause":305,"END":306,"When":307,"WHEN":308,"THEN":309,"ELSE":310,"REGEXP":311,"TILDA":312,"GLOB":313,"ESCAPE":314,"NOT_LIKE":315,"BARBAR":316,"MINUS":317,"AMPERSAND":318,"BAR":319,"GE":320,"LE":321,"EQEQ":322,"EQEQEQ":323,"NE":324,"NEEQEQ":325,"NEEQEQEQ":326,"CondOp":327,"AllSome":328,"ColFunc":329,"BETWEEN":330,"NOT_BETWEEN":331,"IS":332,"DOUBLECOLON":333,"SOME":334,"UPDATE":335,"SetColumn":336,"SetColumn_group0":337,"DELETE":338,"INSERT":339,"Into":340,"Values":341,"ValuesListsList":342,"DEFAULT":343,"VALUES":344,"ValuesList":345,"Value":346,"DateValue":347,"TemporaryClause":348,"TableClass":349,"IfNotExists":350,"CreateTableDefClause":351,"CreateTableOptionsClause":352,"TABLE":353,"CreateTableOptions":354,"CreateTableOption":355,"IDENTITY":356,"TEMP":357,"ColumnDefsList":358,"ConstraintsList":359,"Constraint":360,"ConstraintName":361,"PrimaryKey":362,"ForeignKey":363,"UniqueKey":364,"IndexKey":365,"Check":366,"CONSTRAINT":367,"CHECK":368,"PRIMARY":369,"KEY":370,"PrimaryKey_option0":371,"ColsList":372,"FOREIGN":373,"REFERENCES":374,"ForeignKey_option0":375,"OnForeignKeyClause":376,"ParColsList":377,"OnDeleteClause":378,"OnUpdateClause":379,"NO":380,"ACTION":381,"UniqueKey_option0":382,"UniqueKey_option1":383,"ColumnDef":384,"ColumnConstraintsClause":385,"ColumnConstraints":386,"SingularColumnType":387,"NumberMax":388,"ENUM":389,"MAXNUM":390,"ColumnConstraintsList":391,"ColumnConstraint":392,"ParLiteral":393,"ColumnConstraint_option0":394,"ColumnConstraint_option1":395,"DROP":396,"DropTable_group0":397,"IfExists":398,"TablesList":399,"ALTER":400,"RENAME":401,"ADD":402,"MODIFY":403,"ATTACH":404,"DATABASE":405,"DETACH":406,"AsClause":407,"USE":408,"SHOW":409,"VIEW":410,"CreateView_option0":411,"CreateView_option1":412,"SubqueryRestriction":413,"READ":414,"ONLY":415,"OPTION":416,"SOURCE":417,"ASSERT":418,"JsonObject":419,"ATLBRA":420,"JsonArray":421,"JsonValue":422,"JsonPrimitiveValue":423,"LCUR":424,"JsonPropertiesList":425,"RCUR":426,"JsonElementsList":427,"JsonProperty":428,"OnOff":429,"SetPropsList":430,"AtDollar":431,"SetProp":432,"OFF":433,"COMMIT":434,"TRANSACTION":435,"ROLLBACK":436,"BEGIN":437,"ElseStatement":438,"WHILE":439,"CONTINUE":440,"BREAK":441,"PRINT":442,"REQUIRE":443,"StringValuesList":444,"PluginsList":445,"Plugin":446,"ECHO":447,"DECLARE":448,"DeclaresList":449,"DeclareItem":450,"TRUNCATE":451,"MERGE":452,"MergeInto":453,"MergeUsing":454,"MergeOn":455,"MergeMatchedList":456,"OutputClause":457,"MergeMatched":458,"MergeNotMatched":459,"MATCHED":460,"MergeMatchedAction":461,"MergeNotMatchedAction":462,"TARGET":463,"OUTPUT":464,"CreateVertex_option0":465,"CreateVertex_option1":466,"CreateVertex_option2":467,"CreateVertexSet":468,"SharpValue":469,"CONTENT":470,"CreateEdge_option0":471,"GRAPH":472,"GraphList":473,"GraphVertexEdge":474,"GraphElement":475,"GraphVertexEdge_option0":476,"GraphVertexEdge_option1":477,"GraphElementVar":478,"GraphVertexEdge_option2":479,"GraphVertexEdge_option3":480,"GraphVertexEdge_option4":481,"GraphVar":482,"GraphAsClause":483,"GraphAtClause":484,"GraphElement2":485,"GraphElement2_option0":486,"GraphElement2_option1":487,"GraphElement2_option2":488,"GraphElement2_option3":489,"GraphElement_option0":490,"GraphElement_option1":491,"GraphElement_option2":492,"SharpLiteral":493,"GraphElement_option3":494,"GraphElement_option4":495,"GraphElement_option5":496,"ColonLiteral":497,"DeleteVertex":498,"DeleteVertex_option0":499,"DeleteEdge":500,"DeleteEdge_option0":501,"DeleteEdge_option1":502,"DeleteEdge_option2":503,"Term":504,"COLONDASH":505,"TermsList":506,"QUESTIONDASH":507,"CALL":508,"TRIGGER":509,"BeforeAfter":510,"InsertDeleteUpdate":511,"CreateTrigger_option0":512,"CreateTrigger_option1":513,"BEFORE":514,"AFTER":515,"INSTEAD":516,"REINDEX":517,"A":518,"ABSENT":519,"ABSOLUTE":520,"ACCORDING":521,"ADA":522,"ADMIN":523,"ALWAYS":524,"ASC":525,"ASSERTION":526,"ASSIGNMENT":527,"ATTRIBUTE":528,"ATTRIBUTES":529,"BASE64":530,"BERNOULLI":531,"BLOCKED":532,"BOM":533,"BREADTH":534,"C":535,"CASCADE":536,"CATALOG":537,"CATALOG_NAME":538,"CHAIN":539,"CHARACTERISTICS":540,"CHARACTERS":541,"CHARACTER_SET_CATALOG":542,"CHARACTER_SET_NAME":543,"CHARACTER_SET_SCHEMA":544,"CLASS_ORIGIN":545,"COBOL":546,"COLLATION":547,"COLLATION_CATALOG":548,"COLLATION_NAME":549,"COLLATION_SCHEMA":550,"COLUMNS":551,"COLUMN_NAME":552,"COMMAND_FUNCTION":553,"COMMAND_FUNCTION_CODE":554,"COMMITTED":555,"CONDITION_NUMBER":556,"CONNECTION":557,"CONNECTION_NAME":558,"CONSTRAINTS":559,"CONSTRAINT_CATALOG":560,"CONSTRAINT_NAME":561,"CONSTRAINT_SCHEMA":562,"CONSTRUCTOR":563,"CONTROL":564,"CURSOR_NAME":565,"DATA":566,"DATETIME_INTERVAL_CODE":567,"DATETIME_INTERVAL_PRECISION":568,"DB":569,"DEFAULTS":570,"DEFERRABLE":571,"DEFERRED":572,"DEFINED":573,"DEFINER":574,"DEGREE":575,"DEPTH":576,"DERIVED":577,"DESC":578,"DESCRIPTOR":579,"DIAGNOSTICS":580,"DISPATCH":581,"DOCUMENT":582,"DOMAIN":583,"DYNAMIC_FUNCTION":584,"DYNAMIC_FUNCTION_CODE":585,"EMPTY":586,"ENCODING":587,"ENFORCED":588,"EXCLUDE":589,"EXCLUDING":590,"EXPRESSION":591,"FILE":592,"FINAL":593,"FLAG":594,"FOLLOWING":595,"FORTRAN":596,"FOUND":597,"FS":598,"G":599,"GENERAL":600,"GENERATED":601,"GO":602,"GOTO":603,"GRANTED":604,"HEX":605,"HIERARCHY":606,"ID":607,"IGNORE":608,"IMMEDIATE":609,"IMMEDIATELY":610,"IMPLEMENTATION":611,"INCLUDING":612,"INCREMENT":613,"INDENT":614,"INITIALLY":615,"INPUT":616,"INSTANCE":617,"INSTANTIABLE":618,"INTEGRITY":619,"INVOKER":620,"ISOLATION":621,"K":622,"KEY_MEMBER":623,"KEY_TYPE":624,"LENGTH":625,"LEVEL":626,"LIBRARY":627,"LINK":628,"LOCATION":629,"LOCATOR":630,"M":631,"MAP":632,"MAPPING":633,"MAXVALUE":634,"MESSAGE_LENGTH":635,"MESSAGE_OCTET_LENGTH":636,"MESSAGE_TEXT":637,"MINVALUE":638,"MORE":639,"MUMPS":640,"NAME":641,"NAMES":642,"NAMESPACE":643,"NESTING":644,"NEXT":645,"NFC":646,"NFD":647,"NFKC":648,"NFKD":649,"NIL":650,"NORMALIZED":651,"NULLABLE":652,"NULLS":653,"OBJECT":654,"OCTETS":655,"OPTIONS":656,"ORDERING":657,"ORDINALITY":658,"OTHERS":659,"OVERRIDING":660,"P":661,"PAD":662,"PARAMETER_MODE":663,"PARAMETER_NAME":664,"PARAMETER_ORDINAL_POSITION":665,"PARAMETER_SPECIFIC_CATALOG":666,"PARAMETER_SPECIFIC_NAME":667,"PARAMETER_SPECIFIC_SCHEMA":668,"PARTIAL":669,"PASCAL":670,"PASSING":671,"PASSTHROUGH":672,"PERMISSION":673,"PLACING":674,"PLI":675,"PRECEDING":676,"PRESERVE":677,"PRIOR":678,"PRIVILEGES":679,"PUBLIC":680,"RECOVERY":681,"RELATIVE":682,"REPEATABLE":683,"REQUIRING":684,"RESPECT":685,"RESTART":686,"RESTORE":687,"RESTRICT":688,"RETURNED_CARDINALITY":689,"RETURNED_LENGTH":690,"RETURNED_OCTET_LENGTH":691,"RETURNED_SQLSTATE":692,"RETURNING":693,"ROLE":694,"ROUTINE":695,"ROUTINE_CATALOG":696,"ROUTINE_NAME":697,"ROUTINE_SCHEMA":698,"ROW_COUNT":699,"SCALE":700,"SCHEMA":701,"SCHEMA_NAME":702,"SCOPE_CATALOG":703,"SCOPE_NAME":704,"SCOPE_SCHEMA":705,"SECTION":706,"SECURITY":707,"SELECTIVE":708,"SELF":709,"SEQUENCE":710,"SERIALIZABLE":711,"SERVER":712,"SERVER_NAME":713,"SESSION":714,"SETS":715,"SIMPLE":716,"SIZE":717,"SPACE":718,"SPECIFIC_NAME":719,"STANDALONE":720,"STATE":721,"STATEMENT":722,"STRIP":723,"STRUCTURE":724,"STYLE":725,"SUBCLASS_ORIGIN":726,"T":727,"TABLE_NAME":728,"TEMPORARY":729,"TIES":730,"TOKEN":731,"TOP_LEVEL_COUNT":732,"TRANSACTIONS_COMMITTED":733,"TRANSACTIONS_ROLLED_BACK":734,"TRANSACTION_ACTIVE":735,"TRANSFORM":736,"TRANSFORMS":737,"TRIGGER_CATALOG":738,"TRIGGER_NAME":739,"TRIGGER_SCHEMA":740,"TYPE":741,"UNBOUNDED":742,"UNCOMMITTED":743,"UNDER":744,"UNLINK":745,"UNNAMED":746,"UNTYPED":747,"URI":748,"USAGE":749,"USER_DEFINED_TYPE_CATALOG":750,"USER_DEFINED_TYPE_CODE":751,"USER_DEFINED_TYPE_NAME":752,"USER_DEFINED_TYPE_SCHEMA":753,"VALID":754,"VERSION":755,"WHITESPACE":756,"WORK":757,"WRAPPER":758,"WRITE":759,"XMLDECLARATION":760,"XMLSCHEMA":761,"YES":762,"ZONE":763,"SEMICOLON":764,"PERCENT":765,"ROWS":766,"FuncValue_option0_group0":767,"$accept":0,"$end":1}, +terminals_: {2:"error",4:"LITERAL",5:"BRALITERAL",10:"EOF",14:"EXPLAIN",15:"QUERY",16:"PLAN",53:"EndTransaction",72:"WITH",74:"COMMA",76:"AS",77:"LPAR",78:"RPAR",89:"SEARCH",93:"PIVOT",95:"FOR",98:"UNPIVOT",99:"IN",107:"REMOVE",112:"LIKE",115:"ARROW",116:"DOT",118:"ORDER",119:"BY",122:"DOTDOT",123:"CARET",124:"EQ",128:"WHERE",129:"OF",130:"CLASS",131:"NUMBER",132:"STRING",133:"SLASH",134:"VERTEX",135:"EDGE",136:"EXCLAMATION",137:"SHARP",138:"MODULO",139:"GT",140:"LT",141:"GTGT",142:"LTLT",143:"DOLLAR",145:"AT",146:"SET",148:"TO",149:"VALUE",150:"ROW",152:"COLON",154:"NOT",156:"IF",162:"UNION",164:"ALL",166:"ANY",168:"INTERSECT",169:"EXCEPT",170:"AND",171:"OR",172:"PATH",173:"RETURN",175:"REPEAT",179:"PLUS",180:"STAR",181:"QUESTION",183:"FROM",185:"DISTINCT",187:"UNIQUE",189:"SELECT",190:"COLUMN",191:"MATRIX",192:"TEXTSTRING",193:"INDEX",194:"RECORDSET",195:"TOP",198:"INTO",206:"CROSS",207:"APPLY",208:"OUTER",212:"INDEXED",213:"INSERTED",222:"NATURAL",223:"JOIN",224:"INNER",225:"LEFT",226:"RIGHT",227:"FULL",228:"SEMI",229:"ANTI",230:"ON",231:"USING",232:"GROUP",236:"GROUPING",237:"ROLLUP",238:"CUBE",239:"HAVING",240:"CORRESPONDING",242:"DIRECTION",243:"COLLATE",244:"NOCASE",245:"LIMIT",247:"OFFSET",249:"FETCH",265:"CURRENT_TIMESTAMP",266:"JAVASCRIPT",267:"CREATE",268:"FUNCTION",269:"AGGREGATE",270:"NEW",271:"CAST",273:"CONVERT",276:"OVER",279:"PARTITION",280:"SUM",281:"COUNT",282:"MIN",283:"MAX",284:"AVG",285:"FIRST",286:"LAST",287:"AGGR",288:"ARRAY",290:"REPLACE",291:"DATEADD",292:"DATEDIFF",293:"INTERVAL",294:"TRUE",295:"FALSE",296:"NSTRING",297:"NULL",298:"EXISTS",299:"ARRAYLBRA",300:"RBRA",302:"BRAQUESTION",303:"CASE",306:"END",308:"WHEN",309:"THEN",310:"ELSE",311:"REGEXP",312:"TILDA",313:"GLOB",314:"ESCAPE",315:"NOT_LIKE",316:"BARBAR",317:"MINUS",318:"AMPERSAND",319:"BAR",320:"GE",321:"LE",322:"EQEQ",323:"EQEQEQ",324:"NE",325:"NEEQEQ",326:"NEEQEQEQ",330:"BETWEEN",331:"NOT_BETWEEN",332:"IS",333:"DOUBLECOLON",334:"SOME",335:"UPDATE",338:"DELETE",339:"INSERT",343:"DEFAULT",344:"VALUES",347:"DateValue",353:"TABLE",356:"IDENTITY",357:"TEMP",367:"CONSTRAINT",368:"CHECK",369:"PRIMARY",370:"KEY",373:"FOREIGN",374:"REFERENCES",380:"NO",381:"ACTION",386:"ColumnConstraints",389:"ENUM",390:"MAXNUM",396:"DROP",400:"ALTER",401:"RENAME",402:"ADD",403:"MODIFY",404:"ATTACH",405:"DATABASE",406:"DETACH",408:"USE",409:"SHOW",410:"VIEW",414:"READ",415:"ONLY",416:"OPTION",417:"SOURCE",418:"ASSERT",420:"ATLBRA",424:"LCUR",426:"RCUR",433:"OFF",434:"COMMIT",435:"TRANSACTION",436:"ROLLBACK",437:"BEGIN",439:"WHILE",440:"CONTINUE",441:"BREAK",442:"PRINT",443:"REQUIRE",447:"ECHO",448:"DECLARE",451:"TRUNCATE",452:"MERGE",460:"MATCHED",463:"TARGET",464:"OUTPUT",470:"CONTENT",472:"GRAPH",505:"COLONDASH",507:"QUESTIONDASH",508:"CALL",509:"TRIGGER",514:"BEFORE",515:"AFTER",516:"INSTEAD",517:"REINDEX",518:"A",519:"ABSENT",520:"ABSOLUTE",521:"ACCORDING",522:"ADA",523:"ADMIN",524:"ALWAYS",525:"ASC",526:"ASSERTION",527:"ASSIGNMENT",528:"ATTRIBUTE",529:"ATTRIBUTES",530:"BASE64",531:"BERNOULLI",532:"BLOCKED",533:"BOM",534:"BREADTH",535:"C",536:"CASCADE",537:"CATALOG",538:"CATALOG_NAME",539:"CHAIN",540:"CHARACTERISTICS",541:"CHARACTERS",542:"CHARACTER_SET_CATALOG",543:"CHARACTER_SET_NAME",544:"CHARACTER_SET_SCHEMA",545:"CLASS_ORIGIN",546:"COBOL",547:"COLLATION",548:"COLLATION_CATALOG",549:"COLLATION_NAME",550:"COLLATION_SCHEMA",551:"COLUMNS",552:"COLUMN_NAME",553:"COMMAND_FUNCTION",554:"COMMAND_FUNCTION_CODE",555:"COMMITTED",556:"CONDITION_NUMBER",557:"CONNECTION",558:"CONNECTION_NAME",559:"CONSTRAINTS",560:"CONSTRAINT_CATALOG",561:"CONSTRAINT_NAME",562:"CONSTRAINT_SCHEMA",563:"CONSTRUCTOR",564:"CONTROL",565:"CURSOR_NAME",566:"DATA",567:"DATETIME_INTERVAL_CODE",568:"DATETIME_INTERVAL_PRECISION",569:"DB",570:"DEFAULTS",571:"DEFERRABLE",572:"DEFERRED",573:"DEFINED",574:"DEFINER",575:"DEGREE",576:"DEPTH",577:"DERIVED",578:"DESC",579:"DESCRIPTOR",580:"DIAGNOSTICS",581:"DISPATCH",582:"DOCUMENT",583:"DOMAIN",584:"DYNAMIC_FUNCTION",585:"DYNAMIC_FUNCTION_CODE",586:"EMPTY",587:"ENCODING",588:"ENFORCED",589:"EXCLUDE",590:"EXCLUDING",591:"EXPRESSION",592:"FILE",593:"FINAL",594:"FLAG",595:"FOLLOWING",596:"FORTRAN",597:"FOUND",598:"FS",599:"G",600:"GENERAL",601:"GENERATED",602:"GO",603:"GOTO",604:"GRANTED",605:"HEX",606:"HIERARCHY",607:"ID",608:"IGNORE",609:"IMMEDIATE",610:"IMMEDIATELY",611:"IMPLEMENTATION",612:"INCLUDING",613:"INCREMENT",614:"INDENT",615:"INITIALLY",616:"INPUT",617:"INSTANCE",618:"INSTANTIABLE",619:"INTEGRITY",620:"INVOKER",621:"ISOLATION",622:"K",623:"KEY_MEMBER",624:"KEY_TYPE",625:"LENGTH",626:"LEVEL",627:"LIBRARY",628:"LINK",629:"LOCATION",630:"LOCATOR",631:"M",632:"MAP",633:"MAPPING",634:"MAXVALUE",635:"MESSAGE_LENGTH",636:"MESSAGE_OCTET_LENGTH",637:"MESSAGE_TEXT",638:"MINVALUE",639:"MORE",640:"MUMPS",641:"NAME",642:"NAMES",643:"NAMESPACE",644:"NESTING",645:"NEXT",646:"NFC",647:"NFD",648:"NFKC",649:"NFKD",650:"NIL",651:"NORMALIZED",652:"NULLABLE",653:"NULLS",654:"OBJECT",655:"OCTETS",656:"OPTIONS",657:"ORDERING",658:"ORDINALITY",659:"OTHERS",660:"OVERRIDING",661:"P",662:"PAD",663:"PARAMETER_MODE",664:"PARAMETER_NAME",665:"PARAMETER_ORDINAL_POSITION",666:"PARAMETER_SPECIFIC_CATALOG",667:"PARAMETER_SPECIFIC_NAME",668:"PARAMETER_SPECIFIC_SCHEMA",669:"PARTIAL",670:"PASCAL",671:"PASSING",672:"PASSTHROUGH",673:"PERMISSION",674:"PLACING",675:"PLI",676:"PRECEDING",677:"PRESERVE",678:"PRIOR",679:"PRIVILEGES",680:"PUBLIC",681:"RECOVERY",682:"RELATIVE",683:"REPEATABLE",684:"REQUIRING",685:"RESPECT",686:"RESTART",687:"RESTORE",688:"RESTRICT",689:"RETURNED_CARDINALITY",690:"RETURNED_LENGTH",691:"RETURNED_OCTET_LENGTH",692:"RETURNED_SQLSTATE",693:"RETURNING",694:"ROLE",695:"ROUTINE",696:"ROUTINE_CATALOG",697:"ROUTINE_NAME",698:"ROUTINE_SCHEMA",699:"ROW_COUNT",700:"SCALE",701:"SCHEMA",702:"SCHEMA_NAME",703:"SCOPE_CATALOG",704:"SCOPE_NAME",705:"SCOPE_SCHEMA",706:"SECTION",707:"SECURITY",708:"SELECTIVE",709:"SELF",710:"SEQUENCE",711:"SERIALIZABLE",712:"SERVER",713:"SERVER_NAME",714:"SESSION",715:"SETS",716:"SIMPLE",717:"SIZE",718:"SPACE",719:"SPECIFIC_NAME",720:"STANDALONE",721:"STATE",722:"STATEMENT",723:"STRIP",724:"STRUCTURE",725:"STYLE",726:"SUBCLASS_ORIGIN",727:"T",728:"TABLE_NAME",729:"TEMPORARY",730:"TIES",731:"TOKEN",732:"TOP_LEVEL_COUNT",733:"TRANSACTIONS_COMMITTED",734:"TRANSACTIONS_ROLLED_BACK",735:"TRANSACTION_ACTIVE",736:"TRANSFORM",737:"TRANSFORMS",738:"TRIGGER_CATALOG",739:"TRIGGER_NAME",740:"TRIGGER_SCHEMA",741:"TYPE",742:"UNBOUNDED",743:"UNCOMMITTED",744:"UNDER",745:"UNLINK",746:"UNNAMED",747:"UNTYPED",748:"URI",749:"USAGE",750:"USER_DEFINED_TYPE_CATALOG",751:"USER_DEFINED_TYPE_CODE",752:"USER_DEFINED_TYPE_NAME",753:"USER_DEFINED_TYPE_SCHEMA",754:"VALID",755:"VERSION",756:"WHITESPACE",757:"WORK",758:"WRAPPER",759:"WRITE",760:"XMLDECLARATION",761:"XMLSCHEMA",762:"YES",763:"ZONE",764:"SEMICOLON",765:"PERCENT",766:"ROWS"}, +productions_: [0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[241,1],[241,2],[241,3],[241,4],[87,0],[87,3],[87,8],[246,0],[246,2],[174,3],[174,1],[253,3],[253,2],[253,3],[253,2],[253,3],[253,2],[253,1],[254,5],[254,3],[254,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[263,2],[263,2],[261,6],[261,8],[261,6],[261,8],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[255,5],[255,6],[255,6],[275,0],[275,4],[275,4],[275,5],[277,3],[278,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[257,1],[257,1],[113,1],[113,1],[258,1],[202,2],[259,4],[262,3],[201,2],[201,2],[201,1],[201,1],[260,5],[260,4],[304,2],[304,1],[307,4],[305,2],[305,0],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,6],[256,6],[256,3],[256,3],[256,2],[256,2],[256,2],[256,2],[256,2],[256,3],[256,5],[256,6],[256,5],[256,6],[256,4],[256,5],[256,3],[256,4],[256,3],[256,4],[256,3],[256,3],[256,3],[256,3],[256,3],[329,1],[329,1],[329,4],[327,1],[327,1],[327,1],[327,1],[327,1],[327,1],[328,1],[328,1],[328,1],[55,6],[55,4],[147,1],[147,3],[336,3],[336,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[341,1],[341,1],[340,0],[340,1],[342,3],[342,1],[342,1],[342,5],[342,3],[342,3],[345,1],[345,3],[346,1],[346,1],[346,1],[346,1],[346,1],[346,1],[100,1],[100,3],[24,9],[24,5],[349,1],[349,1],[352,0],[352,1],[354,2],[354,1],[355,1],[355,3],[355,3],[355,3],[348,0],[348,1],[350,0],[350,3],[351,3],[351,1],[351,2],[359,1],[359,3],[360,2],[360,2],[360,2],[360,2],[360,2],[361,0],[361,2],[366,4],[362,6],[363,9],[377,3],[376,0],[376,2],[378,4],[379,4],[364,6],[365,5],[365,5],[372,1],[372,1],[372,3],[372,3],[358,1],[358,3],[384,3],[384,2],[384,1],[387,6],[387,4],[387,1],[387,4],[272,2],[272,1],[388,1],[388,1],[385,0],[385,1],[391,2],[391,1],[393,3],[392,2],[392,5],[392,3],[392,6],[392,1],[392,2],[392,4],[392,2],[392,1],[392,2],[392,1],[392,1],[392,3],[392,5],[33,4],[399,3],[399,1],[398,0],[398,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[407,0],[407,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[413,3],[413,3],[413,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[422,1],[422,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,3],[419,3],[419,4],[419,2],[421,2],[421,3],[421,1],[425,3],[425,1],[428,3],[428,3],[428,3],[427,3],[427,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[431,1],[431,1],[430,3],[430,2],[432,1],[432,1],[432,3],[429,1],[429,1],[51,2],[52,2],[50,2],[35,4],[35,3],[438,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[446,1],[446,1],[69,2],[444,3],[444,1],[445,3],[445,1],[28,2],[449,1],[449,3],[450,3],[450,4],[450,5],[450,6],[46,3],[37,6],[453,1],[453,2],[454,2],[455,2],[456,2],[456,2],[456,1],[456,1],[458,4],[458,6],[461,1],[461,3],[459,5],[459,7],[459,7],[459,9],[459,7],[459,9],[462,3],[462,6],[462,3],[462,6],[457,0],[457,2],[457,5],[457,4],[457,7],[27,6],[469,2],[468,0],[468,2],[468,2],[468,1],[26,8],[23,3],[23,4],[473,3],[473,1],[474,3],[474,7],[474,6],[474,3],[474,4],[478,1],[478,1],[482,2],[483,3],[484,2],[485,4],[475,4],[475,3],[475,2],[475,1],[497,2],[493,2],[493,2],[498,4],[500,6],[67,3],[67,2],[506,3],[506,1],[504,1],[504,4],[68,2],[20,2],[48,9],[48,8],[48,9],[510,0],[510,1],[510,1],[510,1],[510,2],[511,1],[511,1],[511,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[248,0],[248,1],[250,0],[250,1],[251,0],[251,1],[252,0],[252,1],[264,1],[264,1],[767,1],[767,1],[289,0],[289,1],[301,1],[301,1],[337,1],[337,1],[371,0],[371,1],[375,0],[375,1],[382,0],[382,1],[383,0],[383,1],[394,0],[394,1],[395,0],[395,1],[397,1],[397,1],[411,0],[411,1],[412,0],[412,1],[465,0],[465,1],[466,0],[466,1],[467,0],[467,1],[471,0],[471,1],[476,0],[476,1],[477,0],[477,1],[479,0],[479,1],[480,0],[480,1],[481,0],[481,1],[486,0],[486,1],[487,0],[487,1],[488,0],[488,1],[489,0],[489,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[499,0],[499,2],[501,0],[501,2],[502,0],[502,2],[503,0],[503,2],[512,0],[512,1],[513,0],[513,1]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 1: + + if (alasql.options.casesensitive) this.$ = $$[$0]; + else this.$ = $$[$0].toLowerCase(); + +break; +case 2: + this.$ = doubleq($$[$0].substr(1,$$[$0].length-2)); +break; +case 3: + this.$ = $$[$0].toLowerCase() +break; +case 4: + this.$ = $$[$0] +break; +case 5: + this.$ = $$[$0] ? $$[$0-1] + ' ' + $$[$0] : $$[$0-1] +break; +case 6: + return new yy.Statements({statements:$$[$0-1]}); +break; +case 7: + this.$ = $$[$0-2]; if($$[$0]) $$[$0-2].push($$[$0]); +break; +case 8: case 9: case 70: case 80: case 85: case 143: case 177: case 205: case 206: case 242: case 261: case 273: case 354: case 372: case 451: case 474: case 475: case 479: case 487: case 528: case 529: case 566: case 649: case 659: case 683: case 685: case 687: case 701: case 702: case 732: case 756: + this.$ = [$$[$0]]; +break; +case 10: + this.$ = $$[$0]; $$[$0].explain = true; +break; +case 11: + this.$ = $$[$0]; $$[$0].explain = true; +break; +case 12: + + this.$ = $$[$0]; + + // TODO combine exists and queries + if(yy.exists) this.$.exists = yy.exists; + delete yy.exists; + if(yy.queries) this.$.queries = yy.queries; + delete yy.queries; + +break; +case 13: case 162: case 172: case 237: case 238: case 240: case 248: case 250: case 259: case 267: case 270: case 375: case 491: case 501: case 503: case 515: case 521: case 522: case 567: + this.$ = undefined; +break; +case 68: + this.$ = new yy.WithSelect({withs: $$[$0-1], select:$$[$0]}); +break; +case 69: case 565: + $$[$0-2].push($$[$0]); this.$=$$[$0-2]; +break; +case 71: + this.$ = {name:$$[$0-4], select:$$[$0-1]}; +break; +case 72: + + yy.extend(this.$,$$[$0-9]); yy.extend(this.$,$$[$0-8]); yy.extend(this.$,$$[$0-7]); yy.extend(this.$,$$[$0-6]); + yy.extend(this.$,$$[$0-5]); yy.extend(this.$,$$[$0-4]);yy.extend(this.$,$$[$0-3]); + yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]); + this.$ = $$[$0-9]; +/* if(yy.exists) this.$.exists = yy.exists; + delete yy.exists; + if(yy.queries) this.$.queries = yy.queries; + delete yy.queries; +*/ +break; +case 73: + + this.$ = new yy.Search({selectors:$$[$0-2], from:$$[$0]}); + yy.extend(this.$,$$[$0-1]); + +break; +case 74: + this.$ = {pivot:{expr:$$[$0-5], columnid:$$[$0-3], inlist:$$[$0-2], as:$$[$0]}}; +break; +case 75: + this.$ = {unpivot:{tocolumnid:$$[$0-8], forcolumnid:$$[$0-6], inlist:$$[$0-3], as:$$[$0]}}; +break; +case 76: case 520: case 549: case 585: case 619: case 636: case 637: case 640: case 662: + this.$ = $$[$0-1]; +break; +case 77: case 78: case 86: case 147: case 185: case 247: case 280: case 288: case 289: case 290: case 291: case 292: case 293: case 294: case 295: case 296: case 297: case 298: case 299: case 300: case 301: case 304: case 305: case 320: case 321: case 322: case 323: case 324: case 325: case 374: case 440: case 441: case 442: case 443: case 444: case 445: case 516: case 542: case 546: case 548: case 623: case 624: case 625: case 626: case 627: case 628: case 632: case 634: case 635: case 644: case 660: case 661: case 723: case 738: case 739: case 741: case 742: case 748: case 749: + this.$ = $$[$0]; +break; +case 79: case 84: case 731: case 755: + this.$ = $$[$0-2]; this.$.push($$[$0]); +break; +case 81: + this.$ = {expr:$$[$0]}; +break; +case 82: + this.$ = {expr:$$[$0-2],as:$$[$0]}; +break; +case 83: + this.$ = {removecolumns:$$[$0]}; +break; +case 87: + this.$ = {like:$$[$0]}; +break; +case 90: case 104: + this.$ = {srchid:"PROP", args: [$$[$0]]}; +break; +case 91: + this.$ = {srchid:"ORDERBY", args: $$[$0-1]}; +break; +case 92: + + var dir = $$[$0-1]; + if(!dir) dir = 'ASC'; + this.$ = {srchid:"ORDERBY", args: [{expression: new yy.Column({columnid:'_'}), direction:dir}]}; + +break; +case 93: + this.$ = {srchid:"PARENT"}; +break; +case 94: + this.$ = {srchid:"APROP", args: [$$[$0]]}; +break; +case 95: + this.$ = {selid:"ROOT"}; +break; +case 96: + this.$ = {srchid:"EQ", args: [$$[$0]]}; +break; +case 97: + this.$ = {srchid:"LIKE", args: [$$[$0]]}; +break; +case 98: case 99: + this.$ = {selid:"WITH", args: $$[$0-1]}; +break; +case 100: + this.$ = {srchid:$$[$0-3].toUpperCase(), args:$$[$0-1]}; +break; +case 101: + this.$ = {srchid:"WHERE", args:[$$[$0-1]]}; +break; +case 102: + this.$ = {selid:"OF", args:[$$[$0-1]]}; +break; +case 103: + this.$ = {srchid:"CLASS", args:[$$[$0-1]]}; +break; +case 105: + this.$ = {srchid:"NAME", args: [$$[$0].substr(1,$$[$0].length-2)]}; +break; +case 106: + this.$ = {srchid:"CHILD"}; +break; +case 107: + this.$ = {srchid:"VERTEX"}; +break; +case 108: + this.$ = {srchid:"EDGE"}; +break; +case 109: + this.$ = {srchid:"REF"}; +break; +case 110: + this.$ = {srchid:"SHARP", args:[$$[$0]]}; +break; +case 111: + this.$ = {srchid:"ATTR", args:((typeof $$[$0] == 'undefined')?undefined:[$$[$0]])}; +break; +case 112: + this.$ = {srchid:"ATTR"}; +break; +case 113: + this.$ = {srchid:"OUT"}; +break; +case 114: + this.$ = {srchid:"IN"}; +break; +case 115: + this.$ = {srchid:"OUTOUT"}; +break; +case 116: + this.$ = {srchid:"ININ"}; +break; +case 117: + this.$ = {srchid:"CONTENT"}; +break; +case 118: + this.$ = {srchid:"EX",args:[new yy.Json({value:$$[$0]})]}; +break; +case 119: + this.$ = {srchid:"AT", args:[$$[$0]]}; +break; +case 120: + this.$ = {srchid:"AS", args:[$$[$0]]}; +break; +case 121: + this.$ = {srchid:"SET", args:$$[$0-1]}; +break; +case 122: + this.$ = {selid:"TO", args:[$$[$0]]}; +break; +case 123: + this.$ = {srchid:"VALUE"}; +break; +case 124: + this.$ = {srchid:"ROW", args:$$[$0-1]}; +break; +case 125: + this.$ = {srchid:"CLASS", args:[$$[$0]]}; +break; +case 126: + this.$ = {selid:$$[$0],args:[$$[$0-1]] }; +break; +case 127: + this.$ = {selid:"NOT",args:$$[$0-1] }; +break; +case 128: + this.$ = {selid:"IF",args:$$[$0-1] }; +break; +case 129: + this.$ = {selid:$$[$0-3],args:$$[$0-1] }; +break; +case 130: + this.$ = {selid:'DISTINCT',args:$$[$0-1] }; +break; +case 131: + this.$ = {selid:'UNION',args:$$[$0-1] }; +break; +case 132: + this.$ = {selid:'UNIONALL',args:$$[$0-1] }; +break; +case 133: + this.$ = {selid:'ALL',args:[$$[$0-1]] }; +break; +case 134: + this.$ = {selid:'ANY',args:[$$[$0-1]] }; +break; +case 135: + this.$ = {selid:'INTERSECT',args:$$[$0-1] }; +break; +case 136: + this.$ = {selid:'EXCEPT',args:$$[$0-1] }; +break; +case 137: + this.$ = {selid:'AND',args:$$[$0-1] }; +break; +case 138: + this.$ = {selid:'OR',args:$$[$0-1] }; +break; +case 139: + this.$ = {selid:'PATH',args:[$$[$0-1]] }; +break; +case 140: + this.$ = {srchid:'RETURN',args:$$[$0-1] }; +break; +case 141: + this.$ = {selid:'REPEAT',sels:$$[$0-3], args:$$[$0-1] }; +break; +case 142: + this.$ = $$[$0-2]; this.$.push($$[$0]); +break; +case 144: + this.$ = "PLUS"; +break; +case 145: + this.$ = "STAR"; +break; +case 146: + this.$ = "QUESTION"; +break; +case 148: + this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]); yy.extend(this.$, $$[$0-1]); +break; +case 149: + this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]); +break; +case 150: + this.$ = new yy.Select({ columns:$$[$0], all:true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]); +break; +case 151: + + if(!$$[$0]) { + this.$ = new yy.Select({columns:[new yy.Column({columnid:'_',})], modifier:'COLUMN'}); + } else { + this.$ = new yy.Select({ columns:$$[$0] }); yy.extend(this.$, $$[$0-2]);yy.extend(this.$, $$[$0-1]); + } + +break; +case 152: + if($$[$0]=='SELECT') this.$ = undefined; else this.$ = {modifier: $$[$0]}; +break; +case 153: + this.$ = {modifier:'VALUE'} +break; +case 154: + this.$ = {modifier:'ROW'} +break; +case 155: + this.$ = {modifier:'COLUMN'} +break; +case 156: + this.$ = {modifier:'MATRIX'} +break; +case 157: + this.$ = {modifier:'TEXTSTRING'} +break; +case 158: + this.$ = {modifier:'INDEX'} +break; +case 159: + this.$ = {modifier:'RECORDSET'} +break; +case 160: + this.$ = {top: $$[$0-1], percent:(typeof $$[$0] != 'undefined'?true:undefined)}; +break; +case 161: + this.$ = {top: $$[$0-1]}; +break; +case 163: case 330: case 523: case 524: case 724: +this.$ = undefined; +break; +case 164: case 165: case 166: case 167: +this.$ = {into: $$[$0]} +break; +case 168: + + var s = $$[$0]; + s = s.substr(1,s.length-2); + var x3 = s.substr(-3).toUpperCase(); + var x4 = s.substr(-4).toUpperCase(); + if(s[0] == '#') { + this.$ = {into: new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})}; + } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') { + this.$ = {into: new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})}; + } else if(x4=='XLSX' || x4 == 'JSON') { + this.$ = {into: new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})}; + } + +break; +case 169: + this.$ = { from: $$[$0] }; +break; +case 170: + this.$ = { from: $$[$0-1], joins: $$[$0] }; +break; +case 171: + this.$ = { from: $$[$0-2], joins: $$[$0-1] }; +break; +case 173: + this.$ = new yy.Apply({select: $$[$0-2], applymode:'CROSS', as:$$[$0]}); +break; +case 174: + this.$ = new yy.Apply({select: $$[$0-3], applymode:'CROSS', as:$$[$0]}); +break; +case 175: + this.$ = new yy.Apply({select: $$[$0-2], applymode:'OUTER', as:$$[$0]}); +break; +case 176: + this.$ = new yy.Apply({select: $$[$0-3], applymode:'OUTER', as:$$[$0]}); +break; +case 178: case 243: case 452: case 530: case 531: + this.$ = $$[$0-2]; $$[$0-2].push($$[$0]); +break; +case 179: + this.$ = $$[$0-2]; this.$.as = $$[$0] +break; +case 180: + this.$ = $$[$0-3]; this.$.as = $$[$0] +break; +case 181: + this.$ = $$[$0-1]; this.$.as = 'default' +break; +case 182: + this.$ = new yy.Json({value:$$[$0-2]}); $$[$0-2].as = $$[$0] +break; +case 183: + this.$ = $$[$0-1]; $$[$0-1].as = $$[$0] +break; +case 184: + this.$ = $$[$0-2]; $$[$0-2].as = $$[$0] +break; +case 186: case 638: case 641: + this.$ = $$[$0-2]; +break; +case 187: case 191: case 195: case 198: + this.$ = $$[$0-1]; $$[$0-1].as = $$[$0]; +break; +case 188: case 192: case 196: case 199: + this.$ = $$[$0-2]; $$[$0-2].as = $$[$0]; +break; +case 189: case 190: case 194: case 197: + this.$ = $$[$0]; $$[$0].as = 'default'; +break; +case 193: + this.$ = {inserted:true}; /*$$[$0].as = 'default'*/; +break; +case 200: + + var s = $$[$0]; + s = s.substr(1,s.length-2); + var x3 = s.substr(-3).toUpperCase(); + var x4 = s.substr(-4).toUpperCase(); + var r; + if(s[0] == '#') { + r = new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]}); + } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') { + r = new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]}); + } else if(x4=='XLSX' || x4 == 'JSON') { + r = new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]}); + } else { + throw new Error('Unknown string in FROM clause'); + }; + this.$ = r; + +break; +case 201: + + if($$[$0-2] == 'INFORMATION_SCHEMA') { + this.$ = new yy.FuncValue({funcid: $$[$0-2], args:[new yy.StringValue({value:$$[$0]})]}); + } else { + this.$ = new yy.Table({databaseid: $$[$0-2], tableid:$$[$0]}); + } + +break; +case 202: + this.$ = new yy.Table({tableid: $$[$0]}); +break; +case 203: case 204: + this.$ = $$[$0-1]; $$[$0-1].push($$[$0]); +break; +case 207: + this.$ = new yy.Join($$[$0-2]); yy.extend(this.$, $$[$0-1]); yy.extend(this.$, $$[$0]); +break; +case 208: + this.$ = {table: $$[$0]}; +break; +case 209: + this.$ = {table: $$[$0-1], as: $$[$0] } ; +break; +case 210: + this.$ = {table: $$[$0-2], as: $$[$0] } ; +break; +case 211: + this.$ = {json:new yy.Json({value:$$[$0-2],as:$$[$0]})}; +break; +case 212: + this.$ = {param: $$[$0-1], as: $$[$0] } ; +break; +case 213: + this.$ = {param: $$[$0-2], as: $$[$0] } ; +break; +case 214: + this.$ = {select: $$[$0-2], as: $$[$0]} ; +break; +case 215: + this.$ = {select: $$[$0-3], as: $$[$0] } ; +break; +case 216: + this.$ = {func:$$[$0], as:'default'}; +break; +case 217: + this.$ = {func:$$[$0-1], as: $$[$0]}; +break; +case 218: + this.$ = {func:$$[$0-2], as: $$[$0]}; +break; +case 219: + this.$ = {variable:$$[$0],as:'default'}; +break; +case 220: + this.$ = {variable:$$[$0-1],as:$$[$0]}; +break; +case 221: + this.$ = {variable:$$[$0-2],as:$$[$0]} +break; +case 222: + this.$ = { joinmode: $$[$0] } ; +break; +case 223: + this.$ = {joinmode: $$[$0-1], natural:true} ; +break; +case 224: case 225: + this.$ = "INNER"; +break; +case 226: case 227: + this.$ = "LEFT"; +break; +case 228: case 229: + this.$ = "RIGHT"; +break; +case 230: case 231: + this.$ = "OUTER"; +break; +case 232: + this.$ = "SEMI"; +break; +case 233: + this.$ = "ANTI"; +break; +case 234: + this.$ = "CROSS"; +break; +case 235: + this.$ = {on: $$[$0]}; +break; +case 236: case 697: + this.$ = {using: $$[$0]}; +break; +case 239: + this.$ = {where: new yy.Expression({expression:$$[$0]})}; +break; +case 241: + this.$ = {group:$$[$0-1]}; yy.extend(this.$,$$[$0]); +break; +case 244: + this.$ = new yy.GroupExpression({type:'GROUPING SETS', group: $$[$0-1]}); +break; +case 245: + this.$ = new yy.GroupExpression({type:'ROLLUP', group: $$[$0-1]}); +break; +case 246: + this.$ = new yy.GroupExpression({type:'CUBE', group: $$[$0-1]}); +break; +case 249: + this.$ = {having:$$[$0]} +break; +case 251: + this.$ = {union: $$[$0]} ; +break; +case 252: + this.$ = {unionall: $$[$0]} ; +break; +case 253: + this.$ = {except: $$[$0]} ; +break; +case 254: + this.$ = {intersect: $$[$0]} ; +break; +case 255: + this.$ = {union: $$[$0], corresponding:true} ; +break; +case 256: + this.$ = {unionall: $$[$0], corresponding:true} ; +break; +case 257: + this.$ = {except: $$[$0], corresponding:true} ; +break; +case 258: + this.$ = {intersect: $$[$0], corresponding:true} ; +break; +case 260: + this.$ = {order:$$[$0]} +break; +case 262: + this.$ = $$[$0-2]; $$[$0-2].push($$[$0]) +break; +case 263: + this.$ = new yy.Expression({expression: $$[$0], direction:'ASC'}) +break; +case 264: + this.$ = new yy.Expression({expression: $$[$0-1], direction:$$[$0].toUpperCase()}) +break; +case 265: + this.$ = new yy.Expression({expression: $$[$0-2], direction:'ASC', nocase:true}) +break; +case 266: + this.$ = new yy.Expression({expression: $$[$0-3], direction:$$[$0].toUpperCase(), nocase:true}) +break; +case 268: + this.$ = {limit:$$[$0-1]}; yy.extend(this.$, $$[$0]); +break; +case 269: + this.$ = {limit:$$[$0-2],offset:$$[$0-6]}; +break; +case 271: + this.$ = {offset:$$[$0]}; +break; +case 272: case 509: case 533: case 648: case 658: case 682: case 684: case 688: + $$[$0-2].push($$[$0]); this.$ = $$[$0-2]; +break; +case 274: case 276: case 278: + $$[$0-2].as = $$[$0]; this.$ = $$[$0-2]; +break; +case 275: case 277: case 279: + $$[$0-1].as = $$[$0]; this.$ = $$[$0-1]; +break; +case 281: + this.$ = new yy.Column({columid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]}); +break; +case 282: + this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]}); +break; +case 283: + this.$ = new yy.Column({columnid:$$[$0]}); +break; +case 284: + this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]}); +break; +case 285: case 286: + this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]}); +break; +case 287: + this.$ = new yy.Column({columnid: $$[$0]}); +break; +case 302: + this.$ = new yy.DomainValueValue(); +break; +case 303: + this.$ = new yy.Json({value:$$[$0]}); +break; +case 306: case 307: case 308: + + if(!yy.queries) yy.queries = []; + yy.queries.push($$[$0-1]); + $$[$0-1].queriesidx = yy.queries.length; + this.$ = $$[$0-1]; + +break; +case 309: +this.$ = $$[$0] +break; +case 310: + this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'}); +break; +case 311: + this.$ = new yy.JavaScript({value:$$[$0].substr(2,$$[$0].length-4)}); +break; +case 312: + this.$ = new yy.JavaScript({value:'alasql.fn["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)}); +break; +case 313: + this.$ = new yy.JavaScript({value:'alasql.aggr["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)}); +break; +case 314: + this.$ = new yy.FuncValue({funcid:$$[$0], newid:true}); +break; +case 315: + this.$ = $$[$0]; yy.extend(this.$,{newid:true}); +break; +case 316: + this.$ = new yy.Convert({expression:$$[$0-3]}) ; yy.extend(this.$,$$[$0-1]) ; +break; +case 317: + this.$ = new yy.Convert({expression:$$[$0-5], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ; +break; +case 318: + this.$ = new yy.Convert({expression:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ; +break; +case 319: + this.$ = new yy.Convert({expression:$$[$0-3], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-5]) ; +break; +case 326: + this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'}); +break; +case 327: + + if($$[$0-2].length > 1 && ($$[$0-4].toUpperCase() == 'MAX' || $$[$0-4].toUpperCase() == 'MIN')) { + this.$ = new yy.FuncValue({funcid:$$[$0-4],args:$$[$0-2]}); + } else { + this.$ = new yy.AggrValue({aggregatorid: $$[$0-4].toUpperCase(), expression: $$[$0-2].pop(), over:$$[$0]}); + } + +break; +case 328: + this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], distinct:true, over:$$[$0]}); +break; +case 329: + this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], + over:$$[$0]}); +break; +case 331: case 332: + this.$ = new yy.Over(); yy.extend(this.$,$$[$0-1]); +break; +case 333: + this.$ = new yy.Over(); yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); +break; +case 334: + this.$ = {partition:$$[$0]}; +break; +case 335: + this.$ = {order:$$[$0]}; +break; +case 336: + this.$ = "SUM"; +break; +case 337: + this.$ = "COUNT"; +break; +case 338: + this.$ = "MIN"; +break; +case 339: case 544: + this.$ = "MAX"; +break; +case 340: + this.$ = "AVG"; +break; +case 341: + this.$ = "FIRST"; +break; +case 342: + this.$ = "LAST"; +break; +case 343: + this.$ = "AGGR"; +break; +case 344: + this.$ = "ARRAY"; +break; +case 345: + + var funcid = $$[$0-4]; + var exprlist = $$[$0-1]; + if(exprlist.length > 1 && (funcid.toUpperCase() == 'MIN' || funcid.toUpperCase() == 'MAX')) { + this.$ = new yy.FuncValue({funcid: funcid, args: exprlist}); + } else if(alasql.aggr[$$[$0-4]]) { + this.$ = new yy.AggrValue({aggregatorid: 'REDUCE', + funcid: funcid, expression: exprlist.pop(),distinct:($$[$0-2]=='DISTINCT') }); + } else { + this.$ = new yy.FuncValue({funcid: funcid, args: exprlist}); + }; + +break; +case 346: + this.$ = new yy.FuncValue({ funcid: $$[$0-2] }) +break; +case 347: + this.$ = new yy.FuncValue({ funcid: 'IIF', args:$$[$0-1] }) +break; +case 348: + this.$ = new yy.FuncValue({ funcid: 'REPLACE', args:$$[$0-1] }) +break; +case 349: + this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]}) +break; +case 350: + this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[$$[$0-5],$$[$0-3],$$[$0-1]]}) +break; +case 351: + this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]}) +break; +case 352: + this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[$$[$0-5],$$[$0-3],$$[$0-1]]}) +break; +case 353: + this.$ = new yy.FuncValue({ funcid: 'INTERVAL', args:[$$[$0-1],new yy.StringValue({value:($$[$0]).toLowerCase()})]}); +break; +case 355: + $$[$0-2].push($$[$0]); this.$ = $$[$0-2] +break; +case 356: + this.$ = new yy.NumValue({value:+$$[$0]}); +break; +case 357: + this.$ = new yy.LogicValue({value:true}); +break; +case 358: + this.$ = new yy.LogicValue({value:false}); +break; +case 359: + this.$ = new yy.StringValue({value: $$[$0].substr(1,$$[$0].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")}); +break; +case 360: + this.$ = new yy.StringValue({value: $$[$0].substr(2,$$[$0].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")}); +break; +case 361: + this.$ = new yy.NullValue({value:undefined}); +break; +case 362: + this.$ = new yy.VarValue({variable:$$[$0]}); +break; +case 363: + + if(!yy.exists) yy.exists = []; + this.$ = new yy.ExistsValue({value:$$[$0-1], existsidx:yy.exists.length}); + yy.exists.push($$[$0-1]); + +break; +case 364: + this.$ = new yy.ArrayValue({value:$$[$0-1]}); +break; +case 365: case 366: + this.$ = new yy.ParamValue({param: $$[$0]}); +break; +case 367: + + if(typeof yy.question == 'undefined') yy.question = 0; + this.$ = new yy.ParamValue({param: yy.question++}); + +break; +case 368: + + if(typeof yy.question == 'undefined') yy.question = 0; + this.$ = new yy.ParamValue({param: yy.question++, array:true}); + +break; +case 369: + this.$ = new yy.CaseValue({expression:$$[$0-3], whens: $$[$0-2], elses: $$[$0-1]}); +break; +case 370: + this.$ = new yy.CaseValue({whens: $$[$0-2], elses: $$[$0-1]}); +break; +case 371: case 699: case 700: + this.$ = $$[$0-1]; this.$.push($$[$0]); +break; +case 373: + this.$ = {when: $$[$0-2], then: $$[$0] }; +break; +case 376: case 377: + this.$ = new yy.Op({left:$$[$0-2], op:'REGEXP', right:$$[$0]}); +break; +case 378: + this.$ = new yy.Op({left:$$[$0-2], op:'GLOB', right:$$[$0]}); +break; +case 379: + this.$ = new yy.Op({left:$$[$0-2], op:'LIKE', right:$$[$0]}); +break; +case 380: + this.$ = new yy.Op({left:$$[$0-4], op:'LIKE', right:$$[$0-2], escape:$$[$0]}); +break; +case 381: + this.$ = new yy.Op({left:$$[$0-2], op:'NOT LIKE', right:$$[$0] }); +break; +case 382: + this.$ = new yy.Op({left:$$[$0-4], op:'NOT LIKE', right:$$[$0-2], escape:$$[$0] }); +break; +case 383: + this.$ = new yy.Op({left:$$[$0-2], op:'||', right:$$[$0]}); +break; +case 384: + this.$ = new yy.Op({left:$$[$0-2], op:'+', right:$$[$0]}); +break; +case 385: + this.$ = new yy.Op({left:$$[$0-2], op:'-', right:$$[$0]}); +break; +case 386: + this.$ = new yy.Op({left:$$[$0-2], op:'*', right:$$[$0]}); +break; +case 387: + this.$ = new yy.Op({left:$$[$0-2], op:'/', right:$$[$0]}); +break; +case 388: + this.$ = new yy.Op({left:$$[$0-2], op:'%', right:$$[$0]}); +break; +case 389: + this.$ = new yy.Op({left:$$[$0-2], op:'^', right:$$[$0]}); +break; +case 390: + this.$ = new yy.Op({left:$$[$0-2], op:'>>', right:$$[$0]}); +break; +case 391: + this.$ = new yy.Op({left:$$[$0-2], op:'<<', right:$$[$0]}); +break; +case 392: + this.$ = new yy.Op({left:$$[$0-2], op:'&', right:$$[$0]}); +break; +case 393: + this.$ = new yy.Op({left:$$[$0-2], op:'|', right:$$[$0]}); +break; +case 394: case 395: case 397: + this.$ = new yy.Op({left:$$[$0-2], op:'->' , right:$$[$0]}); +break; +case 396: + this.$ = new yy.Op({left:$$[$0-4], op:'->' , right:$$[$0-1]}); +break; +case 398: case 399: case 401: + this.$ = new yy.Op({left:$$[$0-2], op:'!' , right:$$[$0]}); +break; +case 400: + this.$ = new yy.Op({left:$$[$0-4], op:'!' , right:$$[$0-1]}); +break; +case 402: + this.$ = new yy.Op({left:$$[$0-2], op:'>' , right:$$[$0]}); +break; +case 403: + this.$ = new yy.Op({left:$$[$0-2], op:'>=' , right:$$[$0]}); +break; +case 404: + this.$ = new yy.Op({left:$$[$0-2], op:'<' , right:$$[$0]}); +break; +case 405: + this.$ = new yy.Op({left:$$[$0-2], op:'<=' , right:$$[$0]}); +break; +case 406: + this.$ = new yy.Op({left:$$[$0-2], op:'=' , right:$$[$0]}); +break; +case 407: + this.$ = new yy.Op({left:$$[$0-2], op:'==' , right:$$[$0]}); +break; +case 408: + this.$ = new yy.Op({left:$$[$0-2], op:'===' , right:$$[$0]}); +break; +case 409: + this.$ = new yy.Op({left:$$[$0-2], op:'!=' , right:$$[$0]}); +break; +case 410: + this.$ = new yy.Op({left:$$[$0-2], op:'!==' , right:$$[$0]}); +break; +case 411: + this.$ = new yy.Op({left:$$[$0-2], op:'!===' , right:$$[$0]}); +break; +case 412: + + if(!yy.queries) yy.queries = []; + this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1], queriesidx: yy.queries.length}); + yy.queries.push($$[$0-1]); + +break; +case 413: + + this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1]}); + +break; +case 414: + + if($$[$0-2].op == 'BETWEEN1') { + + if($$[$0-2].left.op == 'AND') { + this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right: + new yy.Op({left:$$[$0-2].left.right, op:'BETWEEN', + right1:$$[$0-2].right, right2:$$[$0]}) + }); + } else { + this.$ = new yy.Op({left:$$[$0-2].left, op:'BETWEEN', + right1:$$[$0-2].right, right2:$$[$0]}); + } + + } else if($$[$0-2].op == 'NOT BETWEEN1') { + if($$[$0-2].left.op == 'AND') { + this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right: + new yy.Op({left:$$[$0-2].left.right, op:'NOT BETWEEN', + right1:$$[$0-2].right, right2:$$[$0]}) + }); + } else { + this.$ = new yy.Op({left:$$[$0-2].left, op:'NOT BETWEEN', + right1:$$[$0-2].right, right2:$$[$0]}); + } + } else { + this.$ = new yy.Op({left:$$[$0-2], op:'AND', right:$$[$0]}); + } + +break; +case 415: + this.$ = new yy.Op({left:$$[$0-2], op:'OR' , right:$$[$0]}); +break; +case 416: + this.$ = new yy.UniOp({op:'NOT' , right:$$[$0]}); +break; +case 417: + this.$ = new yy.UniOp({op:'-' , right:$$[$0]}); +break; +case 418: + this.$ = new yy.UniOp({op:'+' , right:$$[$0]}); +break; +case 419: + this.$ = new yy.UniOp({op:'~' , right:$$[$0]}); +break; +case 420: + this.$ = new yy.UniOp({op:'#' , right:$$[$0]}); +break; +case 421: + this.$ = new yy.UniOp({right: $$[$0-1]}); +break; +case 422: + + if(!yy.queries) yy.queries = []; + this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1], queriesidx: yy.queries.length}); + yy.queries.push($$[$0-1]); + +break; +case 423: + + if(!yy.queries) yy.queries = []; + this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1], queriesidx: yy.queries.length}); + yy.queries.push($$[$0-1]); + +break; +case 424: + this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1]}); +break; +case 425: + this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1]}); +break; +case 426: + this.$ = new yy.Op({left: $$[$0-3], op:'IN', right:[]}); +break; +case 427: + this.$ = new yy.Op({left: $$[$0-4], op:'NOT IN', right:[]}); +break; +case 428: case 430: + this.$ = new yy.Op({left: $$[$0-2], op:'IN', right:$$[$0]}); +break; +case 429: case 431: + this.$ = new yy.Op({left: $$[$0-3], op:'NOT IN', right:$$[$0]}); +break; +case 432: + +/* var expr = $$[$0]; + if(expr.left && expr.left.op == 'AND') { + this.$ = new yy.Op({left:new yy.Op({left:$$[$0-2], op:'BETWEEN', right:expr.left}), op:'AND', right:expr.right }); + } else { +*/ + this.$ = new yy.Op({left:$$[$0-2], op:'BETWEEN1', right:$$[$0] }); + +break; +case 433: + + this.$ = new yy.Op({left:$$[$0-2], op:'NOT BETWEEN1', right:$$[$0] }); + +break; +case 434: + this.$ = new yy.Op({op:'IS' , left:$$[$0-2], right:$$[$0]}); +break; +case 435: + + this.$ = new yy.Op({ + op:'IS', + left:$$[$0-2], + right: new yy.UniOp({ + op:'NOT', + right:new yy.NullValue({value:undefined}) + }) + }); + +break; +case 436: + this.$ = new yy.Convert({expression:$$[$0-2]}) ; yy.extend(this.$,$$[$0]) ; +break; +case 437: case 438: + this.$ = $$[$0]; +break; +case 439: + this.$ = $$[$0-1]; +break; +case 446: + this.$ = 'ALL'; +break; +case 447: + this.$ = 'SOME'; +break; +case 448: + this.$ = 'ANY'; +break; +case 449: + this.$ = new yy.Update({table:$$[$0-4], columns:$$[$0-2], where:$$[$0]}); +break; +case 450: + this.$ = new yy.Update({table:$$[$0-2], columns:$$[$0]}); +break; +case 453: + this.$ = new yy.SetColumn({column:$$[$0-2], expression:$$[$0]}) +break; +case 454: + this.$ = new yy.SetColumn({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]}) +break; +case 455: + this.$ = new yy.Delete({table:$$[$0-2], where:$$[$0]}); +break; +case 456: + this.$ = new yy.Delete({table:$$[$0]}); +break; +case 457: + this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0]}); +break; +case 458: + this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0]}); +break; +case 459: case 461: + this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0], orreplace:true}); +break; +case 460: case 462: + this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0], orreplace:true}); +break; +case 463: + this.$ = new yy.Insert({into:$$[$0-2], "default": true}) ; +break; +case 464: + this.$ = new yy.Insert({into:$$[$0-5], columns: $$[$0-3], values: $$[$0]}); +break; +case 465: + this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], values: $$[$0]}); +break; +case 466: + this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0]}); +break; +case 467: + this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0], orreplace:true}); +break; +case 468: + this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], select: $$[$0]}); +break; +case 473: + this.$ = [$$[$0-1]]; +break; +case 476: +this.$ = $$[$0-4]; $$[$0-4].push($$[$0-1]) +break; +case 477: case 478: case 480: case 488: +this.$ = $$[$0-2]; $$[$0-2].push($$[$0]) +break; +case 489: + + this.$ = new yy.CreateTable({table:$$[$0-4]}); + yy.extend(this.$,$$[$0-7]); + yy.extend(this.$,$$[$0-6]); + yy.extend(this.$,$$[$0-5]); + yy.extend(this.$,$$[$0-2]); + yy.extend(this.$,$$[$0]); + +break; +case 490: + + this.$ = new yy.CreateTable({table:$$[$0]}); + yy.extend(this.$,$$[$0-3]); + yy.extend(this.$,$$[$0-2]); + yy.extend(this.$,$$[$0-1]); + +break; +case 492: + this.$ = {"class":true}; +break; +case 502: + this.$ = {temporary:true}; +break; +case 504: + this.$ = {ifnotexists: true}; +break; +case 505: + this.$ = {columns: $$[$0-2], constraints: $$[$0]}; +break; +case 506: + this.$ = {columns: $$[$0]}; +break; +case 507: + this.$ = {as: $$[$0]} +break; +case 508: case 532: + this.$ = [$$[$0]]; +break; +case 510: case 511: case 512: case 513: case 514: + $$[$0].constraintid = $$[$0-1]; this.$ = $$[$0]; +break; +case 517: + this.$ = {type: 'CHECK', expression: $$[$0-1]}; +break; +case 518: + this.$ = {type: 'PRIMARY KEY', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()}; +break; +case 519: + this.$ = {type: 'FOREIGN KEY', columns: $$[$0-5], fktable: $$[$0-2], fkcolumns: $$[$0-1]}; +break; +case 525: + + this.$ = {type: 'UNIQUE', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()}; + +break; +case 534: + this.$ = new yy.ColumnDef({columnid:$$[$0-2]}); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]); +break; +case 535: + this.$ = new yy.ColumnDef({columnid:$$[$0-1]}); yy.extend(this.$,$$[$0]); +break; +case 536: + this.$ = new yy.ColumnDef({columnid:$$[$0], dbtypeid: ''}); +break; +case 537: + this.$ = {dbtypeid: $$[$0-5], dbsize: $$[$0-3], dbprecision: +$$[$0-1]} +break; +case 538: + this.$ = {dbtypeid: $$[$0-3], dbsize: $$[$0-1]} +break; +case 539: + this.$ = {dbtypeid: $$[$0]} +break; +case 540: + this.$ = {dbtypeid: 'ENUM', enumvalues: $$[$0-1]} +break; +case 541: + this.$ = $$[$0-1]; $$[$0-1].dbtypeid += '[' + $$[$0] + ']'; +break; +case 543: case 750: + this.$ = +$$[$0]; +break; +case 545: +this.$ = undefined +break; +case 547: + + yy.extend($$[$0-1],$$[$0]); this.$ = $$[$0-1]; + +break; +case 550: +this.$ = {primarykey:true}; +break; +case 551: case 552: +this.$ = {foreignkey:{table:$$[$0-1], columnid: $$[$0]}}; +break; +case 553: + this.$ = {identity: {value:$$[$0-3],step:$$[$0-1]}} +break; +case 554: + this.$ = {identity: {value:1,step:1}} +break; +case 555: case 557: +this.$ = {"default":$$[$0]}; +break; +case 556: +this.$ = {"default":$$[$0-1]}; +break; +case 558: +this.$ = {"null":true}; +break; +case 559: +this.$ = {notnull:true}; +break; +case 560: +this.$ = {check:$$[$0]}; +break; +case 561: +this.$ = {unique:true}; +break; +case 562: +this.$ = {"onupdate":$$[$0]}; +break; +case 563: +this.$ = {"onupdate":$$[$0-1]}; +break; +case 564: + this.$ = new yy.DropTable({tables:$$[$0],type:$$[$0-2]}); yy.extend(this.$, $$[$0-1]); +break; +case 568: + this.$ = {ifexists: true}; +break; +case 569: + this.$ = new yy.AlterTable({table:$$[$0-3], renameto: $$[$0]}); +break; +case 570: + this.$ = new yy.AlterTable({table:$$[$0-3], addcolumn: $$[$0]}); +break; +case 571: + this.$ = new yy.AlterTable({table:$$[$0-3], modifycolumn: $$[$0]}); +break; +case 572: + this.$ = new yy.AlterTable({table:$$[$0-5], renamecolumn: $$[$0-2], to: $$[$0]}); +break; +case 573: + this.$ = new yy.AlterTable({table:$$[$0-3], dropcolumn: $$[$0]}); +break; +case 574: + this.$ = new yy.AlterTable({table:$$[$0-2], renameto: $$[$0]}); +break; +case 575: + this.$ = new yy.AttachDatabase({databaseid:$$[$0], engineid:$$[$0-2].toUpperCase() }); +break; +case 576: + this.$ = new yy.AttachDatabase({databaseid:$$[$0-3], engineid:$$[$0-5].toUpperCase(), args:$$[$0-1] }); +break; +case 577: + this.$ = new yy.AttachDatabase({databaseid:$$[$0-2], engineid:$$[$0-4].toUpperCase(), as:$$[$0] }); +break; +case 578: + this.$ = new yy.AttachDatabase({databaseid:$$[$0-5], engineid:$$[$0-7].toUpperCase(), as:$$[$0], args:$$[$0-3]}); +break; +case 579: + this.$ = new yy.DetachDatabase({databaseid:$$[$0]}); +break; +case 580: + this.$ = new yy.CreateDatabase({databaseid:$$[$0] }); yy.extend(this.$,$$[$0]); +break; +case 581: + this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), databaseid:$$[$0-1], as:$$[$0] }); yy.extend(this.$,$$[$0-2]); +break; +case 582: + this.$ = new yy.CreateDatabase({engineid:$$[$0-7].toUpperCase(), databaseid:$$[$0-4], args:$$[$0-2], as:$$[$0] }); yy.extend(this.$,$$[$0-5]); +break; +case 583: + this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), + as:$$[$0], args:[$$[$0-1]] }); yy.extend(this.$,$$[$0-2]); +break; +case 584: +this.$ = undefined; +break; +case 586: case 587: + this.$ = new yy.UseDatabase({databaseid: $$[$0] }); +break; +case 588: + this.$ = new yy.DropDatabase({databaseid: $$[$0] }); yy.extend(this.$,$$[$0-1]); +break; +case 589: case 590: + this.$ = new yy.DropDatabase({databaseid: $$[$0], engineid:$$[$0-3].toUpperCase() }); yy.extend(this.$,$$[$0-1]); +break; +case 591: + this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1]}) +break; +case 592: + this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1], unique:true}) +break; +case 593: + this.$ = new yy.DropIndex({indexid:$$[$0]}); +break; +case 594: + this.$ = new yy.ShowDatabases(); +break; +case 595: + this.$ = new yy.ShowDatabases({like:$$[$0]}); +break; +case 596: + this.$ = new yy.ShowDatabases({engineid:$$[$0-1].toUpperCase() }); +break; +case 597: + this.$ = new yy.ShowDatabases({engineid:$$[$0-3].toUpperCase() , like:$$[$0]}); +break; +case 598: + this.$ = new yy.ShowTables(); +break; +case 599: + this.$ = new yy.ShowTables({like:$$[$0]}); +break; +case 600: + this.$ = new yy.ShowTables({databaseid: $$[$0]}); +break; +case 601: + this.$ = new yy.ShowTables({like:$$[$0], databaseid: $$[$0-2]}); +break; +case 602: + this.$ = new yy.ShowColumns({table: $$[$0]}); +break; +case 603: + this.$ = new yy.ShowColumns({table: $$[$0-2], databaseid:$$[$0]}); +break; +case 604: + this.$ = new yy.ShowIndex({table: $$[$0]}); +break; +case 605: + this.$ = new yy.ShowIndex({table: $$[$0-2], databaseid: $$[$0]}); +break; +case 606: + this.$ = new yy.ShowCreateTable({table: $$[$0]}); +break; +case 607: + this.$ = new yy.ShowCreateTable({table: $$[$0-2], databaseid:$$[$0]}); +break; +case 608: + + this.$ = new yy.CreateTable({table:$$[$0-6],view:true,select:$$[$0-1],viewcolumns:$$[$0-4]}); + yy.extend(this.$,$$[$0-9]); + yy.extend(this.$,$$[$0-7]); + +break; +case 609: + + this.$ = new yy.CreateTable({table:$$[$0-3],view:true,select:$$[$0-1]}); + yy.extend(this.$,$$[$0-6]); + yy.extend(this.$,$$[$0-4]); + +break; +case 613: + this.$ = new yy.DropTable({tables:$$[$0], view:true}); yy.extend(this.$, $$[$0-1]); +break; +case 614: case 760: + this.$ = new yy.ExpressionStatement({expression:$$[$0]}); +break; +case 615: + this.$ = new yy.Source({url:$$[$0].value}); +break; +case 616: + this.$ = new yy.Assert({value:$$[$0]}); +break; +case 617: + this.$ = new yy.Assert({value:$$[$0].value}); +break; +case 618: + this.$ = new yy.Assert({value:$$[$0], message:$$[$0-2]}); +break; +case 620: case 631: case 633: + this.$ = $$[$0].value; +break; +case 621: case 629: + this.$ = +$$[$0].value; +break; +case 622: + this.$ = (!!$$[$0].value); +break; +case 630: + this.$ = ""+$$[$0].value; +break; +case 639: + this.$ = {}; +break; +case 642: + this.$ = []; +break; +case 643: + yy.extend($$[$0-2],$$[$0]); this.$ = $$[$0-2]; +break; +case 645: + this.$ = {}; this.$[$$[$0-2].substr(1,$$[$0-2].length-2)] = $$[$0]; +break; +case 646: case 647: + this.$ = {}; this.$[$$[$0-2]] = $$[$0]; +break; +case 650: + this.$ = new yy.SetVariable({variable:$$[$0-2].toLowerCase(), value:$$[$0]}); +break; +case 651: + this.$ = new yy.SetVariable({variable:$$[$0-1].toLowerCase(), value:$$[$0]}); +break; +case 652: + this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0]}); +break; +case 653: + this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0]}); +break; +case 654: + this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]}); +break; +case 655: + this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0], method:$$[$0-4]}); +break; +case 656: +this.$ = '@'; +break; +case 657: +this.$ = '$'; +break; +case 663: + this.$ = true; +break; +case 664: + this.$ = false; +break; +case 665: + this.$ = new yy.CommitTransaction(); +break; +case 666: + this.$ = new yy.RollbackTransaction(); +break; +case 667: + this.$ = new yy.BeginTransaction(); +break; +case 668: + this.$ = new yy.If({expression:$$[$0-2],thenstat:$$[$0-1], elsestat:$$[$0]}); + if($$[$0-1].exists) this.$.exists = $$[$0-1].exists; + if($$[$0-1].queries) this.$.queries = $$[$0-1].queries; + +break; +case 669: + + this.$ = new yy.If({expression:$$[$0-1],thenstat:$$[$0]}); + if($$[$0].exists) this.$.exists = $$[$0].exists; + if($$[$0].queries) this.$.queries = $$[$0].queries; + +break; +case 670: +this.$ = $$[$0]; +break; +case 671: + this.$ = new yy.While({expression:$$[$0-1],loopstat:$$[$0]}); + if($$[$0].exists) this.$.exists = $$[$0].exists; + if($$[$0].queries) this.$.queries = $$[$0].queries; + +break; +case 672: + this.$ = new yy.Continue(); +break; +case 673: + this.$ = new yy.Break(); +break; +case 674: + this.$ = new yy.BeginEnd({statements:$$[$0-1]}); +break; +case 675: + this.$ = new yy.Print({exprs:$$[$0]}); +break; +case 676: + this.$ = new yy.Print({select:$$[$0]}); +break; +case 677: + this.$ = new yy.Require({paths:$$[$0]}); +break; +case 678: + this.$ = new yy.Require({plugins:$$[$0]}); +break; +case 679: case 680: +this.$ = $$[$0].toUpperCase(); +break; +case 681: + this.$ = new yy.Echo({expr:$$[$0]}); +break; +case 686: + this.$ = new yy.Declare({declares:$$[$0]}); +break; +case 689: + this.$ = {variable: $$[$0-1]}; yy.extend(this.$,$$[$0]); +break; +case 690: + this.$ = {variable: $$[$0-2]}; yy.extend(this.$,$$[$0]); +break; +case 691: + this.$ = {variable: $$[$0-3], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]); +break; +case 692: + this.$ = {variable: $$[$0-4], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]); +break; +case 693: + this.$ = new yy.TruncateTable({table:$$[$0]}); +break; +case 694: + + this.$ = new yy.Merge(); yy.extend(this.$,$$[$0-4]); yy.extend(this.$,$$[$0-3]); + yy.extend(this.$,$$[$0-2]); + yy.extend(this.$,{matches:$$[$0-1]});yy.extend(this.$,$$[$0]); + +break; +case 695: case 696: + this.$ = {into: $$[$0]}; +break; +case 698: + this.$ = {on:$$[$0]}; +break; +case 703: + this.$ = {matched:true, action:$$[$0]} +break; +case 704: + this.$ = {matched:true, expr: $$[$0-2], action:$$[$0]} +break; +case 705: + this.$ = {"delete":true}; +break; +case 706: + this.$ = {update:$$[$0]}; +break; +case 707: case 708: + this.$ = {matched:false, bytarget: true, action:$$[$0]} +break; +case 709: case 710: + this.$ = {matched:false, bytarget: true, expr:$$[$0-2], action:$$[$0]} +break; +case 711: + this.$ = {matched:false, bysource: true, action:$$[$0]} +break; +case 712: + this.$ = {matched:false, bysource: true, expr:$$[$0-2], action:$$[$0]} +break; +case 713: + this.$ = {insert:true, values:$$[$0]}; +break; +case 714: + this.$ = {insert:true, values:$$[$0], columns:$$[$0-3]}; +break; +case 715: + this.$ = {insert:true, defaultvalues:true}; +break; +case 716: + this.$ = {insert:true, defaultvalues:true, columns:$$[$0-3]}; +break; +case 718: + this.$ = {output:{columns:$$[$0]}} +break; +case 719: + this.$ = {output:{columns:$$[$0-3], intovar: $$[$0], method:$$[$0-1]}} +break; +case 720: + this.$ = {output:{columns:$$[$0-2], intotable: $$[$0]}} +break; +case 721: + this.$ = {output:{columns:$$[$0-5], intotable: $$[$0-3], intocolumns:$$[$0-1]}} +break; +case 722: + + this.$ = new yy.CreateVertex({"class":$$[$0-3],sharp:$$[$0-2], name:$$[$0-1]}); + yy.extend(this.$,$$[$0]); + +break; +case 725: + this.$ = {sets:$$[$0]}; +break; +case 726: + this.$ = {content:$$[$0]}; +break; +case 727: + this.$ = {select:$$[$0]}; +break; +case 728: + + this.$ = new yy.CreateEdge({from:$$[$0-3],to:$$[$0-1],name:$$[$0-5]}); + yy.extend(this.$,$$[$0]); + +break; +case 729: + this.$ = new yy.CreateGraph({graph:$$[$0]}); +break; +case 730: + this.$ = new yy.CreateGraph({from:$$[$0]}); +break; +case 733: + + this.$ = $$[$0-2]; + if($$[$0-1]) this.$.json = new yy.Json({value:$$[$0-1]}); + if($$[$0]) this.$.as = $$[$0]; + +break; +case 734: + + this.$ = {source:$$[$0-6], target: $$[$0]}; + if($$[$0-3]) this.$.json = new yy.Json({value:$$[$0-3]}); + if($$[$0-2]) this.$.as = $$[$0-2]; + yy.extend(this.$,$$[$0-4]); + +break; +case 735: + + this.$ = {source:$$[$0-5], target: $$[$0]}; + if($$[$0-2]) this.$.json = new yy.Json({value:$$[$0-3]}); + if($$[$0-1]) this.$.as = $$[$0-2]; + +break; +case 736: + + this.$ = {source:$$[$0-2], target: $$[$0]}; + +break; +case 740: + this.$ = {vars:$$[$0], method:$$[$0-1]}; +break; +case 743: case 744: + + var s3 = $$[$0-1]; + this.$ = {prop:$$[$0-3], sharp:$$[$0-2], name:(typeof s3 == 'undefined')?undefined:s3.substr(1,s3.length-2), "class":$$[$0]}; + +break; +case 745: + + var s2 = $$[$0-1]; + this.$ = {sharp:$$[$0-2], name:(typeof s2 == 'undefined')?undefined:s2.substr(1,s2.length-2), "class":$$[$0]}; + +break; +case 746: + + var s1 = $$[$0-1]; + this.$ = {name:(typeof s1 == 'undefined')?undefined:s1.substr(1,s1.length-2), "class":$$[$0]}; + +break; +case 747: + + this.$ = {"class":$$[$0]}; + +break; +case 753: + this.$ = new yy.AddRule({left:$$[$0-2], right:$$[$0]}); +break; +case 754: + this.$ = new yy.AddRule({right:$$[$0]}); +break; +case 757: + this.$ = new yy.Term({termid:$$[$0]}); +break; +case 758: + this.$ = new yy.Term({termid:$$[$0-3],args:$$[$0-1]}); +break; +case 761: + + this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-5], action:$$[$0-4], table:$$[$0-2], statement:$$[$0]}); + if($$[$0].exists) this.$.exists = $$[$0].exists; + if($$[$0].queries) this.$.queries = $$[$0].queries; + +break; +case 762: + + this.$ = new yy.CreateTrigger({trigger:$$[$0-5], when:$$[$0-4], action:$$[$0-3], table:$$[$0-1], funcid:$$[$0]}); + +break; +case 763: + + this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-4], action:$$[$0-3], table:$$[$0-5], statement:$$[$0]}); + if($$[$0].exists) this.$.exists = $$[$0].exists; + if($$[$0].queries) this.$.queries = $$[$0].queries; + +break; +case 764: case 765: case 767: + this.$ = 'AFTER'; +break; +case 766: + this.$ = 'BEFORE'; +break; +case 768: + this.$ = 'INSTEADOF'; +break; +case 769: + this.$ = 'INSERT'; +break; +case 770: + this.$ = 'DELETE'; +break; +case 771: + this.$ = 'UPDATE'; +break; +case 772: + this.$ = new yy.DropTrigger({trigger:$$[$0]}); +break; +case 773: + this.$ = new yy.Reindex({indexid:$$[$0]}); +break; +case 1047: case 1067: case 1069: case 1071: case 1075: case 1077: case 1079: case 1081: case 1083: case 1085: +this.$ = []; +break; +case 1048: case 1062: case 1064: case 1068: case 1070: case 1072: case 1076: case 1078: case 1080: case 1082: case 1084: case 1086: +$$[$0-1].push($$[$0]); +break; +case 1061: case 1063: +this.$ = [$$[$0]]; +break; +} +}, +table: [o([10,602,764],$V0,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{1:[3]},{10:[1,105],11:106,602:$VH,764:$VI},o($VJ,[2,8]),o($VJ,[2,9]),o($VK,[2,12]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:109,2:$V1,4:$V2,5:$V3,15:[1,110],53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,14]),o($VK,[2,15]),o($VK,[2,16]),o($VK,[2,17]),o($VK,[2,18]),o($VK,[2,19]),o($VK,[2,20]),o($VK,[2,21]),o($VK,[2,22]),o($VK,[2,23]),o($VK,[2,24]),o($VK,[2,25]),o($VK,[2,26]),o($VK,[2,27]),o($VK,[2,28]),o($VK,[2,29]),o($VK,[2,30]),o($VK,[2,31]),o($VK,[2,32]),o($VK,[2,33]),o($VK,[2,34]),o($VK,[2,35]),o($VK,[2,36]),o($VK,[2,37]),o($VK,[2,38]),o($VK,[2,39]),o($VK,[2,40]),o($VK,[2,41]),o($VK,[2,42]),o($VK,[2,43]),o($VK,[2,44]),o($VK,[2,45]),o($VK,[2,46]),o($VK,[2,47]),o($VK,[2,48]),o($VK,[2,49]),o($VK,[2,50]),o($VK,[2,51]),o($VK,[2,52]),o($VK,[2,53]),o($VK,[2,54]),o($VK,[2,55]),o($VK,[2,56]),o($VK,[2,57]),o($VK,[2,58]),o($VK,[2,59]),o($VK,[2,60]),o($VK,[2,61]),o($VK,[2,62]),o($VK,[2,63]),o($VK,[2,64]),o($VK,[2,65]),o($VK,[2,66]),o($VK,[2,67]),{353:[1,111]},{2:$V1,3:112,4:$V2,5:$V3},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:113,290:$VM,291:$VN,292:$VO,293:$VP},o($VQ,[2,501],{3:121,348:125,2:$V1,4:$V2,5:$V3,134:$VR,135:$VS,187:[1,123],193:[1,122],268:[1,129],269:[1,130],357:[1,131],405:[1,120],472:[1,124],509:[1,128]}),{145:$VT,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:$V1,3:138,4:$V2,5:$V3,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:145,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:204,171:[1,205],198:$Vv1}),o($Vt1,$Vu1,{340:207,198:$Vv1}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1,453:208},{2:$V1,3:221,4:$V2,5:$V3},{353:[1,222]},o($Vz1,[2,1043],{80:223,106:224,107:[1,225]}),o($VA1,[2,1047],{90:226}),{2:$V1,3:230,4:$V2,5:$V3,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:$V1,3:236,4:$V2,5:$V3,73:234,75:235},o([306,602,764],$V0,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,9:238,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,435:[1,237],436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{435:[1,239]},{435:[1,240]},{2:$V1,3:242,4:$V2,5:$V3,405:[1,241]},{2:$V1,3:244,4:$V2,5:$V3,199:243},o($VB1,[2,311]),{113:245,132:$VW,296:$Vj1},{2:$V1,3:114,4:$V2,5:$V3,113:251,131:$VV,132:[1,248],143:$VY,144:246,145:$VC1,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:247,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,672]),o($VK,[2,673]),{2:$V1,3:168,4:$V2,5:$V3,40:259,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:258,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:266,4:$V2,5:$V3,113:263,132:$VW,296:$Vj1,444:261,445:262,446:264,447:$VE1},{2:$V1,3:267,4:$V2,5:$V3,143:$VF1,145:$VG1,431:268},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:271,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{505:[1,272]},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:273},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:275,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH1,$VI1,{186:280,164:[1,279],185:[1,277],187:[1,278],195:$VJ1}),o($VK1,[2,757],{77:[1,282]}),o([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],[2,152],{149:[1,283],150:[1,284],190:[1,285],191:[1,286],192:[1,287],193:[1,288],194:[1,289]}),o($VL1,[2,1]),o($VL1,[2,2]),{6:290,131:[1,439],172:[1,462],245:[1,411],285:[1,373],286:[1,407],370:[1,404],381:[1,295],402:[1,297],410:[1,549],414:[1,471],416:[1,443],417:[1,509],433:[1,442],435:[1,525],440:[1,342],460:[1,418],464:[1,448],470:[1,341],514:[1,307],515:[1,299],516:[1,399],518:[1,291],519:[1,292],520:[1,293],521:[1,294],522:[1,296],523:[1,298],524:[1,300],525:[1,301],526:[1,302],527:[1,303],528:[1,304],529:[1,305],530:[1,306],531:[1,308],532:[1,309],533:[1,310],534:[1,311],535:[1,312],536:[1,313],537:[1,314],538:[1,315],539:[1,316],540:[1,317],541:[1,318],542:[1,319],543:[1,320],544:[1,321],545:[1,322],546:[1,323],547:[1,324],548:[1,325],549:[1,326],550:[1,327],551:[1,328],552:[1,329],553:[1,330],554:[1,331],555:[1,332],556:[1,333],557:[1,334],558:[1,335],559:[1,336],560:[1,337],561:[1,338],562:[1,339],563:[1,340],564:[1,343],565:[1,344],566:[1,345],567:[1,346],568:[1,347],569:[1,348],570:[1,349],571:[1,350],572:[1,351],573:[1,352],574:[1,353],575:[1,354],576:[1,355],577:[1,356],578:[1,357],579:[1,358],580:[1,359],581:[1,360],582:[1,361],583:[1,362],584:[1,363],585:[1,364],586:[1,365],587:[1,366],588:[1,367],589:[1,368],590:[1,369],591:[1,370],592:[1,371],593:[1,372],594:[1,374],595:[1,375],596:[1,376],597:[1,377],598:[1,378],599:[1,379],600:[1,380],601:[1,381],602:[1,382],603:[1,383],604:[1,384],605:[1,385],606:[1,386],607:[1,387],608:[1,388],609:[1,389],610:[1,390],611:[1,391],612:[1,392],613:[1,393],614:[1,394],615:[1,395],616:[1,396],617:[1,397],618:[1,398],619:[1,400],620:[1,401],621:[1,402],622:[1,403],623:[1,405],624:[1,406],625:[1,408],626:[1,409],627:[1,410],628:[1,412],629:[1,413],630:[1,414],631:[1,415],632:[1,416],633:[1,417],634:[1,419],635:[1,420],636:[1,421],637:[1,422],638:[1,423],639:[1,424],640:[1,425],641:[1,426],642:[1,427],643:[1,428],644:[1,429],645:[1,430],646:[1,431],647:[1,432],648:[1,433],649:[1,434],650:[1,435],651:[1,436],652:[1,437],653:[1,438],654:[1,440],655:[1,441],656:[1,444],657:[1,445],658:[1,446],659:[1,447],660:[1,449],661:[1,450],662:[1,451],663:[1,452],664:[1,453],665:[1,454],666:[1,455],667:[1,456],668:[1,457],669:[1,458],670:[1,459],671:[1,460],672:[1,461],673:[1,463],674:[1,464],675:[1,465],676:[1,466],677:[1,467],678:[1,468],679:[1,469],680:[1,470],681:[1,472],682:[1,473],683:[1,474],684:[1,475],685:[1,476],686:[1,477],687:[1,478],688:[1,479],689:[1,480],690:[1,481],691:[1,482],692:[1,483],693:[1,484],694:[1,485],695:[1,486],696:[1,487],697:[1,488],698:[1,489],699:[1,490],700:[1,491],701:[1,492],702:[1,493],703:[1,494],704:[1,495],705:[1,496],706:[1,497],707:[1,498],708:[1,499],709:[1,500],710:[1,501],711:[1,502],712:[1,503],713:[1,504],714:[1,505],715:[1,506],716:[1,507],717:[1,508],718:[1,510],719:[1,511],720:[1,512],721:[1,513],722:[1,514],723:[1,515],724:[1,516],725:[1,517],726:[1,518],727:[1,519],728:[1,520],729:[1,521],730:[1,522],731:[1,523],732:[1,524],733:[1,526],734:[1,527],735:[1,528],736:[1,529],737:[1,530],738:[1,531],739:[1,532],740:[1,533],741:[1,534],742:[1,535],743:[1,536],744:[1,537],745:[1,538],746:[1,539],747:[1,540],748:[1,541],749:[1,542],750:[1,543],751:[1,544],752:[1,545],753:[1,546],754:[1,547],755:[1,548],756:[1,550],757:[1,551],758:[1,552],759:[1,553],760:[1,554],761:[1,555],762:[1,556],763:[1,557]},{1:[2,6]},o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:558,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VM1,[2,1041]),o($VM1,[2,1042]),o($VJ,[2,10]),{16:[1,559]},{2:$V1,3:244,4:$V2,5:$V3,199:560},{405:[1,561]},o($VK,[2,760]),{77:$VN1},{77:[1,563]},{77:$VO1},{77:[1,565]},{77:[1,566]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:567,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$VP1,{350:568,156:$VQ1}),{405:[1,570]},{2:$V1,3:571,4:$V2,5:$V3},{193:[1,572]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,183:[1,574],431:585,473:573,474:575,475:576,478:577,482:582,493:579,497:581},{130:[1,589],349:586,353:[1,588],410:[1,587]},{113:591,132:$VW,183:[2,1141],296:$Vj1,471:590},o($VU1,[2,1135],{465:592,3:593,2:$V1,4:$V2,5:$V3}),{2:$V1,3:594,4:$V2,5:$V3},{4:[1,595]},{4:[1,596]},o($VQ,[2,502]),o($VK,[2,686],{74:[1,597]}),o($VV1,[2,687]),{2:$V1,3:598,4:$V2,5:$V3},{2:$V1,3:244,4:$V2,5:$V3,199:599},{2:$V1,3:600,4:$V2,5:$V3},o($Vt1,$VW1,{398:601,156:$VX1}),{405:[1,603]},{2:$V1,3:604,4:$V2,5:$V3},o($Vt1,$VW1,{398:605,156:$VX1}),o($Vt1,$VW1,{398:606,156:$VX1}),{2:$V1,3:607,4:$V2,5:$V3},o($VY1,[2,1129]),o($VY1,[2,1130]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:608,114:625,327:637,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VB1,[2,288]),o($VB1,[2,289]),o($VB1,[2,290]),o($VB1,[2,291]),o($VB1,[2,292]),o($VB1,[2,293]),o($VB1,[2,294]),o($VB1,[2,295]),o($VB1,[2,296]),o($VB1,[2,297]),o($VB1,[2,298]),o($VB1,[2,299]),o($VB1,[2,300]),o($VB1,[2,301]),o($VB1,[2,302]),o($VB1,[2,303]),o($VB1,[2,304]),o($VB1,[2,305]),{2:$V1,3:168,4:$V2,5:$V3,26:654,27:653,36:649,40:648,56:165,77:$VU,79:75,89:$V7,94:651,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,264:650,265:$V41,266:$Vc,267:[1,655],270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:[1,652],291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,339:$Vh,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,309]),o($VB1,[2,310]),{77:[1,656]},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:[1,657]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:658,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:659,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:661,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:662,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,283]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,249,265,266,267,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,300,302,303,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,415,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764,765,766],[2,356]),o($Vz2,[2,357]),o($Vz2,[2,358]),o($Vz2,$VA2),o($Vz2,[2,360]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,361]),{2:$V1,3:664,4:$V2,5:$V3,131:[1,665],301:663},{2:$V1,3:666,4:$V2,5:$V3},o($Vz2,[2,367]),o($Vz2,[2,368]),{2:$V1,3:667,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{77:[1,674]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:675,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,304:676,307:677,308:$VC2,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,679]},{77:[1,680]},o($VD2,[2,624]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,683],302:$Vn1,419:190,420:$Vr1,421:681,422:684,423:686,424:$Vs1,427:682},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:696,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:697,4:$V2,5:$V3,156:$VL,200:698,290:$VM,291:$VN,292:$VO,293:$VP},{77:[2,336]},{77:[2,337]},{77:[2,338]},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,425:699,426:[1,700],428:701},{2:$V1,3:244,4:$V2,5:$V3,199:705},{290:[1,706]},o($Vt1,[2,472]),{2:$V1,3:244,4:$V2,5:$V3,199:707},{231:[1,709],454:708},{231:[2,695]},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:710,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{40:711,79:75,89:$V7,184:99,189:$Vb},o($VH2,[2,1091],{210:712,76:[1,713]}),o($VI2,[2,185],{3:714,2:$V1,4:$V2,5:$V3,76:[1,715],154:[1,716]}),o($VI2,[2,189],{3:717,2:$V1,4:$V2,5:$V3,76:[1,718]}),o($VI2,[2,190],{3:719,2:$V1,4:$V2,5:$V3,76:[1,720]}),o($VI2,[2,193]),o($VI2,[2,194],{3:721,2:$V1,4:$V2,5:$V3,76:[1,722]}),o($VI2,[2,197],{3:723,2:$V1,4:$V2,5:$V3,76:[1,724]}),o([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2,{77:$VN1,116:$VK2}),o([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],[2,200]),o($VK,[2,773]),{2:$V1,3:244,4:$V2,5:$V3,199:726},o($VL2,$VM2,{81:727,198:$VN2}),o($Vz1,[2,1044]),o($VO2,[2,1057],{108:729,190:[1,730]}),o([10,78,183,306,310,602,764],$VM2,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,198:$VN2,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),{353:[1,782]},{183:[1,783]},o($VK,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},o($VK,[2,598],{112:[1,787],183:[1,788]}),{2:$V1,3:244,4:$V2,5:$V3,199:789},{40:790,74:[1,791],79:75,89:$V7,184:99,189:$Vb},o($Vv3,[2,70]),{76:[1,792]},o($VK,[2,667]),{11:106,306:[1,793],602:$VH,764:$VI},o($VK,[2,665]),o($VK,[2,666]),{2:$V1,3:794,4:$V2,5:$V3},o($VK,[2,587]),{146:[1,795]},o([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],$VJ2,{116:$VK2}),o($VK,[2,615]),o($VK,[2,616]),o($VK,[2,617]),o($VK,$VA2,{74:[1,796]}),{77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},o($Vw3,[2,320]),o($Vw3,[2,321]),o($Vw3,[2,322]),o($Vw3,[2,323]),o($Vw3,[2,324]),o($Vw3,[2,325]),o($Vw3,[2,326]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,114:625,327:637,12:797,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,675],{74:$Vx3}),o($VK,[2,676]),o($Vy3,[2,354],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,677],{74:[1,800]}),o($VK,[2,678],{74:[1,801]}),o($VV1,[2,683]),o($VV1,[2,685]),o($VV1,[2,679]),o($VV1,[2,680]),{114:807,115:$V$1,116:$V02,124:[1,802],230:$VA3,429:803,430:804,433:$VB3},{2:$V1,3:808,4:$V2,5:$V3},o($Vt1,[2,656]),o($Vt1,[2,657]),o($VK,[2,614],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:100,4:$V2,5:$V3,504:274,506:809},o($VK,[2,754],{74:$VC3}),o($VD3,[2,756]),o($VK,[2,759]),o($VK,[2,681],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VE3,$VI1,{186:811,195:$VJ1}),o($VE3,$VI1,{186:812,195:$VJ1}),o($VE3,$VI1,{186:813,195:$VJ1}),o($VF3,[2,1087],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,188:814,174:815,253:816,94:817,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{77:[1,819],131:$VV,196:818},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:820},o($VG3,[2,153]),o($VG3,[2,154]),o($VG3,[2,155]),o($VG3,[2,156]),o($VG3,[2,157]),o($VG3,[2,158]),o($VG3,[2,159]),o($VL1,[2,3]),o($VL1,[2,774]),o($VL1,[2,775]),o($VL1,[2,776]),o($VL1,[2,777]),o($VL1,[2,778]),o($VL1,[2,779]),o($VL1,[2,780]),o($VL1,[2,781]),o($VL1,[2,782]),o($VL1,[2,783]),o($VL1,[2,784]),o($VL1,[2,785]),o($VL1,[2,786]),o($VL1,[2,787]),o($VL1,[2,788]),o($VL1,[2,789]),o($VL1,[2,790]),o($VL1,[2,791]),o($VL1,[2,792]),o($VL1,[2,793]),o($VL1,[2,794]),o($VL1,[2,795]),o($VL1,[2,796]),o($VL1,[2,797]),o($VL1,[2,798]),o($VL1,[2,799]),o($VL1,[2,800]),o($VL1,[2,801]),o($VL1,[2,802]),o($VL1,[2,803]),o($VL1,[2,804]),o($VL1,[2,805]),o($VL1,[2,806]),o($VL1,[2,807]),o($VL1,[2,808]),o($VL1,[2,809]),o($VL1,[2,810]),o($VL1,[2,811]),o($VL1,[2,812]),o($VL1,[2,813]),o($VL1,[2,814]),o($VL1,[2,815]),o($VL1,[2,816]),o($VL1,[2,817]),o($VL1,[2,818]),o($VL1,[2,819]),o($VL1,[2,820]),o($VL1,[2,821]),o($VL1,[2,822]),o($VL1,[2,823]),o($VL1,[2,824]),o($VL1,[2,825]),o($VL1,[2,826]),o($VL1,[2,827]),o($VL1,[2,828]),o($VL1,[2,829]),o($VL1,[2,830]),o($VL1,[2,831]),o($VL1,[2,832]),o($VL1,[2,833]),o($VL1,[2,834]),o($VL1,[2,835]),o($VL1,[2,836]),o($VL1,[2,837]),o($VL1,[2,838]),o($VL1,[2,839]),o($VL1,[2,840]),o($VL1,[2,841]),o($VL1,[2,842]),o($VL1,[2,843]),o($VL1,[2,844]),o($VL1,[2,845]),o($VL1,[2,846]),o($VL1,[2,847]),o($VL1,[2,848]),o($VL1,[2,849]),o($VL1,[2,850]),o($VL1,[2,851]),o($VL1,[2,852]),o($VL1,[2,853]),o($VL1,[2,854]),o($VL1,[2,855]),o($VL1,[2,856]),o($VL1,[2,857]),o($VL1,[2,858]),o($VL1,[2,859]),o($VL1,[2,860]),o($VL1,[2,861]),o($VL1,[2,862]),o($VL1,[2,863]),o($VL1,[2,864]),o($VL1,[2,865]),o($VL1,[2,866]),o($VL1,[2,867]),o($VL1,[2,868]),o($VL1,[2,869]),o($VL1,[2,870]),o($VL1,[2,871]),o($VL1,[2,872]),o($VL1,[2,873]),o($VL1,[2,874]),o($VL1,[2,875]),o($VL1,[2,876]),o($VL1,[2,877]),o($VL1,[2,878]),o($VL1,[2,879]),o($VL1,[2,880]),o($VL1,[2,881]),o($VL1,[2,882]),o($VL1,[2,883]),o($VL1,[2,884]),o($VL1,[2,885]),o($VL1,[2,886]),o($VL1,[2,887]),o($VL1,[2,888]),o($VL1,[2,889]),o($VL1,[2,890]),o($VL1,[2,891]),o($VL1,[2,892]),o($VL1,[2,893]),o($VL1,[2,894]),o($VL1,[2,895]),o($VL1,[2,896]),o($VL1,[2,897]),o($VL1,[2,898]),o($VL1,[2,899]),o($VL1,[2,900]),o($VL1,[2,901]),o($VL1,[2,902]),o($VL1,[2,903]),o($VL1,[2,904]),o($VL1,[2,905]),o($VL1,[2,906]),o($VL1,[2,907]),o($VL1,[2,908]),o($VL1,[2,909]),o($VL1,[2,910]),o($VL1,[2,911]),o($VL1,[2,912]),o($VL1,[2,913]),o($VL1,[2,914]),o($VL1,[2,915]),o($VL1,[2,916]),o($VL1,[2,917]),o($VL1,[2,918]),o($VL1,[2,919]),o($VL1,[2,920]),o($VL1,[2,921]),o($VL1,[2,922]),o($VL1,[2,923]),o($VL1,[2,924]),o($VL1,[2,925]),o($VL1,[2,926]),o($VL1,[2,927]),o($VL1,[2,928]),o($VL1,[2,929]),o($VL1,[2,930]),o($VL1,[2,931]),o($VL1,[2,932]),o($VL1,[2,933]),o($VL1,[2,934]),o($VL1,[2,935]),o($VL1,[2,936]),o($VL1,[2,937]),o($VL1,[2,938]),o($VL1,[2,939]),o($VL1,[2,940]),o($VL1,[2,941]),o($VL1,[2,942]),o($VL1,[2,943]),o($VL1,[2,944]),o($VL1,[2,945]),o($VL1,[2,946]),o($VL1,[2,947]),o($VL1,[2,948]),o($VL1,[2,949]),o($VL1,[2,950]),o($VL1,[2,951]),o($VL1,[2,952]),o($VL1,[2,953]),o($VL1,[2,954]),o($VL1,[2,955]),o($VL1,[2,956]),o($VL1,[2,957]),o($VL1,[2,958]),o($VL1,[2,959]),o($VL1,[2,960]),o($VL1,[2,961]),o($VL1,[2,962]),o($VL1,[2,963]),o($VL1,[2,964]),o($VL1,[2,965]),o($VL1,[2,966]),o($VL1,[2,967]),o($VL1,[2,968]),o($VL1,[2,969]),o($VL1,[2,970]),o($VL1,[2,971]),o($VL1,[2,972]),o($VL1,[2,973]),o($VL1,[2,974]),o($VL1,[2,975]),o($VL1,[2,976]),o($VL1,[2,977]),o($VL1,[2,978]),o($VL1,[2,979]),o($VL1,[2,980]),o($VL1,[2,981]),o($VL1,[2,982]),o($VL1,[2,983]),o($VL1,[2,984]),o($VL1,[2,985]),o($VL1,[2,986]),o($VL1,[2,987]),o($VL1,[2,988]),o($VL1,[2,989]),o($VL1,[2,990]),o($VL1,[2,991]),o($VL1,[2,992]),o($VL1,[2,993]),o($VL1,[2,994]),o($VL1,[2,995]),o($VL1,[2,996]),o($VL1,[2,997]),o($VL1,[2,998]),o($VL1,[2,999]),o($VL1,[2,1000]),o($VL1,[2,1001]),o($VL1,[2,1002]),o($VL1,[2,1003]),o($VL1,[2,1004]),o($VL1,[2,1005]),o($VL1,[2,1006]),o($VL1,[2,1007]),o($VL1,[2,1008]),o($VL1,[2,1009]),o($VL1,[2,1010]),o($VL1,[2,1011]),o($VL1,[2,1012]),o($VL1,[2,1013]),o($VL1,[2,1014]),o($VL1,[2,1015]),o($VL1,[2,1016]),o($VL1,[2,1017]),o($VL1,[2,1018]),o($VL1,[2,1019]),o($VL1,[2,1020]),o($VL1,[2,1021]),o($VL1,[2,1022]),o($VL1,[2,1023]),o($VL1,[2,1024]),o($VL1,[2,1025]),o($VL1,[2,1026]),o($VL1,[2,1027]),o($VL1,[2,1028]),o($VL1,[2,1029]),o($VL1,[2,1030]),o($VL1,[2,1031]),o($VL1,[2,1032]),o($VL1,[2,1033]),o($VL1,[2,1034]),o($VL1,[2,1035]),o($VL1,[2,1036]),o($VL1,[2,1037]),o($VL1,[2,1038]),o($VL1,[2,1039]),o($VL1,[2,1040]),o($VJ,[2,7]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:821,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:$V1,3:826,4:$V2,5:$V3},o($VE3,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:832,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:833,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:834,4:$V2,5:$V3,132:[1,835]},{2:$V1,3:836,4:$V2,5:$V3,132:[1,837]},{2:$V1,3:838,4:$V2,5:$V3,99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:839,4:$V2,5:$V3},{154:[1,840]},o($VH3,$VP1,{350:841,156:$VQ1}),{230:[1,842]},{2:$V1,3:843,4:$V2,5:$V3},o($VK,[2,729],{74:$VI3}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:845,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD3,[2,732]),o($VJ3,[2,1143],{419:190,476:846,144:847,139:$VK3,141:$VK3,145:$VC1,420:$Vr1,424:$Vs1}),{139:[1,848],141:[1,849]},o($VL3,$VM3,{490:851,493:852,77:[1,850],137:$VS1}),o($VN3,[2,1167],{494:853,132:[1,854]}),o($VO3,[2,1171],{496:855,497:856,152:$VT1}),o($VO3,[2,747]),o($VP3,[2,739]),{2:$V1,3:857,4:$V2,5:$V3,131:[1,858]},{2:$V1,3:859,4:$V2,5:$V3},{2:$V1,3:860,4:$V2,5:$V3},o($Vt1,$VP1,{350:861,156:$VQ1}),o($Vt1,$VP1,{350:862,156:$VQ1}),o($VY1,[2,491]),o($VY1,[2,492]),{183:[1,863]},{183:[2,1142]},o($VQ3,[2,1137],{466:864,469:865,137:[1,866]}),o($VU1,[2,1136]),o($VR3,$VS3,{510:867,95:$VT3,230:[1,868],514:$VU3,515:$VV3,516:$VW3}),{76:[1,873]},{76:[1,874]},{145:$VT,450:875},{4:$VX3,7:879,76:[1,877],272:876,387:878,389:$VY3},o($VK,[2,456],{128:[1,882]}),o($VK,[2,579]),{2:$V1,3:883,4:$V2,5:$V3},{298:[1,884]},o($VH3,$VW1,{398:885,156:$VX1}),o($VK,[2,593]),{2:$V1,3:244,4:$V2,5:$V3,199:887,399:886},{2:$V1,3:244,4:$V2,5:$V3,199:887,399:888},o($VK,[2,772]),o($VJ,[2,669],{438:889,310:[1,890]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:891,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:892,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:893,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:894,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:895,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:896,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:897,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:898,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:899,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:900,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:901,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:902,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:903,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:904,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:905,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:906,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:907,4:$V2,5:$V3,77:[1,909],131:$VV,156:$VL,196:908,200:910,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:911,4:$V2,5:$V3,77:[1,913],131:$VV,156:$VL,196:912,200:914,290:$VM,291:$VN,292:$VO,293:$VP},o($VZ3,[2,440],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:915,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,441],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:916,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,442],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:917,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,443],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:918,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:919,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:920,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:921,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,[2,445],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:922,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:923,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:924,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:929,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:930,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:[1,931],111:934,145:$V$3,156:$VL,200:935,202:933,290:$VM,291:$VN,292:$VO,293:$VP,329:932},{99:[1,937],297:[1,938]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:939,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:940,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:941,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:942,387:878,389:$VY3},o($V04,[2,88]),o($V04,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vt1,$Vu1,{340:207,77:$VO1,198:$Vv1}),{78:[2,1107]},{78:[2,1108]},{134:$VR,135:$VS},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:947,152:$V$,154:$V01,156:$VL,158:167,164:[1,949],179:$V11,180:$V21,181:$V31,185:[1,948],196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:950,4:$V2,5:$V3,149:$V14,180:[1,952]},o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,416],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($V24,[2,417],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,418],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V34,[2,419],{114:625,327:637,316:$Vj2}),o($V34,[2,420],{114:625,327:637,316:$Vj2}),o($Vz2,[2,365]),o($Vz2,[2,1113]),o($Vz2,[2,1114]),o($Vz2,[2,366]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,362]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:953,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,620]),o($VD2,[2,621]),o($VD2,[2,622]),o($VD2,[2,623]),o($VD2,[2,625]),{40:954,79:75,89:$V7,184:99,189:$Vb},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,304:955,307:677,308:$VC2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{305:956,306:$V44,307:957,308:$VC2,310:$V54},o($V64,[2,372]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:959,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:960,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:961,387:878,389:$VY3},o($VD2,[2,626]),{74:[1,963],300:[1,962]},o($VD2,[2,642]),o($V74,[2,649]),o($V84,[2,627]),o($V84,[2,628]),o($V84,[2,629]),o($V84,[2,630]),o($V84,[2,631]),o($V84,[2,632]),o($V84,[2,633]),o($V84,[2,634]),o($V84,[2,635]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:964,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:$V94}),{74:$Vx3,300:[1,966]},o($Va4,[2,314],{77:$VN1}),o($VB1,[2,315]),{74:[1,968],426:[1,967]},o($VD2,[2,639]),o($Vb4,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:972,342:973,343:[1,974],344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:981,198:$Vv1}),{77:$Ve4,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,201:980,302:$Vn1,341:982,342:983,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{230:[1,986],455:985},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:987,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{231:[2,696]},{78:[1,988]},o($VI2,[2,1093],{211:989,3:990,2:$V1,4:$V2,5:$V3}),o($VH2,[2,1092]),o($VI2,[2,183]),{2:$V1,3:991,4:$V2,5:$V3},{212:[1,992]},o($VI2,[2,187]),{2:$V1,3:993,4:$V2,5:$V3},o($VI2,[2,191]),{2:$V1,3:994,4:$V2,5:$V3},o($VI2,[2,195]),{2:$V1,3:995,4:$V2,5:$V3},o($VI2,[2,198]),{2:$V1,3:996,4:$V2,5:$V3},{2:$V1,3:997,4:$V2,5:$V3},{148:[1,998]},o($Vf4,[2,172],{82:999,183:[1,1000]}),{2:$V1,3:219,4:$V2,5:$V3,132:[1,1005],143:$VY,145:[1,1006],152:$V$,156:$VL,181:$V31,199:1001,200:1002,201:1003,202:1004,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1},{2:$V1,3:1011,4:$V2,5:$V3,109:1007,110:1008,111:1009,112:$Vg4},o($VO2,[2,1058]),o($Vh4,[2,1049],{91:1012,182:1013,183:[1,1014]}),o($VA1,[2,1048],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,90],{77:[1,1019]}),{119:[1,1020]},o($Vl4,[2,93]),{2:$V1,3:1021,4:$V2,5:$V3},o($Vl4,[2,95]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1022,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1023,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1025,118:$VT2,122:$VU2,123:$VV2,124:$VW2,125:1024,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},o($Vl4,[2,104]),o($Vl4,[2,105]),o($Vl4,[2,106]),o($Vl4,[2,107]),o($Vl4,[2,108]),o($Vl4,[2,109]),{2:$V1,3:1030,4:$V2,5:$V3},{2:$V1,3:1031,4:$V2,5:$V3,133:[1,1032]},o($Vl4,[2,113]),o($Vl4,[2,114]),o($Vl4,[2,115]),o($Vl4,[2,116]),o($Vl4,[2,117]),o($Vl4,[2,118]),{2:$V1,3:1033,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},o($Vl4,[2,123]),{77:[1,1037]},{2:$V1,3:1038,4:$V2,5:$V3},{77:[1,1039]},{77:[1,1040]},{77:[1,1041]},{77:[1,1042]},{77:[1,1043],164:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047]},{77:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[2,1073]},{77:[2,1074]},{2:$V1,3:244,4:$V2,5:$V3,199:1054},{2:$V1,3:244,4:$V2,5:$V3,199:1055},{113:1056,132:$VW,296:$Vj1},o($VK,[2,596],{112:[1,1057]}),{2:$V1,3:244,4:$V2,5:$V3,199:1058},{113:1059,132:$VW,296:$Vj1},{2:$V1,3:1060,4:$V2,5:$V3},o($VK,[2,693]),o($VK,[2,68]),{2:$V1,3:236,4:$V2,5:$V3,75:1061},{77:[1,1062]},o($VK,[2,674]),o($VK,[2,586]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1063,336:1064,337:1066},{144:1069,145:$VC1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,671]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1070,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:1071,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{113:1072,132:$VW,296:$Vj1},{2:$V1,3:266,4:$V2,5:$V3,446:1073,447:$VE1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1075,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,230:$VA3,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1,429:1074,433:$VB3},o($VK,[2,651]),{114:1077,115:$V$1,116:$V02,124:[1,1076]},o($VK,[2,663]),o($VK,[2,664]),{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1078},{114:807,115:$V$1,116:$V02,124:[1,1082],430:1083},o($VK,[2,753],{74:$VC3}),{2:$V1,3:100,4:$V2,5:$V3,504:1084},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1085,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1086,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1087,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VF3,[2,151]),o($VF3,[2,1088],{74:$Vq4}),o($Vr4,[2,273]),o($Vr4,[2,280],{114:625,327:637,3:1090,113:1092,2:$V1,4:$V2,5:$V3,76:[1,1089],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,131:[1,1091],132:$VW,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,296:$Vj1,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VH1,[2,1089],{197:1093,765:[1,1094]}),{131:$VV,196:1095},{74:$VC3,78:[1,1096]},o($VJ,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},o($VK,[2,575],{76:[1,1103],77:[1,1102]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1104,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vz2,[2,346]),o($VE3,[2,1112]),o($VE3,[2,1109]),o($VE3,[2,1110]),{74:$Vx3,78:[1,1105]},{74:$Vx3,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},o($Vz2,[2,353]),o($VK,[2,580]),{298:[1,1111]},{2:$V1,3:1112,4:$V2,5:$V3,113:1113,132:$VW,296:$Vj1},{2:$V1,3:244,4:$V2,5:$V3,199:1114},{230:[1,1115]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},o($VK,[2,730],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD3,[2,1145],{477:1117,483:1118,76:$Vs4}),o($VJ3,[2,1144]),{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,144:1121,145:$VC1,152:$VT1,419:190,420:$Vr1,424:$Vs1,475:1120,493:579,497:581},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},o($VN3,[2,1163],{491:1126,132:[1,1127]}),o($VL3,[2,1162]),o($VO3,[2,1169],{495:1128,497:1129,152:$VT1}),o($VN3,[2,1168]),o($VO3,[2,746]),o($VO3,[2,1172]),o($VL3,[2,749]),o($VL3,[2,750]),o($VO3,[2,748]),o($VP3,[2,740]),{2:$V1,3:244,4:$V2,5:$V3,199:1130},{2:$V1,3:244,4:$V2,5:$V3,199:1131},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1132,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt4,[2,1139],{467:1133,113:1134,132:$VW,296:$Vj1}),o($VQ3,[2,1138]),{2:$V1,3:1135,4:$V2,5:$V3},{335:$Vu4,338:$Vv4,339:$Vw4,511:1136},{2:$V1,3:244,4:$V2,5:$V3,199:1140},o($VR3,[2,765]),o($VR3,[2,766]),o($VR3,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},o($VV1,[2,688]),o($VV1,[2,689],{124:[1,1144]}),{4:$VX3,7:879,272:1145,387:878,389:$VY3},o([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,542],{5:[1,1146]}),o([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,539],{4:[1,1148],77:[1,1147]}),{77:[1,1149]},o($Vx4,[2,4]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1150,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,588]),o($VH3,[2,568]),{2:$V1,3:1151,4:$V2,5:$V3,113:1152,132:$VW,296:$Vj1},o($VK,[2,564],{74:$Vy4}),o($VV1,[2,566]),o($VK,[2,613],{74:$Vy4}),o($VK,[2,668]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1154,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($Vz4,[2,376],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($V34,[2,377],{114:625,327:637,316:$Vj2}),o($Vz4,[2,378],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,379],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1155],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,381],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1156],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,383],{114:625,327:637}),o($V24,[2,384],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,385],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($VB4,[2,386],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,387],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,388],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,389],{114:625,327:637,115:$V$1,116:$V02,136:$V42,312:$Vg2,316:$Vj2}),o($VC4,[2,390],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,391],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,392],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,393],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($Va4,[2,394],{77:$VN1}),o($VB1,[2,395]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1157,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,397]),o($Va4,[2,398],{77:$VN1}),o($VB1,[2,399]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1158,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,401]),o($VD4,[2,402],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,403],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,404],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,405],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,266,267,290,306,310,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,407],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,408],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,409],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,410],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,411],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},o($VF4,[2,414],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,415],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2}),{2:$V1,3:168,4:$V2,5:$V3,40:1160,56:165,77:$VU,78:[1,1162],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1161,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,428]),o($VB1,[2,430]),o($VB1,[2,437]),o($VB1,[2,438]),{2:$V1,3:667,4:$V2,5:$V3,77:[1,1163]},{2:$V1,3:695,4:$V2,5:$V3,77:[1,1164],111:934,145:$V$3,156:$VL,200:935,202:1166,290:$VM,291:$VN,292:$VO,293:$VP,329:1165},o($VB1,[2,435]),o($VF4,[2,432],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($VF4,[2,433],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,434],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,436]),o($VB1,[2,306]),o($VB1,[2,307]),o($VB1,[2,308]),o($VB1,[2,421]),{74:$Vx3,78:[1,1167]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1168,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1169,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,$VG4),o($VH4,[2,286]),o($VB1,[2,282]),{78:[1,1171],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1172]},{305:1173,306:$V44,307:957,308:$VC2,310:$V54},{306:[1,1174]},o($V64,[2,371]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1175,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1176],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{76:[1,1177],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1178]},o($VD2,[2,640]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,1179],302:$Vn1,419:190,420:$Vr1,422:1180,423:686,424:$Vs1},{78:[1,1181],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1182,4:$V2,5:$V3,149:$V14},o($VB1,[2,364]),o($VD2,[2,637]),{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,426:[1,1183],428:1184},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1185,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1186,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1187,423:686,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1188,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,458],{74:$VJ4}),{149:$Vc4,341:1190,344:$Vd4},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,100:1191,111:1193,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,466]),o($VK4,[2,469]),o($VK4,[2,470]),o($VL4,[2,474]),o($VL4,[2,475]),{2:$V1,3:244,4:$V2,5:$V3,199:1195},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1196,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,462],{74:$VJ4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},{308:$VM4,456:1197,458:1198,459:1199},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1201,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{230:[2,697]},o($VI2,[2,181],{3:1202,2:$V1,4:$V2,5:$V3,76:[1,1203]}),o($VI2,[2,182]),o($VI2,[2,1094]),o($VI2,[2,184]),o($VI2,[2,186]),o($VI2,[2,188]),o($VI2,[2,192]),o($VI2,[2,196]),o($VI2,[2,199]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],[2,201]),{2:$V1,3:1204,4:$V2,5:$V3},o($VN4,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1210],132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,203:1209,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VL2,[2,164]),o($VL2,[2,165]),o($VL2,[2,166]),o($VL2,[2,167]),o($VL2,[2,168]),{2:$V1,3:667,4:$V2,5:$V3},o($Vz1,[2,83],{74:[1,1212]}),o($VO4,[2,85]),o($VO4,[2,86]),{113:1213,132:$VW,296:$Vj1},o([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vy2,{116:$V94}),o($Vh4,[2,73]),o($Vh4,[2,1050]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1214,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,126]),o($Vl4,[2,144]),o($Vl4,[2,145]),o($Vl4,[2,146]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1065],94:260,111:149,113:153,127:1215,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1216,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1217]},o($Vl4,[2,94]),o([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,96],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,97],{114:625,327:637,99:$VZ1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1218],112:$VS2,114:736,115:$V$1,116:$V02,117:1219,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1061],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1221,118:$VT2,122:$VU2,123:$VV2,124:$VW2,126:1220,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1222,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1223,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1224,4:$V2,5:$V3},o($Vl4,[2,110]),o($Vl4,[2,111]),o($Vl4,[2,112]),o($Vl4,[2,119]),{2:$V1,3:1225,4:$V2,5:$V3},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1226,336:1064,337:1066},{2:$V1,3:1227,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1228,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,125]),o($VP4,[2,1067],{155:1229}),o($VP4,[2,1069],{157:1230}),o($VP4,[2,1071],{159:1231}),o($VP4,[2,1075],{161:1232}),o($VQ4,$VR4,{163:1233,178:1234}),{77:[1,1235]},o($VP4,[2,1077],{165:1236}),o($VP4,[2,1079],{167:1237}),o($VQ4,$VR4,{178:1234,163:1238}),o($VQ4,$VR4,{178:1234,163:1239}),o($VQ4,$VR4,{178:1234,163:1240}),o($VQ4,$VR4,{178:1234,163:1241}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1242,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1243,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1081],{176:1244}),o($VK,[2,606],{183:[1,1245]}),o($VK,[2,602],{183:[1,1246]}),o($VK,[2,595]),{113:1247,132:$VW,296:$Vj1},o($VK,[2,604],{183:[1,1248]}),o($VK,[2,599]),o($VK,[2,600],{112:[1,1249]}),o($Vv3,[2,69]),{40:1250,79:75,89:$V7,184:99,189:$Vb},o($VK,[2,450],{74:$VT4,128:[1,1251]}),o($VU4,[2,451]),{124:[1,1253]},{2:$V1,3:1254,4:$V2,5:$V3},o($Vt1,[2,1115]),o($Vt1,[2,1116]),o($VK,[2,618]),o($Vy3,[2,355],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD4,$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VV1,[2,682]),o($VV1,[2,684]),o($VK,[2,650]),o($VK,[2,652],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1255,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1256},o($VV4,[2,659]),o($VV4,[2,660]),o($VV4,[2,661]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1258,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{114:1077,115:$V$1,116:$V02,124:[1,1259]},o($VD3,[2,755]),o($VF3,[2,148],{74:$Vq4}),o($VF3,[2,149],{74:$Vq4}),o($VF3,[2,150],{74:$Vq4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:1260,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1261,4:$V2,5:$V3,113:1263,131:[1,1262],132:$VW,296:$Vj1},o($Vr4,[2,275]),o($Vr4,[2,277]),o($Vr4,[2,279]),o($VH1,[2,160]),o($VH1,[2,1090]),{78:[1,1264]},o($VK1,[2,758]),{2:$V1,3:1265,4:$V2,5:$V3},{2:$V1,3:1266,4:$V2,5:$V3},{2:$V1,3:1268,4:$V2,5:$V3,384:1267},{2:$V1,3:1268,4:$V2,5:$V3,384:1269},{2:$V1,3:1270,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1271,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1272,4:$V2,5:$V3},{74:$Vx3,78:[1,1273]},o($Vz2,[2,347]),o($Vz2,[2,348]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1274,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1275,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1277,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH3,[2,504]),o($VK,$VW4,{407:1278,76:$VX4,77:[1,1279]}),o($VK,$VW4,{407:1281,76:$VX4}),{77:[1,1282]},{2:$V1,3:244,4:$V2,5:$V3,199:1283},o($VD3,[2,731]),o($VD3,[2,733]),o($VD3,[2,1146]),{143:$VF1,145:$VG1,431:1284},o($VY4,[2,1147],{419:190,479:1285,144:1286,145:$VC1,420:$Vr1,424:$Vs1}),{76:$Vs4,139:[2,1151],481:1287,483:1288},o([10,74,76,78,132,139,145,152,306,310,420,424,602,764],$VM3,{490:851,493:852,137:$VS1}),o($VD3,[2,736]),o($VD3,$VK3),{74:$VI3,78:[1,1289]},o($VO3,[2,1165],{492:1290,497:1291,152:$VT1}),o($VN3,[2,1164]),o($VO3,[2,745]),o($VO3,[2,1170]),o($VK,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,148:[1,1295],154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI4,$VZ4,{79:75,184:99,468:1296,40:1299,89:$V7,146:$V_4,189:$Vb,470:$V$4}),o($Vt4,[2,1140]),o($VQ3,[2,723]),{230:[1,1300]},o($V05,[2,769]),o($V05,[2,770]),o($V05,[2,771]),o($VR3,$VS3,{510:1301,95:$VT3,514:$VU3,515:$VV3,516:$VW3}),o($VR3,[2,768]),o($VK,[2,312]),o($VK,[2,313]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1302,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV1,[2,690],{124:[1,1303]}),o($Vx4,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},o($Vx4,[2,5]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1307,419:190,420:$Vr1,424:$Vs1},o($VK,[2,455],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,589]),o($VK,[2,590]),{2:$V1,3:244,4:$V2,5:$V3,199:1308},o($VK,[2,670]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1309,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1310,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1311],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1312],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,40:1313,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1314,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1315]},{74:$Vx3,78:[1,1316]},o($VB1,[2,426]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1317,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,40:1318,56:165,77:$VU,78:[1,1320],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1319,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,429]),o($VB1,[2,431]),o($VB1,$V15,{275:1321,276:$V25}),{78:[1,1323],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1324],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3,180:[1,1326]},o($VD2,[2,619]),o($VB1,[2,363]),{306:[1,1327]},o($VB1,[2,370]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,306:[2,374],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1328,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:1329,387:878,389:$VY3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1330,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,641]),o($V74,[2,648]),o($V84,[2,636]),o($VH4,$VG4),o($VD2,[2,638]),o($Vb4,[2,643]),o($Vb4,[2,645]),o($Vb4,[2,646]),o($Vb4,[2,647]),o($VI4,[2,457],{74:$VJ4}),{77:[1,1332],143:$VY,144:1333,145:$VC1,152:$V$,181:$V31,201:1334,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,463]),{74:$V35,78:[1,1335]},{74:$V45,78:[1,1337]},o([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,311,312,313,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333],$V55),o($V65,[2,479],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{40:1341,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1339,342:1340,344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,461],{74:$VJ4}),o($VK,[2,717],{457:1342,458:1343,459:1344,308:$VM4,464:[1,1345]}),o($V75,[2,701]),o($V75,[2,702]),{154:[1,1347],460:[1,1346]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,308:[2,698],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI2,[2,179]),{2:$V1,3:1348,4:$V2,5:$V3},o($VK,[2,574]),o($V85,[2,238],{84:1349,128:[1,1350]}),o($VN4,[2,1046]),{77:[1,1351]},{77:[1,1352]},o($Vf4,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:$V95,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,40:711,77:$Vw1,79:75,89:$V7,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,184:99,189:$Vb,199:213,200:215,201:214,202:217,203:1369,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vk5,[2,177]),{2:$V1,3:1011,4:$V2,5:$V3,110:1370,111:1009,112:$Vg4},o($VO4,[2,87]),o($Vh4,[2,147],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[1,1371]},{74:$Vx3,78:[2,1066]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,242:[1,1375],254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,98]),o($VP4,[2,1062],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1377],112:$VS2,114:736,115:$V$1,116:$V02,117:1378,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1063],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{78:[1,1379],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1380],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1381]},o($Vl4,[2,120]),{74:$VT4,78:[1,1382]},o($Vl4,[2,122]),{74:$Vx3,78:[1,1383]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1384],112:$VS2,114:736,115:$V$1,116:$V02,117:1385,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1386],112:$VS2,114:736,115:$V$1,116:$V02,117:1387,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1388],112:$VS2,114:736,115:$V$1,116:$V02,117:1389,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1390],112:$VS2,114:736,115:$V$1,116:$V02,117:1391,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1392]},o($V65,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($VQ4,$VR4,{178:1234,163:1395}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1396],112:$VS2,114:736,115:$V$1,116:$V02,117:1397,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1398],112:$VS2,114:736,115:$V$1,116:$V02,117:1399,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1400]},{74:$Vl5,78:[1,1401]},{74:$Vl5,78:[1,1402]},{74:$Vl5,78:[1,1403]},{78:[1,1404],153:1015,179:$Vi4,180:$Vj4,181:$Vk4},{74:$Vq4,78:[1,1405]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,74:[1,1406],76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1407,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1408,4:$V2,5:$V3},{2:$V1,3:1409,4:$V2,5:$V3},o($VK,[2,597]),{2:$V1,3:1410,4:$V2,5:$V3},{113:1411,132:$VW,296:$Vj1},{78:[1,1412]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1413,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,336:1414,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1415,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{124:[1,1416]},o($VK,[2,653],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VV4,[2,658]),{78:[1,1417],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,654],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1418,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vr4,[2,272]),o($Vr4,[2,274]),o($Vr4,[2,276]),o($Vr4,[2,278]),o($VH1,[2,161]),o($VK,[2,569]),{148:[1,1419]},o($VK,[2,570]),o($VD3,[2,536],{387:878,7:879,272:1420,4:$VX3,386:[1,1421],389:$VY3}),o($VK,[2,571]),o($VK,[2,573]),{74:$Vx3,78:[1,1422]},o($VK,[2,577]),o($Vz2,[2,345]),{74:[1,1423],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1424],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1425],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1426],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,581]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1427,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1428,4:$V2,5:$V3},o($VK,[2,583]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1429,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1430]},{2:$V1,3:1431,4:$V2,5:$V3},{76:$Vs4,139:[2,1149],480:1432,483:1433},o($VY4,[2,1148]),{139:[1,1434]},{139:[2,1152]},o($VD3,[2,737]),o($VO3,[2,744]),o($VO3,[2,1166]),{2:$V1,3:1268,4:$V2,5:$V3,76:[1,1437],351:1435,358:1436,384:1438},{2:$V1,3:1011,4:$V2,5:$V3,100:1439,111:1440},{40:1441,79:75,89:$V7,184:99,189:$Vb},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1442,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,722]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1443,336:1064,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1444,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,727]),{2:$V1,3:244,4:$V2,5:$V3,199:1445},{335:$Vu4,338:$Vv4,339:$Vw4,511:1446},o($VV1,[2,691],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1447,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:[1,1448],78:[1,1449]},o($V65,[2,543]),o($V65,[2,544]),{74:$V45,78:[1,1450]},o($VV1,[2,565]),o($Vz4,[2,380],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($Vz4,[2,382],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,396]),o($VB1,[2,400]),{78:[1,1451]},{74:$Vx3,78:[1,1452]},o($VB1,[2,422]),o($VB1,[2,424]),{78:[1,1453],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1454]},{74:$Vx3,78:[1,1455]},o($VB1,[2,427]),o($VB1,[2,327]),{77:[1,1456]},o($VB1,$V15,{275:1457,276:$V25}),o($VB1,$V15,{275:1458,276:$V25}),o($VH4,[2,284]),o($VB1,[2,281]),o($VB1,[2,369]),o($V64,[2,373],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1463,419:190,420:$Vr1,424:$Vs1},o($VL4,[2,477]),o($VL4,[2,478]),{40:1466,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1464,342:1465,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1467},o($VL4,[2,473]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1468,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1469,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,460],{74:$VJ4}),o($VI4,[2,467]),o($VK,[2,694]),o($V75,[2,699]),o($V75,[2,700]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1470,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{170:[1,1472],309:[1,1471]},{460:[1,1473]},o($VI2,[2,180]),o($Vm5,[2,240],{85:1474,232:[1,1475]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1476,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1477,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1478,4:$V2,5:$V3},o($Vf4,[2,170],{216:1357,221:1360,215:1479,205:1480,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:1481,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vn5,[2,205]),o($Vn5,[2,206]),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1486],143:$VY,144:1484,145:$VZ,152:$V$,156:$VL,181:$V31,199:1483,200:1487,201:1485,202:1488,217:1482,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{207:[1,1489],223:$Vo5},{207:[1,1491],223:$Vp5},o($Vq5,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vq5,[2,224]),{223:[1,1496]},{208:[1,1498],223:[1,1497]},{208:[1,1500],223:[1,1499]},{208:[1,1501]},{223:[1,1502]},{223:[1,1503]},{74:$V95,204:1504,205:1356,206:$Va5,208:$Vb5,215:1355,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($VO4,[2,84]),o($Vl4,[2,100]),{74:$Vr5,78:[1,1505]},{78:[1,1507]},o($Vs5,[2,261]),{78:[2,1060]},o($Vs5,[2,263],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,242:[1,1508],243:[1,1509],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vl4,[2,99]),o($VP4,[2,1064],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,101]),o($Vl4,[2,102]),o($Vl4,[2,103]),o($Vl4,[2,121]),o($Vl4,[2,124]),o($Vl4,[2,127]),o($VP4,[2,1068],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,128]),o($VP4,[2,1070],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,129]),o($VP4,[2,1072],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,130]),o($VP4,[2,1076],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,131]),o($VQ4,[2,1083],{177:1510}),o($VQ4,[2,1086],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{74:$Vl5,78:[1,1511]},o($Vl4,[2,133]),o($VP4,[2,1078],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,134]),o($VP4,[2,1080],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,135]),o($Vl4,[2,136]),o($Vl4,[2,137]),o($Vl4,[2,138]),o($Vl4,[2,139]),o($Vl4,[2,140]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1512,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1082],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($VK,[2,607]),o($VK,[2,603]),o($VK,[2,605]),o($VK,[2,601]),o($Vv3,[2,71]),o($VK,[2,449],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VU4,[2,452]),o($VU4,[2,453],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1513,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV4,[2,662]),o($VK,[2,655],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:1514,4:$V2,5:$V3},o($VD3,[2,545],{385:1515,391:1516,392:1517,366:1525,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($VD3,[2,535]),o($VK,[2,576],{76:[1,1529]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1530,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1531,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1532,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1533,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$Vx3,78:[1,1534]},o($VK,[2,585]),{74:$Vr5,78:[1,1535]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1536,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1538,482:582,493:579,497:581},{78:[1,1539]},{74:[1,1540],78:[2,506]},{40:1541,79:75,89:$V7,184:99,189:$Vb},o($V65,[2,532]),{74:$V35,78:[1,1542]},o($Vk5,$V55),o($VK,[2,1133],{412:1543,413:1544,72:$VD5}),o($VI4,$VZ4,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V_4,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,470:$V$4}),o($VI4,[2,725],{74:$VT4}),o($VI4,[2,726],{74:$Vx3}),o([10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],[2,1181],{512:1547,3:1548,2:$V1,4:$V2,5:$V3,76:[1,1549]}),o($VE5,[2,1183],{513:1550,76:[1,1551]}),o($VV1,[2,692],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{131:[1,1552]},o($Vx4,[2,538]),o($Vx4,[2,540]),o($VB1,[2,412]),o($VB1,[2,413]),o($VB1,[2,439]),o($VB1,[2,423]),o($VB1,[2,425]),{118:$VF5,277:1553,278:1554,279:[1,1555]},o($VB1,[2,328]),o($VB1,[2,329]),o($VB1,[2,316]),{131:[1,1557]},o($VB1,[2,318]),{131:[1,1558]},{74:$V45,78:[1,1559]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1560,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,465],{74:$VJ4}),o($VI4,[2,468]),o($Vk5,[2,488]),o($V65,[2,480],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VI4,[2,459],{74:$VJ4}),o($VK,[2,718],{74:$Vq4,198:[1,1561]}),{335:$VG5,338:$VH5,461:1562},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1565,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{119:[1,1567],170:[1,1568],309:[1,1566]},o($VI5,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},o($V85,[2,239],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{95:[1,1572],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{95:[1,1573]},o($Vn5,[2,203]),o($Vn5,[2,204]),o($Vk5,[2,178]),o($Vn5,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),o($VJ5,[2,208],{3:1577,2:$V1,4:$V2,5:$V3,76:[1,1578]}),o($VK5,[2,1095],{219:1579,76:[1,1580]}),{2:$V1,3:1581,4:$V2,5:$V3,76:[1,1582]},{40:1583,79:75,89:$V7,184:99,189:$Vb},o($VJ5,[2,216],{3:1584,2:$V1,4:$V2,5:$V3,76:[1,1585]}),o($VJ5,[2,219],{3:1586,2:$V1,4:$V2,5:$V3,76:[1,1587]}),{77:[1,1588]},o($Vq5,[2,234]),{77:[1,1589]},o($Vq5,[2,230]),o($Vq5,[2,223]),{223:$Vp5},{223:$Vo5},o($Vq5,[2,225]),o($Vq5,[2,226]),{223:[1,1590]},o($Vq5,[2,228]),{223:[1,1591]},{223:[1,1592]},o($Vq5,[2,232]),o($Vq5,[2,233]),{78:[1,1593],205:1480,206:$Va5,208:$Vb5,215:1479,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vl4,[2,91]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1594,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,92]),o($Vs5,[2,264]),{244:[1,1595]},o($V65,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($Vl4,[2,132]),{74:$Vx3,78:[1,1597]},o($VU4,[2,454],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,572]),o($VD3,[2,534]),o($VD3,[2,546],{366:1525,392:1598,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($Vw3,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:$V1,3:244,4:$V2,5:$V3,199:1601},o($Vw3,[2,554],{77:[1,1602]}),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1604],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:1605,201:254,257:252,258:253,265:$VD1,274:1603,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},o($Vw3,[2,558]),{297:[1,1606]},o($Vw3,[2,560]),o($Vw3,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:$V1,3:1609,4:$V2,5:$V3},{78:[1,1610],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1611],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1612],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1613],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,$VW4,{407:1614,76:$VX4}),o($VK,[2,591]),{74:$Vr5,78:[1,1615]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1616,482:582,493:579,497:581},o($VD3,[2,735]),o($VK,[2,493],{352:1617,354:1618,355:1619,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VP5,$VQ5,{3:1268,359:1624,384:1625,360:1626,361:1627,2:$V1,4:$V2,5:$V3,367:$VR5}),{78:[2,507]},{76:[1,1629]},o($VK,[2,609]),o($VK,[2,1134]),{368:[1,1631],414:[1,1630]},o($VI4,[2,728]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1632,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,762]),o($VE5,[2,1182]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1633,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VE5,[2,1184]),{78:[1,1634]},{78:[1,1635],118:$VF5,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},o($VL4,[2,476]),o($VI4,[2,464],{74:$VJ4}),{2:$V1,3:244,4:$V2,5:$V3,143:$VF1,145:$VG1,199:1643,431:1642},o($V75,[2,703]),o($V75,[2,705]),{146:[1,1644]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1645],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{339:$VS5,462:1646},{417:[1,1649],463:[1,1648]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1650,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VT5,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1655,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1661,4:$V2,5:$V3},{2:$V1,3:1662,4:$V2,5:$V3},o($Vn5,[2,207]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1663,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1664,111:1440},o($VJ5,[2,209]),{2:$V1,3:1665,4:$V2,5:$V3},o($VJ5,[2,1097],{220:1666,3:1667,2:$V1,4:$V2,5:$V3}),o($VK5,[2,1096]),o($VJ5,[2,212]),{2:$V1,3:1668,4:$V2,5:$V3},{78:[1,1669]},o($VJ5,[2,217]),{2:$V1,3:1670,4:$V2,5:$V3},o($VJ5,[2,220]),{2:$V1,3:1671,4:$V2,5:$V3},{40:1672,79:75,89:$V7,184:99,189:$Vb},{40:1673,79:75,89:$V7,184:99,189:$Vb},o($Vq5,[2,227]),o($Vq5,[2,229]),o($Vq5,[2,231]),o($Vf4,[2,171]),o($Vs5,[2,262]),o($Vs5,[2,265],{242:[1,1674]}),o($VQ4,[2,1084],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,141]),o($Vw3,[2,547]),o($Vw3,[2,550]),{374:[1,1675]},o($Vw3,[2,1127],{395:1676,393:1677,77:$VX5}),{131:$VV,196:1679},o($Vw3,[2,555]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1680,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vw3,[2,557]),o($Vw3,[2,559]),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1682],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:1681,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1683,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,578]),o($Vz2,[2,349]),o($Vz2,[2,350]),o($Vz2,[2,351]),o($Vz2,[2,352]),o($VK,[2,582]),o($VK,[2,592]),o($VD3,[2,734]),o($VK,[2,489]),o($VK,[2,494],{355:1684,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VY5,[2,496]),o($VY5,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},o($V65,[2,533]),o($V65,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:$Vz5,369:[1,1694],370:[1,1698],373:[1,1695]},{2:$V1,3:1699,4:$V2,5:$V3},{40:1700,79:75,89:$V7,184:99,189:$Vb},{415:[1,1701]},{416:[1,1702]},o($VK,[2,761]),o($VK,[2,763]),o($Vx4,[2,537]),o($VB1,[2,331]),{78:[1,1703]},o($VB1,[2,332]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1704,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1705,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,317]),o($VB1,[2,319]),{2:$V1,3:1706,4:$V2,5:$V3},o($VK,[2,720],{77:[1,1707]}),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1708,336:1064,337:1066},{335:$VG5,338:$VH5,461:1709},o($V75,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1717],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vh4,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:$VV,196:1722},{131:$VV,196:1723},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1724,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vm5,[2,248],{234:1725,74:$VZ5,239:[1,1727]}),o($V_5,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},o($V_5,[2,247],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},o($Vn5,[2,235],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vn5,[2,236],{74:$V35}),o($VJ5,[2,210]),o($VJ5,[2,211]),o($VJ5,[2,1098]),o($VJ5,[2,213]),{2:$V1,3:1735,4:$V2,5:$V3,76:[1,1736]},o($VJ5,[2,218]),o($VJ5,[2,221]),{78:[1,1737]},{78:[1,1738]},o($Vs5,[2,266]),{2:$V1,3:244,4:$V2,5:$V3,199:1739},o($Vw3,[2,552]),o($Vw3,[2,1128]),{2:$V1,3:1740,4:$V2,5:$V3},{74:[1,1741]},{78:[1,1742],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,562]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1743,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1744],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VY5,[2,495]),{2:$V1,3:1745,4:$V2,5:$V3},{131:$VV,196:1746},{2:$V1,3:1747,4:$V2,5:$V3},o($VP5,$VQ5,{361:1627,360:1748,367:$VR5}),o($VD3,[2,510]),o($VD3,[2,511]),o($VD3,[2,512]),o($VD3,[2,513]),o($VD3,[2,514]),{370:[1,1749]},{370:[1,1750]},o($V$5,[2,1121],{382:1751,370:[1,1752]}),{2:$V1,3:1753,4:$V2,5:$V3},{2:$V1,3:1754,4:$V2,5:$V3},o($VP5,[2,516]),o($VK,[2,1131],{411:1755,413:1756,72:$VD5}),o($VK,[2,610]),o($VK,[2,611],{367:[1,1757]}),o($VB1,[2,333]),o([78,118],[2,334],{74:$VZ5}),{74:$Vr5,78:[2,335]},o($VK,[2,719]),{2:$V1,3:1011,4:$V2,5:$V3,100:1758,111:1440},o($V75,[2,706],{74:$VT4}),o($V75,[2,704]),{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1759,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1760,111:1440},{344:[1,1761]},{339:$VS5,462:1762},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1763,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1764},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1765,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1766},o($Vh4,[2,72]),{40:1767,79:75,89:$V7,164:[1,1768],184:99,189:$Vb,240:[1,1769]},{40:1770,79:75,89:$V7,184:99,189:$Vb,240:[1,1771]},{40:1772,79:75,89:$V7,184:99,189:$Vb,240:[1,1773]},o($VT5,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},o($VI5,[2,260],{74:$Vr5}),o($Vm5,[2,241]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,235:1778,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1779,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1780]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1781,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1782,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},o($VJ5,[2,214]),{2:$V1,3:1786,4:$V2,5:$V3},{2:$V1,3:1787,4:$V2,5:$V3,76:[1,1788]},{2:$V1,3:1789,4:$V2,5:$V3,76:[1,1790]},o($Vw3,[2,1125],{394:1791,393:1792,77:$VX5}),{78:[1,1793]},{131:$VV,196:1794},o($Vw3,[2,556]),{78:[1,1795],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,517]),o($VY5,[2,498]),o($VY5,[2,499]),o($VY5,[2,500]),o($V65,[2,509]),{2:$V1,3:1797,4:$V2,5:$V3,77:[2,1117],371:1796},{77:[1,1798]},{2:$V1,3:1800,4:$V2,5:$V3,77:[2,1123],383:1799},o($V$5,[2,1122]),{77:[1,1801]},{77:[1,1802]},o($VK,[2,608]),o($VK,[2,1132]),o($VP5,$VQ5,{361:1627,360:1803,367:$VR5}),{74:$V35,78:[1,1804]},o($V75,[2,713],{74:$VJ4}),{74:$V35,78:[1,1805]},o($V75,[2,715]),o($V75,[2,708]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1806],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,711]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1807],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,709]),o($Vh4,[2,251]),{40:1808,79:75,89:$V7,184:99,189:$Vb,240:[1,1809]},{40:1810,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,253]),{40:1811,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,254]),{40:1812,79:75,89:$V7,184:99,189:$Vb},o($VT5,[2,268]),{131:$VV,196:1813},{249:[1,1814]},{249:[2,1100]},o($V_5,[2,243]),o($Vm5,[2,249],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1815,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$VZ5,78:[1,1816]},{74:$VZ5,78:[1,1817]},o($VN4,[2,1053],{97:1818,104:1819,3:1821,2:$V1,4:$V2,5:$V3,76:$V06}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,103:1822,105:1823,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1825,111:1440},o($VJ5,[2,215]),o($Vn5,[2,173]),{2:$V1,3:1826,4:$V2,5:$V3},o($Vn5,[2,175]),{2:$V1,3:1827,4:$V2,5:$V3},o($Vw3,[2,551]),o($Vw3,[2,1126]),o($Vw3,[2,549]),{78:[1,1828]},o($Vw3,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1830},{77:[1,1833]},{77:[2,1124]},{2:$V1,3:1011,4:$V2,5:$V3,100:1834,111:1440},{2:$V1,3:1011,4:$V2,5:$V3,100:1835,111:1440},o($VK,[2,612]),o($VK,[2,721]),{343:[1,1837],344:[1,1836]},{339:$VS5,462:1838},{335:$VG5,338:$VH5,461:1839},o($Vh4,[2,252]),{40:1840,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,255]),o($Vh4,[2,257]),o($Vh4,[2,258]),o($VT5,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:$VZ5,78:[1,1843]},o($V_5,[2,245]),o($V_5,[2,246]),o($VN4,[2,74]),o($VN4,[2,1054]),{2:$V1,3:1844,4:$V2,5:$V3},o($VN4,[2,78]),{74:[1,1846],78:[1,1845]},o($V65,[2,80]),o($V65,[2,81],{114:625,327:637,76:[1,1847],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:$V35,78:[1,1848]},o($Vn5,[2,174]),o($Vn5,[2,176]),o($Vw3,[2,553]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1849},{74:$V26,78:[1,1850]},o($V65,[2,528]),o($V65,[2,529]),{2:$V1,3:1011,4:$V2,5:$V3,100:1852,111:1440},{74:$V35,78:[1,1853]},{74:$V35,78:[1,1854]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1855,419:190,420:$Vr1,424:$Vs1},{344:[1,1856]},o($V75,[2,710]),o($V75,[2,712]),o($Vh4,[2,256]),{131:$VV,196:1857},{131:[2,1102]},o($V_5,[2,244]),o($VN4,[2,77]),{78:[2,76]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,105:1858,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1859,4:$V2,5:$V3},{78:[1,1860]},{74:$V26,78:[1,1861]},{374:[1,1862]},{2:$V1,3:1863,4:$V2,5:$V3,132:[1,1864]},{74:$V35,78:[1,1865]},o($VD3,[2,526]),o($VD3,[2,527]),o($V75,[2,714],{74:$VJ4}),o($V75,[2,716]),o($V36,[2,1103],{251:1866,766:[1,1867]}),o($V65,[2,79]),o($V65,[2,82]),o($VN4,[2,1055],{3:1821,101:1868,104:1869,2:$V1,4:$V2,5:$V3,76:$V06}),o($VD3,[2,518]),{2:$V1,3:244,4:$V2,5:$V3,199:1870},o($V65,[2,530]),o($V65,[2,531]),o($VD3,[2,525]),o($VT5,[2,1105],{252:1871,415:[1,1872]}),o($V36,[2,1104]),o($VN4,[2,75]),o($VN4,[2,1056]),o($V46,[2,1119],{375:1873,377:1874,77:[1,1875]}),o($VT5,[2,269]),o($VT5,[2,1106]),o($VD3,[2,521],{376:1876,378:1877,230:[1,1878]}),o($V46,[2,1120]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1879},o($VD3,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:$V26,78:[1,1883]},o($VD3,[2,522]),{335:[1,1884]},{380:[1,1885]},o($V46,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},o($VD3,[2,524])], +defaultActions: {105:[2,6],194:[2,336],195:[2,337],196:[2,338],197:[2,339],198:[2,340],199:[2,341],200:[2,342],201:[2,343],202:[2,344],209:[2,695],591:[2,1142],653:[2,1107],654:[2,1108],710:[2,696],780:[2,1073],781:[2,1074],926:[2,446],927:[2,447],928:[2,448],987:[2,697],1288:[2,1152],1375:[2,1060],1433:[2,1150],1541:[2,507],1732:[2,1052],1777:[2,1100],1797:[2,1118],1800:[2,1124],1842:[2,1102],1845:[2,76],1887:[2,523]}, +parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } +}, +parse: function parse(input) { + var self = this, + stack = [0], + tstack = [], // token stack + vstack = [null], // semantic value stack + lstack = [], // location stack + table = this.table, + yytext = '', + yylineno = 0, + yyleng = 0, + recovering = 0, + TERROR = 2, + EOF = 1; + + var args = lstack.slice.call(arguments, 1); + + //this.reductionCount = this.shiftCount = 0; + + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + // copy state + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + + var ranges = lexer.options && lexer.options.ranges; + + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + + function popStack (n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + +_token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + // if token isn't its numeric value, convert + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + } + + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + // retreive state number from top of stack + state = stack[stack.length - 1]; + + // use default actions if available + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + // read action for current state and first input + action = table[state] && table[state][symbol]; + } + +_handle_error: + // handle parse error + if (typeof action === 'undefined' || !action.length || !action[0]) { + var error_rule_depth; + var errStr = ''; + + // Return the rule stack depth where the nearest error rule can be found. + // Return FALSE when no error recovery rule was found. + var locateNearestErrorRecoveryRule = function(state) { + var stack_probe = stack.length - 1; + var depth = 0; + + // try to recover from error + for(;;) { + // check for error recovery rule in this state + if ((TERROR.toString()) in table[state]) { + return depth; + } + if (state === 0 || stack_probe < 2) { + return false; // No suitable error recovery rule available. + } + stack_probe -= 2; // popStack(1): [symbol, action] + state = stack[stack_probe]; + ++depth; + } + } + + if (!recovering) { + // first see if there's any chance at hitting an error recovery rule: + error_rule_depth = locateNearestErrorRecoveryRule(state); + + // Report error + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'"+this.terminals_[p]+"'"); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; + } else { + errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + + (symbol == EOF ? "end of input" : + ("'"+(this.terminals_[symbol] || symbol)+"'")); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: yyloc, + expected: expected, + recoverable: (error_rule_depth !== false) + }); + } else if (preErrorSymbol !== EOF) { + error_rule_depth = locateNearestErrorRecoveryRule(state); + } + + // just recovered from another error + if (recovering == 3) { + if (symbol === EOF || preErrorSymbol === EOF) { + throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); + } + + // discard current lookahead and grab another + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + symbol = lex(); + } + + // try to recover from error + if (error_rule_depth === false) { + throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); + } + popStack(error_rule_depth); + + preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token + symbol = TERROR; // insert generic error symbol as new lookahead + state = stack[stack.length-1]; + action = table[state] && table[state][TERROR]; + recovering = 3; // allow 3 real symbols to be shifted before reporting a new error + } + + // this shouldn't happen, unless resolve defaults are off + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); + } + + switch (action[0]) { + case 1: // shift + //this.shiftCount++; + + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); // push state + symbol = null; + if (!preErrorSymbol) { // normal execution/no error + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + // error just occurred, resume old lookahead f/ before error + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + + case 2: + // reduce + //this.reductionCount++; + + len = this.productions_[action[1]][1]; + + // perform semantic action + yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 + // default location, uses first token for firsts, last for lasts + yyval._$ = { + first_line: lstack[lstack.length-(len||1)].first_line, + last_line: lstack[lstack.length-1].last_line, + first_column: lstack[lstack.length-(len||1)].first_column, + last_column: lstack[lstack.length-1].last_column + }; + if (ranges) { + yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; + } + r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); + + if (typeof r !== 'undefined') { + return r; + } + + // pop off stack + if (len) { + stack = stack.slice(0,-1*len*2); + vstack = vstack.slice(0, -1*len); + lstack = lstack.slice(0, -1*len); + } + + stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) + vstack.push(yyval.$); + lstack.push(yyval._$); + // goto new state = table[STATE][NONTERMINAL] + newState = table[stack[stack.length-2]][stack[stack.length-1]]; + stack.push(newState); + break; + + case 3: + // accept + return true; + } + + } + + return true; +}}; + +// from https://www.postgresql.org/docs/current/static/sql-keywords-appendix.html +// JSON.stringify([].slice.call(document.querySelectorAll('tr')).filter(x => x.children.length == 5 && x.children[2].innerText == 'reserved').map(x => x.children[0].innerText)) + +var nonReserved = ["A","ABSENT","ABSOLUTE","ACCORDING","ACTION","ADA","ADD","ADMIN","AFTER","ALWAYS","ASC","ASSERTION","ASSIGNMENT","ATTRIBUTE","ATTRIBUTES","BASE64","BEFORE","BERNOULLI","BLOCKED","BOM","BREADTH","C","CASCADE","CATALOG","CATALOG_NAME","CHAIN","CHARACTERISTICS","CHARACTERS","CHARACTER_SET_CATALOG","CHARACTER_SET_NAME","CHARACTER_SET_SCHEMA","CLASS_ORIGIN","COBOL","COLLATION","COLLATION_CATALOG","COLLATION_NAME","COLLATION_SCHEMA","COLUMNS","COLUMN_NAME","COMMAND_FUNCTION","COMMAND_FUNCTION_CODE","COMMITTED","CONDITION_NUMBER","CONNECTION","CONNECTION_NAME","CONSTRAINTS","CONSTRAINT_CATALOG","CONSTRAINT_NAME","CONSTRAINT_SCHEMA","CONSTRUCTOR","CONTENT","CONTINUE","CONTROL","CURSOR_NAME","DATA","DATETIME_INTERVAL_CODE","DATETIME_INTERVAL_PRECISION","DB","DEFAULTS","DEFERRABLE","DEFERRED","DEFINED","DEFINER","DEGREE","DEPTH","DERIVED","DESC","DESCRIPTOR","DIAGNOSTICS","DISPATCH","DOCUMENT","DOMAIN","DYNAMIC_FUNCTION","DYNAMIC_FUNCTION_CODE","EMPTY","ENCODING","ENFORCED","EXCLUDE","EXCLUDING","EXPRESSION","FILE","FINAL","FIRST","FLAG","FOLLOWING","FORTRAN","FOUND","FS","G","GENERAL","GENERATED","GO","GOTO","GRANTED","HEX","HIERARCHY","ID","IGNORE","IMMEDIATE","IMMEDIATELY","IMPLEMENTATION","INCLUDING","INCREMENT","INDENT","INITIALLY","INPUT","INSTANCE","INSTANTIABLE","INSTEAD","INTEGRITY","INVOKER","ISOLATION","K","KEY","KEY_MEMBER","KEY_TYPE","LAST","LENGTH","LEVEL","LIBRARY","LIMIT","LINK","LOCATION","LOCATOR","M","MAP","MAPPING","MATCHED","MAXVALUE","MESSAGE_LENGTH","MESSAGE_OCTET_LENGTH","MESSAGE_TEXT","MINVALUE","MORE","MUMPS","NAME","NAMES","NAMESPACE","NESTING","NEXT","NFC","NFD","NFKC","NFKD","NIL","NORMALIZED","NULLABLE","NULLS","NUMBER","OBJECT","OCTETS","OFF","OPTION","OPTIONS","ORDERING","ORDINALITY","OTHERS","OUTPUT","OVERRIDING","P","PAD","PARAMETER_MODE","PARAMETER_NAME","PARAMETER_ORDINAL_POSITION","PARAMETER_SPECIFIC_CATALOG","PARAMETER_SPECIFIC_NAME","PARAMETER_SPECIFIC_SCHEMA","PARTIAL","PASCAL","PASSING","PASSTHROUGH","PATH","PERMISSION","PLACING","PLI","PRECEDING","PRESERVE","PRIOR","PRIVILEGES","PUBLIC","READ","RECOVERY","RELATIVE","REPEATABLE","REQUIRING","RESPECT","RESTART","RESTORE","RESTRICT","RETURNED_CARDINALITY","RETURNED_LENGTH","RETURNED_OCTET_LENGTH","RETURNED_SQLSTATE","RETURNING","ROLE","ROUTINE","ROUTINE_CATALOG","ROUTINE_NAME","ROUTINE_SCHEMA","ROW_COUNT","SCALE","SCHEMA","SCHEMA_NAME","SCOPE_CATALOG","SCOPE_NAME","SCOPE_SCHEMA","SECTION","SECURITY","SELECTIVE","SELF","SEQUENCE","SERIALIZABLE","SERVER","SERVER_NAME","SESSION","SETS","SIMPLE","SIZE","SOURCE","SPACE","SPECIFIC_NAME","STANDALONE","STATE","STATEMENT","STRIP","STRUCTURE","STYLE","SUBCLASS_ORIGIN","T","TABLE_NAME","TEMPORARY","TIES","TOKEN","TOP_LEVEL_COUNT","TRANSACTION","TRANSACTIONS_COMMITTED","TRANSACTIONS_ROLLED_BACK","TRANSACTION_ACTIVE","TRANSFORM","TRANSFORMS","TRIGGER_CATALOG","TRIGGER_NAME","TRIGGER_SCHEMA","TYPE","UNBOUNDED","UNCOMMITTED","UNDER","UNLINK","UNNAMED","UNTYPED","URI","USAGE","USER_DEFINED_TYPE_CATALOG","USER_DEFINED_TYPE_CODE","USER_DEFINED_TYPE_NAME","USER_DEFINED_TYPE_SCHEMA","VALID","VERSION","VIEW","WHITESPACE","WORK","WRAPPER","WRITE","XMLDECLARATION","XMLSCHEMA","YES","ZONE"] + +parser.parseError = function(str, hash) { + if (hash.expected && hash.expected.indexOf("'LITERAL'") > -1 && /[a-zA-Z_][a-zA-Z_0-9]*/.test(hash.token) && nonReserved.indexOf(hash.token) > -1) { + return + } + throw new SyntaxError(str) +} +/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ + +EOF:1, + +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, + +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + + this._input = this._input.slice(1); + return ch; + }, + +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, + +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + + } + return this; + }, + +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, + +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, + +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, + +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function (match, indexed_rule) { + var token, + lines, + backup; + + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; + } + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, + +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. + } else { + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + +// return next match that has a token +lex:function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin(condition) { + this.conditionStack.push(condition); + }, + +// pop the previously active lexer condition state off the condition stack +popState:function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + +// alias for begin(condition) +pushState:function pushState(condition) { + this.begin(condition); + }, + +// return the number of states currently on the stack +stateStackSize:function stateStackSize() { + return this.conditionStack.length; + }, +options: {"case-insensitive":true}, +performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { +var YYSTATE=YY_START; +switch($avoiding_name_collisions) { +case 0:return 266 +break; +case 1:return 302 +break; +case 2:return 420 +break; +case 3:return 299 +break; +case 4:return 5 +break; +case 5:return 5 +break; +case 6:return 296 +break; +case 7:return 296 +break; +case 8:return 132 +break; +case 9:return 132 +break; +case 10:return /* its a COMMENT */ +break; +case 11:/* skip whitespace */ +break; +case 12:return 316 +break; +case 13:return 319 +break; +case 14:yy_.yytext = 'VALUE';return 89 +break; +case 15:yy_.yytext = 'VALUE';return 189 +break; +case 16:yy_.yytext = 'ROW';return 189 +break; +case 17:yy_.yytext = 'COLUMN';return 189 +break; +case 18:yy_.yytext = 'MATRIX';return 189 +break; +case 19:yy_.yytext = 'INDEX';return 189 +break; +case 20:yy_.yytext = 'RECORDSET';return 189 +break; +case 21:yy_.yytext = 'TEXT';return 189 +break; +case 22:yy_.yytext = 'SELECT';return 189 +break; +case 23:return 520 +break; +case 24:return 381 +break; +case 25:return 402 +break; +case 26:return 515 +break; +case 27:return 287 +break; +case 28:return 269 +break; +case 29:return 269 +break; +case 30:return 164 +break; +case 31:return 400 +break; +case 32:return 170 +break; +case 33:return 229 +break; +case 34:return 166 +break; +case 35:return 207 +break; +case 36:return 288 +break; +case 37:return 76 +break; +case 38:return 418 +break; +case 39:return 242 +break; +case 40:return 404 +break; +case 41:return 356 +break; +case 42:return 284 +break; +case 43:return 514 +break; +case 44:return 437 +break; +case 45:return 330 +break; +case 46:return 441 +break; +case 47:return 331 +break; +case 48:return 315 +break; +case 49:return 119 +break; +case 50:return 112 +break; +case 51:return 315 +break; +case 52:return 112 +break; +case 53:return 315 +break; +case 54:return 112 +break; +case 55:return 315 +break; +case 56:return 508 +break; +case 57:return 303 +break; +case 58:return 271 +break; +case 59:return 368 +break; +case 60:return 130 +break; +case 61:return 'CLOSE' +break; +case 62:return 243 +break; +case 63:return 190 +break; +case 64:return 190 +break; +case 65:return 434 +break; +case 66:return 367 +break; +case 67:return 470 +break; +case 68:return 440 +break; +case 69:return 273 +break; +case 70:return 240 +break; +case 71:return 281 +break; +case 72:return 267 +break; +case 73:return 206 +break; +case 74:return 238 +break; +case 75:return 265 +break; +case 76:return 'CURSOR' +break; +case 77:return 405 +break; +case 78:return 291 +break; +case 79:return 292 +break; +case 80:return 448 +break; +case 81:return 343 +break; +case 82:return 338 +break; +case 83:return 'DELETED' +break; +case 84:return 242 +break; +case 85:return 406 +break; +case 86:return 185 +break; +case 87:return 396 +break; +case 88:return 447 +break; +case 89:return 135 +break; +case 90:return 306 +break; +case 91:return 389 +break; +case 92:return 310 +break; +case 93:return 314 +break; +case 94:return 169 +break; +case 95:return 508 +break; +case 96:return 508 +break; +case 97:return 298 +break; +case 98:return 14 +break; +case 99:return 295 +break; +case 100:return 249 +break; +case 101:return 285 +break; +case 102:return 95 +break; +case 103:return 373 +break; +case 104:return 183 +break; +case 105:return 227 +break; +case 106:return 268 +break; +case 107:return 313 +break; +case 108:return 602 +break; +case 109:return 472 +break; +case 110:return 232 +break; +case 111:return 236 +break; +case 112:return 239 +break; +case 113:return 156 +break; +case 114:return 356 +break; +case 115:return 332 +break; +case 116:return 99 +break; +case 117:return 193 +break; +case 118:return 212 +break; +case 119:return 224 +break; +case 120:return 516 +break; +case 121:return 339 +break; +case 122:return 213 +break; +case 123:return 168 +break; +case 124:return 293 +break; +case 125:return 198 +break; +case 126:return 223 +break; +case 127:return 370 +break; +case 128:return 286 +break; +case 129:return 'LET' +break; +case 130:return 225 +break; +case 131:return 112 +break; +case 132:return 245 +break; +case 133:return 460 +break; +case 134:return 191 +break; +case 135:return 283 +break; +case 136:return 390 +break; +case 137:return 282 +break; +case 138:return 452 +break; +case 139:return 169 +break; +case 140:return 403 +break; +case 141:return 222 +break; +case 142:return 645 +break; +case 143:return 270 +break; +case 144:return 244 +break; +case 145:return 380 +break; +case 146:return 154 +break; +case 147:return 297 +break; +case 148:return 433 +break; +case 149:return 230 +break; +case 150:return 415 +break; +case 151:return 129 +break; +case 152:return 247 +break; +case 153:return 'OPEN' +break; +case 154:return 416 +break; +case 155:return 171 +break; +case 156:return 118 +break; +case 157:return 208 +break; +case 158:return 276 +break; +case 159:return 172 +break; +case 160:return 279 +break; +case 161:return 765 +break; +case 162:return 93 +break; +case 163:return 16 +break; +case 164:return 369 +break; +case 165:return 442 +break; +case 166:return 678 +break; +case 167:return 15 +break; +case 168:return 414 +break; +case 169:return 194 +break; +case 170:return 'REDUCE' +break; +case 171:return 374 +break; +case 172:return 311 +break; +case 173:return 517 +break; +case 174:return 682 +break; +case 175:return 107 +break; +case 176:return 401 +break; +case 177:return 175 +break; +case 178:return 290 +break; +case 179:return 443 +break; +case 180:return 687 +break; +case 181:return 173 +break; +case 182:return 173 +break; +case 183:return 226 +break; +case 184:return 436 +break; +case 185:return 237 +break; +case 186:return 150 +break; +case 187:return 766 +break; +case 188:return 405 +break; +case 189:return 89 +break; +case 190:return 228 +break; +case 191:return 146 +break; +case 192:return 146 +break; +case 193:return 409 +break; +case 194:return 334 +break; +case 195:return 417 +break; +case 196:return 'STRATEGY' +break; +case 197:return 'STORE' +break; +case 198:return 280 +break; +case 199:return 353 +break; +case 200:return 353 +break; +case 201:return 463 +break; +case 202:return 357 +break; +case 203:return 357 +break; +case 204:return 192 +break; +case 205:return 309 +break; +case 206:return 'TIMEOUT' +break; +case 207:return 148 +break; +case 208:return 195 +break; +case 209:return 435 +break; +case 210:return 435 +break; +case 211:return 509 +break; +case 212:return 294 +break; +case 213:return 451 +break; +case 214:return 162 +break; +case 215:return 187 +break; +case 216:return 98 +break; +case 217:return 335 +break; +case 218:return 408 +break; +case 219:return 231 +break; +case 220:return 149 +break; +case 221:return 344 +break; +case 222:return 134 +break; +case 223:return 410 +break; +case 224:return 308 +break; +case 225:return 128 +break; +case 226:return 439 +break; +case 227:return 72 +break; +case 228:return 435 /* Is this keyword required? */ +break; +case 229:return 131 +break; +case 230:return 131 +break; +case 231:return 115 +break; +case 232:return 137 +break; +case 233:return 179 +break; +case 234:return 317 +break; +case 235:return 180 +break; +case 236:return 133 +break; +case 237:return 138 +break; +case 238:return 326 +break; +case 239:return 323 +break; +case 240:return 325 +break; +case 241:return 322 +break; +case 242:return 320 +break; +case 243:return 318 +break; +case 244:return 319 +break; +case 245:return 142 +break; +case 246:return 141 +break; +case 247:return 139 +break; +case 248:return 321 +break; +case 249:return 324 +break; +case 250:return 140 +break; +case 251:return 124 +break; +case 252:return 324 +break; +case 253:return 77 +break; +case 254:return 78 +break; +case 255:return 145 +break; +case 256:return 424 +break; +case 257:return 426 +break; +case 258:return 300 +break; +case 259:return 505 +break; +case 260:return 507 +break; +case 261:return 122 +break; +case 262:return 116 +break; +case 263:return 74 +break; +case 264:return 333 +break; +case 265:return 152 +break; +case 266:return 764 +break; +case 267:return 143 +break; +case 268:return 181 +break; +case 269:return 136 +break; +case 270:return 123 +break; +case 271:return 312 +break; +case 272:return 4 +break; +case 273:return 10 +break; +case 274:return 'INVALID' +break; +} +}, +rules: [/^(?:``([^\`])+``)/i,/^(?:\[\?\])/i,/^(?:@\[)/i,/^(?:ARRAY\[)/i,/^(?:\[([^\]])*?\])/i,/^(?:`([^\`])*?`)/i,/^(?:N(['](\\.|[^']|\\')*?['])+)/i,/^(?:X(['](\\.|[^']|\\')*?['])+)/i,/^(?:(['](\\.|[^']|\\')*?['])+)/i,/^(?:(["](\\.|[^"]|\\")*?["])+)/i,/^(?:--(.*?)($|\r\n|\r|\n))/i,/^(?:\s+)/i,/^(?:\|\|)/i,/^(?:\|)/i,/^(?:VALUE\s+OF\s+SEARCH\b)/i,/^(?:VALUE\s+OF\s+SELECT\b)/i,/^(?:ROW\s+OF\s+SELECT\b)/i,/^(?:COLUMN\s+OF\s+SELECT\b)/i,/^(?:MATRIX\s+OF\s+SELECT\b)/i,/^(?:INDEX\s+OF\s+SELECT\b)/i,/^(?:RECORDSET\s+OF\s+SELECT\b)/i,/^(?:TEXT\s+OF\s+SELECT\b)/i,/^(?:SELECT\b)/i,/^(?:ABSOLUTE\b)/i,/^(?:ACTION\b)/i,/^(?:ADD\b)/i,/^(?:AFTER\b)/i,/^(?:AGGR\b)/i,/^(?:AGGREGATE\b)/i,/^(?:AGGREGATOR\b)/i,/^(?:ALL\b)/i,/^(?:ALTER\b)/i,/^(?:AND\b)/i,/^(?:ANTI\b)/i,/^(?:ANY\b)/i,/^(?:APPLY\b)/i,/^(?:ARRAY\b)/i,/^(?:AS\b)/i,/^(?:ASSERT\b)/i,/^(?:ASC\b)/i,/^(?:ATTACH\b)/i,/^(?:AUTO(_)?INCREMENT\b)/i,/^(?:AVG\b)/i,/^(?:BEFORE\b)/i,/^(?:BEGIN\b)/i,/^(?:BETWEEN\b)/i,/^(?:BREAK\b)/i,/^(?:NOT\s+BETWEEN\b)/i,/^(?:NOT\s+LIKE\b)/i,/^(?:BY\b)/i,/^(?:~~\*)/i,/^(?:!~~\*)/i,/^(?:~~)/i,/^(?:!~~)/i,/^(?:ILIKE\b)/i,/^(?:NOT\s+ILIKE\b)/i,/^(?:CALL\b)/i,/^(?:CASE\b)/i,/^(?:CAST\b)/i,/^(?:CHECK\b)/i,/^(?:CLASS\b)/i,/^(?:CLOSE\b)/i,/^(?:COLLATE\b)/i,/^(?:COLUMN\b)/i,/^(?:COLUMNS\b)/i,/^(?:COMMIT\b)/i,/^(?:CONSTRAINT\b)/i,/^(?:CONTENT\b)/i,/^(?:CONTINUE\b)/i,/^(?:CONVERT\b)/i,/^(?:CORRESPONDING\b)/i,/^(?:COUNT\b)/i,/^(?:CREATE\b)/i,/^(?:CROSS\b)/i,/^(?:CUBE\b)/i,/^(?:CURRENT_TIMESTAMP\b)/i,/^(?:CURSOR\b)/i,/^(?:DATABASE(S)?)/i,/^(?:DATEADD\b)/i,/^(?:DATEDIFF\b)/i,/^(?:DECLARE\b)/i,/^(?:DEFAULT\b)/i,/^(?:DELETE\b)/i,/^(?:DELETED\b)/i,/^(?:DESC\b)/i,/^(?:DETACH\b)/i,/^(?:DISTINCT\b)/i,/^(?:DROP\b)/i,/^(?:ECHO\b)/i,/^(?:EDGE\b)/i,/^(?:END\b)/i,/^(?:ENUM\b)/i,/^(?:ELSE\b)/i,/^(?:ESCAPE\b)/i,/^(?:EXCEPT\b)/i,/^(?:EXEC\b)/i,/^(?:EXECUTE\b)/i,/^(?:EXISTS\b)/i,/^(?:EXPLAIN\b)/i,/^(?:FALSE\b)/i,/^(?:FETCH\b)/i,/^(?:FIRST\b)/i,/^(?:FOR\b)/i,/^(?:FOREIGN\b)/i,/^(?:FROM\b)/i,/^(?:FULL\b)/i,/^(?:FUNCTION\b)/i,/^(?:GLOB\b)/i,/^(?:GO\b)/i,/^(?:GRAPH\b)/i,/^(?:GROUP\b)/i,/^(?:GROUPING\b)/i,/^(?:HAVING\b)/i,/^(?:IF\b)/i,/^(?:IDENTITY\b)/i,/^(?:IS\b)/i,/^(?:IN\b)/i,/^(?:INDEX\b)/i,/^(?:INDEXED\b)/i,/^(?:INNER\b)/i,/^(?:INSTEAD\b)/i,/^(?:INSERT\b)/i,/^(?:INSERTED\b)/i,/^(?:INTERSECT\b)/i,/^(?:INTERVAL\b)/i,/^(?:INTO\b)/i,/^(?:JOIN\b)/i,/^(?:KEY\b)/i,/^(?:LAST\b)/i,/^(?:LET\b)/i,/^(?:LEFT\b)/i,/^(?:LIKE\b)/i,/^(?:LIMIT\b)/i,/^(?:MATCHED\b)/i,/^(?:MATRIX\b)/i,/^(?:MAX(\s+)?(?=\())/i,/^(?:MAX(\s+)?(?=(,|\))))/i,/^(?:MIN(\s+)?(?=\())/i,/^(?:MERGE\b)/i,/^(?:MINUS\b)/i,/^(?:MODIFY\b)/i,/^(?:NATURAL\b)/i,/^(?:NEXT\b)/i,/^(?:NEW\b)/i,/^(?:NOCASE\b)/i,/^(?:NO\b)/i,/^(?:NOT\b)/i,/^(?:NULL\b)/i,/^(?:OFF\b)/i,/^(?:ON\b)/i,/^(?:ONLY\b)/i,/^(?:OF\b)/i,/^(?:OFFSET\b)/i,/^(?:OPEN\b)/i,/^(?:OPTION\b)/i,/^(?:OR\b)/i,/^(?:ORDER\b)/i,/^(?:OUTER\b)/i,/^(?:OVER\b)/i,/^(?:PATH\b)/i,/^(?:PARTITION\b)/i,/^(?:PERCENT\b)/i,/^(?:PIVOT\b)/i,/^(?:PLAN\b)/i,/^(?:PRIMARY\b)/i,/^(?:PRINT\b)/i,/^(?:PRIOR\b)/i,/^(?:QUERY\b)/i,/^(?:READ\b)/i,/^(?:RECORDSET\b)/i,/^(?:REDUCE\b)/i,/^(?:REFERENCES\b)/i,/^(?:REGEXP\b)/i,/^(?:REINDEX\b)/i,/^(?:RELATIVE\b)/i,/^(?:REMOVE\b)/i,/^(?:RENAME\b)/i,/^(?:REPEAT\b)/i,/^(?:REPLACE\b)/i,/^(?:REQUIRE\b)/i,/^(?:RESTORE\b)/i,/^(?:RETURN\b)/i,/^(?:RETURNS\b)/i,/^(?:RIGHT\b)/i,/^(?:ROLLBACK\b)/i,/^(?:ROLLUP\b)/i,/^(?:ROW\b)/i,/^(?:ROWS\b)/i,/^(?:SCHEMA(S)?)/i,/^(?:SEARCH\b)/i,/^(?:SEMI\b)/i,/^(?:SET\b)/i,/^(?:SETS\b)/i,/^(?:SHOW\b)/i,/^(?:SOME\b)/i,/^(?:SOURCE\b)/i,/^(?:STRATEGY\b)/i,/^(?:STORE\b)/i,/^(?:SUM\b)/i,/^(?:TABLE\b)/i,/^(?:TABLES\b)/i,/^(?:TARGET\b)/i,/^(?:TEMP\b)/i,/^(?:TEMPORARY\b)/i,/^(?:TEXTSTRING\b)/i,/^(?:THEN\b)/i,/^(?:TIMEOUT\b)/i,/^(?:TO\b)/i,/^(?:TOP\b)/i,/^(?:TRAN\b)/i,/^(?:TRANSACTION\b)/i,/^(?:TRIGGER\b)/i,/^(?:TRUE\b)/i,/^(?:TRUNCATE\b)/i,/^(?:UNION\b)/i,/^(?:UNIQUE\b)/i,/^(?:UNPIVOT\b)/i,/^(?:UPDATE\b)/i,/^(?:USE\b)/i,/^(?:USING\b)/i,/^(?:VALUE\b)/i,/^(?:VALUES\b)/i,/^(?:VERTEX\b)/i,/^(?:VIEW\b)/i,/^(?:WHEN\b)/i,/^(?:WHERE\b)/i,/^(?:WHILE\b)/i,/^(?:WITH\b)/i,/^(?:WORK\b)/i,/^(?:(\d*[.])?\d+[eE]\d+)/i,/^(?:(\d*[.])?\d+)/i,/^(?:->)/i,/^(?:#)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?::-)/i,/^(?:\?-)/i,/^(?:\.\.)/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:!)/i,/^(?:\^)/i,/^(?:~)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); + +if (typeof require !== 'undefined' && typeof exports !== 'undefined') { +exports.parser = alasqlparser; +exports.Parser = alasqlparser.Parser; +exports.parse = function () { return alasqlparser.parse.apply(alasqlparser, arguments); }; +exports.main = function commonjsMain(args) { + if (!args[1]) { + console.log('Usage: '+args[0]+' FILE'); + process.exit(1); + } + var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); + return exports.parser.parse(source); +}; +if (typeof module !== 'undefined' && require.main === module) { + exports.main(process.argv.slice(1)); +} +} + +/** + 12prettyflag.js - prettify + @todo move this functionality to plugin +*/ + +/** + Pretty flag - nice HTML output or standard text without any tags + @type {boolean} +*/ + +alasql.prettyflag = false; + +/** + Pretty output of SQL functions + @function + @param {string} sql SQL statement + @param {boolean} flag value + @return {string} HTML or text string with pretty output +*/ + +alasql.pretty = function(sql, flag) { + var pf = alasql.prettyflag; + alasql.prettyflag = !flag; + var s = alasql.parse(sql).toString(); + alasql.prettyflag = pf; + return s; +}; + +/*jshint unused:false*/ +/* + Utilities for Alasql.js + + @todo Review the list of utilities + @todo Find more effective utilities +*/ + +/** + Alasql utility functions + @type {object} + */ +var utils = (alasql.utils = {}); + +/** + Convert NaN to undefined + @function + @param {string} s JavaScript string to be modified + @return {string} Covered expression + + @example + + 123 => 123 + undefined => undefined + NaN => undefined + + */ +function n2u(s) { + return '(y=' + s + ',y===y?y:undefined)'; +} + +/** + Return undefined if s undefined + @param {string} s JavaScript string to be modified + @return {string} Covered expression + + @example + + 123,a => a + undefined,a => undefined + NaN,a => undefined + + */ +function und(s, r) { + return '(y=' + s + ',typeof y=="undefined"?undefined:' + r + ')'; +} + +/** + Return always true. Stub for non-ecisting WHERE clause, because is faster then if(whenrfn) whenfn() + @function + @return {boolean} Always true + */ +function returnTrue() { + return true; +} + +/** + Return undefined. Stub for non-ecisting WHERE clause, because is faster then if(whenrfn) whenfn() + @function + @return {undefined} Always undefined + */ +function returnUndefined() {} + +/** + Escape string + @function + @param {string} s Source string + @return {string} Escaped string + @example + + Pit\er's => Pit\\er\'s + + */ +// based on joliss/js-string-escape +var escapeq = (utils.escapeq = function(s) { + + return ('' + s).replace(/["'\\\n\r\u2028\u2029]/g, function(character) { + // Escape all characters not included in SingleStringCharacters and + // DoubleStringCharacters on + // http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4 + switch (character) { + case '"': + case "'": + case '\\': + return '\\' + character; + // Four possible LineTerminator characters need to be escaped: + case '\n': + return '\\n'; + case '\r': + return '\\r'; + case '\u2028': + return '\\u2028'; + case '\u2029': + return '\\u2029'; + } + }); +}); + +/** + Double quotes for SQL statements + @param {string} s Source string + @return {string} Escaped string + + @example + + Piter's => Piter''s + + */ +var escapeqq = (utils.undoubleq = function(s) { + return s.replace(/(\')/g, "''"); +}); + +/** + Replace double quotes with single quote + @param {string} s Source string + @return {string} Replaced string + @example + + Piter''s => Piter's + + */ +var doubleq = (utils.doubleq = function(s) { + return s.replace(/(\'\')/g, "\\'"); +}); + +/** + Replace sigle quote to escaped single quote + @param {string} s Source string + @return {string} Replaced string + + @todo Chack this functions + + */ +var doubleqq = (utils.doubleqq = function(s) { + return s.replace(/\'/g, "'"); +}); + +/** + Cut BOM first character for UTF-8 files (for merging two files) + @param {string} s Source string + @return {string} Replaced string + */ + +var cutbom = function(s) { + if (s[0] === String.fromCharCode(65279)) { + s = s.substr(1); + } + return s; +}; + +/** + Get the global scope + Inspired by System.global + @return {object} The global scope + */ +utils.global = (function() { + if (typeof self !== 'undefined') { + return self; + } + if (typeof window !== 'undefined') { + return window; + } + if (typeof global !== 'undefined') { + return global; + } + return Function('return this')(); +})(); + +/** + Find out if a function is native to the enviroment + @param {function} Function to check + @return {boolean} True if function is native + */ +var isNativeFunction = (utils.isNativeFunction = function(fn) { + return typeof fn === 'function' && !!~fn.toString().indexOf('[native code]'); +}); + +/** + Find out if code is running in a web worker enviroment + @return {boolean} True if code is running in a web worker enviroment + */ +utils.isWebWorker = (function() { + try { + var importScripts = utils.global.importScripts; + return utils.isNativeFunction(importScripts); + } catch (e) { + return false; + } +})(); + +/** + Find out if code is running in a node enviroment + @return {boolean} True if code is running in a node enviroment + */ +utils.isNode = (function() { + try { + return utils.isNativeFunction(utils.global.process.reallyExit); + } catch (e) { + return false; + } +})(); + +/** + Find out if code is running in a browser enviroment + @return {boolean} True if code is running in a browser enviroment + */ +utils.isBrowser = (function() { + try { + return utils.isNativeFunction(utils.global.location.reload); + } catch (e) { + return false; + } +})(); + +/** + Find out if code is running in a browser with a browserify setup + @return {boolean} True if code is running in a browser with a browserify setup + */ +utils.isBrowserify = (function() { + return utils.isBrowser && typeof process !== 'undefined' && process.browser; +})(); + +/** + Find out if code is running in a browser with a requireJS setup + @return {boolean} True if code is running in a browser with a requireJS setup + */ +utils.isRequireJS = (function() { + return ( + utils.isBrowser && typeof require === 'function' && typeof require.specified === 'function' + ); +})(); + +/** + Find out if code is running with Meteor in the enviroment + @return {boolean} True if code is running with Meteor in the enviroment + + @todo Find out if this is the best way to do this + */ +utils.isMeteor = (function() { + return typeof Meteor !== 'undefined' && Meteor.release; +})(); + +/** + Find out if code is running on a Meteor client + @return {boolean} True if code is running on a Meteor client + */ +utils.isMeteorClient = utils.isMeteorClient = (function() { + return utils.isMeteor && Meteor.isClient; +})(); + +/** + Find out if code is running on a Meteor server + @return {boolean} True if code is running on a Meteor server + */ +utils.isMeteorServer = (function() { + return utils.isMeteor && Meteor.isServer; +})(); + +/** + Find out code is running in a cordovar enviroment + @return {boolean} True if code is running in a web worker enviroment + + @todo Find out if this is the best way to do this + */ +utils.isCordova = (function() { + return typeof cordova === 'object'; +})(); + +utils.isReactNative = (function() { + var isReact = false; + /*not-for-browser/* + try { + if (typeof require('react-native') === 'object') { + isReact = true; + } + } catch (e) { + void 0; + } + //*/ + return isReact; +})(); + +utils.hasIndexedDB = (function() { + return !!utils.global.indexedDB; +})(); + +utils.isArray = function(obj) { + return '[object Array]' === Object.prototype.toString.call(obj); +}; +/** + Load text file from anywhere + @param {string|object} path File path or HTML event + @param {boolean} asy True - async call, false - sync call + @param {function} success Success function + @param {function} error Error function + @return {string} Read data + + @todo Define Event type + @todo Smaller if-else structures. + */ +var loadFile = (utils.loadFile = function(path, asy, success, error) { + var data, fs; + if (utils.isNode || utils.isMeteorServer) { + /*not-for-browser/* + fs = require('fs'); + + // If path is empty, than read data from stdin (for Node) + if (typeof path === 'undefined') { + var buff = ''; + process.stdin.setEncoding('utf8'); + process.stdin.on('readable', function() { + var chunk = process.stdin.read(); + if (chunk !== null) { + buff += chunk.toString(); + } + }); + process.stdin.on('end', function() { + success(cutbom(buff)); + }); + } else { + if (/^[a-z]+:\/\//i.test(path)) { + var request = require('request'); + request(path, function(err, response, body) { + if (err) { + return error(err, null); + } + success(cutbom(body.toString())); + }); + } else { + //If async callthen call async + if (asy) { + fs.readFile(path, function(err, data) { + if (err) { + return error(err, null); + } + success(cutbom(data.toString())); + }); + } else { + // Call sync version + try { + data = fs.readFileSync(path); + } catch (e) { + return error(err, null); + } + success(cutbom(data.toString())); + } + } + } + } else if (utils.isReactNative) { + // If ReactNative + var RNFS = require('react-native-fs'); + RNFS.readFile(path, 'utf8') + .then(function(contents) { + success(cutbom(contents)); + })["catch"](function(err) { + return error(err, null); + }); + //*/ + } else if (utils.isCordova) { + /* If Cordova */ + utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { + fileSystem.root.getFile(path, {create: false}, function(fileEntry) { + fileEntry.file(function(file) { + var fileReader = new FileReader(); + fileReader.onloadend = function(e) { + success(cutbom(this.result)); + }; + fileReader.readAsText(file); + }); + }); + }); + + /** @todo Check eliminated code below */ + + } else { + /* For string */ + if (typeof path === 'string') { + // For browser read from tag + /* + SELECT * FROM TXT('#one') -- read data from HTML element with id="one" + */ + if (path.substr(0, 1) === '#' && typeof document !== 'undefined') { + data = document.querySelector(path).textContent; + success(data); + } else { + /* + Simply read file from HTTP request, like: + SELECT * FROM TXT('http://alasql.org/README.md'); + */ + var xhr = new XMLHttpRequest(); + xhr.onreadystatechange = function() { + if (xhr.readyState === 4) { + if (xhr.status === 200) { + if (success) { + success(cutbom(xhr.responseText)); + } + } else if (error) { + return error(xhr); + } + // Todo: else...? + } + }; + xhr.open('GET', path, asy); // Async + xhr.responseType = 'text'; + xhr.send(); + } + } else if (path instanceof Event) { + /* + For browser read from files input element + + + */ + /** @type {array} List of files from element */ + var files = path.target.files; + /** type {object} */ + var reader = new FileReader(); + /** type {string} */ + var name = files[0].name; + reader.onload = function(e) { + var data = e.target.result; + success(cutbom(data)); + }; + reader.readAsText(files[0]); + } + } +}); + +/** + @function Load binary file from anywhere + @param {string} path File path + @param {boolean} asy True - async call, false - sync call + @param {function} success Success function + @param {function} error Error function + @return 1 for Async, data - for sync version + + @todo merge functionality from loadFile and LoadBinaryFile + */ + +var loadBinaryFile = (utils.loadBinaryFile = function(path, asy, success, error) { + var fs; + if (utils.isNode || utils.isMeteorServer) { + /*not-for-browser/* + fs = require('fs'); + + if (/^[a-z]+:\/\//i.test(path)) { + var request = require('request'); + request({url: path, encoding: null}, function(err, response, data) { + if (err) { + throw err; + } + var arr = []; + for (var i = 0; i < data.length; ++i) { + arr[i] = String.fromCharCode(data[i]); + } + success(arr.join('')); + }); + } else { + if (asy) { + fs.readFile(path, function(err, data) { + if (err) { + throw err; + } + var arr = []; + for (var i = 0; i < data.length; ++i) { + arr[i] = String.fromCharCode(data[i]); + } + success(arr.join('')); + }); + } else { + var data = fs.readFileSync(path); + var arr = []; + for (var i = 0; i < data.length; ++i) { + arr[i] = String.fromCharCode(data[i]); + } + success(arr.join('')); + } + } + } else if (utils.isReactNative) { + // If ReactNative + //var RNFS = require('react-native-fs'); + var RNFetchBlob = require('react-native-fetch-blob')["default"]; + var dirs = RNFetchBlob.fs.dirs; + //should use readStream instead if the file is large + RNFetchBlob.fs.readFile(path, 'base64').then(function(data) { + //RNFetchBlob.base64.decode(data) //need more test on excel + success(data); + }); + //*/ + } else { + if (typeof path === 'string') { + // For browser + var xhr = new XMLHttpRequest(); + xhr.open('GET', path, asy); // Async + xhr.responseType = 'arraybuffer'; + xhr.onload = function() { + var data = new Uint8Array(xhr.response); + var arr = []; + for (var i = 0; i < data.length; ++i) { + arr[i] = String.fromCharCode(data[i]); + } + success(arr.join('')); + }; + // xhr.responseType = "blob"; + xhr.send(); + } else if (path instanceof Event) { + + var files = path.target.files; + var reader = new FileReader(); + var name = files[0].name; + reader.onload = function(e) { + var data = e.target.result; + success(data); + }; + reader.readAsArrayBuffer(files[0]); + } else if (path instanceof Blob) { + success(path); + } + } +}); + +var removeFile = (utils.removeFile = function(path, cb) { + if (utils.isNode) { + /*not-for-browser/* + var fs = require('fs'); + fs.remove(path, cb); + } else if (utils.isCordova) { + utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { + fileSystem.root.getFile( + path, + {create: false}, + function(fileEntry) { + fileEntry.remove(cb); + cb && cb(); // jshint ignore:line + }, + function() { + cb && cb(); // jshint ignore:line + } + ); + }); + } else if (utils.isReactNative) { + // If ReactNative + var RNFS = require('react-native-fs'); + RNFS.unlink(path) + .then(function() { + cb && cb(); + })["catch"](function(err) { + throw err; + }); + //*/ + } else { + throw new Error('You can remove files only in Node.js and Apache Cordova'); + } +}); + +// Todo: check if it makes sense to support cordova and Meteor server +var deleteFile = (utils.deleteFile = function(path, cb) { + /*not-for-browser/* + if (utils.isNode) { + var fs = require('fs'); + fs.unlink(path, cb); + } else if (utils.isReactNative) { + // If ReactNative + var RNFS = require('react-native-fs'); + RNFS.unlink(path) + .then(function() { + cb && cb(); + })["catch"](function(err) { + throw err; + }); + } + //*/ +}); + +utils.autoExtFilename = function(filename, ext, config) { + config = config || {}; + if ( + typeof filename !== 'string' || + filename.match(/^[A-z]+:\/\/|\n|\..{2,4}$/) || + config.autoExt === 0 || + config.autoExt === false + ) { + return filename; + } + return filename + '.' + ext; +}; + +var fileExists = (utils.fileExists = function(path, cb) { + if (utils.isNode) { + /*not-for-browser/* + var fs = require('fs'); + fs.exists(path, cb); + } else if (utils.isCordova) { + utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { + fileSystem.root.getFile( + path, + {create: false}, + function(fileEntry) { + cb(true); + }, + function() { + cb(false); + } + ); + }); + } else if (utils.isReactNative) { + // If ReactNative + var RNFS = require('react-native-fs'); + RNFS.exists(path) + .then(function(yes) { + cb && cb(yes); + })["catch"](function(err) { + throw err; + }); + //*/ + } else { + // TODO Cordova, etc. + throw new Error('You can use exists() only in Node.js or Apach Cordova'); + } +}); + +/** + Save text file from anywhere + @param {string} path File path + @param {array} data Data object + @param {function} cb Callback + @param {object=} opts + */ + +var saveFile = (utils.saveFile = function(path, data, cb, opts) { + var res = 1; + if (path === undefined) { + // + // Return data into result variable + // like: alasql('SELECT * INTO TXT() FROM ?',[data]); + // + res = data; + if (cb) { + res = cb(res); + } + } else { + if (utils.isNode) { + /*not-for-browser/* + var fs = require('fs'); + data = fs.writeFileSync(path, data); + if (cb) { + res = cb(res); + } + } else if (utils.isReactNative) { + var RNFS = require('react-native-fs'); + RNFS.writeFile(path, data) + .then(function(success) { + //, 'utf8' + if (cb) res = cb(res); + })["catch"](function(err) { + console.error(err.message); + }); + } else if (utils.isCordova) { + utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { + // alasql.utils.removeFile(path,function(){ + fileSystem.root.getFile(path, {create: true}, function(fileEntry) { + fileEntry.createWriter(function(fileWriter) { + fileWriter.onwriteend = function() { + if (cb) { + res = cb(res); + } + }; + fileWriter.write(data); + }); + }); + }); + //*/ + + // }); + // }); + // }); + } else { + if (isIE() === 9) { + // Solution was taken from + // http://megatuto.com/formation-JAVASCRIPT.php?JAVASCRIPT_Example=Javascript+Save+CSV+file+in+IE+8/IE+9+without+using+window.open()+Categorie+javascript+internet-explorer-8&category=&article=7993 + // var URI = 'data:text/plain;charset=utf-8,'; + + // Prepare data + var ndata = data.replace(/\r\n/g, '&#A;&#D;'); + ndata = ndata.replace(/\n/g, '&#D;'); + ndata = ndata.replace(/\t/g, ' '); + var testlink = utils.global.open('about:blank', '_blank'); + testlink.document.write(ndata); //fileData has contents for the file + testlink.document.close(); + testlink.document.execCommand('SaveAs', false, path); + testlink.close(); + } else { + var opt = { + disableAutoBom: false, + }; + alasql.utils.extend(opt, opts); + var blob = new Blob([data], {type: 'text/plain;charset=utf-8'}); + saveAs(blob, path, opt.disableAutoBom); + if (cb) { + res = cb(res); + } + } + } + } + + return res; +}); + +/** + @function Is this IE9 + @return {boolean} True for IE9 and false for other browsers + + For IE9 compatibility issues + */ +function isIE() { + var myNav = navigator.userAgent.toLowerCase(); + return myNav.indexOf('msie') !== -1 ? parseInt(myNav.split('msie')[1]) : false; +} + +/** + @function Hash a string to signed integer + @param {string} source string + @return {integer} hash number + */ + +// FNV-1a inspired hashing +var hash = (utils.hash = function(str) { + var hash = 0x811c9dc5, + i = str.length; + while (i) { + hash ^= str.charCodeAt(--i); + hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24); + } + return hash; +}); + +/** + Union arrays + @function + @param {array} a + @param {array} b + @return {array} + */ +var arrayUnion = (utils.arrayUnion = function(a, b) { + var r = b.slice(0); + a.forEach(function(i) { + if (r.indexOf(i) < 0) { + r.push(i); + } + }); + return r; +}); + +/** + Array Difference + */ +var arrayDiff = (utils.arrayDiff = function(a, b) { + return a.filter(function(i) { + return b.indexOf(i) < 0; + }); +}); + +/** + Arrays deep intersect (with records) + */ +var arrayIntersect = (utils.arrayIntersect = function(a, b) { + var r = []; + a.forEach(function(ai) { + var found = false; + + b.forEach(function(bi) { + found = found || ai === bi; + }); + + if (found) { + r.push(ai); + } + }); + return r; +}); + +/** + Arrays deep union (with records) + */ +var arrayUnionDeep = (utils.arrayUnionDeep = function(a, b) { + var r = b.slice(0); + a.forEach(function(ai) { + var found = false; + + r.forEach(function(ri) { + // found = found || equalDeep(ai, ri, true); + found = found || deepEqual(ai, ri); + }); + + if (!found) { + r.push(ai); + } + }); + return r; +}); + +/** + Arrays deep union (with records) + */ +var arrayExceptDeep = (utils.arrayExceptDeep = function(a, b) { + var r = []; + a.forEach(function(ai) { + var found = false; + + b.forEach(function(bi) { + // found = found || equalDeep(ai, bi, true); + found = found || deepEqual(ai, bi); + }); + + if (!found) { + r.push(ai); + } + }); + return r; +}); + +/** + Arrays deep intersect (with records) + */ +var arrayIntersectDeep = (utils.arrayIntersectDeep = function(a, b) { + var r = []; + a.forEach(function(ai) { + var found = false; + + b.forEach(function(bi) { + // found = found || equalDeep(ai, bi, true); + found = found || deepEqual(ai, bi, true); + }); + + if (found) { + r.push(ai); + } + }); + return r; +}); + +/** + Deep clone objects + */ +var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) { + if (null === obj || typeof obj !== 'object') { + return obj; + } + + if (obj instanceof Date) { + return new Date(obj); + } + + var temp = obj.constructor(); // changed + + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + temp[key] = cloneDeep(obj[key]); + } + } + return temp; +}); + +/** + Check equality of objects + */ + +/** + Compare two objects in deep + */ +var deepEqual = (utils.deepEqual = function(x, y) { + if (x === y) { + return true; + } + + if (typeof x === 'object' && null !== x && (typeof y === 'object' && null !== y)) { + if (Object.keys(x).length !== Object.keys(y).length) { + return false; + } + for (var prop in x) { + if (!deepEqual(x[prop], y[prop])) { + return false; + } + } + return true; + } + + return false; +}); +/** + Array with distinct records + @param {array} data + @return {array} + */ +var distinctArray = (utils.distinctArray = function(data) { + var uniq = {}; + // TODO: Speedup, because Object.keys is slow + for (var i = 0, ilen = data.length; i < ilen; i++) { + var uix; + if (typeof data[i] === 'object') { + uix = Object.keys(data[i]) + .sort() + .map(function(k) { + return k + '`' + data[i][k]; + }) + .join('`'); + } else { + uix = data[i]; + } + uniq[uix] = data[i]; + } + var res = []; + for (var key in uniq) { + res.push(uniq[key]); + } + return res; +}); + +/** + Extend object a with properties of b + @function + @param {object} a + @param {object} b + @return {object} + */ +var extend = (utils.extend = function extend(a, b) { + a = a || {}; + for (var key in b) { + if (b.hasOwnProperty(key)) { + a[key] = b[key]; + } + } + return a; +}); + +/** + Flat array by first row + */ +var flatArray = (utils.flatArray = function(a) { + + if (!a || 0 === a.length) { + return []; + } + + // For recordsets + if (typeof a === 'object' && a instanceof alasql.Recordset) { + return a.data.map(function(ai) { + return ai[a.columns[0].columnid]; + }); + } + // Else for other arrays + var key = Object.keys(a[0])[0]; + if (key === undefined) { + return []; + } + return a.map(function(ai) { + return ai[key]; + }); +}); + +/** + Convert array of objects to array of arrays + */ +var arrayOfArrays = (utils.arrayOfArrays = function(a) { + return a.map(function(aa) { + var ar = []; + for (var key in aa) { + ar.push(aa[key]); + } + return ar; + }); +}); + +if (!Array.isArray) { + Array.isArray = function(arg) { + return Object.prototype.toString.call(arg) === '[object Array]'; + }; +} + +/** + Excel:convert number to Excel column, like 1 => 'A' + @param {integer} i Column number, starting with 0 + @return {string} Column name, starting with 'A' + */ + +var xlsnc = (utils.xlsnc = function(i) { + var addr = String.fromCharCode(65 + (i % 26)); + if (i >= 26) { + i = ((i / 26) | 0) - 1; + addr = String.fromCharCode(65 + (i % 26)) + addr; + if (i > 26) { + i = ((i / 26) | 0) - 1; + addr = String.fromCharCode(65 + (i % 26)) + addr; + } + } + return addr; +}); + +/** + Excel:conver Excel column name to number + @param {string} s Column number, like 'A' or 'BE' + @return {string} Column name, starting with 0 + */ +var xlscn = (utils.xlscn = function(s) { + var n = s.charCodeAt(0) - 65; + if (s.length > 1) { + n = (n + 1) * 26 + s.charCodeAt(1) - 65; + + if (s.length > 2) { + n = (n + 1) * 26 + s.charCodeAt(2) - 65; + } + } + return n; +}); + +var domEmptyChildren = (utils.domEmptyChildren = function(container) { + var len = container.childNodes.length; + while (len--) { + container.removeChild(container.lastChild); + } +}); + +/** + SQL LIKE emulation + @parameter {string} pattern Search pattern + @parameter {string} value Searched value + @parameter {string} escape Escape character (optional) + @return {boolean} If value LIKE pattern ESCAPE escape + */ + +var like = (utils.like = function(pattern, value, escape) { + // Verify escape character + if (!escape) escape = ''; + + var i = 0; + var s = '^'; + + while (i < pattern.length) { + var c = pattern[i], + c1 = ''; + if (i < pattern.length - 1) c1 = pattern[i + 1]; + + if (c === escape) { + s += '\\' + c1; + i++; + } else if (c === '[' && c1 === '^') { + s += '[^'; + i++; + } else if (c === '[' || c === ']') { + s += c; + } else if (c === '%') { + s += '.*'; + } else if (c === '_') { + s += '.'; + } else if ('/.*+?|(){}'.indexOf(c) > -1) { + s += '\\' + c; + } else { + s += c; + } + i++; + } + + s += '$'; + // if(value == undefined) return false; + + return ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1; +}); + +utils.glob = function(value, pattern) { + var i = 0; + var s = '^'; + + while (i < pattern.length) { + var c = pattern[i], + c1 = ''; + if (i < pattern.length - 1) c1 = pattern[i + 1]; + + if (c === '[' && c1 === '^') { + s += '[^'; + i++; + } else if (c === '[' || c === ']') { + s += c; + } else if (c === '*') { + s += '.*'; + } else if (c === '?') { + s += '.'; + } else if ('/.*+?|(){}'.indexOf(c) > -1) { + s += '\\' + c; + } else { + s += c; + } + i++; + } + + s += '$'; + return ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1; +}; + +/** + Get path of alasql.js + @todo Rewrite and simplify the code. Review, is this function is required separately + */ +utils.findAlaSQLPath = function() { + /** type {string} Path to alasql library and plugins */ + + if (utils.isWebWorker) { + return ''; + /** @todo Check how to get path in worker */ + } else if (utils.isMeteorClient) { + return '/packages/dist/'; + } else if (utils.isMeteorServer) { + return 'assets/packages/dist/'; + } else if (utils.isNode) { + return __dirname; + } else if (utils.isBrowser) { + var sc = document.getElementsByTagName('script'); + + for (var i = 0; i < sc.length; i++) { + if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') { + return sc[i].src.substr(0, sc[i].src.length - 16); + } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') { + return sc[i].src.substr(0, sc[i].src.length - 20); + } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') { + return sc[i].src.substr(0, sc[i].src.length - 9); + } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') { + return sc[i].src.substr(0, sc[i].src.length - 13); + } + } + } + return ''; +}; + +var getXLSX = function() { + var XLSX = alasql["private"].externalXlsxLib; + + if (XLSX) { + return XLSX; + } + + if (utils.isNode || utils.isBrowserify || utils.isMeteorServer) { + /*not-for-browser/* + XLSX = require('xlsx') || null; + //*/ + } else { + XLSX = utils.global.XLSX || null; + } + + if (null === XLSX) { + throw new Error('Please include the xlsx.js library'); + } + + return XLSX; +}; + +// set AlaSQl path +alasql.path = alasql.utils.findAlaSQLPath(); + +/** + Strip all comments. + @function + @param {string} str + @return {string} + Based om the https://github.com/lehni/uncomment.js/blob/master/uncomment.js + I just replaced JavaScript's '//' to SQL's '--' and remove other stuff + + @todo Fixed [aaa/*bbb] for column names + @todo Bug if -- comments in the last line + @todo Check if it possible to model it with Jison parser + @todo Remove unused code + */ + +/* global alasql */ + +alasql.utils.uncomment = function(str) { + // Add some padding so we can always look ahead and behind by two chars + str = ('__' + str + '__').split(''); + var quote = false, + quoteSign, + // regularExpression = false, + // characterClass = false, + blockComment = false, + lineComment = false; + // preserveComment = false; + + for (var i = 0, l = str.length; i < l; i++) { + + // When checking for quote escaping, we also need to check that the + // escape sign itself is not escaped, as otherwise '\\' would cause + // the wrong impression of an unclosed string: + var unescaped = str[i - 1] !== '\\' || str[i - 2] === '\\'; + + if (quote) { + if (str[i] === quoteSign && unescaped) { + quote = false; + } + + } else if (blockComment) { + // Is the block comment closing? + if (str[i] === '*' && str[i + 1] === '/') { + // if (!preserveComment) + str[i] = str[i + 1] = ''; + blockComment /* = preserveComment*/ = false; + // Increase by 1 to skip closing '/', as it would be mistaken + // for a regexp otherwise + i++; + } else { + //if (!preserveComment) { + str[i] = ''; + } + } else if (lineComment) { + // One-line comments end with the line-break + if (str[i + 1] === '\n' || str[i + 1] === '\r') { + lineComment = false; + } + str[i] = ''; + } else { + if (str[i] === '"' || str[i] === "'") { + quote = true; + quoteSign = str[i]; + } else if (str[i] === '[' && str[i - 1] !== '@') { + quote = true; + quoteSign = ']'; + // } else if (str[i] === '-' && str[i + 1] === '-') { + // str[i] = ''; + // lineComment = true; + } else if (str[i] === '/' && str[i + 1] === '*') { + // Do not filter out conditional comments /*@ ... */ + // and comments marked as protected /*! ... */ + // preserveComment = /[@!]/.test(str[i + 2]); + // if (!preserveComment) + str[i] = ''; + blockComment = true; + + } + } + } + // Remove padding again. + str = str.join('').slice(2, -2); + + return str; +}; + +/** + Database class for Alasql.js +*/ + +// Initial parameters + +/** + Jison parser +*/ +alasql.parser = alasqlparser; + +alasql.parser.parseError = function(str, hash) { + throw new Error('Have you used a reserved keyword without `escaping` it?\n' + str); +}; + +/** + Jison parser + @param {string} sql SQL statement + @return {object} AST (Abstract Syntax Tree) + + @todo Create class AST + @todo Add other parsers + + @example + alasql.parse = function(sql) { + // My own parser here + } + */ +alasql.parse = function(sql) { + return alasqlparser.parse(alasql.utils.uncomment(sql)); +}; + +/** + List of engines of external databases + @type {object} + @todo Create collection type + */ +alasql.engines = {}; + +/** + List of databases + @type {object} + */ +alasql.databases = {}; + +/** + Number of databases + @type {number} +*/ +alasql.databasenum = 0; + +/** + Alasql options object + */ +alasql.options = {}; +alasql.options.errorlog = false; // Log or throw error +alasql.options.valueof = false; // Use valueof in orderfn +alasql.options.dropifnotexists = false; // DROP database in any case +alasql.options.datetimeformat = 'sql'; // How to handle DATE and DATETIME types +// Another value is 'javascript' +alasql.options.casesensitive = true; // Table and column names are case sensitive and converted to lower-case +alasql.options.logtarget = 'output'; // target for log. Values: 'console', 'output', 'id' of html tag +alasql.options.logprompt = true; // Print SQL at log + +alasql.options.progress = false; // Callback for async queries progress + +// Default modifier +// values: RECORDSET, VALUE, ROW, COLUMN, MATRIX, TEXTSTRING, INDEX +alasql.options.modifier = undefined; +// How many rows to lookup to define columns +alasql.options.columnlookup = 10; +// Create vertex if not found +alasql.options.autovertex = true; + +// Use dbo as current database (for partial T-SQL comaptibility) +alasql.options.usedbo = true; + +// AUTOCOMMIT ON | OFF +alasql.options.autocommit = true; + +// Use cache +alasql.options.cache = true; + +// Compatibility flags +alasql.options.tsql = true; + +alasql.options.mysql = true; + +alasql.options.postgres = true; + +alasql.options.oracle = true; + +alasql.options.sqlite = true; + +alasql.options.orientdb = true; + +// for SET NOCOUNT OFF +alasql.options.nocount = false; + +// Check for NaN and convert it to undefined +alasql.options.nan = false; + +alasql.options.joinstar = 'overwrite'; // Option for SELECT * FROM a,b + +//alasql.options.worker = false; + +// Variables +alasql.vars = {}; + +alasql.declares = {}; + +alasql.prompthistory = []; + +alasql.plugins = {}; // If plugin already loaded + +alasql.from = {}; // FROM functions + +alasql.into = {}; // INTO functions + +alasql.fn = {}; + +alasql.aggr = {}; + +alasql.busy = 0; + +// Cache +alasql.MAXSQLCACHESIZE = 10000; +alasql.DEFAULTDATABASEID = 'alasql'; + +/* WebWorker */ +alasql.lastid = 0; + +alasql.buffer = {}; + +alasql["private"] = { + externalXlsxLib: null, +}; + +alasql.setXLSX = function(XLSX) { + alasql["private"].externalXlsxLib = XLSX; +}; + +/** + Select current database + @param {string} databaseid Selected database identificator + */ +alasql.use = function(databaseid) { + if (!databaseid) { + databaseid = alasql.DEFAULTDATABASEID; + } + if (alasql.useid === databaseid) { + return; + } + alasql.useid = databaseid; + var db = alasql.databases[alasql.useid]; + alasql.tables = db.tables; + // alasql.fn = db.fn; + db.resetSqlCache(); + if (alasql.options.usedbo) { + alasql.databases.dbo = db; // Operator??? + } +}; + +alasql.autoval = function(tablename, colname, getNext, databaseid) { + var db = databaseid ? alasql.databases[databaseid] : alasql.databases[alasql.useid]; + + if (!db.tables[tablename]) { + throw new Error('Tablename not found: ' + tablename); + } + + if (!db.tables[tablename].identities[colname]) { + throw new Error('Colname not found: ' + colname); + } + + if (getNext) { + return db.tables[tablename].identities[colname].value || null; + } + + return ( + db.tables[tablename].identities[colname].value - + db.tables[tablename].identities[colname].step || null + ); +}; + +/** + Run single SQL statement on current database + */ +alasql.exec = function(sql, params, cb, scope) { + // Avoid setting params if not needed even with callback + if (typeof params === 'function') { + scope = cb; + cb = params; + params = {}; + } + + delete alasql.error; + params = params || {}; + if (alasql.options.errorlog) { + try { + return alasql.dexec(alasql.useid, sql, params, cb, scope); + } catch (err) { + alasql.error = err; + if (cb) { + cb(null, alasql.error); + } + } + } else { + return alasql.dexec(alasql.useid, sql, params, cb, scope); + } +}; + +/** + Run SQL statement on specific database + */ +alasql.dexec = function(databaseid, sql, params, cb, scope) { + var db = alasql.databases[databaseid]; + // if(db.databaseid != databaseid) console.trace('got!'); + + var hh; + // Create hash + if (alasql.options.cache) { + hh = hash(sql); + var statement = db.sqlCache[hh]; + // If database structure was not changed since last time return cache + if (statement && db.dbversion === statement.dbversion) { + return statement(params, cb); + } + } + + // Create AST + var ast = alasql.parse(sql); + if (!ast.statements) { + return; + } + if (0 === ast.statements.length) { + return 0; + } else if (1 === ast.statements.length) { + if (ast.statements[0].compile) { + // Compile and Execute + var statement = ast.statements[0].compile(databaseid, params); + if (!statement) { + return; + } + statement.sql = sql; + statement.dbversion = db.dbversion; + + if (alasql.options.cache) { + // Secure sqlCache size + if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) { + db.resetSqlCache(); + } + db.sqlCacheSize++; + db.sqlCache[hh] = statement; + } + var res = (alasql.res = statement(params, cb, scope)); + return res; + } else { + + alasql.precompile(ast.statements[0], alasql.useid, params); + var res = (alasql.res = ast.statements[0].execute(databaseid, params, cb, scope)); + return res; + } + } else { + // Multiple statements + if (cb) { + alasql.adrun(databaseid, ast, params, cb, scope); + } else { + return alasql.drun(databaseid, ast, params, cb, scope); + } + } +}; + +/** + Run multiple statements and return array of results sync + */ +alasql.drun = function(databaseid, ast, params, cb, scope) { + var useid = alasql.useid; + + if (useid !== databaseid) { + alasql.use(databaseid); + } + + var res = []; + for (var i = 0, ilen = ast.statements.length; i < ilen; i++) { + if (ast.statements[i]) { + if (ast.statements[i].compile) { + var statement = ast.statements[i].compile(alasql.useid); + res.push((alasql.res = statement(params, null, scope))); + } else { + alasql.precompile(ast.statements[i], alasql.useid, params); + res.push((alasql.res = ast.statements[i].execute(alasql.useid, params))); + } + } + } + if (useid !== databaseid) { + alasql.use(useid); + } + + if (cb) { + cb(res); + } + + alasql.res = res; + + return res; +}; + +/** + Run multiple statements and return array of results async + */ +alasql.adrun = function(databaseid, ast, params, cb, scope) { + var idx = 0; + var noqueries = ast.statements.length; + if (alasql.options.progress !== false) { + alasql.options.progress(noqueries, idx++); + } + + // alasql.busy++; + var useid = alasql.useid; + if (useid !== databaseid) { + alasql.use(databaseid); + } + var res = []; + + function adrunone(data) { + if (data !== undefined) { + res.push(data); + } + var astatement = ast.statements.shift(); + if (!astatement) { + if (useid !== databaseid) { + alasql.use(useid); + } + cb(res); + // alasql.busy--; + // if(alasql.busy<0) alasql.busy = 0; + } else { + if (astatement.compile) { + var statement = astatement.compile(alasql.useid); + statement(params, adrunone, scope); + if (alasql.options.progress !== false) { + alasql.options.progress(noqueries, idx++); + } + } else { + alasql.precompile(ast.statements[0], alasql.useid, params); + astatement.execute(alasql.useid, params, adrunone); + if (alasql.options.progress !== false) { + alasql.options.progress(noqueries, idx++); + } + } + } + } + + adrunone(); /** @todo Check, why data is empty here */ +}; + +/** + Compile statement to JavaScript function + @param {string} sql SQL statement + @param {string} databaseid Database identificator + @return {functions} Compiled statement functions +*/ +alasql.compile = function(sql, databaseid) { + databaseid = databaseid || alasql.useid; + + var ast = alasql.parse(sql); // Create AST + + if (1 === ast.statements.length) { + var statement = ast.statements[0].compile(databaseid); + statement.promise = function(params) { + return new Promise(function(resolve, reject) { + statement(params, function(data, err) { + if (err) { + reject(err); + } else { + resolve(data); + } + }); + }); + }; + + return statement; + + } else { + throw new Error('Cannot compile, because number of statements in SQL is not equal to 1'); + } +}; + +// +// Promises for AlaSQL +// + +if (!utils.global.Promise) { + if (utils.isNode) { + /*not-for-browser/* + utils.global.Promise = require('es6-promise').Promise; + //*/ + } else { + /*! + * @overview es6-promise - a tiny implementation of Promises/A+. + * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) + * @license Licensed under MIT license + * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE + * @version 3.2.1 + */ + (function() { + 'use strict'; + function t(t) { + return 'function' == typeof t || ('object' == typeof t && null !== t); + } + function e(t) { + return 'function' == typeof t; + } + function n(t) { + G = t; + } + function r(t) { + Q = t; + } + function o() { + return function() { + process.nextTick(a); + }; + } + function i() { + return function() { + B(a); + }; + } + function s() { + var t = 0, + e = new X(a), + n = document.createTextNode(''); + return ( + e.observe(n, {characterData: !0}), + function() { + n.data = t = ++t % 2; + } + ); + } + function u() { + var t = new MessageChannel(); + return ( + (t.port1.onmessage = a), + function() { + t.port2.postMessage(0); + } + ); + } + function c() { + return function() { + setTimeout(a, 1); + }; + } + function a() { + for (var t = 0; J > t; t += 2) { + var e = tt[t], + n = tt[t + 1]; + e(n), (tt[t] = void 0), (tt[t + 1] = void 0); + } + J = 0; + } + function f() { + try { + var t = require, + e = t('vertx'); + return (B = e.runOnLoop || e.runOnContext, i()); + } catch (n) { + return c(); + } + } + function l(t, e) { + var n = this, + r = new this.constructor(p); + void 0 === r[rt] && k(r); + var o = n._state; + if (o) { + var i = arguments[o - 1]; + Q(function() { + x(o, r, i, n._result); + }); + } else E(n, r, t, e); + return r; + } + function h(t) { + var e = this; + if (t && 'object' == typeof t && t.constructor === e) return t; + var n = new e(p); + return (g(n, t), n); + } + function p() {} + function _() { + return new TypeError('You cannot resolve a promise with itself'); + } + function d() { + return new TypeError('A promises callback cannot return that same promise.'); + } + function v(t) { + try { + return t.then; + } catch (e) { + return (ut.error = e, ut); + } + } + function y(t, e, n, r) { + try { + t.call(e, n, r); + } catch (o) { + return o; + } + } + function m(t, e, n) { + Q(function(t) { + var r = !1, + o = y( + n, + e, + function(n) { + r || ((r = !0), e !== n ? g(t, n) : S(t, n)); + }, + function(e) { + r || ((r = !0), j(t, e)); + }, + 'Settle: ' + (t._label || ' unknown promise') + ); + !r && o && ((r = !0), j(t, o)); + }, t); + } + function b(t, e) { + e._state === it + ? S(t, e._result) + : e._state === st + ? j(t, e._result) + : E( + e, + void 0, + function(e) { + g(t, e); + }, + function(e) { + j(t, e); + } + ); + } + function w(t, n, r) { + n.constructor === t.constructor && r === et && constructor.resolve === nt + ? b(t, n) + : r === ut + ? j(t, ut.error) + : void 0 === r + ? S(t, n) + : e(r) + ? m(t, n, r) + : S(t, n); + } + function g(e, n) { + e === n ? j(e, _()) : t(n) ? w(e, n, v(n)) : S(e, n); + } + function A(t) { + t._onerror && t._onerror(t._result), T(t); + } + function S(t, e) { + t._state === ot && + ((t._result = e), (t._state = it), 0 !== t._subscribers.length && Q(T, t)); + } + function j(t, e) { + t._state === ot && ((t._state = st), (t._result = e), Q(A, t)); + } + function E(t, e, n, r) { + var o = t._subscribers, + i = o.length; + (t._onerror = null), + (o[i] = e), + (o[i + it] = n), + (o[i + st] = r), + 0 === i && t._state && Q(T, t); + } + function T(t) { + var e = t._subscribers, + n = t._state; + if (0 !== e.length) { + for (var r, o, i = t._result, s = 0; s < e.length; s += 3) + (r = e[s]), (o = e[s + n]), r ? x(n, r, o, i) : o(i); + t._subscribers.length = 0; + } + } + function M() { + this.error = null; + } + function P(t, e) { + try { + return t(e); + } catch (n) { + return (ct.error = n, ct); + } + } + function x(t, n, r, o) { + var i, + s, + u, + c, + a = e(r); + if (a) { + if ( + ((i = P(r, o)), + i === ct ? ((c = !0), (s = i.error), (i = null)) : (u = !0), + n === i) + ) + return void j(n, d()); + } else (i = o), (u = !0); + n._state !== ot || + (a && u ? g(n, i) : c ? j(n, s) : t === it ? S(n, i) : t === st && j(n, i)); + } + function C(t, e) { + try { + e( + function(e) { + g(t, e); + }, + function(e) { + j(t, e); + } + ); + } catch (n) { + j(t, n); + } + } + function O() { + return at++; + } + function k(t) { + (t[rt] = at++), (t._state = void 0), (t._result = void 0), (t._subscribers = []); + } + function Y(t) { + return new _t(this, t).promise; + } + function q(t) { + var e = this; + return new e( + I(t) + ? function(n, r) { + for (var o = t.length, i = 0; o > i; i++) + e.resolve(t[i]).then(n, r); + } + : function(t, e) { + e(new TypeError('You must pass an array to race.')); + } + ); + } + function F(t) { + var e = this, + n = new e(p); + return (j(n, t), n); + } + function D() { + throw new TypeError( + 'You must pass a resolver function as the first argument to the promise constructor' + ); + } + function K() { + throw new TypeError( + "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function." + ); + } + function L(t) { + (this[rt] = O()), + (this._result = this._state = void 0), + (this._subscribers = []), + p !== t && + ('function' != typeof t && D(), this instanceof L ? C(this, t) : K()); + } + function N(t, e) { + (this._instanceConstructor = t), + (this.promise = new t(p)), + this.promise[rt] || k(this.promise), + Array.isArray(e) + ? ((this._input = e), + (this.length = e.length), + (this._remaining = e.length), + (this._result = new Array(this.length)), + 0 === this.length + ? S(this.promise, this._result) + : ((this.length = this.length || 0), + this._enumerate(), + 0 === this._remaining && S(this.promise, this._result))) + : j(this.promise, U()); + } + function U() { + return new Error('Array Methods must be provided an Array'); + } + function W() { + var t; + if ('undefined' != typeof global) t = global; + else if ('undefined' != typeof self) t = self; + else + try { + t = Function('return this')(); + } catch (e) { + throw new Error( + 'polyfill failed because global object is unavailable in this environment' + ); + } + var n = t.Promise; + (!n || + '[object Promise]' !== Object.prototype.toString.call(n.resolve()) || + n.cast) && + (t.Promise = pt); + } + var z; + z = Array.isArray + ? Array.isArray + : function(t) { + return '[object Array]' === Object.prototype.toString.call(t); + }; + var B, + G, + H, + I = z, + J = 0, + Q = function(t, e) { + (tt[J] = t), (tt[J + 1] = e), (J += 2), 2 === J && (G ? G(a) : H()); + }, + R = 'undefined' != typeof window ? window : void 0, + V = R || {}, + X = V.MutationObserver || V.WebKitMutationObserver, + Z = + 'undefined' == typeof self && + 'undefined' != typeof process && + '[object process]' === {}.toString.call(process), + $ = + 'undefined' != typeof Uint8ClampedArray && + 'undefined' != typeof importScripts && + 'undefined' != typeof MessageChannel, + tt = new Array(1e3); + H = Z + ? o() + : X + ? s() + : $ + ? u() + : void 0 === R && 'function' == typeof require + ? f() + : c(); + var et = l, + nt = h, + rt = Math.random() + .toString(36) + .substring(16), + ot = void 0, + it = 1, + st = 2, + ut = new M(), + ct = new M(), + at = 0, + ft = Y, + lt = q, + ht = F, + pt = L; + (L.all = ft), + (L.race = lt), + (L.resolve = nt), + (L.reject = ht), + (L._setScheduler = n), + (L._setAsap = r), + (L._asap = Q), + (L.prototype = { + constructor: L, + then: et, + "catch": function(t) { + return this.then(null, t); + }, + }); + var _t = N; + (N.prototype._enumerate = function() { + for (var t = this.length, e = this._input, n = 0; this._state === ot && t > n; n++) + this._eachEntry(e[n], n); + }), + (N.prototype._eachEntry = function(t, e) { + var n = this._instanceConstructor, + r = n.resolve; + if (r === nt) { + var o = v(t); + if (o === et && t._state !== ot) this._settledAt(t._state, e, t._result); + else if ('function' != typeof o) this._remaining--, (this._result[e] = t); + else if (n === pt) { + var i = new n(p); + w(i, t, o), this._willSettleAt(i, e); + } else + this._willSettleAt( + new n(function(e) { + e(t); + }), + e + ); + } else this._willSettleAt(r(t), e); + }), + (N.prototype._settledAt = function(t, e, n) { + var r = this.promise; + r._state === ot && + (this._remaining--, t === st ? j(r, n) : (this._result[e] = n)), + 0 === this._remaining && S(r, this._result); + }), + (N.prototype._willSettleAt = function(t, e) { + var n = this; + E( + t, + void 0, + function(t) { + n._settledAt(it, e, t); + }, + function(t) { + n._settledAt(st, e, t); + } + ); + }); + var dt = W, + vt = {Promise: pt, polyfill: dt}; + 'function' == typeof define && define.amd + ? define(function() { + return vt; + }) + : 'undefined' != typeof module && module.exports + ? (module.exports = vt) + : 'undefined' != typeof this && (this.ES6Promise = vt), + dt(); + }.call(this)); + + } +} + +var promiseExec = function(sql, params, counterStep, counterTotal) { + return new utils.global.Promise(function(resolve, reject) { + alasql(sql, params, function(data, err) { + if (err) { + reject(err); + } else { + if (counterStep && counterTotal && alasql.options.progress !== false) { + alasql.options.progress(counterStep, counterTotal); + } + resolve(data); + } + }); + }); +}; + +var promiseAll = function(sqlParamsArray) { + if (sqlParamsArray.length < 1) { + return; + } + + var active, sql, params; + + var execArray = []; + + for (var i = 0; i < sqlParamsArray.length; i++) { + active = sqlParamsArray[i]; + + if (typeof active === 'string') { + active = [active]; + } + + if (!utils.isArray(active) || active.length < 1 || 2 < active.length) { + throw new Error('Error in .promise parameter'); + } + + sql = active[0]; + params = active[1] || undefined; + + execArray.push(promiseExec(sql, params, i, sqlParamsArray.length)); + } + + return utils.global.Promise.all(execArray); +}; + +alasql.promise = function(sql, params) { + if (typeof Promise === 'undefined') { + throw new Error('Please include a Promise/A+ library'); + } + + if (typeof sql === 'string') { + return promiseExec(sql, params); + } + + if (!utils.isArray(sql) || sql.length < 1 || typeof params !== 'undefined') { + throw new Error('Error in .promise parameters'); + } + return promiseAll(sql); +}; + +/* +// +// Database class for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +// Main Database class + +/** + @class Database + */ + +var Database = (alasql.Database = function(databaseid) { + var self = this; + + // self.prototype = this; + + if (self === alasql) { + if (databaseid) { + // if(alasql.databases[databaseid]) { + self = alasql.databases[databaseid]; + // } else { + alasql.databases[databaseid] = self; + // } + if (!self) { + throw new Error('Database "' + databaseid + '" not found'); + } + } else { + // Create new database (or get alasql?) + self = alasql.databases.alasql; + // For SQL Server examples, USE tempdb + if (alasql.options.tsql) { + alasql.databases.tempdb = alasql.databases.alasql; + } + // self = new Database(databaseid); // to call without new + } + } + if (!databaseid) { + databaseid = 'db' + alasql.databasenum++; // Random name + } + + // Step 1 + self.databaseid = databaseid; + alasql.databases[databaseid] = self; + self.dbversion = 0; + + //Steps 2-5 + self.tables = {}; + self.views = {}; + self.triggers = {}; + self.indices = {}; + + // Step 6: Objects storage + self.objects = {}; + self.counter = 0; + + self.resetSqlCache(); + return self; +}); + +/** + Reset SQL statements cache + */ + +Database.prototype.resetSqlCache = function() { + this.sqlCache = {}; // Cache for compiled SQL statements + this.sqlCacheSize = 0; +}; + +// Main SQL function + +/** + Run SQL statement on database + @param {string} sql SQL statement + @param [object] params Parameters + @param {function} cb callback + */ + +Database.prototype.exec = function(sql, params, cb) { + return alasql.dexec(this.databaseid, sql, params, cb); +}; + +Database.prototype.autoval = function(tablename, colname, getNext) { + return alasql.autoval(tablename, colname, getNext, this.databaseid); +}; + +// Aliases like MS SQL + +/* +// +// Transactio class for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +Database.prototype.transaction = function(cb) { + var tx = new alasql.Transaction(this.databaseid); + var res = cb(tx); + return res; +}; + +// Transaction class (for WebSQL compatibility) + +/** + Transaction class + @class Transaction + */ + +var Transaction = (alasql.Transaction = function(databaseid) { + this.transactionid = Date.now(); + this.databaseid = databaseid; + this.commited = false; + this.dbversion = alasql.databases[databaseid].dbversion; + // this.bank = cloneDeep(alasql.databases[databaseid]); + this.bank = JSON.stringify(alasql.databases[databaseid]); + // TODO CLone Tables with insertfns + + return this; +}); + +// Main class + +// Commit + +/** + Commit transaction + */ +Transaction.prototype.commit = function() { + this.commited = true; + alasql.databases[this.databaseid].dbversion = Date.now(); + delete this.bank; +}; + +// Rollback +/** + Rollback transaction + */ +Transaction.prototype.rollback = function() { + if (!this.commited) { + alasql.databases[this.databaseid] = JSON.parse(this.bank); + // alasql.databases[this.databaseid].tables = this.bank; + // alasql.databases[this.databaseid].dbversion = this.dbversion; + delete this.bank; + } else { + throw new Error('Transaction already commited'); + } +}; + +// Transactions stub + +/** + Execute SQL statement + @param {string} sql SQL statement + @param {object} params Parameters + @param {function} cb Callback function + @return result + */ +Transaction.prototype.exec = function(sql, params, cb) { + + return alasql.dexec(this.databaseid, sql, params, cb); +}; + +Transaction.prototype.executeSQL = Transaction.prototype.exec; + +/* +// +// Table class for Alasql.js +// Date: 14.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +// Table class +var Table = (alasql.Table = function(params) { + // Step 1: Data array + this.data = []; + + // Step 2: Columns + this.columns = []; + this.xcolumns = {}; + + // Step 3: indices + this.inddefs = {}; + this.indices = {}; + this.uniqs = {}; + this.uniqdefs = {}; + + // Step 4: identities + this.identities = {}; + + // Step 5: checkfn... + this.checks = []; + this.checkfns = []; // For restore... to be done... + + // Step 6: INSERT/DELETE/UPDATE + + // Step 7: Triggers... + // Create trigger hubs + this.beforeinsert = {}; + this.afterinsert = {}; + this.insteadofinsert = {}; + + this.beforedelete = {}; + this.afterdelete = {}; + this.insteadofdelete = {}; + + this.beforeupdate = {}; + this.afterupdate = {}; + this.insteadofupdate = {}; + + // Done + extend(this, params); +}); + +Table.prototype.indexColumns = function() { + var self = this; + self.xcolumns = {}; + self.columns.forEach(function(col) { + self.xcolumns[col.columnid] = col; + }); +}; + +/* +// +// View class for Alasql.js +// Date: 14.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +// Table class +var View = (alasql.View = function(params) { + // Columns + this.columns = []; + this.xcolumns = {}; + // Data array + this.query = []; + + extend(this, params); +}); + +/* +// +// Query class for Alasql.js +// Date: 14.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +// Table class + +/** + @class Query Main query class + */ +var Query = (alasql.Query = function(params) { + this.alasql = alasql; + + // Columns + this.columns = []; + this.xcolumns = {}; + this.selectGroup = []; + this.groupColumns = {}; + // Data array + extend(this, params); +}); + +/** + @class Recordset data object + */ +var Recordset = (alasql.Recordset = function(params) { + // Data array + extend(this, params); +}); + +/* +// +// Parser helper for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +var yy = (alasqlparser.yy = alasql.yy = {}); + +// Utility +yy.extend = extend; +// Option for case sensitive +yy.casesensitive = alasql.options.casesensitive; + +// Base class for all yy classes +var Base = (yy.Base = function(params) { + return yy.extend(this, params); +}); + +Base.prototype.toString = function() {}; +Base.prototype.toType = function() {}; +Base.prototype.toJS = function() {}; + +Base.prototype.compile = returnUndefined; +Base.prototype.exec = function() {}; + +Base.prototype.compile = returnUndefined; +Base.prototype.exec = function() {}; + +/* +// +// Statements class for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +// Statements container +yy.Statements = function(params) { + return yy.extend(this, params); +}; + +yy.Statements.prototype.toString = function() { + return this.statements + .map(function(st) { + return st.toString(); + }) + .join('; '); +}; + +// Compile array of statements into single statement +yy.Statements.prototype.compile = function(db) { + var statements = this.statements.map(function(st) { + return st.compile(db); + }); + if (statements.length === 1) { + return statements[0]; + } else { + return function(params, cb) { + var res = statements.map(function(st) { + return st(params); + }); + if (cb) { + cb(res); + } + return res; + }; + } +}; + +/* global alasql */ +/* global yy */ +/* +// +// SEARCH for Alasql.js +// Date: 04.05.2015 +// (c) 2015, Andrey Gershun +// +*/ + +function doSearch(databaseid, params, cb) { + var res; + var stope = {}; + var fromdata; + var selectors = cloneDeep(this.selectors); + + function processSelector(selectors, sidx, value) { + // var val; + + var val, // temp values use many places + nest, // temp value used many places + r, // temp value used many places + sel = selectors[sidx]; + + // if(!alasql.srch[sel.srchid]) { + // throw new Error('Selector "'+sel.srchid+'" not found'); + // }; + + var SECURITY_BREAK = 100000; + + if (sel.selid) { + // TODO Process Selector + if (sel.selid === 'PATH') { + var queue = [{node: value, stack: []}]; + var visited = {}; + //var path = []; + var objects = alasql.databases[alasql.useid].objects; + while (queue.length > 0) { + var q = queue.shift(); + var node = q.node; + var stack = q.stack; + var r = processSelector(sel.args, 0, node); + if (r.length > 0) { + if (sidx + 1 + 1 > selectors.length) { + return stack; + } else { + var rv = []; + if (stack && stack.length > 0) { + stack.forEach(function(stv) { + rv = rv.concat(processSelector(selectors, sidx + 1, stv)); + }); + } + return rv; + // return processSelector(selectors,sidx+1,stack); + } + } else { + if (typeof visited[node.$id] !== 'undefined') { + continue; + } else { + + visited[node.$id] = true; + if (node.$out && node.$out.length > 0) { + node.$out.forEach(function(edgeid) { + var edge = objects[edgeid]; + var stack2 = stack.concat(edge); + stack2.push(objects[edge.$out[0]]); + queue.push({ + node: objects[edge.$out[0]], + stack: stack2, + }); + }); + } + } + } + } + // Else return fail + return []; + } + if (sel.selid === 'NOT') { + var nest = processSelector(sel.args, 0, value); + + if (nest.length > 0) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + return processSelector(selectors, sidx + 1, value); + } + } + } else if (sel.selid === 'DISTINCT') { + var nest; + if (typeof sel.args === 'undefined' || sel.args.length === 0) { + nest = distinctArray(value); + } else { + nest = processSelector(sel.args, 0, value); + } + if (nest.length === 0) { + return []; + } else { + var res = distinctArray(nest); + if (sidx + 1 + 1 > selectors.length) { + return res; + } else { + return processSelector(selectors, sidx + 1, res); + } + } + } else if (sel.selid === 'AND') { + var res = true; + sel.args.forEach(function(se) { + res = res && processSelector(se, 0, value).length > 0; + }); + if (!res) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + return processSelector(selectors, sidx + 1, value); + } + } + } else if (sel.selid === 'OR') { + var res = false; + sel.args.forEach(function(se) { + res = res || processSelector(se, 0, value).length > 0; + }); + if (!res) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + return processSelector(selectors, sidx + 1, value); + } + } + } else if (sel.selid === 'ALL') { + var nest = processSelector(sel.args[0], 0, value); + if (nest.length === 0) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return nest; + } else { + return processSelector(selectors, sidx + 1, nest); + } + } + } else if (sel.selid === 'ANY') { + var nest = processSelector(sel.args[0], 0, value); + + if (nest.length === 0) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return [nest[0]]; + } else { + return processSelector(selectors, sidx + 1, [nest[0]]); + } + } + } else if (sel.selid === 'UNIONALL') { + var nest = []; + sel.args.forEach(function(se) { + nest = nest.concat(processSelector(se, 0, value)); + }); + if (nest.length === 0) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return nest; + } else { + return processSelector(selectors, sidx + 1, nest); + } + } + } else if (sel.selid === 'UNION') { + var nest = []; + sel.args.forEach(function(se) { + nest = nest.concat(processSelector(se, 0, value)); + }); + var nest = distinctArray(nest); + if (nest.length === 0) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return nest; + } else { + return processSelector(selectors, sidx + 1, nest); + } + } + } else if (sel.selid === 'IF') { + var nest = processSelector(sel.args, 0, value); + + if (nest.length === 0) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + return processSelector(selectors, sidx + 1, value); + } + } + } else if (sel.selid === 'REPEAT') { + + var lvar, + lmax, + lmin = sel.args[0].value; + if (!sel.args[1]) { + lmax = lmin; // Add security break + } else { + lmax = sel.args[1].value; + } + if (sel.args[2]) { + lvar = sel.args[2].variable; + } + //var lsel = sel.sels; + + var retval = []; + + if (lmin === 0) { + if (sidx + 1 + 1 > selectors.length) { + retval = [value]; + } else { + if (lvar) { + alasql.vars[lvar] = 0; + } + retval = retval.concat(processSelector(selectors, sidx + 1, value)); + } + } + + // var nests = processSelector(sel.sels,0,value).slice(); + if (lmax > 0) { + var nests = [{value: value, lvl: 1}]; + + var i = 0; + while (nests.length > 0) { + var nest = nests[0]; + + nests.shift(); + if (nest.lvl <= lmax) { + if (lvar) { + alasql.vars[lvar] = nest.lvl; + } + + var nest1 = processSelector(sel.sels, 0, nest.value); + + nest1.forEach(function(n) { + nests.push({value: n, lvl: nest.lvl + 1}); + }); + if (nest.lvl >= lmin) { + if (sidx + 1 + 1 > selectors.length) { + retval = retval.concat(nest1); + //return nests; + } else { + nest1.forEach(function(n) { + retval = retval.concat( + processSelector(selectors, sidx + 1, n) + ); + }); + } + } + } + // Security brake + i++; + if (i > SECURITY_BREAK) { + throw new Error('Security brake. Number of iterations = ' + i); + } + } + } + return retval; + } else if (sel.selid === 'OF') { + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + var r1 = []; + Object.keys(value).forEach(function(keyv) { + alasql.vars[sel.args[0].variable] = keyv; + r1 = r1.concat(processSelector(selectors, sidx + 1, value[keyv])); + }); + return r1; + } + } else if (sel.selid === 'TO') { + + var oldv = alasql.vars[sel.args[0]]; + var newv = []; + if (oldv !== undefined) { + + newv = oldv.slice(0); + + } else { + newv = []; + } + newv.push(value); + + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + alasql.vars[sel.args[0]] = newv; + var r1 = processSelector(selectors, sidx + 1, value); + + alasql.vars[sel.args[0]] = oldv; + return r1; + } + + } else if (sel.selid === 'ARRAY') { + var nest = processSelector(sel.args, 0, value); + if (nest.length > 0) { + val = nest; + } else { + return []; + } + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'SUM') { + var nest = processSelector(sel.args, 0, value); + if (nest.length > 0) { + var val = nest.reduce(function(sum, current) { + return sum + current; + }, 0); + } else { + return []; + } + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'AVG') { + nest = processSelector(sel.args, 0, value); + if (nest.length > 0) { + val = + nest.reduce(function(sum, current) { + return sum + current; + }, 0) / nest.length; + } else { + return []; + } + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'COUNT') { + nest = processSelector(sel.args, 0, value); + if (nest.length > 0) { + val = nest.length; + } else { + return []; + } + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'FIRST') { + nest = processSelector(sel.args, 0, value); + if (nest.length > 0) { + val = nest[0]; + } else { + return []; + } + + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'LAST') { + nest = processSelector(sel.args, 0, value); + if (nest.length > 0) { + val = nest[nest.length - 1]; + } else { + return []; + } + + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'MIN') { + nest = processSelector(sel.args, 0, value); + if (nest.length === 0) { + return []; + } + var val = nest.reduce(function(min, current) { + return Math.min(min, current); + }, Infinity); + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'MAX') { + var nest = processSelector(sel.args, 0, value); + if (nest.length === 0) { + return []; + } + var val = nest.reduce(function(max, current) { + return Math.max(max, current); + }, -Infinity); + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'PLUS') { + var retval = []; + // retval = retval.concat(processSelector(selectors,sidx+1,n)) + var nests = processSelector(sel.args, 0, value).slice(); + if (sidx + 1 + 1 > selectors.length) { + retval = retval.concat(nests); + } else { + nests.forEach(function(n) { + retval = retval.concat(processSelector(selectors, sidx + 1, n)); + }); + } + + var i = 0; + while (nests.length > 0) { + // nest = nests[0]; + // nests.shift(); + var nest = nests.shift(); + + nest = processSelector(sel.args, 0, nest); + + nests = nests.concat(nest); + + if (sidx + 1 + 1 > selectors.length) { + retval = retval.concat(nest); + //return retval; + } else { + nest.forEach(function(n) { + + var rn = processSelector(selectors, sidx + 1, n); + + retval = retval.concat(rn); + }); + } + + // Security brake + i++; + if (i > SECURITY_BREAK) { + throw new Error('Security brake. Number of iterations = ' + i); + } + } + return retval; + + } else if (sel.selid === 'STAR') { + var retval = []; + retval = processSelector(selectors, sidx + 1, value); + var nests = processSelector(sel.args, 0, value).slice(); + if (sidx + 1 + 1 > selectors.length) { + retval = retval.concat(nests); + //return nests; + } else { + nests.forEach(function(n) { + retval = retval.concat(processSelector(selectors, sidx + 1, n)); + }); + } + var i = 0; + while (nests.length > 0) { + var nest = nests[0]; + nests.shift(); + + nest = processSelector(sel.args, 0, nest); + + nests = nests.concat(nest); + + if (sidx + 1 + 1 <= selectors.length) { + nest.forEach(function(n) { + retval = retval.concat(processSelector(selectors, sidx + 1, n)); + }); + } + + // Security brake + i++; + if (i > SECURITY_BREAK) { + throw new Error('Loop brake. Number of iterations = ' + i); + } + } + + return retval; + } else if (sel.selid === 'QUESTION') { + var retval = []; + retval = retval.concat(processSelector(selectors, sidx + 1, value)); + var nest = processSelector(sel.args, 0, value); + if (sidx + 1 + 1 <= selectors.length) { + nest.forEach(function(n) { + retval = retval.concat(processSelector(selectors, sidx + 1, n)); + }); + } + return retval; + } else if (sel.selid === 'WITH') { + var nest = processSelector(sel.args, 0, value); + + if (nest.length === 0) { + return []; + } else { + + var r = {status: 1, values: nest}; + } + } else if (sel.selid === 'ROOT') { + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + return processSelector(selectors, sidx + 1, fromdata); + } + } else { + throw new Error('Wrong selector ' + sel.selid); + } + } else if (sel.srchid) { + var r = alasql.srch[sel.srchid.toUpperCase()](value, sel.args, stope, params); + + } else { + throw new Error('Selector not found'); + } + + if (typeof r === 'undefined') { + r = {status: 1, values: [value]}; + } + + var res = []; + if (r.status === 1) { + var arr = r.values; + + if (sidx + 1 + 1 > selectors.length) { + // if(sidx+1+1 > selectors.length) { + res = arr; + + } else { + for (var i = 0; i < r.values.length; i++) { + res = res.concat(processSelector(selectors, sidx + 1, arr[i])); + } + } + } + return res; + } + + if (selectors !== undefined && selectors.length > 0) { + + if ( + selectors && + selectors[0] && + selectors[0].srchid === 'PROP' && + selectors[0].args && + selectors[0].args[0] + ) { + + if (selectors[0].args[0].toUpperCase() === 'XML') { + stope.mode = 'XML'; + selectors.shift(); + } else if (selectors[0].args[0].toUpperCase() === 'HTML') { + stope.mode = 'HTML'; + selectors.shift(); + } else if (selectors[0].args[0].toUpperCase() === 'JSON') { + stope.mode = 'JSON'; + selectors.shift(); + } + } + if (selectors.length > 0 && selectors[0].srchid === 'VALUE') { + stope.value = true; + selectors.shift(); + } + } + + if (this.from instanceof yy.Column) { + var dbid = this.from.databaseid || databaseid; + fromdata = alasql.databases[dbid].tables[this.from.columnid].data; + //selectors.unshift({srchid:'CHILD'}); + } else if (this.from instanceof yy.FuncValue && alasql.from[this.from.funcid.toUpperCase()]) { + var args = this.from.args.map(function(arg) { + var as = arg.toJS(); + + var fn = new Function('params,alasql', 'var y;return ' + as).bind(this); + return fn(params, alasql); + }); + + fromdata = alasql.from[this.from.funcid.toUpperCase()].apply(this, args); + + } else if (typeof this.from === 'undefined') { + fromdata = alasql.databases[databaseid].objects; + } else { + var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS()); + fromdata = fromfn(params, alasql); + // Check for Mogo Collections + if ( + typeof Mongo === 'object' && + typeof Mongo.Collection !== 'object' && + fromdata instanceof Mongo.Collection + ) { + fromdata = fromdata.find().fetch(); + } + + // if(typeof fromdata == 'object' && Array.isArray(fromdata)) { + // selectors.unshift({srchid:'CHILD'}); + // } + } + + // If source data is array than first step is to run over array + // var selidx = 0; + // var selvalue = fromdata; + + if (selectors !== undefined && selectors.length > 0) { + // Init variables for TO() selectors + + if (false) { + selectors.forEach(function(selector) { + if (selector.srchid === 'TO') { + //* @todo move to TO selector + alasql.vars[selector.args[0]] = []; + // TODO - process nested selectors + } + }); + } + + res = processSelector(selectors, 0, fromdata); + } else { + res = fromdata; + } + + if (this.into) { + var a1, a2; + if (typeof this.into.args[0] !== 'undefined') { + a1 = new Function('params,alasql', 'var y;return ' + this.into.args[0].toJS())( + params, + alasql + ); + } + if (typeof this.into.args[1] !== 'undefined') { + a2 = new Function('params,alasql', 'var y;return ' + this.into.args[1].toJS())( + params, + alasql + ); + } + res = alasql.into[this.into.funcid.toUpperCase()](a1, a2, res, [], cb); + } else { + if (stope.value && res.length > 0) { + res = res[0]; + } + if (cb) { + res = cb(res); + } + } + return res; +} + +/** + Search class + @class + @example + SEARCH SUM(/a) FROM ? -- search over parameter object +*/ + +yy.Search = function(params) { + return yy.extend(this, params); +}; + +yy.Search.prototype.toString = function() { + var s = 'SEARCH' + ' '; + if (this.selectors) { + s += this.selectors.toString(); + } + if (this.from) { + s += 'FROM' + ' ' + this.from.toString(); + } + + return s; +}; + +yy.Search.prototype.toJS = function(context) { + + var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; + // var s = ''; + return s; +}; + +yy.Search.prototype.compile = function(databaseid) { + var dbid = databaseid; + var self = this; + + var statement = function(params, cb) { + + var res; + doSearch.bind(self)(dbid, params, function(data) { + + res = modify(statement.query, data); + + if (cb) { + res = cb(res); + } + }); + + // if(cb) res = cb(res); + return res; + }; + statement.query = {}; + return statement; +}; + +// List of search functions +alasql.srch = {}; + +alasql.srch.PROP = function(val, args, stope) { + + if (stope.mode === 'XML') { + var arr = []; + val.children.forEach(function(v) { + if (v.name.toUpperCase() === args[0].toUpperCase()) { + arr.push(v); + } + }); + if (arr.length > 0) { + return {status: 1, values: arr}; + } else { + return {status: -1, values: []}; + } + } else { + if ( + typeof val !== 'object' || + val === null || + typeof args !== 'object' || + typeof val[args[0]] === 'undefined' + ) { + return {status: -1, values: []}; + } else { + return {status: 1, values: [val[args[0]]]}; + } + } +}; + +alasql.srch.APROP = function(val, args) { + if ( + typeof val !== 'object' || + val === null || + typeof args !== 'object' || + typeof val[args[0]] === 'undefined' + ) { + return {status: 1, values: [undefined]}; + } else { + return {status: 1, values: [val[args[0]]]}; + } +}; + +// Test expression +alasql.srch.EQ = function(val, args, stope, params) { + var exprs = args[0].toJS('x', ''); + var exprfn = new Function('x,alasql,params', 'return ' + exprs); + if (val === exprfn(val, alasql, params)) { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } +}; + +// Test expression +alasql.srch.LIKE = function(val, args, stope, params) { + var exprs = args[0].toJS('x', ''); + var exprfn = new Function('x,alasql,params', 'return ' + exprs); + if ( + val.toUpperCase().match( + new RegExp( + '^' + + exprfn(val, alasql, params) + .toUpperCase() + .replace(/%/g, '.*') + .replace(/\?|_/g, '.') + + '$' + ), + 'g' + ) + ) { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } +}; + +alasql.srch.ATTR = function(val, args, stope) { + if (stope.mode === 'XML') { + if (typeof args === 'undefined') { + return {status: 1, values: [val.attributes]}; + } else { + if ( + typeof val === 'object' && + typeof val.attributes === 'object' && + typeof val.attributes[args[0]] !== 'undefined' + ) { + return {status: 1, values: [val.attributes[args[0]]]}; + } else { + return {status: -1, values: []}; + } + } + } else { + throw new Error('ATTR is not using in usual mode'); + } +}; + +alasql.srch.CONTENT = function(val, args, stope) { + if (stope.mode === 'XML') { + return {status: 1, values: [val.content]}; + } else { + throw new Error('ATTR is not using in usual mode'); + } +}; + +alasql.srch.SHARP = function(val, args) { + var obj = alasql.databases[alasql.useid].objects[args[0]]; + if (typeof val !== 'undefined' && val === obj) { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } +}; + +alasql.srch.PARENT = function(/*val,args,stope*/) { + // TODO: implement + console.error('PARENT not implemented', arguments); + + return {status: -1, values: []}; +}; + +alasql.srch.CHILD = function(val, args, stope) { + + if (typeof val === 'object') { + if (Array.isArray(val)) { + return {status: 1, values: val}; + } else { + if (stope.mode === 'XML') { + return { + status: 1, + values: Object.keys(val.children).map(function(key) { + return val.children[key]; + }), + }; + } else { + return { + status: 1, + values: Object.keys(val).map(function(key) { + return val[key]; + }), + }; + } + } + } else { + // If primitive value + return {status: 1, values: []}; + } +}; + +// Return all keys +alasql.srch.KEYS = function(val) { + if (typeof val === 'object' && val !== null) { + return {status: 1, values: Object.keys(val)}; + } else { + // If primitive value + return {status: 1, values: []}; + } +}; + +// Test expression +alasql.srch.WHERE = function(val, args, stope, params) { + var exprs = args[0].toJS('x', ''); + var exprfn = new Function('x,alasql,params', 'return ' + exprs); + if (exprfn(val, alasql, params)) { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } +}; + +alasql.srch.NAME = function(val, args) { + if (val.name === args[0]) { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } +}; + +alasql.srch.CLASS = function(val, args) { + + // Please avoid `===` here + if (val.$class == args) { + // jshint ignore:line + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } +}; + +// Transform expression +alasql.srch.VERTEX = function(val) { + if (val.$node === 'VERTEX') { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } +}; + +// Transform expression +alasql.srch.INSTANCEOF = function(val, args) { + if (val instanceof alasql.fn[args[0]]) { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } +}; + +// Transform expression +alasql.srch.EDGE = function(val) { + if (val.$node === 'EDGE') { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } +}; + +// Transform expression +alasql.srch.EX = function(val, args, stope, params) { + var exprs = args[0].toJS('x', ''); + var exprfn = new Function('x,alasql,params', 'return ' + exprs); + return {status: 1, values: [exprfn(val, alasql, params)]}; +}; + +// Transform expression +alasql.srch.RETURN = function(val, args, stope, params) { + var res = {}; + if (args && args.length > 0) { + args.forEach(function(arg) { + var exprs = arg.toJS('x', ''); + var exprfn = new Function('x,alasql,params', 'return ' + exprs); + if (typeof arg.as === 'undefined') { + arg.as = arg.toString(); + } + res[arg.as] = exprfn(val, alasql, params); + }); + } + return {status: 1, values: [res]}; +}; + +// Transform expression +alasql.srch.REF = function(val) { + return {status: 1, values: [alasql.databases[alasql.useid].objects[val]]}; +}; + +// Transform expression +alasql.srch.OUT = function(val) { + if (val.$out && val.$out.length > 0) { + var res = val.$out.map(function(v) { + return alasql.databases[alasql.useid].objects[v]; + }); + return {status: 1, values: res}; + } else { + return {status: -1, values: []}; + } +}; + +alasql.srch.OUTOUT = function(val) { + if (val.$out && val.$out.length > 0) { + var res = []; + val.$out.forEach(function(v) { + var av = alasql.databases[alasql.useid].objects[v]; + if (av && av.$out && av.$out.length > 0) { + av.$out.forEach(function(vv) { + res = res.concat(alasql.databases[alasql.useid].objects[vv]); + }); + } + }); + return {status: 1, values: res}; + } else { + return {status: -1, values: []}; + } +}; + +// Transform expression +alasql.srch.IN = function(val) { + if (val.$in && val.$in.length > 0) { + var res = val.$in.map(function(v) { + return alasql.databases[alasql.useid].objects[v]; + }); + return {status: 1, values: res}; + } else { + return {status: -1, values: []}; + } +}; + +alasql.srch.ININ = function(val) { + if (val.$in && val.$in.length > 0) { + var res = []; + val.$in.forEach(function(v) { + var av = alasql.databases[alasql.useid].objects[v]; + if (av && av.$in && av.$in.length > 0) { + av.$in.forEach(function(vv) { + res = res.concat(alasql.databases[alasql.useid].objects[vv]); + }); + } + }); + return {status: 1, values: res}; + } else { + return {status: -1, values: []}; + } +}; + +// Transform expression +alasql.srch.AS = function(val, args) { + alasql.vars[args[0]] = val; + return {status: 1, values: [val]}; +}; + +// Transform expression +alasql.srch.AT = function(val, args) { + var v = alasql.vars[args[0]]; + return {status: 1, values: [v]}; +}; + +// Transform expression +alasql.srch.CLONEDEEP = function(val) { + // TODO something wrong + var z = cloneDeep(val); + return {status: 1, values: [z]}; +}; + +// // Transform expression +// alasql.srch.DELETE = function(val,args) { + +// }; + +// Transform expression +alasql.srch.SET = function(val, args, stope, params) { + + var s = args + .map(function(st) { + + if (st.method === '@') { + return "alasql.vars['" + st.variable + "']=" + st.expression.toJS('x', ''); + } else if (st.method === '$') { + return "params['" + st.variable + "']=" + st.expression.toJS('x', ''); + } else { + return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); + } + }) + .join(';'); + var setfn = new Function('x,params,alasql', s); + + setfn(val, params, alasql); + + return {status: 1, values: [val]}; +}; + +alasql.srch.ROW = function(val, args, stope, params) { + var s = 'var y;return ['; + + s += args + .map(function(arg) { + return arg.toJS('x', ''); + }) + .join(','); + s += ']'; + var setfn = new Function('x,params,alasql', s); + var rv = setfn(val, params, alasql); + + return {status: 1, values: [rv]}; +}; + +alasql.srch.D3 = function(val) { + if (val.$node !== 'VERTEX' && val.$node === 'EDGE') { + val.source = val.$in[0]; + val.target = val.$out[0]; + } + + return {status: 1, values: [val]}; +}; + +var compileSearchOrder = function(order) { + if (order) { + + if ( + order && + order.length === 1 && + order[0].expression && + typeof order[0].expression === 'function' + ) { + + var func = order[0].expression; + + return function(a, b) { + var ra = func(a), + rb = func(b); + if (ra > rb) { + return 1; + } + if (ra === rb) { + return 0; + } + return -1; + }; + } + + var s = ''; + var sk = ''; + order.forEach(function(ord) { + + // Date conversion + var dg = ''; + + if (ord.expression instanceof yy.NumValue) { + ord.expression = self.columns[ord.expression.value - 1]; + } + + if (ord.expression instanceof yy.Column) { + var columnid = ord.expression.columnid; + + if (alasql.options.valueof) { + dg = '.valueOf()'; // TODO Check + } + // COLLATE NOCASE + if (ord.nocase) { + dg += '.toUpperCase()'; + } + + if (columnid === '_') { + s += + 'if(a' + + dg + + (ord.direction === 'ASC' ? '>' : '<') + + 'b' + + dg + + ')return 1;'; + s += 'if(a' + dg + '==b' + dg + '){'; + } else { + s += + "if((a['" + + columnid + + "']||'')" + + dg + + (ord.direction === 'ASC' ? '>' : '<') + + "(b['" + + columnid + + "']||'')" + + dg + + ')return 1;'; + s += + "if((a['" + + columnid + + "']||'')" + + dg + + "==(b['" + + columnid + + "']||'')" + + dg + + '){'; + } + } else { + dg = '.valueOf()'; + // COLLATE NOCASE + if (ord.nocase) { + dg += '.toUpperCase()'; + } + s += + 'if((' + + ord.toJS('a', '') + + "||'')" + + dg + + (ord.direction === 'ASC' ? '>(' : '<(') + + ord.toJS('b', '') + + "||'')" + + dg + + ')return 1;'; + s += + 'if((' + + ord.toJS('a', '') + + "||'')" + + dg + + '==(' + + ord.toJS('b', '') + + "||'')" + + dg + + '){'; + } + + // TODO Add date comparision + // s += 'if(a[\''+columnid+"']"+dg+(ord.direction == 'ASC'?'>':'<')+'b[\''+columnid+"']"+dg+')return 1;'; + // s += 'if(a[\''+columnid+"']"+dg+'==b[\''+columnid+"']"+dg+'){'; + // } + sk += '}'; + }); + s += 'return 0;'; + s += sk + 'return -1'; + + return new Function('a,b', s); + } +}; + +alasql.srch.ORDERBY = function(val, args /*,stope*/) { + + var res = val.sort(compileSearchOrder(args)); + return {status: 1, values: res}; +}; + +// Main query procedure +function queryfn(query, oldscope, cb, A, B) { + var aaa = query.sources.length; + + var ms; + query.sourceslen = query.sources.length; + var slen = query.sourceslen; + query.query = query; // TODO Remove to prevent memory leaks + query.A = A; + query.B = B; + query.cb = cb; + query.oldscope = oldscope; + + // Run all subqueries before main statement + if (query.queriesfn) { + query.sourceslen += query.queriesfn.length; + slen += query.queriesfn.length; + + query.queriesdata = []; + + query.queriesfn.forEach(function(q, idx) { + // if(query.explain) ms = Date.now(); + + // var res = flatArray(q(query.params,null,queryfn2,(-idx-1),query)); + + // var res = flatArray(queryfn(q.query,null,queryfn2,(-idx-1),query)); + + q.query.params = query.params; + // query.queriesdata[idx] = + + // if(false) { + // queryfn(q.query,query.oldscope,queryfn2,(-idx-1),query); + // } else { + queryfn2([], -idx - 1, query); + // } + + // query.explaination.push({explid: query.explid++, description:'Query '+idx,ms:Date.now()-ms}); + // query.queriesdata[idx] = res; + // return res; + }); + + } + + var scope; + if (!oldscope) scope = {}; + else scope = cloneDeep(oldscope); + query.scope = scope; + + // First - refresh data sources + + var result; + query.sources.forEach(function(source, idx) { + // source.data = query.database.tables[source.tableid].data; + + source.query = query; + var rs = source.datafn(query, query.params, queryfn2, idx, alasql); + + if (typeof rs !== 'undefined') { + // TODO - this is a hack: check if result is array - check all cases and + // make it more logical + if ((query.intofn || query.intoallfn) && Array.isArray(rs)) rs = rs.length; + result = rs; + } + // + // Ugly hack to use in query.wherefn and source.srcwherefns functions + // constructions like this.queriesdata['test']. + // I can elimite it with source.srcwherefn.bind(this)() + // but it may be slow. + // + source.queriesdata = query.queriesdata; + }); + if (query.sources.length == 0 || 0 === slen) result = queryfn3(query); + + return result; +} + +function queryfn2(data, idx, query) { + + //console.trace(); + + if (idx >= 0) { + var source = query.sources[idx]; + source.data = data; + if (typeof source.data == 'function') { + source.getfn = source.data; + source.dontcache = source.getfn.dontcache; + + // var prevsource = query.sources[h-1]; + if ( + source.joinmode == 'OUTER' || + source.joinmode == 'RIGHT' || + source.joinmode == 'ANTI' + ) { + source.dontcache = false; + } + source.data = {}; + } + } else { + // subqueries + + query.queriesdata[-idx - 1] = flatArray(data); + + } + + query.sourceslen--; + if (query.sourceslen > 0) return; + + return queryfn3(query); +} + +function queryfn3(query) { + var scope = query.scope, + jlen; + + // Preindexation of data sources + // if(!oldscope) { + preIndex(query); + // } + + // query.sources.forEach(function(source) { + + // }); + + // Prepare variables + query.data = []; + query.xgroups = {}; + query.groups = []; + + // Level of Joins + var h = 0; + + // Start walking over data + + doJoin(query, scope, h); + + // If groupping, then filter groups with HAVING function + + if (query.groupfn) { + query.data = []; + if (0 === query.groups.length) { + var g = {}; + if (query.selectGroup.length > 0) { + + query.selectGroup.forEach(function(sg) { + if (sg.aggregatorid == 'COUNT' || sg.aggregatorid == 'SUM') { + g[sg.nick] = 0; + } else { + g[sg.nick] = undefined; + } + }); + } + query.groups = [g]; + + } + + // ****** + + if (query.aggrKeys.length > 0) { + var gfns = ''; + query.aggrKeys.forEach(function(col) { + gfns += + "g['" + + col.nick + + "']=alasql.aggr['" + + col.funcid + + "'](undefined,g['" + + col.nick + + "'],3);"; + // gfns += 'return g[\''+col.nick+'\];'; + }); + + var gfn = new Function('g,params,alasql', 'var y;' + gfns); + } + + // return "'"+colas+'\':alasql.aggr[\''+col.funcid+'\']('+colexp+',undefined,(acc={}),1),' + // +'\'__REDUCE__'+colas+'\':acc,'; + + // ******* + + // debugger; + // if(false && (query.groups.length == 1) && (Object.keys(query.groups[0]).length == 0)) { + + // } else { + for (var i = 0, ilen = query.groups.length; i < ilen; i++) { + var g = query.groups[i]; + + if (gfn) gfn(g, query.params, alasql); + + if (!query.havingfn || query.havingfn(g, query.params, alasql)) { + + var d = query.selectgfn(g, query.params, alasql); + query.data.push(d); + } + } + // } + + // query.groups = query.groups.filter(); + } + // Remove distinct values + doDistinct(query); + + // UNION / UNION ALL + if (query.unionallfn) { + // TODO Simplify this part of program + var ud, nd; + if (query.corresponding) { + if (!query.unionallfn.query.modifier) query.unionallfn.query.modifier = undefined; + ud = query.unionallfn(query.params); + } else { + if (!query.unionallfn.query.modifier) query.unionallfn.query.modifier = 'RECORDSET'; + nd = query.unionallfn(query.params); + ud = []; + ilen = nd.data.length; + for (var i = 0; i < ilen; i++) { + var r = {}; + for (var j = Math.min(query.columns.length, nd.columns.length) - 1; 0 <= j; j--) { + r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; + } + ud.push(r); + } + } + query.data = query.data.concat(ud); + } else if (query.unionfn) { + if (query.corresponding) { + if (!query.unionfn.query.modifier) query.unionfn.query.modifier = 'ARRAY'; + ud = query.unionfn(query.params); + } else { + if (!query.unionfn.query.modifier) query.unionfn.query.modifier = 'RECORDSET'; + nd = query.unionfn(query.params); + ud = []; + ilen = nd.data.length; + for (var i = 0; i < ilen; i++) { + r = {}; + jlen = Math.min(query.columns.length, nd.columns.length); + for (var j = 0; j < jlen; j++) { + r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; + } + ud.push(r); + } + } + + query.data = arrayUnionDeep(query.data, ud); + } else if (query.exceptfn) { + if (query.corresponding) { + if (!query.exceptfn.query.modifier) query.exceptfn.query.modifier = 'ARRAY'; + var ud = query.exceptfn(query.params); + } else { + if (!query.exceptfn.query.modifier) query.exceptfn.query.modifier = 'RECORDSET'; + var nd = query.exceptfn(query.params); + var ud = []; + for (var i = 0, ilen = nd.data.length; i < ilen; i++) { + var r = {}; + for (var j = Math.min(query.columns.length, nd.columns.length) - 1; 0 <= j; j--) { + r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; + } + ud.push(r); + } + } + + query.data = arrayExceptDeep(query.data, ud); + } else if (query.intersectfn) { + if (query.corresponding) { + if (!query.intersectfn.query.modifier) query.intersectfn.query.modifier = undefined; + ud = query.intersectfn(query.params); + } else { + if (!query.intersectfn.query.modifier) query.intersectfn.query.modifier = 'RECORDSET'; + nd = query.intersectfn(query.params); + ud = []; + ilen = nd.data.length; + for (i = 0; i < ilen; i++) { + r = {}; + jlen = Math.min(query.columns.length, nd.columns.length); + for (j = 0; j < jlen; j++) { + r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; + } + ud.push(r); + } + } + + query.data = arrayIntersectDeep(query.data, ud); + } + + // Ordering + if (query.orderfn) { + if (query.explain) var ms = Date.now(); + query.data = query.data.sort(query.orderfn); + if (query.explain) { + query.explaination.push({ + explid: query.explid++, + description: 'QUERY BY', + ms: Date.now() - ms, + }); + } + } + + // Reduce to limit and offset + doLimit(query); + + // Remove Angular.js artifacts and other unnecessary columns + // Issue #25 + + // TODO: Check what artefacts rest from Angular.js + if (typeof angular != 'undefined') { + query.removeKeys.push('$$hashKey'); + } + + if (query.removeKeys.length > 0) { + var removeKeys = query.removeKeys; + + // Remove from data + jlen = removeKeys.length; + if (jlen > 0) { + ilen = query.data.length; + for (i = 0; i < ilen; i++) { + for (j = 0; j < jlen; j++) { + delete query.data[i][removeKeys[j]]; + } + } + } + + // Remove from columns list + if (query.columns.length > 0) { + query.columns = query.columns.filter(function(column) { + var found = false; + removeKeys.forEach(function(key) { + if (column.columnid == key) found = true; + }); + return !found; + }); + } + } + + if (typeof query.removeLikeKeys != 'undefined' && query.removeLikeKeys.length > 0) { + var removeLikeKeys = query.removeLikeKeys; + + // Remove unused columns + // SELECT * REMOVE COLUMNS LIKE "%b" + for (var i = 0, ilen = query.data.length; i < ilen; i++) { + r = query.data[i]; + for (var k in r) { + for (j = 0; j < query.removeLikeKeys.length; j++) { + if (alasql.utils.like(query.removeLikeKeys[j], k)) { + // if(k.match(query.removeLikeKeys[j])) { + delete r[k]; + } + } + } + } + + if (query.columns.length > 0) { + query.columns = query.columns.filter(function(column) { + var found = false; + removeLikeKeys.forEach(function(key) { + // if(column.columnid.match(key)) found = true; + if (alasql.utils.like(key, column.columnid)) { + found = true; + } + }); + return !found; + }); + } + } + + if (query.pivotfn) query.pivotfn(); + if (query.unpivotfn) query.unpivotfn(); + + if (query.intoallfn) { + + // var res = query.intoallfn(query.columns,query.cb,query.A, query.B, alasql); + var res = query.intoallfn(query.columns, query.cb, query.params, query.alasql); + + // if(query.cb) res = query.cb(res,query.A, query.B); + + // debugger; + return res; + } else if (query.intofn) { + ilen = query.data.length; + for (i = 0; i < ilen; i++) { + query.intofn(query.data[i], i, query.params, query.alasql); + } + + if (query.cb) query.cb(query.data.length, query.A, query.B); + return query.data.length; + } else { + + res = query.data; + if (query.cb) res = query.cb(query.data, query.A, query.B); + return res; + } +} + +// Limiting +function doLimit(query) { + + if (query.limit) { + var offset = 0; + if (query.offset) { + offset = query.offset | 0 || 0; + offset = offset < 0 ? 0 : offset; + } + var limit; + if (query.percent) { + limit = (((query.data.length * query.limit) / 100) | 0) + offset; + } else { + limit = (query.limit | 0) + offset; + } + query.data = query.data.slice(offset, limit); + } +} + +// Distinct +function doDistinct(query) { + if (query.distinct) { + var uniq = {}; + // TODO: Speedup, because Object.keys is slow** + // TODO: Problem with DISTINCT on objects + var keys = Object.keys(query.data[0] || []); + for (var i = 0, ilen = query.data.length; i < ilen; i++) { + var uix = keys + .map(function(k) { + return query.data[i][k]; + }) + .join('`'); + uniq[uix] = query.data[i]; + } + query.data = []; + for (var key in uniq) { + query.data.push(uniq[key]); + } + } +} + +// Optimization: preliminary indexation of joins +var preIndex = function(query) { + + // Loop over all sources + // Todo: make this loop smaller and more graspable + for (var k = 0, klen = query.sources.length; k < klen; k++) { + var source = query.sources[k]; + delete source.ix; + // If there is indexation rule + + if (k > 0 && source.optimization == 'ix' && source.onleftfn && source.onrightfn) { + // If there is no table.indices - create it + if (source.databaseid && alasql.databases[source.databaseid].tables[source.tableid]) { + if (!alasql.databases[source.databaseid].tables[source.tableid].indices) + query.database.tables[source.tableid].indices = {}; + // Check if index already exists + var ixx = + alasql.databases[source.databaseid].tables[source.tableid].indices[ + hash(source.onrightfns + '`' + source.srcwherefns) + ]; + if (!alasql.databases[source.databaseid].tables[source.tableid].dirty && ixx) { + source.ix = ixx; + } + } + + if (!source.ix) { + source.ix = {}; + // Walking over source data + var scope = {}; + var i = 0; + var ilen = source.data.length; + var dataw; + // while(source.getfn i= query.sources.length) { + // Todo: check if this runs once too many + + // Then apply where and select + + if (query.wherefn(scope, query.params, alasql)) { + + // var res = query.selectfn(scope, query.params, alasql); + + // If there is a GROUP BY then pipe to groupping function + if (query.groupfn) { + query.groupfn(scope, query.params, alasql); + } else { + // query.qwerty = 999; + + query.data.push(query.selectfn(scope, query.params, alasql)); + } + } + } else if (query.sources[h].applyselect) { + + var source = query.sources[h]; + source.applyselect( + query.params, + function(data) { + if (data.length > 0) { + + for (var i = 0; i < data.length; i++) { + scope[source.alias] = data[i]; + doJoin(query, scope, h + 1); + } + } else { + if (source.applymode == 'OUTER') { + scope[source.alias] = {}; + doJoin(query, scope, h + 1); + } + } + }, + scope + ); + + } else { + // STEP 1 + + var source = query.sources[h]; + var nextsource = query.sources[h + 1]; + + // if(source.joinmode == "LEFT" || source.joinmode == "INNER" || source.joinmode == "RIGHT" + // || source.joinmode == "OUTER" || source.joinmode == "SEMI") { + // Todo: check if this is smart + if (true) { + //source.joinmode != "ANTI") { + + var tableid = source.alias || source.tableid; + var pass = false; // For LEFT JOIN + var data = source.data; + var opt = false; + + // Reduce data for looping if there is optimization hint + if (!source.getfn || (source.getfn && !source.dontcache)) { + if ( + source.joinmode != 'RIGHT' && + source.joinmode != 'OUTER' && + source.joinmode != 'ANTI' && + source.optimization == 'ix' + ) { + data = source.ix[source.onleftfn(scope, query.params, alasql)] || []; + opt = true; + + } + } + + // Main cycle + var i = 0; + if (typeof data == 'undefined') { + throw new Error('Data source number ' + h + ' in undefined'); + } + var ilen = data.length; + var dataw; + + while ( + (dataw = data[i]) || + (!opt && (source.getfn && (dataw = source.getfn(i)))) || + i < ilen + ) { + if (!opt && source.getfn && !source.dontcache) data[i] = dataw; + + scope[tableid] = dataw; + // Reduce with ON and USING clause + if ( + !source.onleftfn || + source.onleftfn(scope, query.params, alasql) == + source.onrightfn(scope, query.params, alasql) + ) { + // For all non-standard JOINs like a-b=0 + if (source.onmiddlefn(scope, query.params, alasql)) { + // Recursively call new join + // if(source.joinmode == "LEFT" || source.joinmode == "INNER" || source.joinmode == "OUTER" || source.joinmode == "RIGHT" ) { + if (source.joinmode != 'SEMI' && source.joinmode != 'ANTI') { + + doJoin(query, scope, h + 1); + } + + // if(source.data[i].f = 200) debugger; + + // if(source.joinmode == "RIGHT" || source.joinmode == "ANTI" || source.joinmode == "OUTER") { + if (source.joinmode != 'LEFT' && source.joinmode != 'INNER') { + dataw._rightjoin = true; + } + + // for LEFT JOIN + pass = true; + } + } + i++; + } + + // Additional join for LEFT JOINS + if ( + (source.joinmode == 'LEFT' || + source.joinmode == 'OUTER' || + source.joinmode == 'SEMI') && + !pass + ) { + // Clear the scope after the loop + scope[tableid] = {}; + doJoin(query, scope, h + 1); + } + } + + // When there is no records + // if(data.length == 0 && query.groupfn) { + // scope[tableid] = undefined; + // doJoin(query,scope,h+1); + // } + + // STEP 2 + + if (h == 0) { + for (var nh = h + 1; nh < query.sources.length; nh++) { + if ( + nextsource.joinmode == 'OUTER' || + nextsource.joinmode == 'RIGHT' || + nextsource.joinmode == 'ANTI' + ) { + scope[source.alias] = {}; + + var j = 0; + var jlen = nextsource.data.length; + var dataw; + + while ( + (dataw = nextsource.data[j]) || + (nextsource.getfn && (dataw = nextsource.getfn(j))) || + j < jlen + ) { + if (nextsource.getfn && !nextsource.dontcache) { + nextsource.data[j] = dataw; + } + + if (dataw._rightjoin) { + delete dataw._rightjoin; + } else { + // delete dataw._rightjoin; + + scope[nextsource.alias] = dataw; + doJoin(query, scope, nh + 1); + } + j++; + } + // debugger; + } else { + + } + source = query.sources[nh]; + nextsource = query.sources[nh + 1]; + } + } + + scope[tableid] = undefined; + + } +} + +function swapSources(query, h) { + var source = query.sources[h]; + var nextsource = query.sources[h + 1]; + + var onleftfn = source.onleftfn; + var onleftfns = source.onleftfns; + var onrightfn = source.onrightfn; + var onrightfns = source.onrightfns; + var optimization = source.optimization; + + source.onleftfn = nextsource.onrightfn; + source.onleftfns = nextsource.onrightfns; + source.onrightfn = nextsource.onleftfn; + source.onrightfns = nextsource.onleftfns; + source.optimization = nextsource.optimization; + + nextsource.onleftfn = onleftfn; + nextsource.onleftfns = onleftfns; + nextsource.onrightfn = onrightfn; + nextsource.onrightfns = onrightfns; + nextsource.optimization = optimization; + + query.sources[h] = nextsource; + query.sources[h + 1] = source; +} + +/* +// +// Select run-time part for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +// +// Main part of SELECT procedure +// + +/* global yy */ + +yy.Select = function(params) { + return yy.extend(this, params); +}; +yy.Select.prototype.toString = function() { + var s; + s = ''; + if (this.explain) { + s += 'EXPLAIN '; + } + s += 'SELECT '; + if (this.modifier) { + s += this.modifier + ' '; + } + if (this.distinct) { + s += 'DISTINCT '; + } + if (this.top) { + s += 'TOP ' + this.top.value + ' '; + if (this.percent) { + s += 'PERCENT '; + } + } + s += this.columns + .map(function(col) { + var s; + s = col.toString(); + if (typeof col.as !== 'undefined') { + s += ' AS ' + col.as; + } + return s; + }) + .join(', '); + if (this.from) { + s += + ' FROM ' + + this.from + .map(function(f) { + var ss; + ss = f.toString(); + if (f.as) { + ss += ' AS ' + f.as; + } + return ss; + }) + .join(','); + } + if (this.joins) { + s += this.joins + .map(function(jn) { + var ss; + ss = ' '; + if (jn.joinmode) { + ss += jn.joinmode + ' '; + } + if (jn.table) { + ss += 'JOIN ' + jn.table.toString(); + } else if (jn.select) { + ss += 'JOIN (' + jn.select.toString() + ')'; + } else if (jn instanceof alasql.yy.Apply) { + ss += jn.toString(); + } else { + throw new Error('Wrong type in JOIN mode'); + } + if (jn.as) { + ss += ' AS ' + jn.as; + } + if (jn.using) { + ss += ' USING ' + jn.using.toString(); + } + if (jn.on) { + ss += ' ON ' + jn.on.toString(); + } + return ss; + }) + .join(''); + } + if (this.where) { + s += ' WHERE ' + this.where.toString(); + } + if (this.group && this.group.length > 0) { + s += + ' GROUP BY ' + + this.group + .map(function(grp) { + return grp.toString(); + }) + .join(', '); + } + if (this.having) { + s += ' HAVING ' + this.having.toString(); + } + if (this.order && this.order.length > 0) { + s += + ' ORDER BY ' + + this.order + .map(function(ord) { + return ord.toString(); + }) + .join(', '); + } + if (this.limit) { + s += ' LIMIT ' + this.limit.value; + } + if (this.offset) { + s += ' OFFSET ' + this.offset.value; + } + if (this.union) { + s += ' UNION ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.union.toString(); + } + if (this.unionall) { + s += + ' UNION ALL ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.unionall.toString(); + } + if (this.except) { + s += ' EXCEPT ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.except.toString(); + } + if (this.intersect) { + s += + ' INTERSECT ' + + (this.corresponding ? 'CORRESPONDING ' : '') + + this.intersect.toString(); + } + return s; +}; + +/** + Select statement in expression + */ +yy.Select.prototype.toJS = function(context) { + + // if(this.expression.reduced) return 'true'; + // return this.expression.toJS(context, tableid, defcols); + + // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]'; + + var s = + 'alasql.utils.flatArray(this.queriesfn[' + + (this.queriesidx - 1) + + '](this.params,null,' + + context + + '))[0]'; + + return s; +}; + +// Compile SELECT statement +yy.Select.prototype.compile = function(databaseid, params) { + var db = alasql.databases[databaseid]; + // Create variable for query + var query = new Query(); + + // Array with columns to be removed + query.removeKeys = []; + query.aggrKeys = []; + + query.explain = this.explain; // Explain + query.explaination = []; + query.explid = 1; + + query.modifier = this.modifier; + + query.database = db; + // 0. Precompile whereexists + this.compileWhereExists(query); + + // 0. Precompile queries for IN, NOT IN, ANY and ALL operators + this.compileQueries(query); + + query.defcols = this.compileDefCols(query, databaseid); + + // 1. Compile FROM clause + query.fromfn = this.compileFrom(query); + + // 2. Compile JOIN clauses + if (this.joins) { + this.compileJoins(query); + } + + // todo?: 3. Compile SELECT clause + + // For ROWNUM() + query.rownums = []; + + this.compileSelectGroup0(query); + + if (this.group || query.selectGroup.length > 0) { + query.selectgfns = this.compileSelectGroup1(query); + } else { + query.selectfns = this.compileSelect1(query, params); + } + + // Remove columns clause + this.compileRemoveColumns(query); + + // 5. Optimize WHERE and JOINS + if (this.where) { + this.compileWhereJoins(query); + } + + // 4. Compile WHERE clause + query.wherefn = this.compileWhere(query); + + // 6. Compile GROUP BY + if (this.group || query.selectGroup.length > 0) { + query.groupfn = this.compileGroup(query); + } + + // 6. Compile HAVING + if (this.having) { + query.havingfn = this.compileHaving(query); + } + + // 8. Compile ORDER BY clause + if (this.order) { + query.orderfn = this.compileOrder(query); + } + + if (this.group || query.selectGroup.length > 0) { + query.selectgfn = this.compileSelectGroup2(query); + } else { + query.selectfn = this.compileSelect2(query); + } + + // 7. Compile DISTINCT, LIMIT and OFFSET + query.distinct = this.distinct; + + // 9. Compile PIVOT clause + if (this.pivot) query.pivotfn = this.compilePivot(query); + if (this.unpivot) query.pivotfn = this.compileUnpivot(query); + + // 10. Compile TOP/LIMIT/OFFSET/FETCH cleuse + if (this.top) { + query.limit = this.top.value; + } else if (this.limit) { + query.limit = this.limit.value; + if (this.offset) { + query.offset = this.offset.value; + } + } + + query.percent = this.percent; + + // 9. Compile ordering function for UNION and UNIONALL + query.corresponding = this.corresponding; // If CORRESPONDING flag exists + if (this.union) { + query.unionfn = this.union.compile(databaseid); + if (this.union.order) { + query.orderfn = this.union.compileOrder(query); + } else { + query.orderfn = null; + } + } else if (this.unionall) { + query.unionallfn = this.unionall.compile(databaseid); + if (this.unionall.order) { + query.orderfn = this.unionall.compileOrder(query); + } else { + query.orderfn = null; + } + } else if (this.except) { + query.exceptfn = this.except.compile(databaseid); + if (this.except.order) { + query.orderfn = this.except.compileOrder(query); + } else { + query.orderfn = null; + } + } else if (this.intersect) { + query.intersectfn = this.intersect.compile(databaseid); + if (this.intersect.order) { + query.intersectfn = this.intersect.compileOrder(query); + } else { + query.orderfn = null; + } + } + + // SELECT INTO + if (this.into) { + if (this.into instanceof yy.Table) { + // + // Save into the table in database + // + if ( + alasql.options.autocommit && + alasql.databases[this.into.databaseid || databaseid].engineid + ) { + // For external database when AUTOCOMMIT is ONs + query.intoallfns = + 'return alasql.engines["' + + alasql.databases[this.into.databaseid || databaseid].engineid + + '"]' + + '.intoTable("' + + (this.into.databaseid || databaseid) + + '","' + + this.into.tableid + + '",this.data, columns, cb);'; + } else { + // Into AlaSQL tables + query.intofns = + "alasql.databases['" + + (this.into.databaseid || databaseid) + + "'].tables" + + "['" + + this.into.tableid + + "'].data.push(r);"; + } + } else if (this.into instanceof yy.VarValue) { + // + // Save into local variable + // SELECT * INTO @VAR1 FROM ? + // + query.intoallfns = + 'alasql.vars["' + + this.into.variable + + '"]=this.data;res=this.data.length;if(cb)res=cb(res);return res;'; + } else if (this.into instanceof yy.FuncValue) { + // + // If this is INTO() function, then call it + // with one or two parameters + // + var qs = "return alasql.into['" + this.into.funcid.toUpperCase() + "']("; + if (this.into.args && this.into.args.length > 0) { + qs += this.into.args[0].toJS() + ','; + if (this.into.args.length > 1) { + qs += this.into.args[1].toJS() + ','; + } else { + qs += 'undefined,'; + } + } else { + qs += 'undefined, undefined,'; + } + query.intoallfns = qs + 'this.data,columns,cb)'; + + } else if (this.into instanceof yy.ParamValue) { + // + // Save data into parameters array + // like alasql('SELECT * INTO ? FROM ?',[outdata,srcdata]); + // + query.intofns = "params['" + this.into.param + "'].push(r)"; + } + + if (query.intofns) { + // Create intofn function + + query.intofn = new Function('r,i,params,alasql', 'var y;' + query.intofns); + } else if (query.intoallfns) { + // Create intoallfn function + + query.intoallfn = new Function('columns,cb,params,alasql', 'var y;' + query.intoallfns); + } + } + + // Now, compile all togeather into one function with query object in scope + var statement = function(params, cb, oldscope) { + query.params = params; + // Note the callback function has the data and error reversed due to existing code in promiseExec which has the + // err and data swapped. This trickles down into alasql.exec and further. Rather than risk breaking the whole thing, + // the (data, err) standard is maintained here. + var res1 = queryfn(query, oldscope, function(res, err) { + if (err) { + return cb(err, null); + } + if (query.rownums.length > 0) { + for (var i = 0, ilen = res.length; i < ilen; i++) { + for (var j = 0, jlen = query.rownums.length; j < jlen; j++) { + res[i][query.rownums[j]] = i + 1; + } + } + } + + var res2 = modify(query, res); + + if (cb) { + cb(res2); + } + + return res2; + }); + + // if(typeof res1 != 'undefined') res1 = modify(query,res1); + + return res1; + }; + + // statement.dbversion = ; + + statement.query = query; + return statement; +}; + +/** + Modify res according modifier + @function + @param {object} query Query object + @param res {object|number|string|boolean} res Data to be converted + */ +function modify(query, res) { + // jshint ignore:line + + /* If source is a primitive value then return it */ + if ( + typeof res === 'undefined' || + typeof res === 'number' || + typeof res === 'string' || + typeof res === 'boolean' + ) { + return res; + } + + var modifier = query.modifier || alasql.options.modifier; + var columns = query.columns; + if (typeof columns === 'undefined' || columns.length == 0) { + // Try to create columns + if (res.length > 0) { + var allcol = {}; + for (var i = Math.min(res.length, alasql.options.columnlookup || 10) - 1; 0 <= i; i--) { + for (var key in res[i]) { + allcol[key] = true; + } + } + + columns = Object.keys(allcol).map(function(columnid) { + return {columnid: columnid}; + }); + } else { + // Cannot recognize columns + columns = []; + } + } + + if (modifier === 'VALUE') { + + if (res.length > 0) { + var key; + if (columns && columns.length > 0) { + key = columns[0].columnid; + } else { + key = Object.keys(res[0])[0]; + } + res = res[0][key]; + } else { + res = undefined; + } + } else if (modifier === 'ROW') { + if (res.length > 0) { + var key; + var a = []; + for (var key in res[0]) { + a.push(res[0][key]); + } + res = a; + } else { + res = undefined; + } + } else if (modifier === 'COLUMN') { + var ar = []; + if (res.length > 0) { + var key; + if (columns && columns.length > 0) { + key = columns[0].columnid; + } else { + key = Object.keys(res[0])[0]; + } + + for (var i = 0, ilen = res.length; i < ilen; i++) { + ar.push(res[i][key]); + } + } + res = ar; + } else if (modifier === 'MATRIX') { + // Returns square matrix of rows + var ar = []; + for (var i = 0; i < res.length; i++) { + var a = []; + var r = res[i]; + for (var j = 0; j < columns.length; j++) { + a.push(r[columns[j].columnid]); + } + ar.push(a); + } + res = ar; + } else if (modifier === 'INDEX') { + var ar = {}; + var key, val; + if (columns && columns.length > 0) { + key = columns[0].columnid; + val = columns[1].columnid; + } else { + var okeys = Object.keys(res[0]); + key = okeys[0]; + val = okeys[1]; + } + for (var i = 0, ilen = res.length; i < ilen; i++) { + ar[res[i][key]] = res[i][val]; + } + res = ar; + // res = arrayOfArrays(res); + } else if (modifier === 'RECORDSET') { + res = new alasql.Recordset({columns: columns, data: res}); + // res = arrayOfArrays(res); + } else if (modifier === 'TEXTSTRING') { + var key; + if (columns && columns.length > 0) { + key = columns[0].columnid; + } else { + key = Object.keys(res[0])[0]; + } + + for (var i = 0, ilen = res.length; i < ilen; i++) { + res[i] = res[i][key]; + } + res = res.join('\n'); + // res = arrayOfArrays(res); + } + return res; +} + +yy.Select.prototype.execute = function(databaseid, params, cb) { + return this.compile(databaseid)(params, cb); + // throw new Error('Insert statement is should be compiled') +}; + +/* +// +// EXISTS and other subqueries functions functions for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.ExistsValue = function(params) { + return yy.extend(this, params); +}; +yy.ExistsValue.prototype.toString = function() { + return 'EXISTS(' + this.value.toString() + ')'; +}; + +yy.ExistsValue.prototype.toType = function() { + return 'boolean'; +}; + +yy.ExistsValue.prototype.toJS = function(context, tableid, defcols) { + + return 'this.existsfn[' + this.existsidx + '](params,null,' + context + ').data.length'; +}; + +yy.Select.prototype.compileWhereExists = function(query) { + if (!this.exists) return; + query.existsfn = this.exists.map(function(ex) { + var nq = ex.compile(query.database.databaseid); + + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + nq.query.modifier = 'RECORDSET'; + return nq; + }); +}; + +yy.Select.prototype.compileQueries = function(query) { + if (!this.queries) return; + query.queriesfn = this.queries.map(function(q) { + var nq = q.compile(query.database.databaseid); + + // if(!nq.query) nq.query = {}; + nq.query.modifier = 'RECORDSET'; + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + return nq; + }); +}; + +// +// Prepare subqueries and exists +// +alasql.precompile = function(statement, databaseid, params) { + + if (!statement) return; + statement.params = params; + if (statement.queries) { + + statement.queriesfn = statement.queries.map(function(q) { + var nq = q.compile(databaseid || statement.database.databaseid); + + // nq.query.modifier = undefined; + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (statement.exists) { + + statement.existsfn = statement.exists.map(function(ex) { + var nq = ex.compile(databaseid || statement.database.databaseid); + + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + // if(!nq.query.modifier) nq.query.modifier = 'ARRAY'; + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } +}; + +/* +// +// Select compiler part for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/* global yy, alasql, Mongo, returnTrue */ + +yy.Select.prototype.compileFrom = function(query) { + + var self = this; + query.sources = []; + // var tableid = this.from[0].tableid; + // var as = ''; + // if(self.from[0].as) as = this.from[0].as; + + query.aliases = {}; + if (!self.from) return; + + self.from.forEach(function(tq) { + + var ps = ''; + + var alias = tq.as || tq.tableid; + + if (tq instanceof yy.Table) { + + query.aliases[alias] = { + tableid: tq.tableid, + databaseid: tq.databaseid || query.database.databaseid, + type: 'table', + }; + } else if (tq instanceof yy.Select) { + query.aliases[alias] = {type: 'subquery'}; + } else if (tq instanceof yy.Search) { + query.aliases[alias] = {type: 'subsearch'}; + } else if (tq instanceof yy.ParamValue) { + query.aliases[alias] = {type: 'paramvalue'}; + } else if (tq instanceof yy.FuncValue) { + query.aliases[alias] = {type: 'funcvalue'}; + } else if (tq instanceof yy.VarValue) { + query.aliases[alias] = {type: 'varvalue'}; + } else if (tq instanceof yy.FromData) { + query.aliases[alias] = {type: 'fromdata'}; + } else if (tq instanceof yy.Json) { + query.aliases[alias] = {type: 'json'}; + } else if (tq.inserted) { + query.aliases[alias] = {type: 'inserted'}; + } else { + throw new Error('Wrong table at FROM'); + } + + var source = { + alias: alias, + databaseid: tq.databaseid || query.database.databaseid, + tableid: tq.tableid, + joinmode: 'INNER', + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + // columns: [] + }; + + if (tq instanceof yy.Table) { + // Get columns from table + source.columns = alasql.databases[source.databaseid].tables[source.tableid].columns; + + if ( + alasql.options.autocommit && + alasql.databases[source.databaseid].engineid && + !alasql.databases[source.databaseid].tables[source.tableid].view + ) { + + // TODO -- make view for external engine + source.datafn = function(query, params, cb, idx, alasql) { + return alasql.engines[alasql.databases[source.databaseid].engineid].fromTable( + source.databaseid, + source.tableid, + cb, + idx, + query + ); + }; + } else if (alasql.databases[source.databaseid].tables[source.tableid].view) { + source.datafn = function(query, params, cb, idx, alasql) { + var res = alasql.databases[source.databaseid].tables[source.tableid].select( + params + ); + if (cb) res = cb(res, idx, query); + return res; + }; + } else { + + source.datafn = function(query, params, cb, idx, alasql) { + /* + +*/ + var res = alasql.databases[source.databaseid].tables[source.tableid].data; + + if (cb) res = cb(res, idx, query); + + return res; + // return alasql.databases[source.databaseid].tables[source.tableid].data; + }; + } + } else if (tq instanceof yy.Select) { + source.subquery = tq.compile(query.database.databaseid); + if (typeof source.subquery.query.modifier === 'undefined') { + source.subquery.query.modifier = 'RECORDSET'; // Subqueries always return recordsets + } + source.columns = source.subquery.query.columns; + + // tq.columns; + + source.datafn = function(query, params, cb, idx, alasql) { + // return source.subquery(query.params, cb, idx, query); + var res; + source.subquery(query.params, function(data) { + res = data.data; + if (cb) res = cb(res, idx, query); + return res; + // return data.data; + }); + + return res; + }; + } else if (tq instanceof yy.Search) { + source.subsearch = tq; + source.columns = []; + + source.datafn = function(query, params, cb, idx, alasql) { + // return source.subquery(query.params, cb, idx, query); + var res; + source.subsearch.execute(query.database.databaseid, query.params, function(data) { + res = data; + if (cb) res = cb(res, idx, query); + return res; + // return data.data; + }); + + return res; + }; + } else if (tq instanceof yy.ParamValue) { + ps = "var res = alasql.prepareFromData(params['" + tq.param + "']"; + + if (tq.array) ps += ',true'; + ps += ');if(cb)res=cb(res,idx,query);return res'; + source.datafn = new Function('query,params,cb,idx,alasql', ps); + } else if (tq.inserted) { + ps = 'var res = alasql.prepareFromData(alasql.inserted'; + if (tq.array) ps += ',true'; + ps += ');if(cb)res=cb(res,idx,query);return res'; + source.datafn = new Function('query,params,cb,idx,alasql', ps); + } else if (tq instanceof yy.Json) { + ps = 'var res = alasql.prepareFromData(' + tq.toJS(); + + if (tq.array) ps += ',true'; + ps += ');if(cb)res=cb(res,idx,query);return res'; + source.datafn = new Function('query,params,cb,idx,alasql', ps); + } else if (tq instanceof yy.VarValue) { + ps = "var res = alasql.prepareFromData(alasql.vars['" + tq.variable + "']"; + + if (tq.array) ps += ',true'; + ps += ');if(cb)res=cb(res,idx,query);return res'; + source.datafn = new Function('query,params,cb,idx,alasql', ps); + } else if (tq instanceof yy.FuncValue) { + ps = "var res=alasql.from['" + tq.funcid.toUpperCase() + "']("; + + if (tq.args && tq.args.length > 0) { + if (tq.args[0]) { + ps += tq.args[0].toJS('query.oldscope') + ','; + } else { + ps += 'null,'; + } + if (tq.args[1]) { + ps += tq.args[1].toJS('query.oldscope') + ','; + } else { + ps += 'null,'; + } + } else { + ps += 'null,null,'; + } + ps += 'cb,idx,query'; + ps += ');/*if(cb)res=cb(res,idx,query);*/return res'; + + source.datafn = new Function('query, params, cb, idx, alasql', ps); + } else if (tq instanceof yy.FromData) { + source.datafn = function(query, params, cb, idx, alasql) { + var res = tq.data; + if (cb) res = cb(res, idx, query); + return res; + }; + } else { + throw new Error('Wrong table at FROM'); + } + // source.data = alasql.databases[source.databaseid].tables[source.tableid].data; + query.sources.push(source); + }); + // TODO Add joins + query.defaultTableid = query.sources[0].alias; + +}; + +alasql.prepareFromData = function(data, array) { + + var i, ilen; + var res = data; + if (typeof data === 'string') { + res = data.split(/\r?\n/); + if (array) { + for (i = 0, ilen = res.length; i < ilen; i++) { + res[i] = [res[i]]; + } + } + } else if (array) { + res = []; + for (i = 0, ilen = data.length; i < ilen; i++) { + res.push([data[i]]); + } + + } else if (typeof data === 'object' && !Array.isArray(data)) { + // } else if(typeof data == 'object' && !(typeof data.length == 'undefined')) { + if ( + typeof Mongo !== 'undefined' && + typeof Mongo.Collection !== 'undefined' && + data instanceof Mongo.Collection + ) { + res = data.find().fetch(); + } else { + res = []; + for (var key in data) { + if (data.hasOwnProperty(key)) res.push([key, data[key]]); + } + } + + } + + return res; +}; + +/* +// +// Select compiler part for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +// SELECT Compile functions + +/* global yy, alasql, returnTrue, arrayIntersect */ + +// Compile JOIN caluese +yy.Select.prototype.compileJoins = function(query) { + + // debugger; + var self = this; + + this.joins.forEach(function(jn) { + // Test CROSS-JOIN + var tq, ps, source; + if (jn.joinmode === 'CROSS') { + if (jn.using || jn.on) { + throw new Error('CROSS JOIN cannot have USING or ON clauses'); + } else { + jn.joinmode = 'INNER'; + } + } + + if (jn instanceof yy.Apply) { + + source = { + alias: jn.as, + applymode: jn.applymode, + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + columns: [], // TODO check this + }; + source.applyselect = jn.select.compile(query.database.databaseid); + source.columns = source.applyselect.query.columns; + + source.datafn = function(query, params, cb, idx, alasql) { + var res; + if (cb) res = cb(res, idx, query); + return res; + }; + + query.sources.push(source); + + return; + } + + if (jn.table) { + tq = jn.table; + source = { + alias: jn.as || tq.tableid, + databaseid: tq.databaseid || query.database.databaseid, + tableid: tq.tableid, + joinmode: jn.joinmode, + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + columns: [], + }; + // + + if (!alasql.databases[source.databaseid].tables[source.tableid]) { + throw new Error( + "Table '" + + source.tableid + + "' is not exists in database '" + + source.databaseid + + "'" + ); + } + + source.columns = alasql.databases[source.databaseid].tables[source.tableid].columns; + + // source.data = query.database.tables[source.tableid].data; + if (alasql.options.autocommit && alasql.databases[source.databaseid].engineid) { + + source.datafn = function(query, params, cb, idx, alasql) { + + return alasql.engines[alasql.databases[source.databaseid].engineid].fromTable( + source.databaseid, + source.tableid, + cb, + idx, + query + ); + }; + } else if (alasql.databases[source.databaseid].tables[source.tableid].view) { + source.datafn = function(query, params, cb, idx, alasql) { + var res = alasql.databases[source.databaseid].tables[source.tableid].select( + params + ); + if (cb) res = cb(res, idx, query); + return res; + }; + } else { + source.datafn = function(query, params, cb, idx, alasql) { + var res = alasql.databases[source.databaseid].tables[source.tableid].data; + if (cb) res = cb(res, idx, query); + return res; + }; + } + + // var alias = jn.as || tq.tableid; + // if(tq) { + query.aliases[source.alias] = { + tableid: tq.tableid, + databaseid: tq.databaseid || query.database.databaseid, + }; + // } + } else if (jn.select) { + tq = jn.select; + source = { + alias: jn.as, + // databaseid: jn.databaseid || query.database.databaseid, + // tableid: tq.tableid, + joinmode: jn.joinmode, + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + columns: [], + }; + + source.subquery = tq.compile(query.database.databaseid); + if (typeof source.subquery.query.modifier === 'undefined') { + source.subquery.query.modifier = 'RECORDSET'; // Subqueries always return recordsets + } + source.columns = source.subquery.query.columns; + + // if(jn instanceof yy.Apply) { + source.datafn = function(query, params, cb, idx, alasql) { + // return cb(null,idx,alasql); + return source.subquery(query.params, null, cb, idx).data; + }; + // } else { + // source.datafn = function(query, params, cb, idx, alasql) { + // return source.subquery(query.params, null, cb, idx); + // } + // } + query.aliases[source.alias] = {type: 'subquery'}; + } else if (jn.param) { + source = { + alias: jn.as, + // databaseid: jn.databaseid || query.database.databaseid, + // tableid: tq.tableid, + joinmode: jn.joinmode, + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + }; + // source.data = ; + var jnparam = jn.param.param; + + ps = "var res=alasql.prepareFromData(params['" + jnparam + "']"; + if (jn.array) ps += ',true'; + ps += ');if(cb)res=cb(res, idx, query);return res'; + + source.datafn = new Function('query,params,cb,idx, alasql', ps); + query.aliases[source.alias] = {type: 'paramvalue'}; + } else if (jn.variable) { + source = { + alias: jn.as, + // databaseid: jn.databaseid || query.database.databaseid, + // tableid: tq.tableid, + joinmode: jn.joinmode, + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + }; + // source.data = ; + // var jnparam = jn.param.param; + + ps = "var res=alasql.prepareFromData(alasql.vars['" + jn.variable + "']"; + if (jn.array) ps += ',true'; + ps += ');if(cb)res=cb(res, idx, query);return res'; + + source.datafn = new Function('query,params,cb,idx, alasql', ps); + query.aliases[source.alias] = {type: 'varvalue'}; + } else if (jn.func) { + source = { + alias: jn.as, + // databaseid: jn.databaseid || query.database.databaseid, + // tableid: tq.tableid, + joinmode: jn.joinmode, + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + }; + // source.data = ; + + var s = "var res=alasql.from['" + jn.func.funcid.toUpperCase() + "']("; + + var args = jn.func.args; + if (args && args.length > 0) { + if (args[0]) { + s += args[0].toJS('query.oldscope') + ','; + } else { + s += 'null,'; + } + if (args[1]) { + s += args[1].toJS('query.oldscope') + ','; + } else { + s += 'null,'; + } + } else { + s += 'null,null,'; + } + s += 'cb,idx,query'; + s += ');/*if(cb)res=cb(res,idx,query);*/return res'; + + source.datafn = new Function('query, params, cb, idx, alasql', s); + + query.aliases[source.alias] = {type: 'funcvalue'}; + } + + var alias = source.alias; + + // Test NATURAL-JOIN + if (jn.natural) { + if (jn.using || jn.on) { + throw new Error('NATURAL JOIN cannot have USING or ON clauses'); + } else { + // source.joinmode == "INNER"; + if (query.sources.length > 0) { + var prevSource = query.sources[query.sources.length - 1]; + var prevTable = + alasql.databases[prevSource.databaseid].tables[prevSource.tableid]; + var table = alasql.databases[source.databaseid].tables[source.tableid]; + + if (prevTable && table) { + var c1 = prevTable.columns.map(function(col) { + return col.columnid; + }); + var c2 = table.columns.map(function(col) { + return col.columnid; + }); + jn.using = arrayIntersect(c1, c2).map(function(colid) { + return {columnid: colid}; + }); + + } else { + throw new Error( + 'In this version of Alasql NATURAL JOIN ' + + 'works for tables with predefined columns only' + ); + } + } + } + } + + if (jn.using) { + prevSource = query.sources[query.sources.length - 1]; + + source.onleftfns = jn.using + .map(function(col) { + + return ( + "p['" + + (prevSource.alias || prevSource.tableid) + + "']['" + + col.columnid + + "']" + ); + }) + .join('+"`"+'); + + source.onleftfn = new Function('p,params,alasql', 'var y;return ' + source.onleftfns); + + source.onrightfns = jn.using + .map(function(col) { + return "p['" + (source.alias || source.tableid) + "']['" + col.columnid + "']"; + }) + .join('+"`"+'); + source.onrightfn = new Function('p,params,alasql', 'var y;return ' + source.onrightfns); + source.optimization = 'ix'; + + } else if (jn.on) { + + if (jn.on instanceof yy.Op && jn.on.op === '=' && !jn.on.allsome) { + + source.optimization = 'ix'; + + var lefts = ''; + var rights = ''; + var middles = ''; + var middlef = false; + // Test right and left sides + var ls = jn.on.left.toJS('p', query.defaultTableid, query.defcols); + var rs = jn.on.right.toJS('p', query.defaultTableid, query.defcols); + + if ( + ls.indexOf("p['" + alias + "']") > -1 && + !(rs.indexOf("p['" + alias + "']") > -1) + ) { + if ( + (ls.match(/p\['.*?'\]/g) || []).every(function(s) { + return s === "p['" + alias + "']"; + }) + ) { + rights = ls; + } else { + middlef = true; + } + } else if ( + !(ls.indexOf("p['" + alias + "']") > -1) && + rs.indexOf("p['" + alias + "']") > -1 + ) { + if ( + (rs.match(/p\['.*?'\]/g) || []).every(function(s) { + return s === "p['" + alias + "']"; + }) + ) { + lefts = ls; + } else { + middlef = true; + } + } else { + middlef = true; + } + + if ( + rs.indexOf("p['" + alias + "']") > -1 && + !(ls.indexOf("p['" + alias + "']") > -1) + ) { + if ( + (rs.match(/p\['.*?'\]/g) || []).every(function(s) { + return s === "p['" + alias + "']"; + }) + ) { + rights = rs; + } else { + middlef = true; + } + } else if ( + !(rs.indexOf("p['" + alias + "']") > -1) && + ls.indexOf("p['" + alias + "']") > -1 + ) { + if ( + (ls.match(/p\['.*?'\]/g) || []).every(function(s) { + return s === "p['" + alias + "']"; + }) + ) { + lefts = rs; + } else { + middlef = true; + } + } else { + middlef = true; + } + + if (middlef) { + // middles = jn.on.toJS('p',query.defaultTableid); + // } else { + rights = ''; + lefts = ''; + middles = jn.on.toJS('p', query.defaultTableid, query.defcols); + source.optimization = 'no'; + // What to here? + } + + source.onleftfns = lefts; + source.onrightfns = rights; + source.onmiddlefns = middles || 'true'; + + source.onleftfn = new Function( + 'p,params,alasql', + 'var y;return ' + source.onleftfns + ); + source.onrightfn = new Function( + 'p,params,alasql', + 'var y;return ' + source.onrightfns + ); + source.onmiddlefn = new Function( + 'p,params,alasql', + 'var y;return ' + source.onmiddlefns + ); + + // } else if(jn.on instanceof yy.Op && jn.on.op == 'AND') { + + } else { + + source.optimization = 'no'; + // source.onleftfn = returnTrue; + // source.onleftfns = "true"; + source.onmiddlefns = jn.on.toJS('p', query.defaultTableid, query.defcols); + source.onmiddlefn = new Function( + 'p,params,alasql', + 'var y;return ' + jn.on.toJS('p', query.defaultTableid, query.defcols) + ); + } + + // Optimization function + } + + // source.data = alasql.databases[source.databaseid].tables[source.tableid].data; + + // TODO SubQueries + + query.sources.push(source); + }); + +}; + +yy.Select.prototype.compileWhere = function(query) { + if (this.where) { + if (typeof this.where == 'function') { + return this.where; + } else { + var s = this.where.toJS('p', query.defaultTableid, query.defcols); + query.wherefns = s; + + return new Function('p,params,alasql', 'var y;return ' + s); + } + } else + return function() { + return true; + }; +}; + +yy.Select.prototype.compileWhereJoins = function(query) { + return; + + // TODO Fix Where optimization + + optimizeWhereJoin(query, this.where.expression); + + //for sources compile wherefs + query.sources.forEach(function(source) { + if (source.srcwherefns) { + source.srcwherefn = new Function( + 'p,params,alasql', + 'var y;return ' + source.srcwherefns + ); + } + if (source.wxleftfns) { + source.wxleftfn = new Function('p,params,alasql', 'var y;return ' + source.wxleftfns); + } + if (source.wxrightfns) { + source.wxrightfn = new Function('p,params,alasql', 'var y;return ' + source.wxrightfns); + } + + }); +}; + +function optimizeWhereJoin(query, ast) { + if (!ast) return false; + if (!(ast instanceof yy.Op)) return; + if (ast.op != '=' && ast.op != 'AND') return; + if (ast.allsome) return; + + var s = ast.toJS('p', query.defaultTableid, query.defcols); + var fsrc = []; + query.sources.forEach(function(source, idx) { + // Optimization allowed only for tables only + if (source.tableid) { + // This is a good place to remove all unnecessary optimizations + if (s.indexOf("p['" + source.alias + "']") > -1) fsrc.push(source); + } + }); + + // if(fsrc.length < query.sources.length) return; + + if (fsrc.length == 0) { + + return; + } else if (fsrc.length == 1) { + if ( + !(s.match(/p\[\'.*?\'\]/g) || []).every(function(s) { + return s == "p['" + fsrc[0].alias + "']"; + }) + ) { + return; + // This is means, that we have column from parent query + // So we return without optimization + } + + var src = fsrc[0]; // optmiization source + src.srcwherefns = src.srcwherefns ? src.srcwherefns + '&&' + s : s; + + if (ast instanceof yy.Op && (ast.op == '=' && !ast.allsome)) { + if (ast.left instanceof yy.Column) { + var ls = ast.left.toJS('p', query.defaultTableid, query.defcols); + var rs = ast.right.toJS('p', query.defaultTableid, query.defcols); + if (rs.indexOf("p['" + fsrc[0].alias + "']") == -1) { + fsrc[0].wxleftfns = ls; + fsrc[0].wxrightfns = rs; + } + } + if (ast.right instanceof yy.Column) { + var ls = ast.left.toJS('p', query.defaultTableid, query.defcols); + var rs = ast.right.toJS('p', query.defaultTableid, query.defcols); + if (ls.indexOf("p['" + fsrc[0].alias + "']") == -1) { + fsrc[0].wxleftfns = rs; + fsrc[0].wxrightfns = ls; + } + } + } + ast.reduced = true; // To do not duplicate wherefn and srcwherefn + return; + } else { + if ((ast.op = 'AND')) { + optimizeWhereJoin(query, ast.left); + optimizeWhereJoin(query, ast.right); + } + } +} + +/* +// +// Select compiler part for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/** + Compile group of statements + */ +yy.Select.prototype.compileGroup = function(query) { + + if (query.sources.length > 0) { + var tableid = query.sources[0].alias; + } else { + // If SELECT contains group aggregators without source tables + var tableid = ''; + } + var defcols = query.defcols; + + var allgroup = [[]]; + if (this.group) { + allgroup = decartes(this.group, query); + } + + // Prepare groups + //var allgroup = [['a'], ['a','b'], ['a', 'b', 'c']]; + + // Union all arrays to get a maximum + var allgroups = []; + allgroup.forEach(function(a) { + allgroups = arrayUnion(allgroups, a); + }); + + query.allgroups = allgroups; + + query.ingroup = []; + + // Create negative array + + var s = ''; + // s+= query.selectfns; + allgroup.forEach(function(agroup) { + // Start of group function + s += 'var g=this.xgroups['; + + // var gcols = this.group.map(function(col){return col.columnid}); // Group fields with r + // Array with group columns from record + var rg = agroup.map(function(col2) { + var columnid = col2.split('\t')[0]; + var coljs = col2.split('\t')[1]; + // Check, if aggregator exists but GROUP BY is not exists + if (columnid === '') { + return '1'; // Create fictive groupping column for fictive GROUP BY + } + // else return "r['"+columnid+"']"; + query.ingroup.push(columnid); + + return coljs; + }); + + if (rg.length === 0) { + rg = ["''"]; + } + + s += rg.join('+"`"+'); + s += '];if(!g) {this.groups.push((g=this.xgroups['; + s += rg.join('+"`"+'); + s += '] = {'; + // s += ']=r'; + s += agroup + .map(function(col2) { + var columnid = col2.split('\t')[0]; + var coljs = col2.split('\t')[1]; + + if (columnid === '') { + return ''; + } + return "'" + columnid + "':" + coljs + ','; + }) + .join(''); + + var neggroup = arrayDiff(allgroups, agroup); + + s += neggroup + .map(function(col2) { + var columnid = col2.split('\t')[0]; + // var coljs = col2.split('\t')[1] + return "'" + columnid + "':null,"; + }) + .join(''); + + var aft = '', + aft2 = ''; + + if (typeof query.groupStar !== 'undefined') { + aft2 += + "for(var f in p['" + + query.groupStar + + "']) {g[f]=p['" + + query.groupStar + + "'][f];};"; + } + + /* + */ + // s += self.columns.map(function(col){ + + s += query.selectGroup + .map(function(col) { + + var colexp = col.expression.toJS('p', tableid, defcols); + var colas = col.nick; + // if(typeof colas == 'undefined') { + // if(col instanceof yy.Column) colas = col.columnid; + // else colas = col.toString(); + // }; + if (col instanceof yy.AggrValue) { + if (col.distinct) { + aft += + ",g['$$_VALUES_" + + colas + + "']={},g['$$_VALUES_" + + colas + + "'][" + + colexp + + ']=true'; + } + if (col.aggregatorid === 'SUM') { + return "'" + colas + "':(" + colexp + ')||0,'; + } else if ( + col.aggregatorid === 'MIN' || + col.aggregatorid === 'MAX' || + col.aggregatorid === 'FIRST' || + col.aggregatorid === 'LAST' + // || col.aggregatorid == 'AVG' + // ) { return "'"+col.as+'\':r[\''+col.as+'\'],'; }//f.field.arguments[0].toJS(); + ) { + return "'" + colas + "':" + colexp + ','; //f.field.arguments[0].toJS(); + } else if (col.aggregatorid === 'ARRAY') { + return "'" + colas + "':[" + colexp + '],'; + } else if (col.aggregatorid === 'COUNT') { + if (col.expression.columnid === '*') { + return "'" + colas + "':1,"; + } else { + // return "'"+colas+'\':(typeof '+colexp+' != "undefined")?1:0,'; + // } else { + return "'" + colas + "':(typeof " + colexp + ' != "undefined")?1:0,'; + } + + // else if(col.aggregatorid == 'MIN') { return "'"+col.as+'\':r[\''+col.as+'\'],'; } + // else if(col.aggregatorid == 'MAX') { return "'"+col.as+'\':r[\''+col.as+'\'],'; } + } else if (col.aggregatorid === 'AVG') { + query.removeKeys.push('_SUM_' + colas); + query.removeKeys.push('_COUNT_' + colas); + + return ( + '' + + "'" + + colas + + "':" + + colexp + + ",'_SUM_" + + colas + + "':(" + + colexp + + ")||0,'_COUNT_" + + colas + + "':(typeof " + + colexp + + ' != "undefined")?1:0,' + ); + } else if (col.aggregatorid === 'AGGR') { + aft += ",g['" + colas + "']=" + col.expression.toJS('g', -1); + return ''; + } else if (col.aggregatorid === 'REDUCE') { + // query.removeKeys.push('_REDUCE_'+colas); + query.aggrKeys.push(col); + + // return "'"+colas+'\':alasql.aggr[\''+col.funcid+'\']('+colexp+',undefined,(acc={}),1),' + // +'\'__REDUCE__'+colas+'\':acc,'; + return ( + "'" + + colas + + "':alasql.aggr['" + + col.funcid + + "'](" + + colexp + + ',undefined,1),' + ); + } + return ''; + } + + return ''; + }) + .join(''); + + s += '}' + aft + ',g));' + aft2 + '} else {'; + + /* + // var neggroup = arrayDiff(allgroups,agroup); + + // s += neggroup.map(function(columnid){ + // return "g['"+columnid+"']=null;"; + // }).join(''); +*/ + + // s += self.columns.map(function(col){ + s += query.selectGroup + .map(function(col) { + var colas = col.nick; + + var colexp = col.expression.toJS('p', tableid, defcols); + + if (col instanceof yy.AggrValue) { + var pre = '', + post = ''; + if (col.distinct) { + var pre = + 'if(typeof ' + + colexp + + '!="undefined" && (!g[\'$$_VALUES_' + + colas + + "'][" + + colexp + + '])) \ + {'; + var post = "g['$$_VALUES_" + colas + "'][" + colexp + ']=true;}'; + } + if (col.aggregatorid === 'SUM') { + return pre + "g['" + colas + "']+=(" + colexp + '||0);' + post; //f.field.arguments[0].toJS(); + } else if (col.aggregatorid === 'COUNT') { + + if (col.expression.columnid === '*') { + return pre + "g['" + colas + "']++;" + post; + } else { + return ( + pre + + 'if(typeof ' + + colexp + + '!="undefined") g[\'' + + colas + + "']++;" + + post + ); + } + } else if (col.aggregatorid === 'ARRAY') { + return pre + "g['" + colas + "'].push(" + colexp + ');' + post; + } else if (col.aggregatorid === 'MIN') { + return ( + pre + + "g['" + + colas + + "']=Math.min(g['" + + colas + + "']," + + colexp + + ');' + + post + ); + } else if (col.aggregatorid === 'MAX') { + return ( + pre + + "g['" + + colas + + "']=Math.max(g['" + + colas + + "']," + + colexp + + ');' + + post + ); + } else if (col.aggregatorid === 'FIRST') { + return ''; + } else if (col.aggregatorid === 'LAST') { + return pre + "g['" + colas + "']=" + colexp + ';' + post; + } else if (col.aggregatorid === 'AVG') { + return ( + '' + + pre + + "g['_SUM_" + + colas + + "']+=(y=" + + colexp + + ')||0;' + + "g['_COUNT_" + + colas + + '\']+=(typeof y!="undefined")?1:0;' + + "g['" + + colas + + "']=g['_SUM_" + + colas + + "']/g['_COUNT_" + + colas + + "'];" + + post + ); + // } + // else if(col.aggregatorid == 'AVG') { srg.push(colas+':0'); } + } else if (col.aggregatorid === 'AGGR') { + return ( + '' + + pre + + "g['" + + colas + + "']=" + + col.expression.toJS('g', -1) + + ';' + + post + ); + } else if (col.aggregatorid === 'REDUCE') { + return ( + '' + + pre + + "g['" + + colas + + "']=alasql.aggr." + + col.funcid + + '(' + + colexp + + ",g['" + + colas + + "'],2);" + + post + ); + } + + return ''; + } + + return ''; + }) + .join(''); + + // s += selectFields.map(function(f){ + + // if(f.constructor.name == 'LiteralValue') return ''; + // if (f.field instanceof SQLParser.nodes.FunctionValue + // && (f.field.name.toUpperCase() == 'SUM' || f.field.name.toUpperCase() == 'COUNT')) { + // return 'group.'+f.name.value+'=+(+group.'+f.name.value+'||0)+'+f.field.arguments[0].toJS('rec','')+';'; //f.field.arguments[0].toJS(); + // return 'group.'+f.name.value+'+='+f.field.arguments[0].toJS('rec','')+';'; //f.field.arguments[0].toJS(); + // return 'group.'+f.name.value+'+=rec.'+f.name.value+';'; //f.field.arguments[0].toJS(); + // }; + // return ''; + // }).join(''); + + // s += ' group.amt += rec.emplid;'; + // s += 'group.count++;'; + s += '}'; + }); + + return new Function('p,params,alasql', 'var y;' + s); +}; + +/* +// +// Select compiler part for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +// yy.Select.prototype.compileSources = function(query) { + +// }; + +function compileSelectStar(query, aliases, joinstar) { + var sp = '', + ss = [], + columnIds = {}; + + aliases.forEach(function(alias) { + + // if(!alias) { + // sp += 'for(var k1 in p) var w=p[k1];for(var k2 in w){r[k2]=w[k2]};'; + // } else { + + // TODO move this out of this function + query.ixsources = {}; + query.sources.forEach(function(source) { + query.ixsources[source.alias] = source; + }); + + // Fixed + var columns; + if (query.ixsources[alias]) { + var columns = query.ixsources[alias].columns; + } + + // if(columns.length == 0 && query.aliases[alias].tableid) { + // var columns = alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns; + // }; + + // Check if this is a Table or other + if (joinstar && alasql.options.joinstar == 'json') { + sp += "r['" + alias + "']={};"; + } + + if (columns && columns.length > 0) { + columns.forEach(function(tcol) { + if (joinstar && alasql.options.joinstar == 'underscore') { + ss.push( + "'" + + alias + + '_' + + tcol.columnid + + "':p['" + + alias + + "']['" + + tcol.columnid + + "']" + ); + } else if (joinstar && alasql.options.joinstar == 'json') { + // ss.push('\''+alias+'_'+tcol.columnid+'\':p[\''+alias+'\'][\''+tcol.columnid+'\']'); + sp += + "r['" + + alias + + "']['" + + tcol.columnid + + "']=p['" + + alias + + "']['" + + tcol.columnid + + "'];"; + } else { + var value = "p['" + alias + "']['" + tcol.columnid + "']"; + if (!columnIds[tcol.columnid]) { + var key = "'" + tcol.columnid + "':"; + ss.push(key + value); + columnIds[tcol.columnid] = { + id: ss.length - 1, + value: value, + key: key, + }; + } else { + var newValue = + value + + ' !== undefined ? ' + + value + + ' : ' + + columnIds[tcol.columnid].value; + ss[columnIds[tcol.columnid].id] = columnIds[tcol.columnid].key + newValue; + columnIds[tcol.columnid].value = newValue; + } + } + + query.selectColumns[escapeq(tcol.columnid)] = true; + + var coldef = { + columnid: tcol.columnid, + dbtypeid: tcol.dbtypeid, + dbsize: tcol.dbsize, + dbprecision: tcol.dbprecision, + dbenum: tcol.dbenum, + }; + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + }); + + } else { + + // if column not exist, then copy all + sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};'; + + query.dirtyColumns = true; + } + // } + + }); + + return {s: ss.join(','), sp: sp}; +} + +yy.Select.prototype.compileSelect1 = function(query, params) { + var self = this; + query.columns = []; + query.xcolumns = {}; + query.selectColumns = {}; + query.dirtyColumns = false; + var s = 'var r={'; + var sp = ''; + var ss = []; + + this.columns.forEach(function(col) { + + if (col instanceof yy.Column) { + if (col.columnid === '*') { + if (col.func) { + sp += + "r=params['" + + col.param + + "'](p['" + + query.sources[0].alias + + "'],p,params,alasql);"; + } else if (col.tableid) { + //Copy all + var ret = compileSelectStar(query, [col.tableid], false); + if (ret.s) { + ss = ss.concat(ret.s); + } + sp += ret.sp; + } else { + + var ret = compileSelectStar(query, Object.keys(query.aliases), true); //query.aliases[alias].tableid); + if (ret.s) { + ss = ss.concat(ret.s); + } + sp += ret.sp; + + // TODO Remove these lines + // In case of no information + // sp += 'for(var k1 in p){var w=p[k1];'+ + // 'for(k2 in w) {r[k2]=w[k2]}}' + } + } else { + // If field, otherwise - expression + var tbid = col.tableid; + + var dbid = + col.databaseid || query.sources[0].databaseid || query.database.databaseid; + if (!tbid) tbid = query.defcols[col.columnid]; + if (!tbid) tbid = query.defaultTableid; + if (col.columnid !== '_') { + if ( + false && + tbid && + !query.defcols['.'][col.tableid] && + !query.defcols[col.columnid] + ) { + ss.push( + "'" + + escapeq(col.as || col.columnid) + + "':p['" + + query.defaultTableid + + "']['" + + col.tableid + + "']['" + + col.columnid + + "']" + ); + } else { + // workaround for multisheet xlsx export with custom COLUMNS + var isMultisheetParam = + params && + params.length > 1 && + Array.isArray(params[0]) && + params[0].length >= 1 && + params[0][0].hasOwnProperty('sheetid'); + if (isMultisheetParam) { + sp = + 'var r={};var w=p["' + + tbid + + '"];' + + 'var cols=[' + + self.columns + .map(function(col) { + return "'" + col.columnid + "'"; + }) + .join(',') + + '];var colas=[' + + self.columns + .map(function(col) { + return "'" + (col.as || col.columnid) + "'"; + }) + .join(',') + + '];' + + "for (var i=0;i 0) { + + var tcol = xcolumns[col.columnid]; + + if (undefined === tcol) { + throw new Error('Column does not exist: ' + col.columnid); + } + + var coldef = { + columnid: col.as || col.columnid, + dbtypeid: tcol.dbtypeid, + dbsize: tcol.dbsize, + dbpecision: tcol.dbprecision, + dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + } else { + var coldef = { + columnid: col.as || col.columnid, + // dbtypeid:tcol.dbtypeid, + // dbsize:tcol.dbsize, + // dbpecision:tcol.dbprecision, + // dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + + query.dirtyColumns = true; + } + } else { + var coldef = { + columnid: col.as || col.columnid, + // dbtypeid:tcol.dbtypeid, + // dbsize:tcol.dbsize, + // dbpecision:tcol.dbprecision, + // dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + // This is a subquery? + // throw new Error('There is now such table \''+col.tableid+'\''); + } + } + } else if (col instanceof yy.AggrValue) { + if (!self.group) { + // self.group=[new yy.Column({columnid:'q',as:'q' })]; + self.group = ['']; + } + if (!col.as) { + col.as = escapeq(col.toString()); + } + + if ( + col.aggregatorid === 'SUM' || + col.aggregatorid === 'MAX' || + col.aggregatorid === 'MIN' || + col.aggregatorid === 'FIRST' || + col.aggregatorid === 'LAST' || + col.aggregatorid === 'AVG' || + col.aggregatorid === 'ARRAY' || + col.aggregatorid === 'REDUCE' + ) { + ss.push( + "'" + + escapeq(col.as) + + "':" + + n2u(col.expression.toJS('p', query.defaultTableid, query.defcols)) + ); + } else if (col.aggregatorid === 'COUNT') { + ss.push("'" + escapeq(col.as) + "':1"); + // Nothing + } + // todo: confirm that no default action must be implemented + + // query.selectColumns[col.aggregatorid+'('+escapeq(col.expression.toString())+')'] = thtd; + + var coldef = { + columnid: col.as || col.columnid || col.toString(), + // dbtypeid:tcol.dbtypeid, + // dbsize:tcol.dbsize, + // dbpecision:tcol.dbprecision, + // dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + + // else if (col.aggregatorid == 'MAX') { + // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid)) + // } else if (col.aggregatorid == 'MIN') { + // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid)) + // } + } else { + + ss.push( + "'" + + escapeq(col.as || col.columnid || col.toString()) + + "':" + + n2u(col.toJS('p', query.defaultTableid, query.defcols)) + ); + // ss.push('\''+escapeq(col.toString())+'\':'+col.toJS("p",query.defaultTableid)); + //if(col instanceof yy.Expression) { + query.selectColumns[escapeq(col.as || col.columnid || col.toString())] = true; + + var coldef = { + columnid: col.as || col.columnid || col.toString(), + // dbtypeid:tcol.dbtypeid, + // dbsize:tcol.dbsize, + // dbpecision:tcol.dbprecision, + // dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + } + }); + s += ss.join(',') + '};' + sp; + return s; + +}; +yy.Select.prototype.compileSelect2 = function(query) { + var s = query.selectfns; + if (this.orderColumns && this.orderColumns.length > 0) { + this.orderColumns.forEach(function(v, idx) { + var key = '$$$' + idx; + if (v instanceof yy.Column && query.xcolumns[v.columnid]) { + s += "r['" + key + "']=r['" + v.columnid + "'];"; + } else { + s += "r['" + key + "']=" + v.toJS('p', query.defaultTableid, query.defcols) + ';'; + } + query.removeKeys.push(key); + }); + } + + return new Function('p,params,alasql', 'var y;' + s + 'return r'); +}; + +yy.Select.prototype.compileSelectGroup0 = function(query) { + var self = this; + self.columns.forEach(function(col, idx) { + if (!(col instanceof yy.Column && col.columnid === '*')) { + var colas; + // = col.as; + if (col instanceof yy.Column) { + colas = escapeq(col.columnid); + } else { + colas = escapeq(col.toString(true)); + + } + for (var i = 0; i < idx; i++) { + if (colas === self.columns[i].nick) { + colas = self.columns[i].nick + ':' + idx; + break; + } + } + // } + col.nick = colas; + if ( + col.funcid && + (col.funcid.toUpperCase() === 'ROWNUM' || col.funcid.toUpperCase() === 'ROW_NUMBER') + ) { + query.rownums.push(col.as); + } + + // } + } else { + query.groupStar = col.tableid || 'default'; + } + }); + + this.columns.forEach(function(col) { + if (col.findAggregator) { + col.findAggregator(query); + } + }); + + if (this.having) { + if (this.having.findAggregator) { + this.having.findAggregator(query); + } + } +}; + +yy.Select.prototype.compileSelectGroup1 = function(query) { + var self = this; + var s = 'var r = {};'; + + self.columns.forEach(function(col) { + + if (col instanceof yy.Column && col.columnid === '*') { + // s += 'for(var k in g){r[k]=g[k]};'; + // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};'; + + s += 'for(var k in g) {r[k]=g[k]};'; + return ''; + + } else { + // var colas = col.as; + var colas = col.as; + if (colas === undefined) { + if (col instanceof yy.Column) { + colas = escapeq(col.columnid); + } else { + colas = col.nick; + } + } + query.groupColumns[colas] = col.nick; + + // if(col.as) { + s += "r['" + colas + "']="; + // // } else { + // // s += 'r[\''+escapeq()+'\']='; + // // }; + // // s += ';'; + + s += n2u(col.toJS('g', '')) + ';'; + + for (var i = 0; i < query.removeKeys.length; i++) { + // THis part should be intellectual + if (query.removeKeys[i] === colas) { + query.removeKeys.splice(i, 1); + break; + } + } + } + }); + // return new Function('g,params,alasql',s+'return r'); + return s; +}; + +yy.Select.prototype.compileSelectGroup2 = function(query) { + var self = this; + var s = query.selectgfns; + self.columns.forEach(function(col) { + + if (query.ingroup.indexOf(col.nick) > -1) { + s += "r['" + (col.as || col.nick) + "']=g['" + col.nick + "'];"; + } + }); + + if (this.orderColumns && this.orderColumns.length > 0) { + this.orderColumns.forEach(function(v, idx) { + + var key = '$$$' + idx; + + if (v instanceof yy.Column && query.groupColumns[v.columnid]) { + s += "r['" + key + "']=r['" + v.columnid + "'];"; + } else { + s += "r['" + key + "']=" + v.toJS('g', '') + ';'; + } + query.removeKeys.push(key); + }); + } + + return new Function('g,params,alasql', 'var y;' + s + 'return r'); +}; + +// SELECY * REMOVE [COLUMNS] col-list, LIKE '' +yy.Select.prototype.compileRemoveColumns = function(query) { + var self = this; + if (typeof this.removecolumns !== 'undefined') { + query.removeKeys = query.removeKeys.concat( + this.removecolumns + .filter(function(column) { + return typeof column.like === 'undefined'; + }) + .map(function(column) { + return column.columnid; + }) + ); + + query.removeLikeKeys = this.removecolumns + .filter(function(column) { + return typeof column.like !== 'undefined'; + }) + .map(function(column) { + // return new RegExp((column.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'); + return column.like.value; + }); + } +}; + +/* global yy */ + +yy.Select.prototype.compileHaving = function(query) { + if (this.having) { + var s = this.having.toJS('g', -1); + query.havingfns = s; + + return new Function('g,params,alasql', 'var y;return ' + s); + } + + return function() { + return true; + }; +}; + +yy.Select.prototype.compileOrder = function(query) { + var self = this; + self.orderColumns = []; + if (this.order) { + + if ( + this.order && + this.order.length == 1 && + this.order[0].expression && + typeof this.order[0].expression == 'function' + ) { + + var func = this.order[0].expression; + + return function(a, b) { + var ra = func(a), + rb = func(b); + if (ra > rb) return 1; + if (ra == rb) return 0; + return -1; + }; + } + + var s = ''; + var sk = ''; + this.order.forEach(function(ord, idx) { + + if (ord.expression instanceof yy.NumValue) { + var v = self.columns[ord.expression.value - 1]; + } else { + var v = ord.expression; + } + self.orderColumns.push(v); + + var key = '$$$' + idx; + + // Date conversion + var dg = ''; + //if(alasql.options.valueof) + if (ord.expression instanceof yy.Column) { + var columnid = ord.expression.columnid; + if (query.xcolumns[columnid]) { + var dbtypeid = query.xcolumns[columnid].dbtypeid; + if (dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') + dg = '.valueOf()'; + // TODO Add other types mapping + } else { + if (alasql.options.valueof) dg = '.valueOf()'; // TODO Check + } + // dg = '.valueOf()'; + } + // COLLATE NOCASE + if (ord.nocase) dg += '.toUpperCase()'; + s += + "if((a['" + + key + + "']||'')" + + dg + + (ord.direction == 'ASC' ? '>' : '<') + + "(b['" + + key + + "']||'')" + + dg + + ')return 1;'; + s += "if((a['" + key + "']||'')" + dg + "==(b['" + key + "']||'')" + dg + '){'; + + /* +if(false) { + + if(ord.expression instanceof yy.NumValue) { + ord.expression = self.columns[ord.expression.value-1]; + + ord.expression = new yy.Column({columnid:ord.expression.nick}); + }; + + if(ord.expression instanceof yy.Column) { + var columnid = ord.expression.columnid; + if(query.xcolumns[columnid]) { + var dbtypeid = query.xcolumns[columnid].dbtypeid; + if( dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') dg = '.valueOf()'; + // TODO Add other types mapping + } else { + if(alasql.options.valueof) dg = '.valueOf()'; // TODO Check + } + // COLLATE NOCASE + if(ord.nocase) dg += '.toUpperCase()'; + + s += 'if((a[\''+columnid+"']||'')"+dg+(ord.direction == 'ASC'?'>':'<')+'(b[\''+columnid+"']||'')"+dg+')return 1;'; + s += 'if((a[\''+columnid+"']||'')"+dg+'==(b[\''+columnid+"']||'')"+dg+'){'; + + } else { + dg = '.valueOf()'; + // COLLATE NOCASE + if(ord.nocase) dg += '.toUpperCase()'; + s += 'if(('+ord.toJS('a','')+"||'')"+dg+(ord.direction == 'ASC'?'>(':'<(')+ord.toJS('b','')+"||'')"+dg+')return 1;'; + s += 'if(('+ord.toJS('a','')+"||'')"+dg+'==('+ord.toJS('b','')+"||'')"+dg+'){'; + } + + // TODO Add date comparision + +} +*/ + sk += '}'; + }); + s += 'return 0;'; + s += sk + 'return -1'; + query.orderfns = s; + + return new Function('a,b', 'var y;' + s); + } +}; + +// Pivot functions +/** + Compile Pivot functions + @param {object} query Source query + @return {function} Pivoting functions +*/ +yy.Select.prototype.compilePivot = function(query) { + var self = this; + /** @type {string} Main pivoting column */ + + var columnid = self.pivot.columnid; + var exprcolid = self.pivot.expr.expression.columnid; + var aggr = self.pivot.expr.aggregatorid; + var inlist = self.pivot.inlist; + + if (inlist) { + inlist = inlist.map(function(l) { + return l.expr.columnid; + }); + } + + // Function for PIVOT post production + return function() { + var query = this; + var cols = query.columns + .filter(function(col) { + return col.columnid != columnid && col.columnid != exprcolid; + }) + .map(function(col) { + return col.columnid; + }); + + var newcols = []; + var gnewcols = {}; + var gr = {}; + var ga = {}; + var data = []; + query.data.forEach(function(d) { + if (!inlist || inlist.indexOf(d[columnid]) > -1) { + var gx = cols + .map(function(colid) { + return d[colid]; + }) + .join('`'); + var g = gr[gx]; + if (!g) { + g = {}; + gr[gx] = g; + data.push(g); + cols.forEach(function(colid) { + g[colid] = d[colid]; + }); + } + + if (!ga[gx]) { + ga[gx] = {}; + } + + if (ga[gx][d[columnid]]) { + ga[gx][d[columnid]]++; + } else { + ga[gx][d[columnid]] = 1; + } + + if (!gnewcols[d[columnid]]) { + gnewcols[d[columnid]] = true; + newcols.push(d[columnid]); + } + + if (aggr == 'SUM' || aggr == 'AVG') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0; + g[d[columnid]] += d[exprcolid]; + } else if (aggr == 'COUNT') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0; + g[d[columnid]]++; + } else if (aggr == 'MIN') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = Infinity; + if (d[exprcolid] < g[d[columnid]]) g[d[columnid]] = d[exprcolid]; + } else if (aggr == 'MAX') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = -Infinity; + if (d[exprcolid] > g[d[columnid]]) g[d[columnid]] = d[exprcolid]; + } else if (aggr == 'FIRST') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid]; + } else if (aggr == 'LAST') { + g[d[columnid]] = d[exprcolid]; + } else if (alasql.aggr[aggr]) { + // Custom aggregator + alasql.aggr[aggr](g[d[columnid]], d[exprcolid]); + } else { + throw new Error('Wrong aggregator in PIVOT clause'); + } + } + }); + + if (aggr == 'AVG') { + for (var gx in gr) { + var d = gr[gx]; + for (var colid in d) { + if (cols.indexOf(colid) == -1 && colid != exprcolid) { + d[colid] = d[colid] / ga[gx][colid]; + } + } + } + } + + // columns + query.data = data; + + if (inlist) newcols = inlist; + + var ncol = query.columns.filter(function(col) { + return col.columnid == exprcolid; + })[0]; + query.columns = query.columns.filter(function(col) { + return !(col.columnid == columnid || col.columnid == exprcolid); + }); + newcols.forEach(function(colid) { + var nc = cloneDeep(ncol); + nc.columnid = colid; + query.columns.push(nc); + }); + }; +}; + +// var columnid = this.pivot.columnid; + +// return function(data){ + +// if(false) { + +// } + +// if(false) { + +// } +// }; + +/** + Compile UNPIVOT clause + @param {object} query Query object + @return {function} Function for unpivoting +*/ +yy.Select.prototype.compileUnpivot = function(query) { + var self = this; + var tocolumnid = self.unpivot.tocolumnid; + var forcolumnid = self.unpivot.forcolumnid; + var inlist = self.unpivot.inlist.map(function(l) { + return l.columnid; + }); + + return function() { + var data = []; + + var xcols = query.columns + .map(function(col) { + return col.columnid; + }) + .filter(function(colid) { + return inlist.indexOf(colid) == -1 && colid != forcolumnid && colid != tocolumnid; + }); + + query.data.forEach(function(d) { + inlist.forEach(function(colid) { + var nd = {}; + xcols.forEach(function(xcolid) { + nd[xcolid] = d[xcolid]; + }); + nd[forcolumnid] = colid; + nd[tocolumnid] = d[colid]; + data.push(nd); + }); + }); + + query.data = data; + + // }); + }; +}; + +/* +// +// ROLLUP(), CUBE(), GROUPING SETS() for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/** + Calculate ROLLUP() combination + */ + +var rollup = function(a, query) { + var rr = []; + var mask = 0; + var glen = a.length; + for (var g = 0; g < glen + 1; g++) { + var ss = []; + for (var i = 0; i < glen; i++) { + if (a[i] instanceof yy.Column) { + a[i].nick = escapeq(a[i].columnid); + + query.groupColumns[escapeq(a[i].columnid)] = a[i].nick; + var aaa = a[i].nick + '\t' + a[i].toJS('p', query.sources[0].alias, query.defcols); + } else { + query.groupColumns[escapeq(a[i].toString())] = escapeq(a[i].toString()); + var aaa = + escapeq(a[i].toString()) + + '\t' + + a[i].toJS('p', query.sources[0].alias, query.defcols); + } + + if (mask & (1 << i)) ss.push(aaa); + } + rr.push(ss); + mask = (mask << 1) + 1; + } + return rr; +}; + +/** + Calculate CUBE() + */ +var cube = function(a, query) { + var rr = []; + var glen = a.length; + var glenCube = 1 << glen; + for (var g = 0; g < glenCube; g++) { + var ss = []; + for (var i = 0; i < glen; i++) { + if (g & (1 << i)) + //ss.push(a[i]); + //ss = cartes(ss,decartes(a[i])); + + // var aaa = a[i].toString()+'\t' + // +a[i].toJS('p',query.sources[0].alias,query.defcols); + + ss = ss.concat(decartes(a[i], query)); + // + } + rr.push(ss); + } + return rr; +}; + +/** + GROUPING SETS() + */ +var groupingsets = function(a, query) { + return a.reduce(function(acc, d) { + acc = acc.concat(decartes(d, query)); + return acc; + }, []); +}; + +/** + Cartesian production + */ +var cartes = function(a1, a2) { + var rrr = []; + for (var i1 = 0; i1 < a1.length; i1++) { + for (var i2 = 0; i2 < a2.length; i2++) { + rrr.push(a1[i1].concat(a2[i2])); + } + } + return rrr; +}; + +/** + Prepare groups function + */ +function decartes(gv, query) { + + if (Array.isArray(gv)) { + var res = [[]]; + for (var t = 0; t < gv.length; t++) { + if (gv[t] instanceof yy.Column) { + + gv[t].nick = escapeq(gv[t].columnid); + query.groupColumns[gv[t].nick] = gv[t].nick; + res = res.map(function(r) { + return r.concat( + gv[t].nick + '\t' + gv[t].toJS('p', query.sources[0].alias, query.defcols) + ); + }); + // res = res.map(function(r){return r.concat(gv[t].columnid)}); + } else if (gv[t] instanceof yy.FuncValue) { + query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString()); + res = res.map(function(r) { + return r.concat( + escapeq(gv[t].toString()) + + '\t' + + gv[t].toJS('p', query.sources[0].alias, query.defcols) + ); + }); + // to be defined + } else if (gv[t] instanceof yy.GroupExpression) { + if (gv[t].type == 'ROLLUP') res = cartes(res, rollup(gv[t].group, query)); + else if (gv[t].type == 'CUBE') res = cartes(res, cube(gv[t].group, query)); + else if (gv[t].type == 'GROUPING SETS') + res = cartes(res, groupingsets(gv[t].group, query)); + else throw new Error('Unknown grouping function'); + } else if (gv[t] === '') { + + res = [['1\t1']]; + } else { + // if(gv[t]) + + res = res.map(function(r) { + query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString()); + return r.concat( + escapeq(gv[t].toString()) + + '\t' + + gv[t].toJS('p', query.sources[0].alias, query.defcols) + ); + }); + // res = res.concat(gv[t]); + } + + } + return res; + } else if (gv instanceof yy.FuncValue) { + + query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString()); + return [gv.toString() + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; + } else if (gv instanceof yy.Column) { + gv.nick = escapeq(gv.columnid); + query.groupColumns[gv.nick] = gv.nick; + return [gv.nick + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; // Is this ever happened? + // } else if(gv instanceof yy.Expression) { + // return [gv.columnid]; // Is this ever happened? + } else { + query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString()); + return [ + escapeq(gv.toString()) + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols), + ]; + // throw new Error('Single argument in the group without array'); + } + +} + +/* +// +// Select run-time part for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.Select.prototype.compileDefCols = function(query, databaseid) { + + var defcols = {'.': {}}; + if (this.from) { + this.from.forEach(function(fr) { + defcols['.'][fr.as || fr.tableid] = true; + if (fr instanceof yy.Table) { + var alias = fr.as || fr.tableid; + + var table = alasql.databases[fr.databaseid || databaseid].tables[fr.tableid]; + + if (undefined === table) { + throw new Error('Table does not exist: ' + fr.tableid); + } + + if (table.columns) { + table.columns.forEach(function(col) { + if (defcols[col.columnid]) { + defcols[col.columnid] = '-'; // Ambigous + } else { + defcols[col.columnid] = alias; + } + }); + } + } else if (fr instanceof yy.Select) { + } else if (fr instanceof yy.Search) { + } else if (fr instanceof yy.ParamValue) { + } else if (fr instanceof yy.VarValue) { + } else if (fr instanceof yy.FuncValue) { + } else if (fr instanceof yy.FromData) { + } else if (fr instanceof yy.Json) { + } else if (fr.inserted) { + } else { + + throw new Error('Unknown type of FROM clause'); + } + }); + } + + if (this.joins) { + this.joins.forEach(function(jn) { + defcols['.'][jn.as || jn.table.tableid] = true; + + if (jn.table) { + var alias = jn.table.tableid; + if (jn.as) alias = jn.as; + var alias = jn.as || jn.table.tableid; + var table = + alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid]; + + if (table.columns) { + table.columns.forEach(function(col) { + if (defcols[col.columnid]) { + defcols[col.columnid] = '-'; // Ambigous + } else { + defcols[col.columnid] = alias; + } + }); + } + } else if (jn.select) { + } else if (jn.param) { + } else if (jn.func) { + } else { + throw new Error('Unknown type of FROM clause'); + } + }); + } + // for(var k in defcols) { + // if(defcols[k] == '-') defcols[k] = undefined; + // } + + return defcols; +}; + +/* +// +// UNION for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +// SELECT UNION statement + +yy.Union = function(params) { + return yy.extend(this, params); +}; +yy.Union.prototype.toString = function() { + return 'UNION'; +}; + +yy.Union.prototype.compile = function(tableid) { + return null; +}; + +/* +// +// CROSS AND OUTER APPLY for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.Apply = function(params) { + return yy.extend(this, params); +}; + +yy.Apply.prototype.toString = function() { + var s = this.applymode + ' APPLY (' + this.select.toString() + ')'; + + if (this.as) s += ' AS ' + this.as; + + return s; +}; + +/* +// +// CROSS AND OUTER APPLY for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.Over = function(params) { + return yy.extend(this, params); +}; +yy.Over.prototype.toString = function() { + var s = 'OVER ('; + if (this.partition) { + s += 'PARTITION BY ' + this.partition.toString(); + if (this.order) s += ' '; + } + if (this.order) { + s += 'ORDER BY ' + this.order.toString(); + } + s += ')'; + return s; +}; + +/* +// +// Expressions for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/** + Expression statement ( = 2*2; ) + @class + @param {object} params Initial parameters +*/ +yy.ExpressionStatement = function(params) { + return yy.extend(this, params); +}; + +/** + Convert AST to string + @this ExpressionStatement + @return {string} +*/ +yy.ExpressionStatement.prototype.toString = function() { + return this.expression.toString(); +}; +/** + Execute statement + @param {string} databaseid Database identificatro + @param {object} params Statement parameters + @param {statement-callback} cb Callback + @return {object} Result value +*/ +yy.ExpressionStatement.prototype.execute = function(databaseid, params, cb) { + if (this.expression) { + + alasql.precompile(this, databaseid, params); // Precompile queries + var exprfn = new Function( + 'params,alasql,p', + 'var y;return ' + this.expression.toJS('({})', '', null) + ).bind(this); + var res = exprfn(params, alasql); + if (cb) { + res = cb(res); + } + return res; + } +}; + +/** + Expression class + @class + @param {object} params Initial parameters +*/ + +yy.Expression = function(params) { + return yy.extend(this, params); +}; + +/** + Convert AST to string + @this ExpressionStatement + @return {string} +*/ +yy.Expression.prototype.toString = function(dontas) { + var s = this.expression.toString(dontas); + if (this.order) { + s += ' ' + this.order.toString(); + } + if (this.nocase) { + s += ' COLLATE NOCASE'; + } + if (this.direction) { + s += ' ' + this.direction; + } + return s; +}; + +/** + Find aggregator in AST subtree + @this ExpressionStatement + @param {object} query Query object +*/ +yy.Expression.prototype.findAggregator = function(query) { + if (this.expression.findAggregator) { + this.expression.findAggregator(query); + } +}; + +/** + Convert AST to JavaScript expression + @this ExpressionStatement + @param {string} context Context string, e.g. 'p','g', or 'x' + @param {string} tableid Default table name + @param {object} defcols Default columns dictionary + @return {string} JavaScript expression +*/ + +yy.Expression.prototype.toJS = function(context, tableid, defcols) { + + if (this.expression.reduced) { + return 'true'; + } + return this.expression.toJS(context, tableid, defcols); +}; + +/** + Compile AST to JavaScript expression + @this ExpressionStatement + @param {string} context Context string, e.g. 'p','g', or 'x' + @param {string} tableid Default table name + @param {object} defcols Default columns dictionary + @return {string} JavaScript expression +*/ + +yy.Expression.prototype.compile = function(context, tableid, defcols) { + + if (this.reduced) { + return returnTrue(); + } + return new Function('p', 'var y;return ' + this.toJS(context, tableid, defcols)); +}; + +/** + JavaScript class + @class +*/ +yy.JavaScript = function(params) { + return yy.extend(this, params); +}; +yy.JavaScript.prototype.toString = function() { + var s = '``' + this.value + '``'; + return s; +}; + +yy.JavaScript.prototype.toJS = function(/* context, tableid, defcols*/) { + + return '(' + this.value + ')'; +}; +yy.JavaScript.prototype.execute = function(databaseid, params, cb) { + var res = 1; + var expr = new Function('params,alasql,p', this.value); + expr(params, alasql); + if (cb) { + res = cb(res); + } + return res; +}; + +/** + Literal class + @class + @example + MyVar, [My vairable], `MySQL variable` +*/ + +yy.Literal = function(params) { + return yy.extend(this, params); +}; +yy.Literal.prototype.toString = function(dontas) { + var s = this.value; + if (this.value1) { + s = this.value1 + '.' + s; + } + if (this.alias && !dontas) s += ' AS ' + this.alias; + // else s = tableid+'.'+s; + return s; +}; + +/** + Join class + @class +*/ + +yy.Join = function(params) { + return yy.extend(this, params); +}; +yy.Join.prototype.toString = function() { + var s = ' '; + if (this.joinmode) { + s += this.joinmode + ' '; + } + s += 'JOIN ' + this.table.toString(); + return s; +}; + +// } + +/** + Table class + @class +*/ + +yy.Table = function(params) { + return yy.extend(this, params); +}; +yy.Table.prototype.toString = function() { + var s = this.tableid; + // if(this.joinmode) + if (this.databaseid) { + s = this.databaseid + '.' + s; + } + return s; +}; + +/** + View class + @class +*/ + +yy.View = function(params) { + return yy.extend(this, params); +}; +yy.View.prototype.toString = function() { + var s = this.viewid; + // if(this.joinmode) + if (this.databaseid) { + s = this.databaseid + '.' + s; + } + return s; +}; + +/** + Binary operation class + @class +*/ +yy.Op = function(params) { + return yy.extend(this, params); +}; +yy.Op.prototype.toString = function() { + if (this.op === 'IN' || this.op === 'NOT IN') { + return this.left.toString() + ' ' + this.op + ' (' + this.right.toString() + ')'; + } + if (this.allsome) { + return ( + this.left.toString() + + ' ' + + this.op + + ' ' + + this.allsome + + ' (' + + this.right.toString() + + ')' + ); + } + if (this.op === '->' || this.op === '!') { + var s = this.left.toString() + this.op; + + if (typeof this.right !== 'string' && typeof this.right !== 'number') { + s += '('; + } + + s += this.right.toString(); + + if (typeof this.right !== 'string' && typeof this.right !== 'number') { + s += ')'; + } + + return s; + } + return ( + this.left.toString() + + ' ' + + this.op + + ' ' + + (this.allsome ? this.allsome + ' ' : '') + + this.right.toString() + ); +}; + +yy.Op.prototype.findAggregator = function(query) { + + if (this.left && this.left.findAggregator) { + this.left.findAggregator(query); + } + // Do not go in > ALL + if (this.right && this.right.findAggregator && !this.allsome) { + this.right.findAggregator(query); + } +}; + +yy.Op.prototype.toType = function(tableid) { + if (['-', '*', '/', '%', '^'].indexOf(this.op) > -1) { + return 'number'; + } + if (['||'].indexOf(this.op) > -1) { + return 'string'; + } + if (this.op === '+') { + if (this.left.toType(tableid) === 'string' || this.right.toType(tableid) === 'string') { + return 'string'; + } + if (this.left.toType(tableid) === 'number' || this.right.toType(tableid) === 'number') { + return 'number'; + } + } + + if ( + [ + 'AND', + 'OR', + 'NOT', + '=', + '==', + '===', + '!=', + '!==', + '!===', + '>', + '>=', + '<', + '<=', + 'IN', + 'NOT IN', + 'LIKE', + 'NOT LIKE', + 'REGEXP', + 'GLOB', + ].indexOf(this.op) > -1 + ) { + return 'boolean'; + } + + if ( + this.op === 'BETWEEN' || + this.op === 'NOT BETWEEN' || + this.op === 'IS NULL' || + this.op === 'IS NOT NULL' + ) { + return 'boolean'; + } + + if (this.allsome) { + return 'boolean'; + } + + if (!this.op) { + return this.left.toType(); + } + + return 'unknown'; +}; + +yy.Op.prototype.toJS = function(context, tableid, defcols) { + + var s; + var refs = []; + var op = this.op; + var _this = this; + //var leftJS = function(){return _this.left.toJS(context,tableid, defcols)}; + //var rightJS = function(){return _this.right.toJS(context,tableid, defcols)}; + var accessedLeft = false, + accessedRight = false; + var ref = function(expr) { + if (expr.toJS) { + expr = expr.toJS(context, tableid, defcols); + } + var i = refs.push(expr) - 1; + return 'y[' + i + ']'; + }; + var leftJS = function() { + return ref(_this.left); + }; + var rightJS = function() { + return ref(_this.right); + }; + + if (this.op === '=') { + op = '==='; + } else if (this.op === '<>') { + op = '!='; + } else if (this.op === 'OR') { + op = '||'; + } + + // Arrow operator + if (this.op === '->') { + // Expression to prevent error if object is empty (#344) + var ljs = '(' + leftJS() + '||{})'; + + if (typeof this.right === 'string') { + s = ljs + '["' + this.right + '"]'; + } else if (typeof this.right === 'number') { + s = ljs + '[' + this.right + ']'; + } else if (this.right instanceof yy.FuncValue) { + var ss = []; + if (!(!this.right.args || 0 === this.right.args.length)) { + var ss = this.right.args.map(ref); + } + s = '' + ljs + "['" + this.right.funcid + "'](" + ss.join(',') + ')'; + } else { + s = '' + ljs + '[' + rightJS() + ']'; + } + } + + if (this.op === '!') { + if (typeof this.right === 'string') { + s = + '' + + 'alasql.databases[alasql.useid].objects[' + + leftJS() + + ']["' + + this.right + + '"]'; + } + // TODO - add other cases + } + + if (this.op === 'IS') { + s = + '' + + '(' + + '(' + + leftJS() + + '==null)' + // Cant be === + ' === ' + + '(' + + rightJS() + + '==null)' + // Cant be === + ')'; + } + + if (this.op === '==') { + s = '' + 'alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + ')'; + } + + if (this.op === '===' || this.op === '!===') { + s = + '' + + '(' + + (this.op === '!===' ? '!' : '') + + '(' + + '(' + + leftJS() + + ').valueOf()' + + '===' + + '(' + + rightJS() + + ').valueOf()' + + ')' + + ')'; + } + + if (this.op === '!==') { + s = '' + '(!alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + '))'; + } + if (this.op === '||') { + s = '' + "(''+(" + leftJS() + "||'')+(" + rightJS() + '||""))'; + } + if (this.op === 'LIKE' || this.op === 'NOT LIKE') { + var s = + '(' + + (this.op === 'NOT LIKE' ? '!' : '') + + 'alasql.utils.like(' + + rightJS() + + ',' + + leftJS(); + if (this.escape) { + s += ',' + ref(this.escape); + } + s += '))'; + } + if (this.op === 'REGEXP') { + s = 'alasql.stdfn.REGEXP_LIKE(' + leftJS() + ',' + rightJS() + ')'; + } + if (this.op === 'GLOB') { + s = 'alasql.utils.glob(' + leftJS() + ',' + rightJS() + ')'; + } + + if (this.op === 'BETWEEN' || this.op === 'NOT BETWEEN') { + var left = leftJS(); + s = + '' + + '(' + + (this.op === 'NOT BETWEEN' ? '!' : '') + + '(' + + '(' + + ref(this.right1) + + '<=' + + left + + ') && (' + + left + + '<=' + + ref(this.right2) + + ')' + + ')' + + ')'; + + } + + if (this.op === 'IN') { + if (this.right instanceof yy.Select) { + s = '('; + // s += 'this.query.queriesdata['+this.queriesidx+']'; + // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,context))'; + s += + 'alasql.utils.flatArray(this.queriesfn[' + + this.queriesidx + + '](params,null,' + + context + + '))'; + s += '.indexOf('; + s += leftJS() + ')>-1)'; + } else if (Array.isArray(this.right)) { + // if(this.right.length == 0) return 'false'; + s = '([' + this.right.map(ref).join(',') + '].indexOf(' + leftJS() + ')>-1)'; + + } else { + s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)'; + + // } else { + // throw new Error('Wrong IN operator without SELECT part'); + } + } + + if (this.op === 'NOT IN') { + if (this.right instanceof yy.Select) { + s = '('; + //this.query.queriesdata['+this.queriesidx+'] + // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,p))'; + s += 'alasql.utils.flatArray(this.queriesfn[' + this.queriesidx + '](params,null,p))'; + s += '.indexOf('; + s += leftJS() + ')<0)'; + } else if (Array.isArray(this.right)) { + // if(this.right.length == 0) return 'true'; + s = '([' + this.right.map(ref).join(',') + '].indexOf('; + s += leftJS() + ')<0)'; + } else { + s = '(' + rightJS() + '.indexOf('; + s += leftJS() + ')==-1)'; + + // throw new Error('Wrong NOT IN operator without SELECT part'); + } + } + + if (this.allsome === 'ALL') { + var s; + if (this.right instanceof yy.Select) { + // var s = 'this.query.queriesdata['+this.queriesidx+']'; + s = + 'alasql.utils.flatArray(this.query.queriesfn[' + + this.queriesidx + + '](params,null,p))'; + + s += '.every(function(b){return ('; + s += leftJS() + ')' + op + 'b})'; + } else if (Array.isArray(this.right)) { + s = + '' + + (this.right.length == 1 + ? ref(this.right[0]) + : '[' + this.right.map(ref).join(',') + ']'); + s += '.every(function(b){return ('; + s += leftJS() + ')' + op + 'b})'; + } else { + throw new Error('NOT IN operator without SELECT'); + } + } + + if (this.allsome === 'SOME' || this.allsome === 'ANY') { + var s; + if (this.right instanceof yy.Select) { + // var s = 'this.query.queriesdata['+this.queriesidx+']'; + s = + 'alasql.utils.flatArray(this.query.queriesfn[' + + this.queriesidx + + '](params,null,p))'; + s += '.some(function(b){return ('; + s += leftJS() + ')' + op + 'b})'; + } else if (Array.isArray(this.right)) { + s = + '' + + (this.right.length == 1 + ? ref(this.right[0]) + : '[' + this.right.map(ref).join(',') + ']'); + s += '.some(function(b){return ('; + s += leftJS() + ')' + op + 'b})'; + } else { + throw new Error('SOME/ANY operator without SELECT'); + } + } + + // Special case for AND optimization (if reduced) + if (this.op === 'AND') { + if (this.left.reduced) { + if (this.right.reduced) { + return 'true'; + } else { + s = rightJS(); + } + } else if (this.right.reduced) { + s = leftJS(); + } + + // Otherwise process as regular operation (see below) + op = '&&'; + } + + // if(this.op === '^') { + // // return 'Math.pow(' + // // + leftJS() + // // + ',' + // // + rightJS() + // // + ')'; + // } + + // Change names + + var expr = s || '(' + leftJS() + op + rightJS() + ')'; + + var declareRefs = 'y=[(' + refs.join('), (') + ')]'; + + if (op === '&&' || op === '||' || op === 'IS' || op === 'IS NULL' || op === 'IS NOT NULL') { + return '(' + declareRefs + ', ' + expr + ')'; + } + + return ( + '(' + declareRefs + ', ' + 'y.some(function(e){return e == null}) ? void 0 : ' + expr + ')' + ); +}; + +yy.VarValue = function(params) { + return yy.extend(this, params); +}; +yy.VarValue.prototype.toString = function() { + return '@' + this.variable; +}; + +yy.VarValue.prototype.toType = function() { + return 'unknown'; +}; + +yy.VarValue.prototype.toJS = function() { + return "alasql.vars['" + this.variable + "']"; +}; + +yy.NumValue = function(params) { + return yy.extend(this, params); +}; +yy.NumValue.prototype.toString = function() { + return this.value.toString(); +}; + +yy.NumValue.prototype.toType = function() { + return 'number'; +}; + +yy.NumValue.prototype.toJS = function() { + return '' + this.value; +}; + +yy.StringValue = function(params) { + return yy.extend(this, params); +}; +yy.StringValue.prototype.toString = function() { + return "'" + this.value.toString() + "'"; +}; + +yy.StringValue.prototype.toType = function() { + return 'string'; +}; + +yy.StringValue.prototype.toJS = function() { + + // return "'"+doubleqq(this.value)+"'"; + return "'" + escapeq(this.value) + "'"; +}; + +yy.DomainValueValue = function(params) { + return yy.extend(this, params); +}; +yy.DomainValueValue.prototype.toString = function() { + return 'VALUE'; +}; + +yy.DomainValueValue.prototype.toType = function() { + return 'object'; +}; + +yy.DomainValueValue.prototype.toJS = function(context, tableid, defcols) { + + // return "'"+doubleqq(this.value)+"'"; + return context; +}; + +yy.ArrayValue = function(params) { + return yy.extend(this, params); +}; +yy.ArrayValue.prototype.toString = function() { + return 'ARRAY[]'; +}; + +yy.ArrayValue.prototype.toType = function() { + return 'object'; +}; + +yy.ArrayValue.prototype.toJS = function(context, tableid, defcols) { + + // return "'"+doubleqq(this.value)+"'"; + return ( + '[(' + + this.value + .map(function(el) { + return el.toJS(context, tableid, defcols); + }) + .join('), (') + + ')]' + ); +}; + +yy.LogicValue = function(params) { + return yy.extend(this, params); +}; +yy.LogicValue.prototype.toString = function() { + return this.value ? 'TRUE' : 'FALSE'; +}; + +yy.LogicValue.prototype.toType = function() { + return 'boolean'; +}; + +yy.LogicValue.prototype.toJS = function() { + return this.value ? 'true' : 'false'; +}; + +yy.NullValue = function(params) { + return yy.extend(this, params); +}; +yy.NullValue.prototype.toString = function() { + return 'NULL'; +}; +yy.NullValue.prototype.toJS = function() { + return 'undefined'; + // return 'undefined'; +}; + +yy.ParamValue = function(params) { + return yy.extend(this, params); +}; +yy.ParamValue.prototype.toString = function() { + return '$' + this.param; +}; +yy.ParamValue.prototype.toJS = function() { + if (typeof this.param === 'string') { + return "params['" + this.param + "']"; + } + + return 'params[' + this.param + ']'; +}; + +yy.UniOp = function(params) { + return yy.extend(this, params); +}; +yy.UniOp.prototype.toString = function() { + var s; + s = void 0; + if (this.op === '~') { + s = this.op + this.right.toString(); + } + if (this.op === '-') { + s = this.op + this.right.toString(); + } + if (this.op === '+') { + s = this.op + this.right.toString(); + } + if (this.op === '#') { + s = this.op + this.right.toString(); + } + if (this.op === 'NOT') { + s = this.op + '(' + this.right.toString() + ')'; + } + if (this.op === null) { + s = '(' + this.right.toString() + ')'; + } + if (!s) { + s = '(' + this.right.toString() + ')'; + } + return s; +}; + +yy.UniOp.prototype.findAggregator = function(query) { + if (this.right.findAggregator) { + this.right.findAggregator(query); + } +}; + +yy.UniOp.prototype.toType = function() { + if (this.op === '-') { + return 'number'; + } + + if (this.op === '+') { + return 'number'; + } + + if (this.op === 'NOT') { + return 'boolean'; + } + + // Todo: implement default case +}; + +yy.UniOp.prototype.toJS = function(context, tableid, defcols) { + if (this.op === '~') { + return '(~(' + this.right.toJS(context, tableid, defcols) + '))'; + } + + if (this.op === '-') { + return '(-(' + this.right.toJS(context, tableid, defcols) + '))'; + } + + if (this.op === '+') { + return '(' + this.right.toJS(context, tableid, defcols) + ')'; + } + + if (this.op === 'NOT') { + return '!(' + this.right.toJS(context, tableid, defcols) + ')'; + } + + if (this.op === '#') { + if (this.right instanceof yy.Column) { + return "(alasql.databases[alasql.useid].objects['" + this.right.columnid + "'])"; + } else { + return ( + '(alasql.databases[alasql.useid].objects[' + + this.right.toJS(context, tableid, defcols) + + '])' + ); + } + } + + // Please avoid === here + if (this.op == null) { + // jshint ignore:line + return '(' + this.right.toJS(context, tableid, defcols) + ')'; + } + + // Todo: implement default case. +}; + +yy.Column = function(params) { + return yy.extend(this, params); +}; +yy.Column.prototype.toString = function(dontas) { + var s; + if (this.columnid == +this.columnid) { + // jshint ignore:line + s = '[' + this.columnid + ']'; + } else { + s = this.columnid; + } + if (this.tableid) { + if (+this.columnid === this.columnid) { + s = this.tableid + s; + } else { + s = this.tableid + '.' + s; + } + if (this.databaseid) { + s = this.databaseid + '.' + s; + } + } + if (this.alias && !dontas) s += ' AS ' + this.alias; + return s; +}; + +yy.Column.prototype.toJS = function(context, tableid, defcols) { + + var s = ''; + if (!this.tableid && tableid === '' && !defcols) { + if (this.columnid !== '_') { + s = context + "['" + this.columnid + "']"; + } else { + if (context === 'g') { + s = "g['_']"; + } else { + s = context; + } + } + } else { + if (context === 'g') { + // if(this.columnid == '_') { + // } else { + s = "g['" + this.nick + "']"; + // } + } else if (this.tableid) { + if (this.columnid !== '_') { + // if() { + // s = context+'[\''+tableid + '\'][\''+this.tableid+'\'][\''+this.columnid+'\']'; + // } else { + s = context + "['" + this.tableid + "']['" + this.columnid + "']"; + // } + } else { + if (context === 'g') { + s = "g['_']"; + } else { + s = context + "['" + this.tableid + "']"; + } + } + } else if (defcols) { + var tbid = defcols[this.columnid]; + if (tbid === '-') { + throw new Error( + 'Cannot resolve column "' + + this.columnid + + '" because it exists in two source tables' + ); + } else if (tbid) { + if (this.columnid !== '_') { + s = context + "['" + tbid + "']['" + this.columnid + "']"; + } else { + s = context + "['" + tbid + "']"; + } + + } else { + if (this.columnid !== '_') { + // if(defcols['.'][this.tableid]) { + + // s = context+'[\''+tableid + '\'][\''+this.tableid + '\'][\''+this.columnid+'\']'; + // } else { + s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']"; + // } + } else { + s = context + "['" + (this.tableid || tableid) + "']"; + } + } + } else if (tableid === -1) { + // if(this.columnid != '') { + s = context + "['" + this.columnid + "']"; + // } else { + // s = context; + // } + } else { + if (this.columnid !== '_') { + s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']"; + } else { + s = context + "['" + (this.tableid || tableid) + "']"; + } + } + } + + // console.trace(new Error()); + + return s; +}; + +yy.AggrValue = function(params) { + return yy.extend(this, params); +}; +yy.AggrValue.prototype.toString = function(dontas) { + var s = ''; + if (this.aggregatorid === 'REDUCE') { + s += this.funcid + '('; + } else { + s += this.aggregatorid + '('; + } + + if (this.distinct) { + s += 'DISTINCT '; + } + + if (this.expression) { + s += this.expression.toString(); + } + + s += ')'; + + if (this.over) { + s += ' ' + this.over.toString(); + } + + if (this.alias && !dontas) s += ' AS ' + this.alias; + // if(this.alias) s += ' AS '+this.alias; + return s; +}; + +yy.AggrValue.prototype.findAggregator = function(query) { + + // var colas = this.as || this.toString(); + + var colas = escapeq(this.toString()) + ':' + query.selectGroup.length; + + // if(!query.selectColumns[colas]) { + // } + + var found = false; + + if (!found) { + if (!this.nick) { + this.nick = colas; + var found = false; + for (var i = 0; i < query.removeKeys.length; i++) { + if (query.removeKeys[i] === colas) { + found = true; + break; + } + } + if (!found) { + query.removeKeys.push(colas); + } + } + query.selectGroup.push(this); + } + + // this.reduced = true; + return; +}; + +yy.AggrValue.prototype.toType = function() { + if ( + ['SUM', 'COUNT', 'AVG', 'MIN', 'MAX', 'AGGR', 'VAR', 'STDDEV'].indexOf(this.aggregatorid) > + -1 + ) { + return 'number'; + } + + if (['ARRAY'].indexOf(this.aggregatorid) > -1) { + return 'array'; + } + + if (['FIRST', 'LAST'].indexOf(this.aggregatorid) > -1) { + return this.expression.toType(); + } + + // todo: implement default; +}; + +yy.AggrValue.prototype.toJS = function(/*context, tableid, defcols*/) { + + var colas = this.nick; + if (colas === undefined) { + colas = this.toString(); + } + return "g['" + colas + "']"; +}; + +yy.OrderExpression = function(params) { + return yy.extend(this, params); +}; +yy.OrderExpression.prototype.toString = yy.Expression.prototype.toString; + +yy.GroupExpression = function(params) { + return yy.extend(this, params); +}; +yy.GroupExpression.prototype.toString = function() { + return this.type + '(' + this.group.toString() + ')'; +}; + +// Alasql Linq library + +yy.FromData = function(params) { + return yy.extend(this, params); +}; +yy.FromData.prototype.toString = function() { + if (this.data) return 'DATA(' + ((Math.random() * 10e15) | 0) + ')'; + else return '?'; +}; +yy.FromData.prototype.toJS = function() { + +}; + +yy.Select.prototype.exec = function(params, cb) { + if (this.preparams) params = this.preparams.concat(params); + + var databaseid = alasql.useid; + db = alasql.databases[databaseid]; + var sql = this.toString(); + var hh = hash(sql); + + var statement = this.compile(databaseid); + if (!statement) return; + statement.sql = sql; + statement.dbversion = db.dbversion; + + // Secure sqlCache size + if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) { + db.resetSqlCache(); + } + db.sqlCacheSize++; + db.sqlCache[hh] = statement; + var res = (alasql.res = statement(params, cb)); + return res; +}; + +yy.Select.prototype.Select = function() { + var self = this; + var agrs = []; + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } else if (arguments.length == 1) { + if (Array.isArray(arguments[0])) { + args = arguments[0]; + } else { + args = [arguments[0]]; + } + } else { + throw new Error('Wrong number of arguments of Select() function'); + } + + self.columns = []; + + args.forEach(function(arg) { + if (typeof arg == 'string') { + self.columns.push(new yy.Column({columnid: arg})); + } else if (typeof arg == 'function') { + var pari = 0; + if (self.preparams) { + pari = self.preparams.length; + } else { + self.preparams = []; + } + self.preparams.push(arg); + self.columns.push(new yy.Column({columnid: '*', func: arg, param: pari})); + } else { + // Unknown type + } + }); + + return self; +}; + +yy.Select.prototype.From = function(tableid) { + var self = this; + if (!self.from) self.from = []; + if (Array.isArray(tableid)) { + var pari = 0; + if (self.preparams) { + pari = self.preparams.length; + } else { + self.preparams = []; + } + self.preparams.push(tableid); + self.from.push(new yy.ParamValue({param: pari})); + } else if (typeof tableid == 'string') { + self.from.push(new yy.Table({tableid: tableid})); + } else { + throw new Error('Unknown arguments in From() function'); + } + return self; +}; + +yy.Select.prototype.OrderBy = function() { + var self = this; + var agrs = []; + + self.order = []; + + if (arguments.length == 0) { + // self.order.push(new yy.OrderExpression({expression: new yy.Column({columnid:"_"}), direction:'ASC'})); + args = ['_']; + } else if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } else if (arguments.length == 1) { + if (Array.isArray(arguments[0])) { + args = arguments[0]; + } else { + args = [arguments[0]]; + } + } else { + throw new Error('Wrong number of arguments of Select() function'); + } + + if (args.length > 0) { + args.forEach(function(arg) { + var expr = new yy.Column({columnid: arg}); + if (typeof arg == 'function') { + expr = arg; + } + self.order.push(new yy.OrderExpression({expression: expr, direction: 'ASC'})); + }); + } + return self; +}; + +yy.Select.prototype.Top = function(topnum) { + var self = this; + self.top = new yy.NumValue({value: topnum}); + return self; +}; + +yy.Select.prototype.GroupBy = function() { + var self = this; + var agrs = []; + + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } else if (arguments.length == 1) { + if (Array.isArray(arguments[0])) { + args = arguments[0]; + } else { + args = [arguments[0]]; + } + } else { + throw new Error('Wrong number of arguments of Select() function'); + } + + self.group = []; + + args.forEach(function(arg) { + var expr = new yy.Column({columnid: arg}); + self.group.push(expr); + }); + + return self; +}; + +yy.Select.prototype.Where = function(expr) { + var self = this; + if (typeof expr == 'function') { + self.where = expr; + } + return self; +}; + +/* +// +// Functions for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.FuncValue = function(params) { + return yy.extend(this, params); +}; +yy.FuncValue.prototype.toString = function(dontas) { + var s = ''; + + if (alasql.fn[this.funcid]) s += this.funcid; + else if (alasql.aggr[this.funcid]) s += this.funcid; + else if (alasql.stdlib[this.funcid.toUpperCase()] || alasql.stdfn[this.funcid.toUpperCase()]) + s += this.funcid.toUpperCase(); + + s += '('; + if (this.args && this.args.length > 0) { + s += this.args + .map(function(arg) { + return arg.toString(); + }) + .join(','); + } + s += ')'; + if (this.as && !dontas) s += ' AS ' + this.as.toString(); + // if(this.alias) s += ' AS '+this.alias; + return s; +}; + +yy.FuncValue.prototype.execute = function(databaseid, params, cb) { + var res = 1; + alasql.precompile(this, databaseid, params); // Precompile queries + + var expr = new Function('params,alasql', 'var y;return ' + this.toJS('', '', null)); + expr(params, alasql); + if (cb) res = cb(res); + return res; +}; + +yy.FuncValue.prototype.findAggregator = function(query) { + if (this.args && this.args.length > 0) { + this.args.forEach(function(arg) { + if (arg.findAggregator) arg.findAggregator(query); + }); + } +}; + +yy.FuncValue.prototype.toJS = function(context, tableid, defcols) { + var s = ''; + var funcid = this.funcid; + // IF this is standard compile functions + if (!alasql.fn[funcid] && alasql.stdlib[funcid.toUpperCase()]) { + if (this.args && this.args.length > 0) { + s += alasql.stdlib[funcid.toUpperCase()].apply( + this, + this.args.map(function(arg) { + return arg.toJS(context, tableid); + }) + ); + } else { + s += alasql.stdlib[funcid.toUpperCase()](); + } + } else if (!alasql.fn[funcid] && alasql.stdfn[funcid.toUpperCase()]) { + if (this.newid) s += 'new '; + s += 'alasql.stdfn.' + this.funcid.toUpperCase() + '('; + // if(this.args) s += this.args.toJS(context, tableid); + if (this.args && this.args.length > 0) { + s += this.args + .map(function(arg) { + return arg.toJS(context, tableid, defcols); + }) + .join(','); + } + s += ')'; + } else { + // This is user-defined run-time function + // TODO arguments!!! + // var s = ''; + if (this.newid) s += 'new '; + s += 'alasql.fn.' + this.funcid + '('; + // if(this.args) s += this.args.toJS(context, tableid); + if (this.args && this.args.length > 0) { + s += this.args + .map(function(arg) { + return arg.toJS(context, tableid, defcols); + }) + .join(','); + } + s += ')'; + } + + // if(this.alias) s += ' AS '+this.alias; + return s; +}; + +var stdlib = (alasql.stdlib = {}); +var stdfn = (alasql.stdfn = {}); + +stdlib.ABS = function(a) { + return 'Math.abs(' + a + ')'; +}; +stdlib.CLONEDEEP = function(a) { + return 'alasql.utils.cloneDeep(' + a + ')'; +}; + +stdfn.CONCAT = function() { + return Array.prototype.slice.call(arguments).join(''); +}; +stdlib.EXP = function(a) { + return 'Math.pow(Math.E,' + a + ')'; +}; + +stdlib.IIF = function(a, b, c) { + if (arguments.length == 3) { + return '((' + a + ')?(' + b + '):(' + c + '))'; + } else { + throw new Error('Number of arguments of IFF is not equals to 3'); + } +}; +stdlib.IFNULL = function(a, b) { + return '(' + a + '||' + b + ')'; +}; +stdlib.INSTR = function(s, p) { + return '((' + s + ').indexOf(' + p + ')+1)'; +}; + +//stdlib.LEN = stdlib.LENGTH = function(s) {return '('+s+'+"").length';}; + +stdlib.LEN = stdlib.LENGTH = function(s) { + return und(s, 'y.length'); +}; +//stdlib.LENGTH = function(s) {return '('+s+').length'}; + +stdlib.LOWER = stdlib.LCASE = function(s) { + return und(s, 'String(y).toLowerCase()'); +}; +//stdlib.LCASE = function(s) {return '('+s+').toLowerCase()';} + +// Returns a character expression after it removes leading blanks. +// see https://docs.microsoft.com/en-us/sql/t-sql/functions/ltrim-transact-sql +stdlib.LTRIM = function(s) { + return und(s, 'y.replace(/^[ ]+/,"")'); +}; + +// Returns a character string after truncating all trailing spaces. +// see https://docs.microsoft.com/en-us/sql/t-sql/functions/rtrim-transact-sql +stdlib.RTRIM = function(s) { + return und(s, 'y.replace(/[ ]+$/,"")'); +}; + +stdlib.MAX = stdlib.GREATEST = function() { + return 'Math.max(' + Array.prototype.join.call(arguments, ',') + ')'; +}; + +stdlib.MIN = stdlib.LEAST = function() { + return 'Math.min(' + Array.prototype.join.call(arguments, ',') + ')'; +}; + +stdlib.SUBSTRING = stdlib.SUBSTR = stdlib.MID = function(a, b, c) { + if (arguments.length == 2) return und(a, 'y.substr(' + b + '-1)'); + else if (arguments.length == 3) return und(a, 'y.substr(' + b + '-1,' + c + ')'); +}; + +stdfn.REGEXP_LIKE = function(a, b, c) { + + return (a || '').search(RegExp(b, c)) > -1; +}; + +// Here we uses undefined instead of null +stdlib.ISNULL = stdlib.NULLIF = function(a, b) { + return '(' + a + '==' + b + '?undefined:' + a + ')'; +}; + +stdlib.POWER = function(a, b) { + return 'Math.pow(' + a + ',' + b + ')'; +}; + +stdlib.RANDOM = function(r) { + if (arguments.length == 0) { + return 'Math.random()'; + } else { + return '(Math.random()*(' + r + ')|0)'; + } +}; +stdlib.ROUND = function(s, d) { + if (arguments.length == 2) { + return 'Math.round((' + s + ')*Math.pow(10,(' + d + ')))/Math.pow(10,(' + d + '))'; + } else { + return 'Math.round(' + s + ')'; + } +}; +stdlib.CEIL = stdlib.CEILING = function(s) { + return 'Math.ceil(' + s + ')'; +}; +stdlib.FLOOR = function(s) { + return 'Math.floor(' + s + ')'; +}; + +stdlib.ROWNUM = function() { + return '1'; +}; +stdlib.ROW_NUMBER = function() { + return '1'; +}; + +stdlib.SQRT = function(s) { + return 'Math.sqrt(' + s + ')'; +}; + +stdlib.TRIM = function(s) { + return und(s, 'y.trim()'); +}; + +stdlib.UPPER = stdlib.UCASE = function(s) { + return und(s, 'String(y).toUpperCase()'); +}; + +// Concatination of strings +stdfn.CONCAT_WS = function() { + var args = Array.prototype.slice.call(arguments); + return args.slice(1, args.length).join(args[0]); +}; + +//stdlib.UCASE = function(s) {return '('+s+').toUpperCase()';} +//REPLACE +// RTRIM +// SUBSTR +// TRIM +//REPLACE +// RTRIM +// SUBSTR +// TRIM + +// Aggregator for joining strings +alasql.aggr.GROUP_CONCAT = function(v, s, stage) { + if (stage === 1) { + return '' + v; + } else if (stage === 2) { + s += ',' + v; + return s; + } + return s; +}; + +alasql.aggr.MEDIAN = function(v, s, stage) { + if (stage === 2) { + if (v !== null) { + s.push(v); + } + return s; + } else if (stage === 1) { + if (v === null) { + return []; + } + return [v]; + } else { + if (!s.length) { + return s; + } + + var r = s.sort(); + var p = (r.length + 1) / 2; + if (Number.isInteger(p)) { + return r[p - 1]; + } + + return (r[Math.floor(p - 1)] + r[Math.ceil(p - 1)]) / 2; + } +}; + +alasql.aggr.QUART = function(v, s, stage, nth) { + //Quartile (first quartile per default or input param) + if (stage === 2) { + if (v !== null) { + s.push(v); + } + return s; + } else if (stage === 1) { + if (v === null) { + return []; + } + return [v]; + } else { + if (!s.length) { + return s; + } + + nth = !nth ? 1 : nth; + var r = s.sort(); + var p = (nth * (r.length + 1)) / 4; + if (Number.isInteger(p)) { + return r[p - 1]; //Integer value + } + return r[Math.floor(p)]; //Math.ceil -1 or Math.floor + } +}; + +alasql.aggr.QUART2 = function(v, s, stage) { + //Second Quartile + return alasql.aggr.QUART(v, s, stage, 2); +}; +alasql.aggr.QUART3 = function(v, s, stage) { + //Third Quartile + return alasql.aggr.QUART(v, s, stage, 3); +}; + +// Standard deviation +alasql.aggr.VAR = function(v, s, stage) { + if (stage === 1) { + if (v === null) { + return {arr: [], sum: 0}; + } + return {arr: [v], sum: v}; + } else if (stage === 2) { + if (v === null) { + return s; + } + s.arr.push(v); + s.sum += v; + return s; + } else { + var N = s.arr.length; + var avg = s.sum / N; + var std = 0; + for (var i = 0; i < N; i++) { + std += (s.arr[i] - avg) * (s.arr[i] - avg); + } + std = std / (N - 1); + return std; + } +}; + +alasql.aggr.STDEV = function(v, s, stage) { + if (stage === 1 || stage === 2) { + return alasql.aggr.VAR(v, s, stage); + } else { + return Math.sqrt(alasql.aggr.VAR(v, s, stage)); + } +}; + +// Standard deviation +// alasql.aggr.VARP = function(v,s,acc){ + +// }; + +alasql.aggr.VARP = function(v, s, stage) { + if (stage == 1) { + return {arr: [v], sum: v}; + } else if (stage == 2) { + s.arr.push(v); + s.sum += v; + return s; + } else { + var N = s.arr.length; + var avg = s.sum / N; + var std = 0; + for (var i = 0; i < N; i++) { + std += (s.arr[i] - avg) * (s.arr[i] - avg); + } + std = std / N; + return std; + } +}; + +alasql.aggr.STD = alasql.aggr.STDDEV = alasql.aggr.STDEVP = function(v, s, stage) { + if (stage == 1 || stage == 2) { + return alasql.aggr.VARP(v, s, stage); + } else { + return Math.sqrt(alasql.aggr.VARP(v, s, stage)); + } +}; + +alasql._aggrOriginal = alasql.aggr; +alasql.aggr = {}; +Object.keys(alasql._aggrOriginal).forEach(function(k) { + alasql.aggr[k] = function(v, s, stage) { + if (stage === 3 && typeof s === 'undefined') return undefined; + return alasql._aggrOriginal[k].apply(null, arguments); + }; +}); + +// String functions +stdfn.REPLACE = function(target, pattern, replacement) { + return (target || '').split(pattern).join(replacement); +}; + +// This array is required for fast GUID generation +var lut = []; +for (var i = 0; i < 256; i++) { + lut[i] = (i < 16 ? '0' : '') + i.toString(16); +} + +stdfn.NEWID = stdfn.UUID = stdfn.GEN_RANDOM_UUID = function() { + var d0 = (Math.random() * 0xffffffff) | 0; + var d1 = (Math.random() * 0xffffffff) | 0; + var d2 = (Math.random() * 0xffffffff) | 0; + var d3 = (Math.random() * 0xffffffff) | 0; + return ( + lut[d0 & 0xff] + + lut[(d0 >> 8) & 0xff] + + lut[(d0 >> 16) & 0xff] + + lut[(d0 >> 24) & 0xff] + + '-' + + lut[d1 & 0xff] + + lut[(d1 >> 8) & 0xff] + + '-' + + lut[((d1 >> 16) & 0x0f) | 0x40] + + lut[(d1 >> 24) & 0xff] + + '-' + + lut[(d2 & 0x3f) | 0x80] + + lut[(d2 >> 8) & 0xff] + + '-' + + lut[(d2 >> 16) & 0xff] + + lut[(d2 >> 24) & 0xff] + + lut[d3 & 0xff] + + lut[(d3 >> 8) & 0xff] + + lut[(d3 >> 16) & 0xff] + + lut[(d3 >> 24) & 0xff] + ); +}; + +/* +// +// CASE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.CaseValue = function(params) { + return yy.extend(this, params); +}; +yy.CaseValue.prototype.toString = function() { + var s = 'CASE '; + if (this.expression) s += this.expression.toString(); + if (this.whens) { + s += this.whens + .map(function(w) { + return ' WHEN ' + w.when.toString() + ' THEN ' + w.then.toString(); + }) + .join(); + } + s += ' END'; + return s; +}; + +yy.CaseValue.prototype.findAggregator = function(query) { + + if (this.expression && this.expression.findAggregator) this.expression.findAggregator(query); + if (this.whens && this.whens.length > 0) { + this.whens.forEach(function(w) { + if (w.when.findAggregator) w.when.findAggregator(query); + if (w.then.findAggregator) w.then.findAggregator(query); + }); + } + if (this.elses && this.elses.findAggregator) this.elses.findAggregator(query); +}; + +yy.CaseValue.prototype.toJS = function(context, tableid, defcols) { + var s = '((function(' + context + ',params,alasql){var y,r;'; + if (this.expression) { + // this.expression.toJS(context, tableid) + s += 'v=' + this.expression.toJS(context, tableid, defcols) + ';'; + s += (this.whens || []) + .map(function(w) { + return ( + ' if(v==' + + w.when.toJS(context, tableid, defcols) + + ') {r=' + + w.then.toJS(context, tableid, defcols) + + '}' + ); + }) + .join(' else '); + if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}'; + } else { + s += (this.whens || []) + .map(function(w) { + return ( + ' if(' + + w.when.toJS(context, tableid, defcols) + + ') {r=' + + w.then.toJS(context, tableid, defcols) + + '}' + ); + }) + .join(' else '); + if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}'; + } + // TODO remove bind from CASE + s += ';return r;}).bind(this))(' + context + ',params,alasql)'; + + return s; +}; + +/* +// +// JSON for Alasql.js +// Date: 19.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.Json = function(params) { + return yy.extend(this, params); +}; +yy.Json.prototype.toString = function() { + var s = ''; // '@' + s += JSONtoString(this.value); + s += ''; + return s; +}; + +var JSONtoString = (alasql.utils.JSONtoString = function(obj) { + var s = ''; + if (typeof obj == 'string') s = '"' + obj + '"'; + else if (typeof obj == 'number') s = obj; + else if (typeof obj == 'boolean') s = obj; + else if (typeof obj == 'object') { + if (Array.isArray(obj)) { + s += + '[' + + obj + .map(function(b) { + return JSONtoString(b); + }) + .join(',') + + ']'; + } else if (!obj.toJS || obj instanceof yy.Json) { + // to prevent recursion + s = '{'; + var ss = []; + for (var k in obj) { + var s1 = ''; + if (typeof k == 'string') s1 += '"' + k + '"'; + else if (typeof k == 'number') s1 += k; + else if (typeof k == 'boolean') s1 += k; + else { + throw new Error('THis is not ES6... no expressions on left side yet'); + } + s1 += ':' + JSONtoString(obj[k]); + ss.push(s1); + } + s += ss.join(',') + '}'; + } else if (obj.toString) { + s = obj.toString(); + } else { + throw new Error('1Can not show JSON object ' + JSON.stringify(obj)); + } + } else { + throw new Error('2Can not show JSON object ' + JSON.stringify(obj)); + } + + return s; +}); + +function JSONtoJS(obj, context, tableid, defcols) { + var s = ''; + if (typeof obj == 'string') s = '"' + obj + '"'; + else if (typeof obj == 'number') s = '(' + obj + ')'; + else if (typeof obj == 'boolean') s = obj; + else if (typeof obj == 'object') { + if (Array.isArray(obj)) { + s += + '[' + + obj + .map(function(b) { + return JSONtoJS(b, context, tableid, defcols); + }) + .join(',') + + ']'; + } else if (!obj.toJS || obj instanceof yy.Json) { + // to prevent recursion + s = '{'; + var ss = []; + for (var k in obj) { + var s1 = ''; + if (typeof k == 'string') s1 += '"' + k + '"'; + else if (typeof k == 'number') s1 += k; + else if (typeof k == 'boolean') s1 += k; + else { + throw new Error('THis is not ES6... no expressions on left side yet'); + } + s1 += ':' + JSONtoJS(obj[k], context, tableid, defcols); + ss.push(s1); + } + s += ss.join(',') + '}'; + } else if (obj.toJS) { + s = obj.toJS(context, tableid, defcols); + } else { + throw new Error('1Can not parse JSON object ' + JSON.stringify(obj)); + } + } else { + throw new Error('2Can not parse JSON object ' + JSON.stringify(obj)); + } + + return s; +} + +yy.Json.prototype.toJS = function(context, tableid, defcols) { + // TODO redo + return JSONtoJS(this.value, context, tableid, defcols); +}; + +/* +// +// CAST and CONVERT functions +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.Convert = function(params) { + return yy.extend(this, params); +}; +yy.Convert.prototype.toString = function() { + var s = 'CONVERT('; + s += this.dbtypeid; + if (typeof this.dbsize != 'undefined') { + s += '(' + this.dbsize; + if (this.dbprecision) s += ',' + this.dbprecision; + s += ')'; + } + s += ',' + this.expression.toString(); + if (this.style) s += ',' + this.style; + s += ')'; + return s; +}; +yy.Convert.prototype.toJS = function(context, tableid, defcols) { + // if(this.style) { + return ( + 'alasql.stdfn.CONVERT(' + + this.expression.toJS(context, tableid, defcols) + + ',{dbtypeid:"' + + this.dbtypeid + + '",dbsize:' + + this.dbsize + + ',dbprecision:' + + this.dbprecision + + ',style:' + + this.style + + '})' + ); + // } + + throw new Error('There is not such type conversion for ' + this.toString()); +}; + +/** + Convert one type to another + */ +alasql.stdfn.CONVERT = function(value, args) { + var val = value; + + if (args.style) { + // TODO 9,109, 20,120,21,121,126,130,131 conversions + var t; + if (/\d{8}/.test(val)) { + t = new Date(+val.substr(0, 4), +val.substr(4, 2) - 1, +val.substr(6, 2)); + } else { + t = new Date(val); + } + switch (args.style) { + case 1: // mm/dd/yy + val = + ('0' + (t.getMonth() + 1)).substr(-2) + + '/' + + ('0' + t.getDate()).substr(-2) + + '/' + + ('0' + t.getYear()).substr(-2); + break; + case 2: // yy.mm.dd + val = + ('0' + t.getYear()).substr(-2) + + '.' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '.' + + ('0' + t.getDate()).substr(-2); + break; + case 3: // dd/mm/yy + val = + ('0' + t.getDate()).substr(-2) + + '/' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '/' + + ('0' + t.getYear()).substr(-2); + break; + case 4: // dd.mm.yy + val = + ('0' + t.getDate()).substr(-2) + + '.' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '.' + + ('0' + t.getYear()).substr(-2); + break; + case 5: // dd-mm-yy + val = + ('0' + t.getDate()).substr(-2) + + '-' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '-' + + ('0' + t.getYear()).substr(-2); + break; + case 6: // dd mon yy + val = + ('0' + t.getDate()).substr(-2) + + ' ' + + t + .toString() + .substr(4, 3) + .toLowerCase() + + ' ' + + ('0' + t.getYear()).substr(-2); + break; + case 7: // Mon dd,yy + val = + t.toString().substr(4, 3) + + ' ' + + ('0' + t.getDate()).substr(-2) + + ',' + + ('0' + t.getYear()).substr(-2); + break; + case 8: // hh:mm:ss + case 108: // hh:mm:ss + val = + ('0' + t.getHours()).substr(-2) + + ':' + + ('0' + t.getMinutes()).substr(-2) + + ':' + + ('0' + t.getSeconds()).substr(-2); + break; + case 10: // mm-dd-yy + val = + ('0' + (t.getMonth() + 1)).substr(-2) + + '-' + + ('0' + t.getDate()).substr(-2) + + '-' + + ('0' + t.getYear()).substr(-2); + break; + case 11: // yy/mm/dd + val = + ('0' + t.getYear()).substr(-2) + + '/' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '/' + + ('0' + t.getDate()).substr(-2); + break; + case 12: // yymmdd + val = + ('0' + t.getYear()).substr(-2) + + ('0' + (t.getMonth() + 1)).substr(-2) + + ('0' + t.getDate()).substr(-2); + break; + case 101: // mm/dd/yyyy + val = + ('0' + (t.getMonth() + 1)).substr(-2) + + '/' + + ('0' + t.getDate()).substr(-2) + + '/' + + t.getFullYear(); + break; + case 102: // yyyy.mm.dd + val = + t.getFullYear() + + '.' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '.' + + ('0' + t.getDate()).substr(-2); + break; + case 103: // dd/mm/yyyy + val = + ('0' + t.getDate()).substr(-2) + + '/' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '/' + + t.getFullYear(); + break; + case 104: // dd.mm.yyyy + val = + ('0' + t.getDate()).substr(-2) + + '.' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '.' + + t.getFullYear(); + break; + case 105: // dd-mm-yyyy + val = + ('0' + t.getDate()).substr(-2) + + '-' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '-' + + t.getFullYear(); + break; + case 106: // dd mon yyyy + val = + ('0' + t.getDate()).substr(-2) + + ' ' + + t + .toString() + .substr(4, 3) + .toLowerCase() + + ' ' + + t.getFullYear(); + break; + case 107: // Mon dd,yyyy + val = + t.toString().substr(4, 3) + + ' ' + + ('0' + t.getDate()).substr(-2) + + ',' + + t.getFullYear(); + break; + case 110: // mm-dd-yyyy + val = + ('0' + (t.getMonth() + 1)).substr(-2) + + '-' + + ('0' + t.getDate()).substr(-2) + + '-' + + t.getFullYear(); + break; + case 111: // yyyy/mm/dd + val = + t.getFullYear() + + '/' + + ('0' + (t.getMonth() + 1)).substr(-2) + + '/' + + ('0' + t.getDate()).substr(-2); + break; + + case 112: // yyyymmdd + val = + t.getFullYear() + + ('0' + (t.getMonth() + 1)).substr(-2) + + ('0' + t.getDate()).substr(-2); + break; + default: + throw new Error('The CONVERT style ' + args.style + ' is not realized yet.'); + } + } + + var udbtypeid = args.dbtypeid.toUpperCase(); + + if (args.dbtypeid == 'Date') { + return new Date(val); + } else if (udbtypeid == 'DATE') { + var d = new Date(val); + var s = + d.getFullYear() + + '.' + + ('0' + (d.getMonth() + 1)).substr(-2) + + '.' + + ('0' + d.getDate()).substr(-2); + return s; + } else if (udbtypeid == 'DATETIME' || udbtypeid == 'DATETIME2') { + var d = new Date(val); + var s = + d.getFullYear() + + '.' + + ('0' + (d.getMonth() + 1)).substr(-2) + + '.' + + ('0' + d.getDate()).substr(-2); + s += + ' ' + + ('0' + d.getHours()).substr(-2) + + ':' + + ('0' + d.getMinutes()).substr(-2) + + ':' + + ('0' + d.getSeconds()).substr(-2); + s += '.' + ('00' + d.getMilliseconds()).substr(-3); + return s; + } else if (['MONEY'].indexOf(udbtypeid) > -1) { + var m = +val; + return (m | 0) + ((m * 100) % 100) / 100; + } else if (['BOOLEAN'].indexOf(udbtypeid) > -1) { + return !!val; + } else if ( + ['INT', 'INTEGER', 'SMALLINT', 'BIGINT', 'SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf( + args.dbtypeid.toUpperCase() + ) > -1 + ) { + return val | 0; + } else if ( + ['STRING', 'VARCHAR', 'NVARCHAR', 'CHARACTER VARIABLE'].indexOf( + args.dbtypeid.toUpperCase() + ) > -1 + ) { + if (args.dbsize) return ('' + val).substr(0, args.dbsize); + else return '' + val; + } else if (['CHAR', 'CHARACTER', 'NCHAR'].indexOf(udbtypeid) > -1) { + return (val + new Array(args.dbsize + 1).join(' ')).substr(0, args.dbsize); + //else return ""+val.substr(0,1); + } else if (['NUMBER', 'FLOAT', 'DECIMAL', 'NUMERIC'].indexOf(udbtypeid) > -1) { + var m = +val; + //toPrecision sets the number of numbers total in the result + m = args.dbsize !== undefined ? parseFloat(m.toPrecision(args.dbsize)) : m; + //toFixed sets the number of numbers to the right of the decimal + m = args.dbprecision !== undefined ? parseFloat(m.toFixed(args.dbprecision)) : m; + return m; + } else if (['JSON'].indexOf(udbtypeid) > -1) { + if (typeof val == 'object') return val; + try { + return JSON.parse(val); + } catch (err) { + throw new Error('Cannot convert string to JSON'); + } + } + return val; +}; + +/* +// +// CREATE TABLE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/* global alasql, yy, hash */ + +yy.ColumnDef = function(params) { + return yy.extend(this, params); +}; +yy.ColumnDef.prototype.toString = function() { + var s = this.columnid; + if (this.dbtypeid) { + s += ' ' + this.dbtypeid; + } + + if (this.dbsize) { + s += '(' + this.dbsize; + if (this.dbprecision) { + s += ',' + this.dbprecision; + } + s += ')'; + } + + if (this.primarykey) { + s += ' PRIMARY KEY'; + } + + if (this.notnull) { + s += ' NOT NULL'; + } + + return s; +}; + +yy.CreateTable = function(params) { + return yy.extend(this, params); +}; +yy.CreateTable.prototype.toString = function() { + var s = 'CREATE'; + if (this.temporary) { + s += ' TEMPORARY'; + } + + if (this.view) { + s += ' VIEW'; + } else { + s += ' ' + (this["class"] ? 'CLASS' : 'TABLE'); + } + if (this.ifnotexists) { + s += ' IF NOT EXISTS'; + } + s += ' ' + this.table.toString(); + if (this.viewcolumns) { + s += + '(' + + this.viewcolumns + .map(function(vcol) { + return vcol.toString(); + }) + .join(',') + + ')'; + } + if (this.as) { + s += ' AS ' + this.as; + } else { + var ss = this.columns.map(function(col) { + return col.toString(); + }); + s += ' (' + ss.join(',') + ')'; + } + + if (this.view && this.select) { + s += ' AS ' + this.select.toString(); + } + + return s; +}; + +// CREATE TABLE +//yy.CreateTable.prototype.compile = returnUndefined; +yy.CreateTable.prototype.execute = function(databaseid, params, cb) { + // var self = this; + var db = alasql.databases[this.table.databaseid || databaseid]; + + var tableid = this.table.tableid; + if (!tableid) { + throw new Error('Table name is not defined'); + } + + // var ifnotexists = this.ifnotexists; + var columns = this.columns; + // if(false) { + // if(!columns) { + // throw new Error('Columns are not defined'); + // } + // } + var constraints = this.constraints || []; + + // IF NOT EXISTS + if (this.ifnotexists && db.tables[tableid]) { + return cb ? cb(0) : 0; + } + + if (db.tables[tableid]) { + throw new Error( + "Can not create table '" + + tableid + + "', because it already exists in the database '" + + db.databaseid + + "'" + ); + } + + var table = (db.tables[tableid] = new alasql.Table()); // TODO Can use special object? + // If this is a class + if (this["class"]) { + table.isclass = true; + } + + var ss = []; // DEFAULT function components + var uss = []; // ON UPDATE function components + if (columns) { + columns.forEach(function(col) { + var dbtypeid = col.dbtypeid; + if (!alasql.fn[dbtypeid]) { + dbtypeid = dbtypeid.toUpperCase(); + } + + // Process SERIAL data type like Postgress + if (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(dbtypeid) > -1) { + col.identity = {value: 1, step: 1}; + } + + var newcol = { + columnid: col.columnid, + dbtypeid: dbtypeid, + dbsize: col.dbsize, // Fixed issue #150 + dbprecision: col.dbprecision, // Fixed issue #150 + notnull: col.notnull, + identity: col.identity, + }; + if (col.identity) { + table.identities[col.columnid] = { + value: +col.identity.value, + step: +col.identity.step, + }; + // ss.push('\''+col.columnid+'\':(alasql.databases[\''+db.databaseid+'\'].tables[\'' + // +tableid+'\'].identities[\''+col.columnid+'\'].value)'); + } + if (col.check) { + table.checks.push({ + id: col.check.constrantid, + fn: new Function('r', 'var y;return ' + col.check.expression.toJS('r', '')), + }); + } + + if (col["default"]) { + ss.push("'" + col.columnid + "':" + col["default"].toJS('r', '')); + } + + // Check for primary key + if (col.primarykey) { + var pk = (table.pk = {}); + pk.columns = [col.columnid]; + pk.onrightfns = "r['" + col.columnid + "']"; + pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns); + pk.hh = hash(pk.onrightfns); + table.uniqs[pk.hh] = {}; + } + + // UNIQUE clause + if (col.unique) { + var uk = {}; + table.uk = table.uk || []; + table.uk.push(uk); + uk.columns = [col.columnid]; + uk.onrightfns = "r['" + col.columnid + "']"; + uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns); + uk.hh = hash(uk.onrightfns); + table.uniqs[uk.hh] = {}; + } + + // UNIQUE clause + if (col.foreignkey) { + + var fk = col.foreignkey.table; + var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid]; + if (typeof fk.columnid === 'undefined') { + if (fktable.pk.columns && fktable.pk.columns.length > 0) { + fk.columnid = fktable.pk.columns[0]; + } else { + throw new Error('FOREIGN KEY allowed only to tables with PRIMARY KEYs'); + } + } + + var fkfn = function(r) { + var rr = {}; + if (typeof r[col.columnid] === 'undefined') { + return true; + } + rr[fk.columnid] = r[col.columnid]; + var addr = fktable.pk.onrightfn(rr); + + if (!fktable.uniqs[fktable.pk.hh][addr]) { + throw new Error( + 'Foreign key "' + + r[col.columnid] + + '" is not found in table ' + + fktable.tableid + ); + } + return true; + }; + table.checks.push({fn: fkfn}); + + } + + if (col.onupdate) { + uss.push("r['" + col.columnid + "']=" + col.onupdate.toJS('r', '')); + } + + table.columns.push(newcol); + table.xcolumns[newcol.columnid] = newcol; + }); + } + table.defaultfns = ss.join(','); + table.onupdatefns = uss.join(';'); + + // if(constraints) { + constraints.forEach(function(con) { + + var checkfn; + + if (con.type === 'PRIMARY KEY') { + if (table.pk) { + throw new Error('Primary key already exists'); + } + var pk = (table.pk = {}); + pk.columns = con.columns; + pk.onrightfns = pk.columns + .map(function(columnid) { + return "r['" + columnid + "']"; + }) + .join("+'`'+"); + pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns); + pk.hh = hash(pk.onrightfns); + table.uniqs[pk.hh] = {}; + } else if (con.type === 'CHECK') { + + checkfn = new Function('r', 'var y;return ' + con.expression.toJS('r', '')); + } else if (con.type === 'UNIQUE') { + + var uk = {}; + table.uk = table.uk || []; + table.uk.push(uk); + uk.columns = con.columns; + uk.onrightfns = uk.columns + .map(function(columnid) { + return "r['" + columnid + "']"; + }) + .join("+'`'+"); + uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns); + uk.hh = hash(uk.onrightfns); + table.uniqs[uk.hh] = {}; + } else if (con.type === 'FOREIGN KEY') { + + var col = table.xcolumns[con.columns[0]]; + var fk = con.fktable; + if (con.fkcolumns && con.fkcolumns.length > 0) { + fk.columnid = con.fkcolumns[0]; + } + var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid]; + if (typeof fk.columnid === 'undefined') { + fk.columnid = fktable.pk.columns[0]; + } + + checkfn = function(r) { + var rr = {}; + if (typeof r[col.columnid] === 'undefined') { + return true; + } + rr[fk.columnid] = r[col.columnid]; + var addr = fktable.pk.onrightfn(rr); + + if (!fktable.uniqs[fktable.pk.hh][addr]) { + + throw new Error( + 'Foreign key "' + + r[col.columnid] + + '" is not found in table ' + + fktable.tableid + ); + } + return true; + }; + } + if (checkfn) { + table.checks.push({fn: checkfn, id: con.constraintid, fk: con.type === 'FOREIGN KEY'}); + } + }); + + if (this.view && this.viewcolumns) { + var self = this; + this.viewcolumns.forEach(function(vcol, idx) { + self.select.columns[idx].as = vcol.columnid; + }); + } + + //Used in 420from queryfn when table.view = true! + if (this.view && this.select) { + table.view = true; + + table.select = this.select.compile(this.table.databaseid || databaseid); + } + + if (db.engineid) { + + return alasql.engines[db.engineid].createTable( + this.table.databaseid || databaseid, + tableid, + this.ifnotexists, + cb + ); + + // return res1; + } + + // } + // if(table.pk) { + + table.insert = function(r, orreplace) { + var oldinserted = alasql.inserted; + alasql.inserted = [r]; + + var table = this; + + var toreplace = false; // For INSERT OR REPLACE + + /* + // IDENTINY or AUTO_INCREMENT + // if(table.identities && table.identities.length>0) { + // table.identities.forEach(function(ident){ + // r[ident.columnid] = ident.value; + // }); + // } +*/ + // Trigger prevent functionality + var prevent = false; + for (var tr in table.beforeinsert) { + var trigger = table.beforeinsert[tr]; + if (trigger) { + if (trigger.funcid) { + if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true; + } else if (trigger.statement) { + if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; + } + } + } + if (prevent) return; + + // Trigger prevent functionality + var escape = false; + for (tr in table.insteadofinsert) { + escape = true; + trigger = table.insteadofinsert[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + if (escape) return; + + for (var columnid in table.identities) { + var ident = table.identities[columnid]; + + r[columnid] = ident.value; + + } + + if (table.checks && table.checks.length > 0) { + table.checks.forEach(function(check) { + if (!check.fn(r)) { + // if(orreplace) toreplace=true; else + throw new Error('Violation of CHECK constraint ' + (check.id || '')); + } + }); + } + + table.columns.forEach(function(column) { + if (column.notnull && typeof r[column.columnid] === 'undefined') { + throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid); + } + }); + if (table.pk) { + var pk = table.pk; + var addr = pk.onrightfn(r); + + if (typeof table.uniqs[pk.hh][addr] !== 'undefined') { + + if (orreplace) toreplace = table.uniqs[pk.hh][addr]; + else + throw new Error( + 'Cannot insert record, because it already exists in primary key index' + ); + } + // table.uniqs[pk.hh][addr]=r; + } + + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + var ukaddr = uk.onrightfn(r); + if (typeof table.uniqs[uk.hh][ukaddr] !== 'undefined') { + if (orreplace) toreplace = table.uniqs[uk.hh][ukaddr]; + else + throw new Error( + 'Cannot insert record, because it already exists in unique index' + ); + } + // table.uniqs[uk.hh][ukaddr]=r; + }); + } + + if (toreplace) { + // Do UPDATE!!! + + table.update( + function(t) { + for (var f in r) t[f] = r[f]; + }, + table.data.indexOf(toreplace), + params + ); + } else { + table.data.push(r); + + // Final change before insert + + // Update indices + + for (var columnid in table.identities) { + var ident = table.identities[columnid]; + + ident.value += ident.step; + + } + + if (table.pk) { + var pk = table.pk; + var addr = pk.onrightfn(r); + table.uniqs[pk.hh][addr] = r; + } + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + var ukaddr = uk.onrightfn(r); + table.uniqs[uk.hh][ukaddr] = r; + }); + } + } + + // Trigger prevent functionality + for (var tr in table.afterinsert) { + var trigger = table.afterinsert[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + alasql.inserted = oldinserted; + }; + + table["delete"] = function(index) { + var table = this; + var r = table.data[index]; + + // Prevent trigger + var prevent = false; + for (var tr in table.beforedelete) { + var trigger = table.beforedelete[tr]; + if (trigger) { + if (trigger.funcid) { + if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true; + } else if (trigger.statement) { + if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; + } + } + } + if (prevent) return false; + + // Trigger prevent functionality + var escape = false; + for (var tr in table.insteadofdelete) { + escape = true; + var trigger = table.insteadofdelete[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + if (escape) return; + + if (this.pk) { + var pk = this.pk; + var addr = pk.onrightfn(r); + if (typeof this.uniqs[pk.hh][addr] === 'undefined') { + throw new Error('Something wrong with primary key index on table'); + } else { + this.uniqs[pk.hh][addr] = undefined; + } + } + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + var ukaddr = uk.onrightfn(r); + if (typeof table.uniqs[uk.hh][ukaddr] === 'undefined') { + throw new Error('Something wrong with unique index on table'); + } + table.uniqs[uk.hh][ukaddr] = undefined; + }); + } + }; + + table.deleteall = function() { + this.data.length = 0; + if (this.pk) { + // var r = this.data[i]; + this.uniqs[this.pk.hh] = {}; + } + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + table.uniqs[uk.hh] = {}; + }); + } + }; + + table.update = function(assignfn, i, params) { + // TODO: Analyze the speed + var r = cloneDeep(this.data[i]); + + var pk; + // PART 1 - PRECHECK + if (this.pk) { + pk = this.pk; + pk.pkaddr = pk.onrightfn(r, params); + if (typeof this.uniqs[pk.hh][pk.pkaddr] === 'undefined') { + throw new Error('Something wrong with index on table'); + } + } + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + uk.ukaddr = uk.onrightfn(r); + if (typeof table.uniqs[uk.hh][uk.ukaddr] === 'undefined') { + throw new Error('Something wrong with unique index on table'); + } + }); + } + + assignfn(r, params, alasql); + + // Prevent trigger + var prevent = false; + for (var tr in table.beforeupdate) { + var trigger = table.beforeupdate[tr]; + if (trigger) { + if (trigger.funcid) { + if (alasql.fn[trigger.funcid](this.data[i], r) === false) + prevent = prevent || true; + } else if (trigger.statement) { + if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; + } + } + } + if (prevent) return false; + + // Trigger prevent functionality + var escape = false; + for (var tr in table.insteadofupdate) { + escape = true; + var trigger = table.insteadofupdate[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](this.data[i], r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + if (escape) return; + + // PART 2 - POST CHECK + if (table.checks && table.checks.length > 0) { + table.checks.forEach(function(check) { + if (!check.fn(r)) { + throw new Error('Violation of CHECK constraint ' + (check.id || '')); + } + }); + } + + table.columns.forEach(function(column) { + if (column.notnull && typeof r[column.columnid] === 'undefined') { + throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid); + } + }); + if (this.pk) { + pk.newpkaddr = pk.onrightfn(r); + if ( + typeof this.uniqs[pk.hh][pk.newpkaddr] !== 'undefined' && + pk.newpkaddr !== pk.pkaddr + ) { + throw new Error('Record already exists'); + } + } + + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + uk.newukaddr = uk.onrightfn(r); + if ( + typeof table.uniqs[uk.hh][uk.newukaddr] !== 'undefined' && + uk.newukaddr !== uk.ukaddr + ) { + throw new Error('Record already exists'); + } + }); + } + + // PART 3 UPDATE + if (this.pk) { + this.uniqs[pk.hh][pk.pkaddr] = undefined; + this.uniqs[pk.hh][pk.newpkaddr] = r; + } + if (table.uk && table.uk.length) { + table.uk.forEach(function(uk) { + table.uniqs[uk.hh][uk.ukaddr] = undefined; + table.uniqs[uk.hh][uk.newukaddr] = r; + }); + } + + this.data[i] = r; + + // Trigger prevent functionality + for (var tr in table.afterupdate) { + var trigger = table.afterupdate[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](this.data[i], r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + }; + + var res; + + if (!alasql.options.nocount) { + res = 1; + } + + if (cb) res = cb(res); + return res; +}; + +// +// Date functions +// +// (c) 2014, Andrey Gershun +// + +/** Standard JavaScript data types */ + +alasql.fn.Date = Object; +alasql.fn.Date = Date; +alasql.fn.Number = Number; +alasql.fn.String = String; +alasql.fn.Boolean = Boolean; + +/** Extend Object with properties */ +stdfn.EXTEND = alasql.utils.extend; + +stdfn.CHAR = String.fromCharCode.bind(String); +stdfn.ASCII = function(a) { + return a.charCodeAt(0); +}; + +/** + Return first non-null argument + See https://msdn.microsoft.com/en-us/library/ms190349.aspx +*/ +stdfn.COALESCE = function() { + for (var i = 0; i < arguments.length; i++) { + if (typeof arguments[i] == 'undefined') continue; + if (typeof arguments[i] == 'number' && isNaN(arguments[i])) continue; + return arguments[i]; + } + return undefined; +}; + +stdfn.USER = function() { + return 'alasql'; +}; + +stdfn.OBJECT_ID = function(objid) { + return !!alasql.tables[objid]; +}; + +stdfn.DATE = function(d) { + if (/\d{8}/.test(d)) return new Date(+d.substr(0, 4), +d.substr(4, 2) - 1, +d.substr(6, 2)); + return new Date(d); +}; + +stdfn.NOW = function() { + var d = new Date(); + var s = + d.getFullYear() + + '.' + + ('0' + (d.getMonth() + 1)).substr(-2) + + '.' + + ('0' + d.getDate()).substr(-2); + s += + ' ' + + ('0' + d.getHours()).substr(-2) + + ':' + + ('0' + d.getMinutes()).substr(-2) + + ':' + + ('0' + d.getSeconds()).substr(-2); + s += '.' + ('00' + d.getMilliseconds()).substr(-3); + return s; +}; + +stdfn.GETDATE = stdfn.NOW; +stdfn.CURRENT_TIMESTAMP = stdfn.NOW; + +stdfn.SECOND = function(d) { + var d = new Date(d); + return d.getSeconds(); +}; + +stdfn.MINUTE = function(d) { + var d = new Date(d); + return d.getMinutes(); +}; + +stdfn.HOUR = function(d) { + var d = new Date(d); + return d.getHours(); +}; + +stdfn.DAYOFWEEK = stdfn.WEEKDAY = function(d) { + var d = new Date(d); + return d.getDay(); +}; + +stdfn.DAY = stdfn.DAYOFMONTH = function(d) { + var d = new Date(d); + return d.getDate(); +}; + +stdfn.MONTH = function(d) { + var d = new Date(d); + return d.getMonth() + 1; +}; + +stdfn.YEAR = function(d) { + var d = new Date(d); + return d.getFullYear(); +}; + +var PERIODS = { + year: 1000 * 3600 * 24 * 365, + quarter: (1000 * 3600 * 24 * 365) / 4, + month: 1000 * 3600 * 24 * 30, + week: 1000 * 3600 * 24 * 7, + day: 1000 * 3600 * 24, + dayofyear: 1000 * 3600 * 24, + weekday: 1000 * 3600 * 24, + hour: 1000 * 3600, + minute: 1000 * 60, + second: 1000, + millisecond: 1, + microsecond: 0.001, +}; + +alasql.stdfn.DATEDIFF = function(period, d1, d2) { + var interval = new Date(d2).getTime() - new Date(d1).getTime(); + return interval / PERIODS[period.toLowerCase()]; +}; + +alasql.stdfn.DATEADD = function(period, interval, d) { + var nd = new Date(d).getTime() + interval * PERIODS[period.toLowerCase()]; + return new Date(nd); +}; + +alasql.stdfn.INTERVAL = function(interval, period) { + return interval * PERIODS[period.toLowerCase()]; +}; + +alasql.stdfn.DATE_ADD = alasql.stdfn.ADDDATE = function(d, interval) { + var nd = new Date(d).getTime() + interval; + return new Date(nd); +}; + +alasql.stdfn.DATE_SUB = alasql.stdfn.SUBDATE = function(d, interval) { + var nd = new Date(d).getTime() - interval; + return new Date(nd); +}; + +/* +// +// DROP TABLE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.DropTable = function(params) { + return yy.extend(this, params); +}; +yy.DropTable.prototype.toString = function() { + var s = 'DROP' + ' '; + if (this.view) s += 'VIEW'; + else s += 'TABLE'; + if (this.ifexists) s += ' IF EXISTS'; + s += ' ' + this.tables.toString(); + return s; +}; + +// DROP TABLE +/** + Drop tables + @param {string} databaseid Database id + @param {object} params Parameters + @param {callback} cb Callback function + @return Number of dropped tables + @example + DROP TABLE one; + DROP TABLE IF NOT EXISTS two, three; +*/ +yy.DropTable.prototype.execute = function(databaseid, params, cb) { + var ifexists = this.ifexists; + var res = 0; // No tables removed + var count = 0; + var tlen = this.tables.length; + + // For each table in the list + this.tables.forEach(function(table) { + var db = alasql.databases[table.databaseid || databaseid]; + var tableid = table.tableid; + + /** @todo Test with AUTOCOMMIT flag is ON */ + /** @todo Test with IndexedDB and multiple tables */ + + if (!ifexists || (ifexists && db.tables[tableid])) { + if (!db.tables[tableid]) { + if (!alasql.options.dropifnotexists) { + throw new Error( + "Can not drop table '" + + table.tableid + + "', because it does not exist in the database." + ); + } + } else { + if (db.engineid /*&& alasql.options.autocommit*/) { + alasql.engines[db.engineid].dropTable( + table.databaseid || databaseid, + tableid, + ifexists, + function(res1) { + delete db.tables[tableid]; + res += res1; + count++; + if (count == tlen && cb) cb(res); + } + ); + } else { + delete db.tables[tableid]; + res++; + count++; + if (count == tlen && cb) cb(res); + } + } + } else { + count++; + if (count == tlen && cb) cb(res); + } + }); + // if(cb) res = cb(res); + return res; +}; + +yy.TruncateTable = function(params) { + return yy.extend(this, params); +}; +yy.TruncateTable.prototype.toString = function() { + var s = 'TRUNCATE TABLE'; + s += ' ' + this.table.toString(); + return s; +}; + +yy.TruncateTable.prototype.execute = function(databaseid, params, cb) { + var db = alasql.databases[this.table.databaseid || databaseid]; + var tableid = this.table.tableid; + if (db.engineid) { + return alasql.engines[db.engineid].truncateTable( + this.table.databaseid || databaseid, + tableid, + this.ifexists, + cb + ); + } + if (db.tables[tableid]) { + db.tables[tableid].data = []; + } else { + throw new Error('Cannot truncate table becaues it does not exist'); + } + return cb ? cb(0) : 0; +}; + +/* +// +// CREATE VERTEX for AlaSQL +// Date: 21.04.2015 +// (c) 2015, Andrey Gershun +// +*/ + +yy.CreateVertex = function(params) { + return yy.extend(this, params); +}; +yy.CreateVertex.prototype.toString = function() { + var s = 'CREATE VERTEX '; + if (this["class"]) { + s += this["class"] + ' '; + } + if (this.sharp) { + s += '#' + this.sharp + ' '; + } + if (this.sets) { + s += this.sets.toString(); + } else if (this.content) { + s += this.content.toString(); + } else if (this.select) { + s += this.select.toString(); + } + + return s; +}; + +yy.CreateVertex.prototype.toJS = function(context) { + + var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; + // var s = ''; + return s; +}; + +// CREATE TABLE + +yy.CreateVertex.prototype.compile = function(databaseid) { + var dbid = databaseid; + + // CREATE VERTEX #id + var sharp = this.sharp; + + // CREATE VERTEX "Name" + if (typeof this.name !== 'undefined') { + var s = 'x.name=' + this.name.toJS(); + var namefn = new Function('x', s); + } + + if (this.sets && this.sets.length > 0) { + var s = this.sets + .map(function(st) { + return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); + }) + .join(';'); + var setfn = new Function('x,params,alasql', s); + } + + // Todo: check for content, select and default + + var statement = function(params, cb) { + var res; + + // CREATE VERTEX without parameters + var db = alasql.databases[dbid]; + var id; + if (typeof sharp !== 'undefined') { + id = sharp; + } else { + id = db.counter++; + } + var vertex = {$id: id, $node: 'VERTEX'}; + db.objects[vertex.$id] = vertex; + res = vertex; + if (namefn) { + namefn(vertex); + } + if (setfn) { + setfn(vertex, params, alasql); + } + + if (cb) { + res = cb(res); + } + return res; + }; + return statement; +}; + +yy.CreateEdge = function(params) { + return yy.extend(this, params); +}; +yy.CreateEdge.prototype.toString = function() { + + var s = 'CREATE EDGE' + ' '; + if (this["class"]) { + s += this["class"] + ' '; + } + // todo: SET + // todo: CONTENT + // todo: SELECT + return s; +}; + +yy.CreateEdge.prototype.toJS = function(context) { + var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; + return s; +}; + +// CREATE TABLE + +yy.CreateEdge.prototype.compile = function(databaseid) { + var dbid = databaseid; + var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS()); + var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS()); + + // CREATE VERTEX "Name" + if (typeof this.name !== 'undefined') { + var s = 'x.name=' + this.name.toJS(); + var namefn = new Function('x', s); + } + + if (this.sets && this.sets.length > 0) { + var s = this.sets + .map(function(st) { + return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); + }) + .join(';'); + var setfn = new Function('x,params,alasql', 'var y;' + s); + } + + /* + todo: handle content, select and default + else if(this.content) { + + } else if(this.select) { + + } else { + } + */ + + var statement = function(params, cb) { + var res = 0; + // CREATE VERTEX without parameters + var db = alasql.databases[dbid]; + var edge = {$id: db.counter++, $node: 'EDGE'}; + var v1 = fromfn(params, alasql); + var v2 = tofn(params, alasql); + // Set link + edge.$in = [v1.$id]; + edge.$out = [v2.$id]; + // Set sides + if (v1.$out === undefined) { + v1.$out = []; + } + v1.$out.push(edge.$id); + + if (typeof v2.$in === undefined) { + v2.$in = []; + } + v2.$in.push(edge.$id); + + // Save in objects + db.objects[edge.$id] = edge; + res = edge; + if (namefn) { + namefn(edge); + } + + if (setfn) { + setfn(edge, params, alasql); + } + + if (cb) { + res = cb(res); + } + + return res; + }; + return statement; +}; + +yy.CreateGraph = function(params) { + return yy.extend(this, params); +}; +yy.CreateGraph.prototype.toString = function() { + var s = 'CREATE GRAPH' + ' '; + if (this["class"]) { + s += this["class"] + ' '; + } + return s; +}; + +yy.CreateGraph.prototype.execute = function(databaseid, params, cb) { + var res = []; + if (this.from) { + if (alasql.from[this.from.funcid]) { + this.graph = alasql.from[this.from.funcid.toUpperCase()]; + } + } + + // stop; + this.graph.forEach(function(g) { + if (g.source) { + // GREATE EDGE + var e = {}; + if (typeof g.as !== 'undefined') { + alasql.vars[g.as] = e; + } + + if (typeof g.prop !== 'undefined') { + // e[g.prop] = e; + // v.$id = g.prop; // We do not create $id for edge automatically + e.name = g.prop; + } + if (typeof g.sharp !== 'undefined') { + e.$id = g.sharp; + } + if (typeof g.name !== 'undefined') { + e.name = g.name; + } + if (typeof g["class"] !== 'undefined') { + e.$class = g["class"]; + } + + var db = alasql.databases[databaseid]; + if (typeof e.$id === 'undefined') { + e.$id = db.counter++; + } + e.$node = 'EDGE'; + if (typeof g.json !== 'undefined') { + extend( + e, + new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql) + ); + } + + var v1; + if (g.source.vars) { + var vo = alasql.vars[g.source.vars]; + if (typeof vo === 'object') { + v1 = vo; + } else { + v1 = db.objects[vo]; + } + } else { + var av1 = g.source.sharp; + if (typeof av1 === 'undefined') { + av1 = g.source.prop; + } + v1 = alasql.databases[databaseid].objects[av1]; + if ( + typeof v1 === 'undefined' && + alasql.options.autovertex && + (typeof g.source.prop !== 'undefined' || typeof g.source.name !== 'undefined') + ) { + v1 = findVertex(g.source.prop || g.source.name); + if (typeof v1 === 'undefined') { + v1 = createVertex(g.source); + } + } + } + + var v2; + if (g.source.vars) { + var vo = alasql.vars[g.target.vars]; + if (typeof vo === 'object') { + v2 = vo; + } else { + v2 = db.objects[vo]; + } + } else { + var av2 = g.target.sharp; + if (typeof av2 === 'undefined') { + av2 = g.target.prop; + } + v2 = alasql.databases[databaseid].objects[av2]; + if ( + typeof v2 === 'undefined' && + alasql.options.autovertex && + (typeof g.target.prop !== 'undefined' || typeof g.target.name !== 'undefined') + ) { + v2 = findVertex(g.target.prop || g.target.name); + if (typeof v2 === 'undefined') { + v2 = createVertex(g.target); + } + } + } + + // Set link + e.$in = [v1.$id]; + e.$out = [v2.$id]; + // Set sides + if (typeof v1.$out === 'undefined') { + v1.$out = []; + } + v1.$out.push(e.$id); + if (typeof v2.$in === 'undefined') { + v2.$in = []; + } + v2.$in.push(e.$id); + + db.objects[e.$id] = e; + if (typeof e.$class !== 'undefined') { + if (typeof alasql.databases[databaseid].tables[e.$class] === 'undefined') { + throw new Error('No such class. Pleace use CREATE CLASS'); + } else { + // TODO - add insert() + alasql.databases[databaseid].tables[e.$class].data.push(e); + } + } + + res.push(e.$id); + } else { + createVertex(g); + } + }); + + if (cb) { + res = cb(res); + } + return res; + + // Find vertex by name + function findVertex(name) { + var objects = alasql.databases[alasql.useid].objects; + for (var k in objects) { + if (objects[k].name === name) { + return objects[k]; + } + } + return undefined; + } + + function createVertex(g) { + // GREATE VERTEX + var v = {}; + if (typeof g.as !== 'undefined') { + alasql.vars[g.as] = v; + } + + if (typeof g.prop !== 'undefined') { + // v[g.prop] = true; + v.$id = g.prop; + v.name = g.prop; + } + + if (typeof g.sharp !== 'undefined') { + v.$id = g.sharp; + } + if (typeof g.name !== 'undefined') { + v.name = g.name; + } + if (typeof g["class"] !== 'undefined') { + v.$class = g["class"]; + } + + var db = alasql.databases[databaseid]; + if (typeof v.$id === 'undefined') { + v.$id = db.counter++; + } + v.$node = 'VERTEX'; + if (typeof g.json !== 'undefined') { + extend( + v, + new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql) + ); + } + db.objects[v.$id] = v; + if (typeof v.$class !== 'undefined') { + if (typeof alasql.databases[databaseid].tables[v.$class] === 'undefined') { + throw new Error('No such class. Pleace use CREATE CLASS'); + } else { + // TODO - add insert() + alasql.databases[databaseid].tables[v.$class].data.push(v); + } + } + + res.push(v.$id); + return v; + } +}; + +yy.CreateGraph.prototype.compile1 = function(databaseid) { + var dbid = databaseid; + var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS()); + var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS()); + + // CREATE VERTEX "Name" + if (typeof this.name !== 'undefined') { + var s = 'x.name=' + this.name.toJS(); + var namefn = new Function('x', s); + } + + if (this.sets && this.sets.length > 0) { + var s = this.sets + .map(function(st) { + return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', ''); + }) + .join(';'); + var setfn = new Function('x,params,alasql', 'var y;' + s); + } + + // Todo: handle content, select and default + + var statement = function(params, cb) { + var res = 0; + // CREATE VERTEX without parameters + var db = alasql.databases[dbid]; + var edge = {$id: db.counter++, $node: 'EDGE'}; + var v1 = fromfn(params, alasql); + var v2 = tofn(params, alasql); + // Set link + edge.$in = [v1.$id]; + edge.$out = [v2.$id]; + // Set sides + if (typeof v1.$out === 'undefined') { + v1.$out = []; + } + v1.$out.push(edge.$id); + + if (typeof v2.$in === 'undefined') { + v2.$in = []; + } + v2.$in.push(edge.$id); + // Save in objects + db.objects[edge.$id] = edge; + res = edge; + if (namefn) { + namefn(edge); + } + if (setfn) { + setfn(edge, params, alasql); + } + + if (cb) { + res = cb(res); + } + return res; + }; + return statement; +}; + +/* +// +// ALTER TABLE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ +/* global alasql yy */ + +// ALTER TABLE table1 RENAME TO table2 +yy.AlterTable = function(params) { + return yy.extend(this, params); +}; +yy.AlterTable.prototype.toString = function() { + var s = 'ALTER TABLE ' + this.table.toString(); + if (this.renameto) s += ' RENAME TO ' + this.renameto; + return s; +}; + +yy.AlterTable.prototype.execute = function(databaseid, params, cb) { + var db = alasql.databases[databaseid]; + db.dbversion = Date.now(); + + if (this.renameto) { + var oldtableid = this.table.tableid; + var newtableid = this.renameto; + var res = 1; + if (db.tables[newtableid]) { + throw new Error( + "Can not rename a table '" + + oldtableid + + "' to '" + + newtableid + + "', because the table with this name already exists" + ); + } else if (newtableid === oldtableid) { + throw new Error("Can not rename a table '" + oldtableid + "' to itself"); + } else { + db.tables[newtableid] = db.tables[oldtableid]; + delete db.tables[oldtableid]; + res = 1; + } + if (cb) cb(res); + return res; + } else if (this.addcolumn) { + db = alasql.databases[this.table.databaseid || databaseid]; + db.dbversion++; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var columnid = this.addcolumn.columnid; + if (table.xcolumns[columnid]) { + throw new Error( + 'Cannot add column "' + + columnid + + '", because it already exists in the table "' + + tableid + + '"' + ); + } + + var col = { + columnid: columnid, + dbtypeid: this.dbtypeid, + dbsize: this.dbsize, + dbprecision: this.dbprecision, + dbenum: this.dbenum, + defaultfns: null, // TODO defaultfns!!! + }; + + var defaultfn = function() {}; + + table.columns.push(col); + table.xcolumns[columnid] = col; + + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + + table.data[i][columnid] = defaultfn(); + } + + // TODO + return cb ? cb(1) : 1; + } else if (this.modifycolumn) { + var db = alasql.databases[this.table.databaseid || databaseid]; + db.dbversion++; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var columnid = this.modifycolumn.columnid; + + if (!table.xcolumns[columnid]) { + throw new Error( + 'Cannot modify column "' + + columnid + + '", because it was not found in the table "' + + tableid + + '"' + ); + } + + col = table.xcolumns[columnid]; + col.dbtypeid = this.dbtypeid; + col.dbsize = this.dbsize; + col.dbprecision = this.dbprecision; + col.dbenum = this.dbenum; + + // TODO + return cb ? cb(1) : 1; + } else if (this.renamecolumn) { + var db = alasql.databases[this.table.databaseid || databaseid]; + db.dbversion++; + + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var columnid = this.renamecolumn; + var tocolumnid = this.to; + + var col; + if (!table.xcolumns[columnid]) { + throw new Error( + 'Column "' + columnid + '" is not found in the table "' + tableid + '"' + ); + } + if (table.xcolumns[tocolumnid]) { + throw new Error( + 'Column "' + tocolumnid + '" already exists in the table "' + tableid + '"' + ); + } + + if (columnid != tocolumnid) { + for (var j = 0; j < table.columns.length; j++) { + if (table.columns[j].columnid == columnid) { + table.columns[j].columnid = tocolumnid; + } + } + + table.xcolumns[tocolumnid] = table.xcolumns[columnid]; + delete table.xcolumns[columnid]; + + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + + table.data[i][tocolumnid] = table.data[i][columnid]; + delete table.data[i][columnid]; + } + return table.data.length; + } else { + return cb ? cb(0) : 0; + } + } else if (this.dropcolumn) { + var db = alasql.databases[this.table.databaseid || databaseid]; + db.dbversion++; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var columnid = this.dropcolumn; + + var found = false; + for (var j = 0; j < table.columns.length; j++) { + if (table.columns[j].columnid == columnid) { + found = true; + table.columns.splice(j, 1); + break; + } + } + + if (!found) { + throw new Error( + 'Cannot drop column "' + + columnid + + '", because it was not found in the table "' + + tableid + + '"' + ); + } + + delete table.xcolumns[columnid]; + + for (i = 0, ilen = table.data.length; i < ilen; i++) { + delete table.data[i][columnid]; + } + return cb ? cb(table.data.length) : table.data.length; + } else { + throw Error('Unknown ALTER TABLE method'); + } +}; + +/* +// +// CREATE TABLE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.CreateIndex = function(params) { + return yy.extend(this, params); +}; +yy.CreateIndex.prototype.toString = function() { + var s = 'CREATE'; + if (this.unique) s += ' UNIQUE'; + s += ' INDEX ' + this.indexid + ' ON ' + this.table.toString(); + s += '(' + this.columns.toString() + ')'; + return s; +}; + +// CREATE TABLE +yy.CreateIndex.prototype.execute = function(databaseid, params, cb) { + // var self = this; + var db = alasql.databases[databaseid]; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var indexid = this.indexid; + db.indices[indexid] = tableid; + + var rightfns = this.columns + .map(function(expr) { + return expr.expression.toJS('r', ''); + }) + .join("+'`'+"); + + var rightfn = new Function('r,params,alasql', 'return ' + rightfns); + + if (this.unique) { + table.uniqdefs[indexid] = { + rightfns: rightfns, + }; + var ux = (table.uniqs[indexid] = {}); + if (table.data.length > 0) { + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + var addr = rightfns(table.data[i]); + if (!ux[addr]) { + ux[addr] = {num: 0}; + } + ux[addr].num++; + } + } + } else { + var hh = hash(rightfns); + table.inddefs[indexid] = {rightfns: rightfns, hh: hh}; + table.indices[hh] = {}; + + var ix = (table.indices[hh] = {}); + if (table.data.length > 0) { + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + var addr = rightfn(table.data[i], params, alasql); + if (!ix[addr]) { + ix[addr] = []; + } + ix[addr].push(table.data[i]); + } + } + } + var res = 1; + if (cb) res = cb(res); + return res; +}; + +yy.Reindex = function(params) { + return yy.extend(this, params); +}; +yy.Reindex.prototype.toString = function() { + var s = 'REINDEX ' + this.indexid; + return s; +}; + +// CREATE TABLE +yy.Reindex.prototype.execute = function(databaseid, params, cb) { + // var self = this; + var db = alasql.databases[databaseid]; + var indexid = this.indexid; + + var tableid = db.indices[indexid]; + var table = db.tables[tableid]; + table.indexColumns(); + var res = 1; + if (cb) res = cb(res); + return res; +}; + +/* +// +// DROP TABLE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.DropIndex = function(params) { + return yy.extend(this, params); +}; +yy.DropIndex.prototype.toString = function() { + return 'DROP INDEX' + this.indexid; +}; + +// DROP TABLE +yy.DropIndex.prototype.compile = function(db) { + var indexid = this.indexid; + return function() { + return 1; + }; +}; + +/* +// +// WITH SELECT for Alasql.js +// Date: 11.01.2015 +// (c) 2015, Andrey Gershun +// +*/ + +yy.WithSelect = function(params) { + return yy.extend(this, params); +}; +yy.WithSelect.prototype.toString = function() { + var s = 'WITH '; + s += + this.withs + .map(function(w) { + return w.name + ' AS (' + w.select.toString() + ')'; + }) + .join(',') + ' '; + s += this.select.toString(); + return s; +}; + +yy.WithSelect.prototype.execute = function(databaseid, params, cb) { + var self = this; + // Create temporary tables + var savedTables = []; + self.withs.forEach(function(w) { + savedTables.push(alasql.databases[databaseid].tables[w.name]); + var tb = (alasql.databases[databaseid].tables[w.name] = new Table({tableid: w.name})); + tb.data = w.select.execute(databaseid, params); + }); + + var res = 1; + res = this.select.execute(databaseid, params, function(data) { + // Clear temporary tables + // setTimeout(function(){ + self.withs.forEach(function(w, idx) { + if (savedTables[idx]) alasql.databases[databaseid].tables[w.name] = savedTables[idx]; + else delete alasql.databases[databaseid].tables[w.name]; + }); + // },0); + + if (cb) data = cb(data); + return data; + }); + return res; +}; + +/* +// +// IF for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.If = function(params) { + return yy.extend(this, params); +}; +yy.If.prototype.toString = function() { + var s = 'IF' + ' '; + s += this.expression.toString(); + s += ' ' + this.thenstat.toString(); + if (this.elsestat) s += ' ELSE ' + this.thenstat.toString(); + return s; +}; + +// CREATE TABLE + +yy.If.prototype.execute = function(databaseid, params, cb) { + var res; + + var fn = new Function( + 'params,alasql,p', + 'var y;return ' + this.expression.toJS('({})', '', null) + ).bind(this); + + if (fn(params, alasql)) res = this.thenstat.execute(databaseid, params, cb); + else { + if (this.elsestat) res = this.elsestat.execute(databaseid, params, cb); + else { + if (cb) res = cb(res); + } + } + // else res = this.elsestat.execute(databaseid,params,cb,scope); + return res; +}; + +/* +// +// CREATE VIEW for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.While = function(params) { + return yy.extend(this, params); +}; +yy.While.prototype.toString = function() { + var s = 'WHILE '; + s += this.expression.toString(); + s += ' ' + this.loopstat.toString(); + return s; +}; + +yy.While.prototype.execute = function(databaseid, params, cb) { + var self = this; + var res = []; + + var fn = new Function('params,alasql,p', 'var y;return ' + this.expression.toJS()); + + if (cb) { + var first = false; + var loop = function(data) { + if (first) { + res.push(data); + } else { + first = true; + } + setTimeout(function() { + if (fn(params, alasql)) { + self.loopstat.execute(databaseid, params, loop); + } else { + res = cb(res); + } + }, 0); + }; + loop(); + } else { + while (fn(params, alasql)) { + var res1 = self.loopstat.execute(databaseid, params); + res.push(res1); + } + } + return res; +}; + +yy.Break = function(params) { + return yy.extend(this, params); +}; +yy.Break.prototype.toString = function() { + var s = 'BREAK'; + return s; +}; + +yy.Break.prototype.execute = function(databaseid, params, cb, scope) { + var res = 1; + if (cb) res = cb(res); + return res; +}; + +yy.Continue = function(params) { + return yy.extend(this, params); +}; +yy.Continue.prototype.toString = function() { + var s = 'CONTINUE'; + return s; +}; + +yy.Continue.prototype.execute = function(databaseid, params, cb, scope) { + var res = 1; + if (cb) res = cb(res); + return res; +}; + +yy.BeginEnd = function(params) { + return yy.extend(this, params); +}; +yy.BeginEnd.prototype.toString = function() { + var s = 'BEGIN ' + this.statements.toString() + ' END'; + return s; +}; + +yy.BeginEnd.prototype.execute = function(databaseid, params, cb, scope) { + var self = this; + var res = []; + + var idx = 0; + runone(); + function runone() { + self.statements[idx].execute(databaseid, params, function(data) { + res.push(data); + idx++; + if (idx < self.statements.length) return runone(); + if (cb) res = cb(res); + }); + } + return res; +}; + +/* +// +// INSERT for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/* global yy alasql*/ +yy.Insert = function(params) { + return yy.extend(this, params); +}; +yy.Insert.prototype.toString = function() { + var s = 'INSERT '; + if (this.orreplace) s += 'OR REPLACE '; + if (this.replaceonly) s = 'REPLACE '; + s += 'INTO ' + this.into.toString(); + if (this.columns) s += '(' + this.columns.toString() + ')'; + if (this.values) s += ' VALUES ' + this.values.toString(); + if (this.select) s += ' ' + this.select.toString(); + return s; +}; + +yy.Insert.prototype.toJS = function(context, tableid, defcols) { + + // if(this.expression.reduced) return 'true'; + // return this.expression.toJS(context, tableid, defcols); + + // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]'; + + var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; + + return s; +}; + +yy.Insert.prototype.compile = function(databaseid) { + var self = this; + databaseid = self.into.databaseid || databaseid; + var db = alasql.databases[databaseid]; + + var tableid = self.into.tableid; + var table = db.tables[tableid]; + + if (!table) { + throw "Table '" + tableid + "' could not be found"; + } + + // Check, if this dirty flag is required + var s = ''; + var sw = ''; + var s = "db.tables['" + tableid + "'].dirty=true;"; + var s3 = 'var a,aa=[],x;'; + + var s33; + + // INSERT INTO table VALUES + if (this.values) { + if (this.exists) { + this.existsfn = this.exists.map(function(ex) { + var nq = ex.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (this.queries) { + this.queriesfn = this.queries.map(function(q) { + var nq = q.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + + self.values.forEach(function(values) { + var ss = []; + + // s += 'db.tables[\''+tableid+'\'].data.push({'; + + // s += ''; + if (self.columns) { + self.columns.forEach(function(col, idx) { + + // ss.push(col.columnid +':'+ self.values[idx].value.toString()); + + // if(rec[f.name.value] == "NULL") rec[f.name.value] = undefined; + + // if(table.xflds[f.name.value].dbtypeid == "INT") rec[f.name.value] = +rec[f.name.value]|0; + // else if(table.xflds[f.name.value].dbtypeid == "FLOAT") rec[f.name.value] = +rec[f.name.value]; + var q = "'" + col.columnid + "':"; + if (table.xcolumns && table.xcolumns[col.columnid]) { + if ( + ['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf( + table.xcolumns[col.columnid].dbtypeid + ) >= 0 + ) { + //q += '' + q += '(x=' + values[idx].toJS() + ',x==undefined?undefined:+x)'; + } else if (alasql.fn[table.xcolumns[col.columnid].dbtypeid]) { + q += '(new ' + table.xcolumns[col.columnid].dbtypeid + '('; + q += values[idx].toJS(); + q += '))'; + } else { + q += values[idx].toJS(); + } + } else { + q += values[idx].toJS(); + } + ss.push(q); + }); + } else { + // var table = db.tables[tableid]; + + if (Array.isArray(values) && table.columns && table.columns.length > 0) { + table.columns.forEach(function(col, idx) { + var q = "'" + col.columnid + "':"; + // var val = values[idx].toJS(); + + if (['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(col.dbtypeid) >= 0) { + q += '+' + values[idx].toJS(); + } else if (alasql.fn[col.dbtypeid]) { + q += '(new ' + col.dbtypeid + '('; + q += values[idx].toJS(); + q += '))'; + } else { + q += values[idx].toJS(); + } + + ss.push(q); + + }); + } else { + + // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};'; + sw = JSONtoJS(values); + } + } + + if (db.tables[tableid].defaultfns) { + ss.unshift(db.tables[tableid].defaultfns); + } + if (sw) { + s += 'a=' + sw + ';'; + } else { + s += 'a={' + ss.join(',') + '};'; + } + + // If this is a class + if (db.tables[tableid].isclass) { + s += "var db=alasql.databases['" + databaseid + "'];"; + s += 'a.$class="' + tableid + '";'; + s += 'a.$id=db.counter++;'; + s += 'db.objects[a.$id]=a;'; + } + // s += 'db.tables[\''+tableid+'\'].insert(r);'; + if (db.tables[tableid].insert) { + s += "var db=alasql.databases['" + databaseid + "'];"; + s += + "db.tables['" + + tableid + + "'].insert(a," + + (self.orreplace ? 'true' : 'false') + + ');'; + } else { + s += 'aa.push(a);'; + } + }); + + s33 = s3 + s; + + if (db.tables[tableid].insert) { + // s += 'alasql.databases[\''+databaseid+'\'].tables[\''+tableid+'\'].insert(r);'; + } else { + s += + "alasql.databases['" + + databaseid + + "'].tables['" + + tableid + + "'].data=" + + "alasql.databases['" + + databaseid + + "'].tables['" + + tableid + + "'].data.concat(aa);"; + } + + if (db.tables[tableid].insert) { + if (db.tables[tableid].isclass) { + s += 'return a.$id;'; + } else { + s += 'return ' + self.values.length; + } + } else { + s += 'return ' + self.values.length; + } + + var insertfn = new Function('db, params, alasql', 'var y;' + s3 + s).bind(this); + + // INSERT INTO table SELECT + } else if (this.select) { + this.select.modifier = 'RECORDSET'; + var selectfn = this.select.compile(databaseid); + if (db.engineid && alasql.engines[db.engineid].intoTable) { + var statement = function(params, cb) { + var aa = selectfn(params); + var res = alasql.engines[db.engineid].intoTable( + db.databaseid, + tableid, + aa.data, + null, + cb + ); + return res; + }; + return statement; + } else { + + var defaultfns = 'return alasql.utils.extend(r,{' + table.defaultfns + '})'; + var defaultfn = new Function('r,db,params,alasql', defaultfns); + var insertfn = function(db, params, alasql) { + var res = selectfn(params).data; + if (db.tables[tableid].insert) { + // If insert() function exists (issue #92) + for (var i = 0, ilen = res.length; i < ilen; i++) { + var r = cloneDeep(res[i]); + defaultfn(r, db, params, alasql); + db.tables[tableid].insert(r, self.orreplace); + } + } else { + db.tables[tableid].data = db.tables[tableid].data.concat(res); + } + if (alasql.options.nocount) return; + else return res.length; + }; + } + } else if (this["default"]) { + var insertfns = + "db.tables['" + tableid + "'].data.push({" + table.defaultfns + '});return 1;'; + var insertfn = new Function('db,params,alasql', insertfns); + } else { + throw new Error('Wrong INSERT parameters'); + } + + if (db.engineid && alasql.engines[db.engineid].intoTable && alasql.options.autocommit) { + var statement = function(params, cb) { + var aa = new Function('db,params', 'var y;' + s33 + 'return aa;')(db, params); + + var res = alasql.engines[db.engineid].intoTable(db.databaseid, tableid, aa, null, cb); + // if(cb) cb(res); + return res; + }; + } else { + var statement = function(params, cb) { + + var db = alasql.databases[databaseid]; + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].loadTableData(databaseid, tableid); + } + + var res = insertfn(db, params, alasql); + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].saveTableData(databaseid, tableid); + } + // var res = insertfn(db, params); + if (alasql.options.nocount) res = undefined; + if (cb) cb(res); + return res; + }; + } + + return statement; +}; + +yy.Insert.prototype.execute = function(databaseid, params, cb) { + return this.compile(databaseid)(params, cb); + // throw new Error('Insert statement is should be compiled') +}; + +/* +// +// TRIGGER for Alasql.js +// Date: 29.12.2015 +// +*/ + +yy.CreateTrigger = function(params) { + return yy.extend(this, params); +}; +yy.CreateTrigger.prototype.toString = function() { + var s = 'CREATE TRIGGER ' + this.trigger + ' '; + if (this.when) s += this.when + ' '; + s += this.action + ' ON '; + if (this.table.databaseid) s += this.table.databaseid + '.'; + s += this.table.tableid + ' '; + s += this.statement.toString(); + return s; +}; + +yy.CreateTrigger.prototype.execute = function(databaseid, params, cb) { + var res = 1; // No tables removed + var triggerid = this.trigger; + databaseid = this.table.databaseid || databaseid; + var db = alasql.databases[databaseid]; + var tableid = this.table.tableid; + + var trigger = { + action: this.action, + when: this.when, + statement: this.statement, + funcid: this.funcid, + }; + + db.triggers[triggerid] = trigger; + if (trigger.action == 'INSERT' && trigger.when == 'BEFORE') { + db.tables[tableid].beforeinsert[triggerid] = trigger; + } else if (trigger.action == 'INSERT' && trigger.when == 'AFTER') { + db.tables[tableid].afterinsert[triggerid] = trigger; + } else if (trigger.action == 'INSERT' && trigger.when == 'INSTEADOF') { + db.tables[tableid].insteadofinsert[triggerid] = trigger; + } else if (trigger.action == 'DELETE' && trigger.when == 'BEFORE') { + db.tables[tableid].beforedelete[triggerid] = trigger; + } else if (trigger.action == 'DELETE' && trigger.when == 'AFTER') { + db.tables[tableid].afterdelete[triggerid] = trigger; + } else if (trigger.action == 'DELETE' && trigger.when == 'INSTEADOF') { + db.tables[tableid].insteadofdelete[triggerid] = trigger; + } else if (trigger.action == 'UPDATE' && trigger.when == 'BEFORE') { + db.tables[tableid].beforeupdate[triggerid] = trigger; + } else if (trigger.action == 'UPDATE' && trigger.when == 'AFTER') { + db.tables[tableid].afterupdate[triggerid] = trigger; + } else if (trigger.action == 'UPDATE' && trigger.when == 'INSTEADOF') { + db.tables[tableid].insteadofupdate[triggerid] = trigger; + } + + if (cb) res = cb(res); + return res; +}; + +yy.DropTrigger = function(params) { + return yy.extend(this, params); +}; +yy.DropTrigger.prototype.toString = function() { + var s = 'DROP TRIGGER ' + this.trigger; + return s; +}; + +/** + Drop trigger + @param {string} databaseid Database id + @param {object} params Parameters + @param {callback} cb Callback function + @return Number of dropped triggers + @example + DROP TRIGGER one; +*/ +yy.DropTrigger.prototype.execute = function(databaseid, params, cb) { + var res = 0; // No tables removed + var db = alasql.databases[databaseid]; + var triggerid = this.trigger; + // For each table in the list + var tableid = db.triggers[triggerid]; + if (tableid) { + res = 1; + delete db.tables[tableid].beforeinsert[triggerid]; + delete db.tables[tableid].afterinsert[triggerid]; + delete db.tables[tableid].insteadofinsert[triggerid]; + delete db.tables[tableid].beforedelte[triggerid]; + delete db.tables[tableid].afterdelete[triggerid]; + delete db.tables[tableid].insteadofdelete[triggerid]; + delete db.tables[tableid].beforeupdate[triggerid]; + delete db.tables[tableid].afterupdate[triggerid]; + delete db.tables[tableid].insteadofupdate[triggerid]; + delete db.triggers[triggerid]; + } else { + throw new Error('Trigger not found'); + } + if (cb) res = cb(res); + return res; +}; + +/* +// +// DELETE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.Delete = function(params) { + return yy.extend(this, params); +}; +yy.Delete.prototype.toString = function() { + var s = 'DELETE FROM ' + this.table.toString(); + if (this.where) s += ' WHERE ' + this.where.toString(); + return s; +}; + +yy.Delete.prototype.compile = function(databaseid) { + + databaseid = this.table.databaseid || databaseid; + var tableid = this.table.tableid; + var statement; + var db = alasql.databases[databaseid]; + + if (this.where) { + + // this.query = {}; + + if (this.exists) { + this.existsfn = this.exists.map(function(ex) { + var nq = ex.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (this.queries) { + this.queriesfn = this.queries.map(function(q) { + var nq = q.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + + // try { + + // var query = {}; + + var wherefn = new Function( + 'r,params,alasql', + 'var y;return (' + this.where.toJS('r', '') + ')' + ).bind(this); + + statement = function(params, cb) { + if (db.engineid && alasql.engines[db.engineid].deleteFromTable) { + return alasql.engines[db.engineid].deleteFromTable( + databaseid, + tableid, + wherefn, + params, + cb + ); + } + + if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') { + alasql.engines[db.engineid].loadTableData(databaseid, tableid); + } + + var table = db.tables[tableid]; + // table.dirty = true; + var orignum = table.data.length; + + var newtable = []; + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + if (wherefn(table.data[i], params, alasql)) { + // Check for transaction - if it is not possible then return all back + if (table["delete"]) { + table["delete"](i, params, alasql); + } else { + // Simply do not push + } + } else newtable.push(table.data[i]); + } + // table.data = table.data.filter(function(r){return !;}); + table.data = newtable; + + // Trigger prevent functionality + for (var tr in table.afterdelete) { + var trigger = table.afterdelete[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + + var res = orignum - table.data.length; + if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') { + alasql.engines[db.engineid].saveTableData(databaseid, tableid); + } + + if (cb) cb(res); + return res; + }; + // .bind(query); + + // if(!this.queries) return; + // query.queriesfn = this.queries.map(function(q) { + // return q.compile(alasql.useid); + // }); + } else { + statement = function(params, cb) { + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].loadTableData(databaseid, tableid); + } + + var table = db.tables[tableid]; + table.dirty = true; + var orignum = db.tables[tableid].data.length; + //table.deleteall(); + // Delete all records from the array + db.tables[tableid].data.length = 0; + + // Reset PRIMARY KEY and indexes + for (var ix in db.tables[tableid].uniqs) { + db.tables[tableid].uniqs[ix] = {}; + } + + for (var ix in db.tables[tableid].indices) { + db.tables[tableid].indices[ix] = {}; + } + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].saveTableData(databaseid, tableid); + } + + if (cb) cb(orignum); + return orignum; + }; + } + + return statement; +}; + +yy.Delete.prototype.execute = function(databaseid, params, cb) { + return this.compile(databaseid)(params, cb); +}; + +/* +// +// UPDATE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/* global yy alasql */ + +yy.Update = function(params) { + return yy.extend(this, params); +}; +yy.Update.prototype.toString = function() { + var s = 'UPDATE ' + this.table.toString(); + if (this.columns) s += ' SET ' + this.columns.toString(); + if (this.where) s += ' WHERE ' + this.where.toString(); + return s; +}; + +yy.SetColumn = function(params) { + return yy.extend(this, params); +}; +yy.SetColumn.prototype.toString = function() { + return this.column.toString() + '=' + this.expression.toString(); +}; + +yy.Update.prototype.compile = function(databaseid) { + + databaseid = this.table.databaseid || databaseid; + var tableid = this.table.tableid; + + if (this.where) { + if (this.exists) { + this.existsfn = this.exists.map(function(ex) { + var nq = ex.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (this.queries) { + this.queriesfn = this.queries.map(function(q) { + var nq = q.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + + var wherefn = new Function( + 'r,params,alasql', + 'var y;return ' + this.where.toJS('r', '') + ).bind(this); + } + + // Construct update function + var s = alasql.databases[databaseid].tables[tableid].onupdatefns || ''; + s += ';'; + this.columns.forEach(function(col) { + s += "r['" + col.column.columnid + "']=" + col.expression.toJS('r', '') + ';'; + }); + + var assignfn = new Function('r,params,alasql', 'var y;' + s); + + var statement = function(params, cb) { + var db = alasql.databases[databaseid]; + + if (db.engineid && alasql.engines[db.engineid].updateTable) { + + return alasql.engines[db.engineid].updateTable( + databaseid, + tableid, + assignfn, + wherefn, + params, + cb + ); + } + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].loadTableData(databaseid, tableid); + } + + var table = db.tables[tableid]; + if (!table) { + throw new Error("Table '" + tableid + "' not exists"); + } + // table.dirty = true; + var numrows = 0; + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + if (!wherefn || wherefn(table.data[i], params, alasql)) { + if (table.update) { + table.update(assignfn, i, params); + } else { + assignfn(table.data[i], params, alasql); + } + numrows++; + } + } + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].saveTableData(databaseid, tableid); + } + + if (cb) cb(numrows); + return numrows; + }; + return statement; +}; + +yy.Update.prototype.execute = function(databaseid, params, cb) { + return this.compile(databaseid)(params, cb); +}; + +/* +// +// SET for Alasql.js +// Date: 01.12.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/* global alasql, yy */ + +yy.Merge = function(params) { + return yy.extend(this, params); +}; +yy.Merge.prototype.toString = function() { + var s = 'MERGE '; + s += this.into.tableid + ' '; + if (this.into.as) s += 'AS ' + this.into.as + ' '; + s += 'USING ' + this.using.tableid + ' '; + if (this.using.as) s += 'AS ' + this.using.as + ' '; + s += 'ON ' + this.on.toString() + ' '; + this.matches.forEach(function(m) { + s += 'WHEN '; + if (!m.matched) s += 'NOT '; + s += 'MATCHED '; + if (m.bytarget) s += 'BY TARGET '; + if (m.bysource) s += 'BY SOURCE '; + if (m.expr) s += 'AND' + ' ' + m.expr.toString() + ' '; + s += 'THEN '; + if (m.action["delete"]) s += 'DELETE '; + if (m.action.insert) { + s += 'INSERT '; + if (m.action.columns) s += '(' + m.action.columns.toString() + ') '; + if (m.action.values) s += 'VALUES (' + m.action.values.toString() + ') '; + if (m.action.defaultvalues) s += 'DEFAULT VALUES '; + } + if (m.action.update) { + s += 'UPDATE '; + s += + m.action.update + .map(function(u) { + return u.toString(); + }) + .join(',') + ' '; + } + }); + + return s; +}; + +yy.Merge.prototype.execute = function(databaseid, params, cb) { + var res = 1; + + if (cb) res = cb(res); + return res; +}; + +/* +// +// UPDATE for Alasql.js +// Date: 03.11.2014 +// Modified: 16.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/* global yy alasql */ + +// CREATE DATABASE databaseid +yy.CreateDatabase = function(params) { + return yy.extend(this, params); +}; +yy.CreateDatabase.prototype.toString = function() { + var s = 'CREATE'; + if (this.engineid) s += ' ' + this.engineid; + s += ' DATABASE'; + if (this.ifnotexists) s += ' IF NOT EXISTS'; + s += ' ' + this.databaseid; + if (this.args && this.args.length > 0) { + s += + '(' + + this.args + .map(function(arg) { + return arg.toString(); + }) + .join(', ') + + ')'; + } + if (this.as) s += ' AS ' + this.as; + return s; +}; +//yy.CreateDatabase.prototype.compile = returnUndefined; +yy.CreateDatabase.prototype.execute = function(databaseid, params, cb) { + var args; + if (this.args && this.args.length > 0) { + args = this.args.map(function(arg) { + + return new Function('params,alasql', 'var y;return ' + arg.toJS())(params, alasql); + }); + } + if (this.engineid) { + var res = alasql.engines[this.engineid].createDatabase( + this.databaseid, + this.args, + this.ifnotexists, + this.as, + cb + ); + return res; + } else { + var dbid = this.databaseid; + if (alasql.databases[dbid]) { + throw new Error("Database '" + dbid + "' already exists"); + } + var a = new alasql.Database(dbid); + var res = 1; + if (cb) return cb(res); + return res; + } +}; + +// CREATE DATABASE databaseid +yy.AttachDatabase = function(params) { + return yy.extend(this, params); +}; +yy.AttachDatabase.prototype.toString = function(args) { + var s = 'ATTACH'; + if (this.engineid) s += ' ' + this.engineid; + s += ' DATABASE' + ' ' + this.databaseid; + // TODO add params + if (args) { + s += '('; + if (args.length > 0) { + s += args + .map(function(arg) { + return arg.toString(); + }) + .join(', '); + } + s += ')'; + } + if (this.as) s += ' AS' + ' ' + this.as; + return s; +}; +//yy.CreateDatabase.prototype.compile = returnUndefined; +yy.AttachDatabase.prototype.execute = function(databaseid, params, cb) { + if (!alasql.engines[this.engineid]) { + throw new Error('Engine "' + this.engineid + '" is not defined.'); + } + var res = alasql.engines[this.engineid].attachDatabase( + this.databaseid, + this.as, + this.args, + params, + cb + ); + return res; +}; + +// CREATE DATABASE databaseid +yy.DetachDatabase = function(params) { + return yy.extend(this, params); +}; +yy.DetachDatabase.prototype.toString = function() { + var s = 'DETACH'; + s += ' DATABASE' + ' ' + this.databaseid; + return s; +}; +//yy.CreateDatabase.prototype.compile = returnUndefined; +yy.DetachDatabase.prototype.execute = function(databaseid, params, cb) { + if (!alasql.databases[this.databaseid].engineid) { + throw new Error( + 'Cannot detach database "' + this.engineid + '", because it was not attached.' + ); + } + var res; + + var dbid = this.databaseid; + + if (dbid === alasql.DEFAULTDATABASEID) { + throw new Error('Drop of default database is prohibited'); + } + + if (!alasql.databases[dbid]) { + if (!this.ifexists) { + throw new Error("Database '" + dbid + "' does not exist"); + } else { + res = 0; + } + } else { + delete alasql.databases[dbid]; + if (dbid === alasql.useid) { + alasql.use(); + } + res = 1; + } + if (cb) cb(res); + return res; + // var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, cb); + // return res; +}; + +// USE DATABSE databaseid +// USE databaseid +yy.UseDatabase = function(params) { + return yy.extend(this, params); +}; +yy.UseDatabase.prototype.toString = function() { + return 'USE' + ' ' + 'DATABASE' + ' ' + this.databaseid; +}; +//yy.UseDatabase.prototype.compile = returnUndefined; +yy.UseDatabase.prototype.execute = function(databaseid, params, cb) { + var dbid = this.databaseid; + if (!alasql.databases[dbid]) { + throw new Error("Database '" + dbid + "' does not exist"); + } + alasql.use(dbid); + var res = 1; + if (cb) cb(res); + return res; +}; + +// DROP DATABASE databaseid +yy.DropDatabase = function(params) { + return yy.extend(this, params); +}; +yy.DropDatabase.prototype.toString = function() { + var s = 'DROP'; + if (this.ifexists) s += ' IF EXISTS'; + s += ' DATABASE ' + this.databaseid; + return s; +}; +//yy.DropDatabase.prototype.compile = returnUndefined; +yy.DropDatabase.prototype.execute = function(databaseid, params, cb) { + if (this.engineid) { + return alasql.engines[this.engineid].dropDatabase(this.databaseid, this.ifexists, cb); + } + var res; + + var dbid = this.databaseid; + + if (dbid === alasql.DEFAULTDATABASEID) { + throw new Error('Drop of default database is prohibited'); + } + if (!alasql.databases[dbid]) { + if (!this.ifexists) { + throw new Error("Database '" + dbid + "' does not exist"); + } else { + res = 0; + } + } else { + if (alasql.databases[dbid].engineid) { + throw new Error( + "Cannot drop database '" + dbid + "', because it is attached. Detach it." + ); + } + + delete alasql.databases[dbid]; + if (dbid === alasql.useid) { + alasql.use(); + } + res = 1; + } + if (cb) cb(res); + return res; +}; + +/* +// +// SET for Alasql.js +// Date: 01.12.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.Declare = function(params) { + return yy.extend(this, params); +}; +yy.Declare.prototype.toString = function() { + var s = 'DECLARE '; + if (this.declares && this.declares.length > 0) { + s = this.declares + .map(function(declare) { + var s = ''; + s += '@' + declare.variable + ' '; + s += declare.dbtypeid; + if (this.dbsize) { + s += '(' + this.dbsize; + if (this.dbprecision) { + s += ',' + this.dbprecision; + } + s += ')'; + } + if (declare.expression) { + s += ' = ' + declare.expression.toString(); + } + return s; + }) + .join(','); + } + return s; +}; + +yy.Declare.prototype.execute = function(databaseid, params, cb) { + var res = 1; + if (this.declares && this.declares.length > 0) { + this.declares.map(function(declare) { + var dbtypeid = declare.dbtypeid; + if (!alasql.fn[dbtypeid]) { + dbtypeid = dbtypeid.toUpperCase(); + } + alasql.declares[declare.variable] = { + dbtypeid: dbtypeid, + dbsize: declare.dbsize, + dbprecision: declare.dbprecision, + }; + + // Set value + if (declare.expression) { + + alasql.vars[declare.variable] = new Function( + 'params,alasql', + 'return ' + declare.expression.toJS('({})', '', null) + )(params, alasql); + if (alasql.declares[declare.variable]) { + alasql.vars[declare.variable] = alasql.stdfn.CONVERT( + alasql.vars[declare.variable], + alasql.declares[declare.variable] + ); + } + } + }); + } + if (cb) { + res = cb(res); + } + return res; +}; + +/* +// +// SHOW for Alasql.js +// Date: 19.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.ShowDatabases = function(params) { + return yy.extend(this, params); +}; +yy.ShowDatabases.prototype.toString = function() { + var s = 'SHOW DATABASES'; + if (this.like) s += 'LIKE ' + this.like.toString(); + return s; +}; +yy.ShowDatabases.prototype.execute = function(databaseid, params, cb) { + if (this.engineid) { + return alasql.engines[this.engineid].showDatabases(this.like, cb); + } else { + var self = this; + var res = []; + for (var dbid in alasql.databases) { + res.push({databaseid: dbid}); + } + if (self.like && res && res.length > 0) { + res = res.filter(function(d) { + // return d.databaseid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g')); + return alasql.utils.like(self.like.value, d.databaseid); + }); + } + if (cb) cb(res); + return res; + } +}; + +yy.ShowTables = function(params) { + return yy.extend(this, params); +}; +yy.ShowTables.prototype.toString = function() { + var s = 'SHOW TABLES'; + if (this.databaseid) s += ' FROM ' + this.databaseid; + if (this.like) s += ' LIKE ' + this.like.toString(); + return s; +}; +yy.ShowTables.prototype.execute = function(databaseid, params, cb) { + var db = alasql.databases[this.databaseid || databaseid]; + + var self = this; + var res = []; + for (var tableid in db.tables) { + res.push({tableid: tableid}); + } + if (self.like && res && res.length > 0) { + res = res.filter(function(d) { + //return d.tableid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g')); + return alasql.utils.like(self.like.value, d.tableid); + }); + } + if (cb) cb(res); + return res; +}; + +yy.ShowColumns = function(params) { + return yy.extend(this, params); +}; +yy.ShowColumns.prototype.toString = function() { + var s = 'SHOW COLUMNS'; + if (this.table.tableid) s += ' FROM ' + this.table.tableid; + if (this.databaseid) s += ' FROM ' + this.databaseid; + return s; +}; + +yy.ShowColumns.prototype.execute = function(databaseid, params, cb) { + var db = alasql.databases[this.databaseid || databaseid]; + var table = db.tables[this.table.tableid]; + + if (table && table.columns) { + var res = table.columns.map(function(col) { + return {columnid: col.columnid, dbtypeid: col.dbtypeid, dbsize: col.dbsize}; + }); + if (cb) cb(res); + return res; + } else { + if (cb) cb([]); + return []; + } +}; + +yy.ShowIndex = function(params) { + return yy.extend(this, params); +}; +yy.ShowIndex.prototype.toString = function() { + var s = 'SHOW INDEX'; + if (this.table.tableid) s += ' FROM ' + this.table.tableid; + if (this.databaseid) s += ' FROM ' + this.databaseid; + return s; +}; +yy.ShowIndex.prototype.execute = function(databaseid, params, cb) { + var db = alasql.databases[this.databaseid || databaseid]; + var table = db.tables[this.table.tableid]; + var res = []; + if (table && table.indices) { + for (var ind in table.indices) { + res.push({hh: ind, len: Object.keys(table.indices[ind]).length}); + } + } + + if (cb) cb(res); + return res; +}; + +yy.ShowCreateTable = function(params) { + return yy.extend(this, params); +}; +yy.ShowCreateTable.prototype.toString = function() { + var s = 'SHOW CREATE TABLE ' + this.table.tableid; + if (this.databaseid) s += ' FROM ' + this.databaseid; + return s; +}; +yy.ShowCreateTable.prototype.execute = function(databaseid) { + var db = alasql.databases[this.databaseid || databaseid]; + var table = db.tables[this.table.tableid]; + if (table) { + var s = 'CREATE TABLE ' + this.table.tableid + ' ('; + var ss = []; + if (table.columns) { + table.columns.forEach(function(col) { + var a = col.columnid + ' ' + col.dbtypeid; + if (col.dbsize) a += '(' + col.dbsize + ')'; + if (col.primarykey) a += ' PRIMARY KEY'; + // TODO extend + ss.push(a); + }); + s += ss.join(', '); + } + s += ')'; + return s; + } else { + throw new Error('There is no such table "' + this.table.tableid + '"'); + } +}; + +/* +// +// SET for Alasql.js +// Date: 01.12.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.SetVariable = function(params) { + return yy.extend(this, params); +}; +yy.SetVariable.prototype.toString = function() { + var s = 'SET '; + if (typeof this.value != 'undefined') + s += this.variable.toUpperCase() + ' ' + (this.value ? 'ON' : 'OFF'); + if (this.expression) s += this.method + this.variable + ' = ' + this.expression.toString(); + return s; +}; + +yy.SetVariable.prototype.execute = function(databaseid, params, cb) { + + if (typeof this.value != 'undefined') { + var val = this.value; + if (val == 'ON') val = true; + else if (val == 'OFF') val = false; + // if(this.method == '@') { + alasql.options[this.variable] = val; + // } else { + // params[this.variable] = val; + // } + } else if (this.expression) { + if (this.exists) { + this.existsfn = this.exists.map(function(ex) { + var nq = ex.compile(databaseid); + if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET'; + return nq; + // return ex.compile(databaseid); + // TODO Include modifier + }); + } + if (this.queries) { + this.queriesfn = this.queries.map(function(q) { + var nq = q.compile(databaseid); + if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET'; + return nq; + // TODO Include modifier + }); + } + + var res = new Function( + 'params,alasql', + 'return ' + this.expression.toJS('({})', '', null) + ).bind(this)(params, alasql); + if (alasql.declares[this.variable]) { + res = alasql.stdfn.CONVERT(res, alasql.declares[this.variable]); + } + if (this.props && this.props.length > 0) { + if (this.method == '@') { + var fs = "alasql.vars['" + this.variable + "']"; + } else { + var fs = "params['" + this.variable + "']"; + } + fs += this.props + .map(function(prop) { + if (typeof prop == 'string') { + return "['" + prop + "']"; + } else if (typeof prop == 'number') { + return '[' + prop + ']'; + } else { + + return '[' + prop.toJS() + ']'; + // } else { + + // throw new Error('Wrong SET property'); + } + }) + .join(); + + new Function('value,params,alasql', 'var y;' + fs + '=value')(res, params, alasql); + } else { + if (this.method == '@') { + alasql.vars[this.variable] = res; + } else { + params[this.variable] = res; + } + } + } + var res = 1; + if (cb) res = cb(res); + return res; +}; + +// Console functions + +/* global alasql, yy */ + +alasql.test = function(name, times, fn) { + if (arguments.length === 0) { + alasql.log(alasql.con.results); + return; + } + + var tm = Date.now(); + + if (arguments.length === 1) { + fn(); + alasql.con.log(Date.now() - tm); + return; + } + + if (arguments.length === 2) { + fn = times; + times = 1; + } + + for (var i = 0; i < times; i++) { + fn(); + } + alasql.con.results[name] = Date.now() - tm; +}; + +// Console +// alasql.log = function(sql, params) { + +// }; + +/* global alasql, yy, utils */ + +// Console +alasql.log = function(sql, params) { + var olduseid = alasql.useid; + var target = alasql.options.logtarget; + // For node other + if (utils.isNode) { + target = 'console'; + } + + var res; + if (typeof sql === 'string') { + res = alasql(sql, params); + } else { + res = sql; + } + + // For Node and console.output + if (target === 'console' || utils.isNode) { + if (typeof sql === 'string' && alasql.options.logprompt) { + console.log(olduseid + '>', sql); + } + + if (Array.isArray(res)) { + if (console.table) { + // For Chrome and other consoles + console.table(res); + } else { + // Add print procedure + console.log(JSONtoString(res)); + } + } else { + console.log(JSONtoString(res)); + } + } else { + var el; + if (target === 'output') { + el = document.getElementsByTagName('output')[0]; + } else { + if (typeof target === 'string') { + el = document.getElementById(target); + } else { + // in case of DOM + el = target; + } + } + + var s = ''; + + if (typeof sql === 'string' && alasql.options.logprompt) { + // s += '

'+olduseid+'> '+alasql.pretty(sql)+'

'; + s += '
' + alasql.pretty(sql) + '
'; + } + + if (Array.isArray(res)) { + if (res.length === 0) { + s += '

[ ]

'; + } else if (typeof res[0] !== 'object' || Array.isArray(res[0])) { + for (var i = 0, ilen = res.length; i < ilen; i++) { + s += '

' + loghtml(res[i]) + '

'; + } + } else { + s += loghtml(res); + } + } else { + s += loghtml(res); + } + el.innerHTML += s; + } +}; + +alasql.clear = function() { + var target = alasql.options.logtarget; + // For node other + + if (utils.isNode || utils.isMeteorServer) { + if (console.clear) { + console.clear(); + } + } else { + var el; + if (target === 'output') { + el = document.getElementsByTagName('output')[0]; + } else { + if (typeof target === 'string') { + el = document.getElementById(target); + } else { + // in case of DOM + el = target; + } + } + el.innerHTML = ''; + } +}; + +alasql.write = function(s) { + + var target = alasql.options.logtarget; + // For node other + if (utils.isNode || utils.isMeteorServer) { + if (console.log) { + console.log(s); + } + } else { + var el; + if (target === 'output') { + el = document.getElementsByTagName('output')[0]; + } else { + if (typeof target === 'string') { + el = document.getElementById(target); + } else { + // in case of DOM + el = target; + } + } + el.innerHTML += s; + } +}; + +function loghtml(res) { + + var s = ''; + if (res === undefined) { + s += 'undefined'; + } else if (Array.isArray(res)) { + s += ''; + s += ''; + var cols = []; + for (var colid in res[0]) { + cols.push(colid); + } + s += '
#'; + cols.forEach(function(colid) { + s += '' + colid; + }); + for (var i = 0, ilen = res.length; i < ilen; i++) { + s += '
' + (i + 1); + cols.forEach(function(colid) { + s += ' '; + if (res[i][colid] == +res[i][colid]) { + // jshint ignore:line + s += '
'; + if (typeof res[i][colid] === 'undefined') { + s += 'NULL'; + } else { + s += res[i][colid]; + } + s += '
'; + } else { + if (typeof res[i][colid] === 'undefined') { + s += 'NULL'; + } else if (typeof res[i][colid] === 'string') { + s += res[i][colid]; + } else { + s += JSONtoString(res[i][colid]); + } + // s += res[i][colid]; + } + }); + } + + s += '
'; + } else { + s += '

' + JSONtoString(res) + '

'; + } + // if() {} + + // if(typeof res == 'object') { + // s += '

'+JSON.stringify(res)+'

'; + // } else { + // } + return s; +} + +function scrollTo(element, to, duration) { + if (duration <= 0) { + return; + } + var difference = to - element.scrollTop; + var perTick = (difference / duration) * 10; + + setTimeout(function() { + if (element.scrollTop === to) { + return; + } + element.scrollTop = element.scrollTop + perTick; + scrollTo(element, to, duration - 10); + }, 10); +} + +alasql.prompt = function(el, useidel, firstsql) { + if (utils.isNode) { + throw new Error('The prompt not realized for Node.js'); + } + + var prompti = 0; + + if (typeof el === 'string') { + el = document.getElementById(el); + } + + if (typeof useidel === 'string') { + useidel = document.getElementById(useidel); + } + + useidel.textContent = alasql.useid; + + if (firstsql) { + alasql.prompthistory.push(firstsql); + prompti = alasql.prompthistory.length; + try { + var tm = Date.now(); + alasql.log(firstsql); + alasql.write('

' + (Date.now() - tm) + ' ms

'); + } catch (err) { + alasql.write('

' + olduseid + '> ' + sql + '

'); + alasql.write('

' + err + '

'); + } + } + + var y = el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop; + scrollTo(document.getElementsByTagName('body')[0], y, 500); + + el.onkeydown = function(event) { + if (event.which === 13) { + var sql = el.value; + var olduseid = alasql.useid; + el.value = ''; + alasql.prompthistory.push(sql); + prompti = alasql.prompthistory.length; + try { + var tm = Date.now(); + alasql.log(sql); + alasql.write('

' + (Date.now() - tm) + ' ms

'); + } catch (err) { + alasql.write('

' + olduseid + '> ' + alasql.pretty(sql, false) + '

'); + alasql.write('

' + err + '

'); + } + el.focus(); + + useidel.textContent = alasql.useid; + var y = + el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop; + scrollTo(document.getElementsByTagName('body')[0], y, 500); + } else if (event.which === 38) { + prompti--; + if (prompti < 0) { + prompti = 0; + } + if (alasql.prompthistory[prompti]) { + el.value = alasql.prompthistory[prompti]; + event.preventDefault(); + } + } else if (event.which === 40) { + prompti++; + if (prompti >= alasql.prompthistory.length) { + prompti = alasql.prompthistory.length; + el.value = ''; + } else if (alasql.prompthistory[prompti]) { + el.value = alasql.prompthistory[prompti]; + event.preventDefault(); + } + } + }; +}; + +/* +// +// Commit for Alasql.js +// Date: 01.12.2014 +// (c) 2014, Andrey Gershun +// +*/ +yy.BeginTransaction = function(params) { + return yy.extend(this, params); +}; +yy.BeginTransaction.prototype.toString = function() { + return 'BEGIN TRANSACTION'; +}; + +yy.BeginTransaction.prototype.execute = function(databaseid, params, cb) { + var res = 1; + if (alasql.databases[databaseid].engineid) { + return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid, cb); + } else { + // alasql commit!!! + } + if (cb) cb(res); + return res; +}; + +yy.CommitTransaction = function(params) { + return yy.extend(this, params); +}; +yy.CommitTransaction.prototype.toString = function() { + return 'COMMIT TRANSACTION'; +}; + +yy.CommitTransaction.prototype.execute = function(databaseid, params, cb) { + var res = 1; + if (alasql.databases[databaseid].engineid) { + return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid, cb); + } else { + // alasql commit!!! + } + if (cb) cb(res); + return res; +}; + +yy.RollbackTransaction = function(params) { + return yy.extend(this, params); +}; +yy.RollbackTransaction.prototype.toString = function() { + return 'ROLLBACK TRANSACTION'; +}; + +yy.RollbackTransaction.prototype.execute = function(databaseid, params, cb) { + var res = 1; + if (alasql.databases[databaseid].engineid) { + return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid, cb); + } else { + // alasql commit!!! + } + if (cb) cb(res); + return res; +}; + +if (alasql.options.tsql) { + // + // Check tables and views + // IF OBJECT_ID('dbo.Employees') IS NOT NULL + // DROP TABLE dbo.Employees; + // IF OBJECT_ID('dbo.VSortedOrders', 'V') IS NOT NULL + // DROP VIEW dbo.VSortedOrders; + + alasql.stdfn.OBJECT_ID = function(name, type) { + if (typeof type == 'undefined') type = 'T'; + type = type.toUpperCase(); + + var sname = name.split('.'); + var dbid = alasql.useid; + var objname = sname[0]; + if (sname.length == 2) { + dbid = sname[0]; + objname = sname[1]; + } + + var tables = alasql.databases[dbid].tables; + dbid = alasql.databases[dbid].databaseid; + for (var tableid in tables) { + if (tableid == objname) { + // TODO: What OBJECT_ID actually returns + + if (tables[tableid].view && type == 'V') return dbid + '.' + tableid; + if (!tables[tableid].view && type == 'T') return dbid + '.' + tableid; + return undefined; + } + } + + return undefined; + }; +} + +if (alasql.options.mysql) { +} + +if (alasql.options.mysql || alasql.options.sqlite) { + // Pseudo INFORMATION_SCHEMA function + alasql.from.INFORMATION_SCHEMA = function(filename, opts, cb, idx, query) { + if (filename == 'VIEWS' || filename == 'TABLES') { + var res = []; + for (var databaseid in alasql.databases) { + var tables = alasql.databases[databaseid].tables; + for (var tableid in tables) { + if ( + (tables[tableid].view && filename == 'VIEWS') || + (!tables[tableid].view && filename == 'TABLES') + ) { + res.push({TABLE_CATALOG: databaseid, TABLE_NAME: tableid}); + } + } + } + if (cb) res = cb(res, idx, query); + return res; + } + throw new Error('Unknown INFORMATION_SCHEMA table'); + }; +} + +if (alasql.options.postgres) { +} + +if (alasql.options.oracle) { +} + +if (alasql.options.sqlite) { +} + +// +// into functions +// +// (c) 2014 Andrey Gershun +// + +alasql.into.SQL = function(filename, opts, data, columns, cb) { + var res; + if (typeof filename === 'object') { + opts = filename; + filename = undefined; + } + var opt = {}; + alasql.utils.extend(opt, opts); + if (typeof opt.tableid === 'undefined') { + throw new Error('Table for INSERT TO is not defined.'); + } + + var s = ''; + if (columns.length === 0) { + if (typeof data[0] === 'object') { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } else { + // What should I do? + // columns = [{columnid:"_"}]; + } + } + + for (var i = 0, ilen = data.length; i < ilen; i++) { + s += 'INSERT INTO ' + opts.tableid + '('; + s += columns + .map(function(col) { + return col.columnid; + }) + .join(','); + s += ') VALUES ('; + s += columns.map(function(col) { + var val = data[i][col.columnid]; + if (col.typeid) { + if ( + col.typeid === 'STRING' || + col.typeid === 'VARCHAR' || + col.typeid === 'NVARCHAR' || + col.typeid === 'CHAR' || + col.typeid === 'NCHAR' + ) { + val = "'" + escapeqq(val) + "'"; + } + } else { + if (typeof val == 'string') { + val = "'" + escapeqq(val) + "'"; + } + } + return val; + }); + s += ');\n'; + } + // if(filename === '') { + // res = s; + // } else { + // res = data.length; + filename = alasql.utils.autoExtFilename(filename, 'sql', opts); + res = alasql.utils.saveFile(filename, s); + if (cb) { + res = cb(res); + } + return res; +}; + +alasql.into.HTML = function(selector, opts, data, columns, cb) { + var res = 1; + if (typeof exports !== 'object') { + var opt = {headers: true}; + alasql.utils.extend(opt, opts); + + var sel = document.querySelector(selector); + if (!sel) { + throw new Error('Selected HTML element is not found'); + } + + if (columns.length === 0) { + if (typeof data[0] === 'object') { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } else { + // What should I do? + // columns = [{columnid:"_"}]; + } + } + + var tbe = document.createElement('table'); + var thead = document.createElement('thead'); + tbe.appendChild(thead); + if (opt.headers) { + var tre = document.createElement('tr'); + for (var i = 0; i < columns.length; i++) { + var the = document.createElement('th'); + the.textContent = columns[i].columnid; + tre.appendChild(the); + } + thead.appendChild(tre); + } + + var tbody = document.createElement('tbody'); + tbe.appendChild(tbody); + for (var j = 0; j < data.length; j++) { + var tre = document.createElement('tr'); + for (var i = 0; i < columns.length; i++) { + var the = document.createElement('td'); + the.textContent = data[j][columns[i].columnid]; + tre.appendChild(the); + } + tbody.appendChild(tre); + } + alasql.utils.domEmptyChildren(sel); + + sel.appendChild(tbe); + } + if (cb) { + res = cb(res); + } + return res; +}; + +alasql.into.JSON = function(filename, opts, data, columns, cb) { + var res = 1; + if (typeof filename === 'object') { + opts = filename; + filename = undefined; + } + var s = JSON.stringify(data); + + filename = alasql.utils.autoExtFilename(filename, 'json', opts); + res = alasql.utils.saveFile(filename, s); + if (cb) { + res = cb(res); + } + return res; +}; + +alasql.into.TXT = function(filename, opts, data, columns, cb) { + // If columns is empty + if (columns.length === 0 && data.length > 0) { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } + // If one parameter + if (typeof filename === 'object') { + opts = filename; + filename = undefined; + } + + var res = data.length; + var s = ''; + if (data.length > 0) { + var key = columns[0].columnid; + s += data + .map(function(d) { + return d[key]; + }) + .join('\n'); + } + + // } else { + // if(utils.isNode) { + // process.stdout.write(s); + // } else { + + // }; + // } + filename = alasql.utils.autoExtFilename(filename, 'txt', opts); + res = alasql.utils.saveFile(filename, s); + if (cb) { + res = cb(res); + } + return res; +}; + +alasql.into.TAB = alasql.into.TSV = function(filename, opts, data, columns, cb) { + var opt = {}; + alasql.utils.extend(opt, opts); + opt.separator = '\t'; + filename = alasql.utils.autoExtFilename(filename, 'tab', opts); + opt.autoExt = false; + return alasql.into.CSV(filename, opt, data, columns, cb); +}; + +alasql.into.CSV = function(filename, opts, data, columns, cb) { + if (columns.length === 0 && data.length > 0) { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } + if (typeof filename === 'object') { + opts = filename; + filename = undefined; + } + + var opt = {headers: true}; + //opt.separator = ','; + opt.separator = ';'; + opt.quote = '"'; + + opt.utf8Bom = true; + if (opts && !opts.headers && typeof opts.headers !== 'undefined') { + opt.utf8Bom = false; + } + + alasql.utils.extend(opt, opts); + var res = data.length; + var s = opt.utf8Bom ? '\ufeff' : ''; + if (opt.headers) { + s += + opt.quote + + columns + .map(function(col) { + return col.columnid.trim(); + }) + .join(opt.quote + opt.separator + opt.quote) + + opt.quote + + '\r\n'; + } + + data.forEach(function(d) { + s += + columns + .map(function(col) { + var s = d[col.columnid]; + // escape the character wherever it appears in the field + if (opt.quote !== '') { + s = (s + '').replace( + new RegExp('\\' + opt.quote, 'g'), + opt.quote + opt.quote + ); + } + // if((s+"").indexOf(opt.separator) > -1 || (s+"").indexOf(opt.quote) > -1) s = opt.quote + s + opt.quote; + + //Excel 2013 needs quotes around strings - thanks for _not_ complying with RFC for CSV + if (+s != s) { + // jshint ignore:line + s = opt.quote + s + opt.quote; + } + + return s; + }) + .join(opt.separator) + '\r\n'; + }); + + filename = alasql.utils.autoExtFilename(filename, 'csv', opts); + res = alasql.utils.saveFile(filename, s, null, {disableAutoBom: true}); + if (cb) { + res = cb(res); + } + return res; +}; + +// +// 831xl.js - Coloring Excel +// 18.04.2015 +// Generate XLS file with colors and styles +// with Excel + +alasql.into.XLS = function(filename, opts, data, columns, cb) { + // If filename is not defined then output to the result + if (typeof filename == 'object') { + opts = filename; + filename = undefined; + } + + // Set sheets + var sheets = {}; + if (opts && opts.sheets) { + sheets = opts.sheets; + } + + // Default sheet + var sheet = {headers: true}; + if (typeof sheets['Sheet1'] != 'undefined') { + sheet = sheets[0]; + } else { + if (typeof opts != 'undefined') { + sheet = opts; + } + } + + // Set sheet name and default is 'Sheet1' + if (typeof sheet.sheetid == 'undefined') { + sheet.sheetid = 'Sheet1'; + } + + var s = toHTML(); + + // File is ready to save + filename = alasql.utils.autoExtFilename(filename, 'xls', opts); + var res = alasql.utils.saveFile(filename, s); + if (cb) res = cb(res); + return res; + + function toHTML() { + // Generate prologue + var s = + ' \ + \ + '; + + // Generate body + s += ' 0) { + if (typeof data[0] == 'object') { + if (Array.isArray(data[0])) { + columns = data[0].map(function(d, columnidx) { + return {columnid: columnidx}; + }); + } else { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } + } + } + } + + // Prepare columns + columns.forEach(function(column, columnidx) { + if (typeof sheet.column != 'undefined') { + extend(column, sheet.column); + } + + if (typeof column.width == 'undefined') { + if (sheet.column && sheet.column.width != 'undefined') { + column.width = sheet.column.width; + } else { + column.width = '120px'; + } + } + if (typeof column.width == 'number') column.width = column.width + 'px'; + if (typeof column.columnid == 'undefined') column.columnid = columnidx; + if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim(); + if (sheet.headers && Array.isArray(sheet.headers)) + column.title = sheet.headers[columnidx]; + }); + + // Set columns widths + s += ''; + columns.forEach(function(column) { + s += ''; + }); + s += ''; + + // Headers + if (sheet.headers) { + s += ''; + s += ''; + + // TODO: Skip columns to body + + // Headers + columns.forEach(function(column, columnidx) { + s += ' 0) { + // TODO: Skip columns to body + + // Loop over data rows + data.forEach(function(row, rowidx) { + // Limit number of rows on the sheet + if (rowidx > sheet.limit) return; + // Create row + s += ' \ + \ + \ + \ + \ + \ + \ + \ + 0 \ + \ + \ + '; + + var s2 = ''; // for styles + + var s3 = ' '; + + var styles = {}; // hash based storage for styles + var stylesn = 62; // First style + + // Generate style + function hstyle(st) { + // Prepare string + var s = ''; + for (var key in st) { + s += '<' + key; + for (var attr in st[key]) { + s += ' '; + if (attr.substr(0, 2) == 'x:') { + s += attr; + } else { + s += 'ss:'; + } + s += attr + '="' + st[key][attr] + '"'; + } + s += '/>'; + } + + var hh = hash(s); + // Store in hash + if (styles[hh]) { + } else { + styles[hh] = {styleid: stylesn}; + s2 += ''; + stylesn++; + } + return 's' + styles[hh].styleid; + } + + function values(obj) { + try { + return Object.values(obj); + } catch (e) { + // support for older runtimes + return Object.keys(obj).map(function(e) { + return obj[e]; + }); + } + } + + var sheetidx = 0; + for (var sheetid in sheets) { + var sheet = sheets[sheetid]; + var idx = typeof sheet.dataidx != 'undefined' ? sheet.dataidx : sheetidx++; + var data = values(sheetsdata[idx]); + // If columns defined in sheet, then take them + var columns = undefined; + if (typeof sheet.columns != 'undefined') { + columns = sheet.columns; + } else { + // Autogenerate columns if they are passed as parameters + columns = sheetscolumns[idx]; + if (columns === undefined || (columns.length == 0 && data.length > 0)) { + if (typeof data[0] == 'object') { + if (Array.isArray(data[0])) { + columns = data[0].map(function(d, columnidx) { + return {columnid: columnidx}; + }); + } else { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } + } + } + } + + // Prepare columns + columns.forEach(function(column, columnidx) { + if (typeof sheet.column != 'undefined') { + extend(column, sheet.column); + } + + if (typeof column.width == 'undefined') { + if (sheet.column && typeof sheet.column.width != 'undefined') { + column.width = sheet.column.width; + } else { + column.width = 120; + } + } + if (typeof column.width == 'number') column.width = column.width; + if (typeof column.columnid == 'undefined') column.columnid = columnidx; + if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim(); + if (sheet.headers && Array.isArray(sheet.headers)) + column.title = sheet.headers[columnidx]; + }); + + // Header + s3 += + ' \ + '; + + columns.forEach(function(column, columnidx) { + s3 += + ''; + }); + + // Headers + if (sheet.headers) { + s3 += ''; + + // TODO: Skip columns to body + + // Headers + columns.forEach(function(column, columnidx) { + s3 += ' 0) { + // Loop over data rows + data.forEach(function(row, rowidx) { + // Limit number of rows on the sheet + if (rowidx > sheet.limit) return; + + // Extend row properties + var srow = {}; + extend(srow, sheet.row); + if (sheet.rows && sheet.rows[rowidx]) { + extend(srow, sheet.rows[rowidx]); + } + + s3 += '' + + // Data + columns.forEach(function(column, columnidx) { + // Parameters + var cell = {}; + extend(cell, sheet.cell); + extend(cell, srow.cell); + if (typeof sheet.column != 'undefined') { + extend(cell, sheet.column.cell); + } + extend(cell, column.cell); + if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) { + extend(cell, sheet.cells[rowidx][columnidx]); + } + + // Create value + var value = row[column.columnid]; + if (typeof cell.value == 'function') { + value = cell.value(value, sheet, row, column, cell, rowidx, columnidx); + } + + // Define cell type + var typeid = cell.typeid; + if (typeof typeid == 'function') { + typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx); + } + + if (typeof typeid == 'undefined') { + if (typeof value == 'number') typeid = 'number'; + else if (typeof value == 'string') typeid = 'string'; + else if (typeof value == 'boolean') typeid = 'boolean'; + else if (typeof value == 'object') { + if (value instanceof Date) typeid = 'date'; + } + } + + var Type = 'String'; + if (typeid == 'number') Type = 'Number'; + else if (typeid == 'date') Type = 'Date'; + // TODO: What else? + + // Prepare Data types styles + var typestyle = ''; + + if (typeid == 'money') { + typestyle = + 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;'; + } else if (typeid == 'number') { + typestyle = ' '; + } else if (typeid == 'date') { + typestyle = 'mso-number-format:"Short Date";'; + } else { + // For other types is saved + if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) { + typestyle = opts.types[typeid].typestyle; + } + } + + // TODO Replace with extend... + typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style + + s3 += ''; + + // TODO Replace with extend... + var format = cell.format; + if (typeof value == 'undefined') { + s3 += ''; + } else if (typeof format != 'undefined') { + if (typeof format == 'function') { + s3 += format(value); + } else if (typeof format == 'string') { + s3 += value; // TODO - add string format + } else { + throw new Error( + 'Unknown format type. Should be function or string' + ); + } + } else { + if (typeid == 'number' || typeid == 'date') { + s3 += value.toString(); + } else if (typeid == 'money') { + s3 += (+value).toFixed(2); + } else { + s3 += value; + } + } + + // s3 += row[column.columnid]; + s3 += ''; + }); + + s3 += ''; + }); + } + // Finish + s3 += '
'; + } + + s3 += '
'; + + return s1 + s2 + s3; + } +}; + +/** + Export to XLSX function + @function + @param {string|object} filename Filename or options + @param {object|undefined} opts Options or undefined + @param {array} data Data + @param {array} columns Columns + @parab {callback} cb Callback function + @return {number} Number of files processed +*/ + +alasql.into.XLSX = function(filename, opts, data, columns, cb) { + /** @type {number} result */ + var res = 1; + + if (deepEqual(columns, [{columnid: '_'}])) { + data = data.map(function(dat) { + return dat._; + }); + columns = undefined; + // res = [{_:1}]; + } else { + // data = data1; + } + + filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts); + + var XLSX = getXLSX(); + + /* If called without filename, use opts */ + if (typeof filename == 'object') { + opts = filename; + filename = undefined; + } + + /** @type {object} Workbook */ + var wb = {SheetNames: [], Sheets: {}}; + + // ToDo: check if cb must be treated differently here + if (opts.sourcefilename) { + alasql.utils.loadBinaryFile(opts.sourcefilename, !!cb, function(data) { + wb = XLSX.read(data, {type: 'binary'}); + doExport(); + }); + } else { + doExport(); + } + + /* Return result */ + if (cb) res = cb(res); + return res; + + /** + Export workbook + @function + */ + function doExport() { + /* + If opts is array of arrays then this is a + multisheet workboook, else it is a singlesheet + */ + if (typeof opts == 'object' && Array.isArray(opts)) { + if (data && data.length > 0) { + data.forEach(function(dat, idx) { + prepareSheet(opts[idx], dat, undefined, idx + 1); + }); + } + } else { + prepareSheet(opts, data, columns, 1); + } + + saveWorkbook(cb); + } + + /** + Prepare sheet + @params {object} opts + @params {array|object} data + @params {array} columns Columns + */ + function prepareSheet(opts, data, columns, idx) { + /** Default options for sheet */ + var opt = {sheetid: 'Sheet ' + idx, headers: true}; + alasql.utils.extend(opt, opts); + + var dataLength = Object.keys(data).length; + + // Generate columns if they are not defined + if ((!columns || columns.length == 0) && dataLength > 0) { + columns = Object.keys(data[0]).map(function(columnid) { + return {columnid: columnid}; + }); + } + + var cells = {}; + + if (wb.SheetNames.indexOf(opt.sheetid) > -1) { + cells = wb.Sheets[opt.sheetid]; + } else { + wb.SheetNames.push(opt.sheetid); + wb.Sheets[opt.sheetid] = {}; + cells = wb.Sheets[opt.sheetid]; + } + + var range = 'A1'; + if (opt.range) range = opt.range; + + var col0 = alasql.utils.xlscn(range.match(/[A-Z]+/)[0]); + var row0 = +range.match(/[0-9]+/)[0] - 1; + + if (wb.Sheets[opt.sheetid]['!ref']) { + var rangem = wb.Sheets[opt.sheetid]['!ref']; + var colm = alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]); + var rowm = +rangem.match(/[0-9]+/)[0] - 1; + } else { + var colm = 1, + rowm = 1; + } + var colmax = Math.max(col0 + columns.length, colm); + var rowmax = Math.max(row0 + dataLength + 2, rowm); + + var i = row0 + 1; + + wb.Sheets[opt.sheetid]['!ref'] = 'A1:' + alasql.utils.xlsnc(colmax) + rowmax; + // var i = 1; + + if (opt.headers) { + columns.forEach(function(col, idx) { + cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = {v: col.columnid.trim()}; + }); + i++; + } + + for (var j = 0; j < dataLength; j++) { + columns.forEach(function(col, idx) { + var cell = {v: data[j][col.columnid]}; + if (typeof data[j][col.columnid] == 'number') { + cell.t = 'n'; + } else if (typeof data[j][col.columnid] == 'string') { + cell.t = 's'; + } else if (typeof data[j][col.columnid] == 'boolean') { + cell.t = 'b'; + } else if (typeof data[j][col.columnid] == 'object') { + if (data[j][col.columnid] instanceof Date) { + cell.t = 'd'; + } + } + cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = cell; + }); + i++; + } + } + + /** + Save Workbook + @params {array} wb Workbook + @params {callback} cb Callback + */ + function saveWorkbook(cb) { + + var XLSX; + + if (typeof filename == 'undefined') { + res = wb; + } else { + XLSX = getXLSX(); + + if (utils.isNode || utils.isMeteorServer) { + XLSX.writeFile(wb, filename); + } else { + var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'}; + var wbout = XLSX.write(wb, wopts); + + var s2ab = function(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; + }; + + /* the saveAs call downloads a file on the local machine */ + // saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), '"'+filename+'"') + // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}), filename) + // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.ms-excel"}), '"'+filename+'"'); + if (isIE() == 9) { + throw new Error( + 'Cannot save XLSX files in IE9. Please use XLS() export function' + ); + // var URI = 'data:text/plain;charset=utf-8,'; + + /** @todo Check if this code is required */ + + // alert('ie9'); + } else { + saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), filename); + } + } + } + + } +}; + +/* +// +// FROM functions Alasql.js +// Date: 11.12.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/** + Meteor + */ + +/* global alasql Tabletop document Event */ + +alasql.from.METEOR = function(filename, opts, cb, idx, query) { + var res = filename.find(opts).fetch(); + if (cb) { + res = cb(res, idx, query); + } + return res; +}; + +/** + Google Spreadsheet reader + */ +alasql.from.TABLETOP = function(key, opts, cb, idx, query) { + var res = []; + + var opt = {headers: true, simpleSheet: true, key: key}; + alasql.utils.extend(opt, opts); + opt.callback = function(data) { + res = data; + if (cb) { + res = cb(res, idx, query); + } + }; + + Tabletop.init(opt); + return null; +}; + +alasql.from.HTML = function(selector, opts, cb, idx, query) { + var opt = {}; + alasql.utils.extend(opt, opts); + + var sel = document.querySelector(selector); + if (!sel && sel.tagName !== 'TABLE') { + throw new Error('Selected HTML element is not a TABLE'); + } + + var res = []; + var headers = opt.headers; + + if (headers && !Array.isArray(headers)) { + headers = []; + var ths = sel.querySelector('thead tr').children; + for (var i = 0; i < ths.length; i++) { + if ( + !(ths.item(i).style && ths.item(i).style.display === 'none' && opt.skipdisplaynone) + ) { + headers.push(ths.item(i).textContent); + } else { + headers.push(undefined); + } + } + } + + var trs = sel.querySelectorAll('tbody tr'); + + for (var j = 0; j < trs.length; j++) { + var tds = trs.item(j).children; + var r = {}; + for (i = 0; i < tds.length; i++) { + if ( + !(tds.item(i).style && tds.item(i).style.display === 'none' && opt.skipdisplaynone) + ) { + if (headers) { + r[headers[i]] = tds.item(i).textContent; + } else { + r[i] = tds.item(i).textContent; + + } + } + } + res.push(r); + } + + if (cb) { + res = cb(res, idx, query); + } + return res; +}; + +alasql.from.RANGE = function(start, finish, cb, idx, query) { + var res = []; + for (var i = start; i <= finish; i++) { + res.push(i); + } + // res = new alasql.Recordset({data:res,columns:{columnid:'_'}}); + if (cb) { + res = cb(res, idx, query); + } + return res; +}; + +// Read data from any file +alasql.from.FILE = function(filename, opts, cb, idx, query) { + var fname; + if (typeof filename === 'string') { + fname = filename; + } else if (filename instanceof Event) { + fname = filename.target.files[0].name; + } else { + throw new Error('Wrong usage of FILE() function'); + } + + var parts = fname.split('.'); + + var ext = parts[parts.length - 1].toUpperCase(); + + if (alasql.from[ext]) { + + return alasql.from[ext](filename, opts, cb, idx, query); + } else { + throw new Error('Cannot recognize file type for loading'); + } +}; + +// Read JSON file + +alasql.from.JSON = function(filename, opts, cb, idx, query) { + var res; + + filename = alasql.utils.autoExtFilename(filename, 'json', opts); + alasql.utils.loadFile(filename, !!cb, function(data) { + + // res = [{a:1}]; + res = JSON.parse(data); + if (cb) { + res = cb(res, idx, query); + } + }); + return res; +}; + +alasql.from.TXT = function(filename, opts, cb, idx, query) { + var res; + filename = alasql.utils.autoExtFilename(filename, 'txt', opts); + alasql.utils.loadFile(filename, !!cb, function(data) { + res = data.split(/\r?\n/); + + // Remove last line if empty + if (res[res.length - 1] === '') { + res.pop(); + } + for (var i = 0, ilen = res.length; i < ilen; i++) { + // Please avoid '===' here + if (res[i] == +res[i]) { + // eslint:ignore + // jshint ignore:line + res[i] = +res[i]; + } + res[i] = [res[i]]; + } + if (cb) { + res = cb(res, idx, query); + } + }); + return res; +}; + +alasql.from.TAB = alasql.from.TSV = function(filename, opts, cb, idx, query) { + opts = opts || {}; + opts.separator = '\t'; + filename = alasql.utils.autoExtFilename(filename, 'tab', opts); + opts.autoext = false; + return alasql.from.CSV(filename, opts, cb, idx, query); +}; + +alasql.from.CSV = function(contents, opts, cb, idx, query) { + var opt = { + separator: ',', + quote: '"', + headers: true, + }; + alasql.utils.extend(opt, opts); + var res; + var hs = []; + function parseText(text) { + var delimiterCode = opt.separator.charCodeAt(0); + var quoteCode = opt.quote.charCodeAt(0); + + var EOL = {}, + EOF = {}, + rows = [], + N = text.length, + I = 0, + n = 0, + t, + eol; + function token() { + if (I >= N) { + return EOF; + } + if (eol) { + return (eol = false, EOL); + } + var j = I; + if (text.charCodeAt(j) === quoteCode) { + var i = j; + while (i++ < N) { + if (text.charCodeAt(i) === quoteCode) { + if (text.charCodeAt(i + 1) !== quoteCode) { + break; + } + ++i; + } + } + I = i + 2; + var c = text.charCodeAt(i + 1); + if (c === 13) { + eol = true; + if (text.charCodeAt(i + 2) === 10) { + ++I; + } + } else if (c === 10) { + eol = true; + } + return text.substring(j + 1, i).replace(/""/g, '"'); + } + while (I < N) { + var c = text.charCodeAt(I++), + k = 1; + if (c === 10) { + eol = true; + } else if (c === 13) { + eol = true; + if (text.charCodeAt(I) === 10) { + ++I; + ++k; + } + } else if (c !== delimiterCode) { + continue; + } + return text.substring(j, I - k); + } + return text.substring(j); + } + + while ((t = token()) !== EOF) { + var a = []; + while (t !== EOL && t !== EOF) { + a.push(t.trim()); + t = token(); + } + + if (opt.headers) { + if (n === 0) { + if (typeof opt.headers === 'boolean') { + hs = a; + } else if (Array.isArray(opt.headers)) { + hs = opt.headers; + var r = {}; + hs.forEach(function(h, idx) { + r[h] = a[idx]; + // Please avoid === here + if ( + typeof r[h] !== 'undefined' && + r[h].length !== 0 && + r[h].trim() == +r[h] + ) { + // jshint ignore:line + r[h] = +r[h]; + } + }); + rows.push(r); + } + } else { + var r = {}; + hs.forEach(function(h, idx) { + r[h] = a[idx]; + if ( + typeof r[h] !== 'undefined' && + r[h].length !== 0 && + r[h].trim() == +r[h] + ) { + // jshint ignore:line + r[h] = +r[h]; + } + }); + rows.push(r); + } + n++; + } else { + rows.push(a); + } + } + + res = rows; + + if (opt.headers) { + if (query && query.sources && query.sources[idx]) { + var columns = (query.sources[idx].columns = []); + hs.forEach(function(h) { + columns.push({columnid: h}); + }); + } + } + + if (cb) { + res = cb(res, idx, query); + } + } + if (new RegExp('\n').test(contents)) { + parseText(contents); + } else { + contents = alasql.utils.autoExtFilename(contents, 'csv', opts); + alasql.utils.loadFile(contents, !!cb, parseText, query.cb); + } + return res; +}; + +function XLSXLSX(X, filename, opts, cb, idx, query) { + var opt = {}; + opts = opts || {}; + alasql.utils.extend(opt, opts); + if (typeof opt.headers === 'undefined') { + opt.headers = true; + } + var res; + + /** + * see https://github.com/SheetJS/js-xlsx/blob/5ae6b1965bfe3764656a96f536b356cd1586fec7/README.md + * for example of using readAsArrayBuffer under `Parsing Workbooks` + */ + function fixdata(data) { + var o = '', + l = 0, + w = 10240; + for (; l < data.byteLength / w; ++l) + o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w))); + o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w))); + return o; + } + function getHeaderText(text) { + // if casesensitive option is set to false and there is a text value return lowercase value of text + if (text && alasql.options.casesensitive === false) { + return text.toLowerCase(); + } else { + return text; + } + } + filename = alasql.utils.autoExtFilename(filename, 'xls', opts); + alasql.utils.loadBinaryFile( + filename, + !!cb, + function(data) { + // function processData(data) { + if (data instanceof ArrayBuffer) { + var arr = fixdata(data); + var workbook = X.read(btoa(arr), {type: 'base64'}); + } else { + var workbook = X.read(data, {type: 'binary'}); + } + + var sheetid; + if (typeof opt.sheetid === 'undefined') { + sheetid = workbook.SheetNames[0]; + } else if (typeof opt.sheetid === 'number') { + sheetid = workbook.SheetNames[opt.sheetid]; + } else { + sheetid = opt.sheetid; + } + var range; + var res = []; + if (typeof opt.range === 'undefined') { + range = workbook.Sheets[sheetid]['!ref']; + } else { + range = opt.range; + if (workbook.Sheets[sheetid][range]) { + range = workbook.Sheets[sheetid][range]; + } + } + // if range has some value then data is present in the current sheet + // else current sheet is empty + if (range) { + var rg = range.split(':'); + var col0 = rg[0].match(/[A-Z]+/)[0]; + var row0 = +rg[0].match(/[0-9]+/)[0]; + var col1 = rg[1].match(/[A-Z]+/)[0]; + var row1 = +rg[1].match(/[0-9]+/)[0]; + + var hh = {}; + var xlscnCol0 = alasql.utils.xlscn(col0); + var xlscnCol1 = alasql.utils.xlscn(col1); + for (var j = xlscnCol0; j <= xlscnCol1; j++) { + var col = alasql.utils.xlsnc(j); + if (opt.headers) { + if (workbook.Sheets[sheetid][col + '' + row0]) { + hh[col] = getHeaderText(workbook.Sheets[sheetid][col + '' + row0].v); + } else { + hh[col] = getHeaderText(col); + } + } else { + hh[col] = col; + } + } + if (opt.headers) { + row0++; + } + for (var i = row0; i <= row1; i++) { + var row = {}; + for (var j = xlscnCol0; j <= xlscnCol1; j++) { + var col = alasql.utils.xlsnc(j); + if (workbook.Sheets[sheetid][col + '' + i]) { + row[hh[col]] = workbook.Sheets[sheetid][col + '' + i].v; + } + } + res.push(row); + } + } else { + res.push([]); + } + + // Remove last empty line (issue #548) + if ( + res.length > 0 && + res[res.length - 1] && + Object.keys(res[res.length - 1]).length == 0 + ) { + res.pop(); + } + + if (cb) { + res = cb(res, idx, query); + } + }, + function(err) { + throw err; + } + ); + + return res; +} + +alasql.from.XLS = function(filename, opts, cb, idx, query) { + opts = opts || {}; + filename = alasql.utils.autoExtFilename(filename, 'xls', opts); + opts.autoExt = false; + return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); +}; + +alasql.from.XLSX = function(filename, opts, cb, idx, query) { + opts = opts || {}; + filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts); + opts.autoExt = false; + return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); +}; + +alasql.from.ODS = function(filename, opts, cb, idx, query) { + opts = opts || {}; + filename = alasql.utils.autoExtFilename(filename, 'ods', opts); + opts.autoExt = false; + return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); +}; + +alasql.from.XML = function(filename, opts, cb, idx, query) { + var res; + + alasql.utils.loadFile(filename, !!cb, function(data) { + + // res = [{a:1}]; + + res = xmlparse(data).root; + + if (cb) res = cb(res, idx, query); + }); + return res; +}; + +/** + * Parse the given string of `xml`. + * + * @param {String} xml + * @return {Object} + * @api public + */ + +function xmlparse(xml) { + xml = xml.trim(); + + // strip comments + xml = xml.replace(//g, ''); + + return document(); + + /** + * XML document. + */ + + function document() { + return { + declaration: declaration(), + root: tag(), + }; + } + + /** + * Declaration. + */ + + function declaration() { + var m = match(/^<\?xml\s*/); + if (!m) return; + + // tag + var node = { + attributes: {}, + }; + + // attributes + while (!(eos() || is('?>'))) { + var attr = attribute(); + if (!attr) return node; + node.attributes[attr.name] = attr.value; + } + + match(/\?>\s*/); + + return node; + } + + /** + * Tag. + */ + + function tag() { + var m = match(/^<([\w-:.]+)\s*/); + if (!m) return; + + // name + var node = { + name: m[1], + attributes: {}, + children: [], + }; + + // attributes + while (!(eos() || is('>') || is('?>') || is('/>'))) { + var attr = attribute(); + if (!attr) return node; + node.attributes[attr.name] = attr.value; + } + + // self closing tag + if (match(/^\s*\/>\s*/)) { + return node; + } + + match(/\??>\s*/); + + // content + node.content = content(); + + // children + var child; + while ((child = tag())) { + node.children.push(child); + } + + // closing + match(/^<\/[\w-:.]+>\s*/); + + return node; + } + + /** + * Text content. + */ + + function content() { + var m = match(/^([^<]*)/); + if (m) return m[1]; + return ''; + } + + /** + * Attribute. + */ + + function attribute() { + var m = match(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/); + if (!m) return; + return {name: m[1], value: strip(m[2])}; + } + + /** + * Strip quotes from `val`. + */ + + function strip(val) { + return val.replace(/^['"]|['"]$/g, ''); + } + + /** + * Match `re` and advance the string. + */ + + function match(re) { + var m = xml.match(re); + if (!m) return; + xml = xml.slice(m[0].length); + return m; + } + + /** + * End-of-source. + */ + + function eos() { + return 0 == xml.length; + } + + /** + * Check for `prefix`. + */ + + function is(prefix) { + return 0 == xml.indexOf(prefix); + } +} + +alasql.from.GEXF = function(filename, opts, cb, idx, query) { + var res; + alasql('SEARCH FROM XML(' + filename + ')', [], function(data) { + res = data; + + if (cb) res = cb(res); + }); + return res; +}; + +/* +// +// HELP for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/* globals: alasql, yy */ + +/** + Print statement + @class + @param {object} params Initial setup properties +*/ + +/* global alasql, yy */ + +yy.Print = function(params) { + return yy.extend(this, params); +}; + +/** + Generate SQL string + @this Print statement object +*/ +yy.Print.prototype.toString = function() { + var s = 'PRINT'; + if (this.statement) s += ' ' + this.statement.toString(); + return s; +}; + +/** + Print result of select statement or expression + @param {string} databaseid Database identificator + @param {object} params Query parameters + @param {statement-callback} cb Callback function + @this Print statement object +*/ +yy.Print.prototype.execute = function(databaseid, params, cb) { + + var self = this; + var res = 1; + + alasql.precompile(this, databaseid, params); /** @todo Change from alasql to this */ + + if (this.exprs && this.exprs.length > 0) { + var rs = this.exprs.map(function(expr) { + + var exprfn = new Function( + 'params,alasql,p', + 'var y;return ' + expr.toJS('({})', '', null) + ).bind(self); + var r = exprfn(params, alasql); + return JSONtoString(r); + }); + console.log.apply(console, rs); + } else if (this.select) { + var r = this.select.execute(databaseid, params); + console.log(JSONtoString(r)); + } else { + console.log(); + } + + if (cb) res = cb(res); + return res; +}; + +/* +// +// HELP for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.Source = function(params) { + return yy.extend(this, params); +}; +yy.Source.prototype.toString = function() { + var s = 'SOURCE'; + if (this.url) s += " '" + this.url + " '"; + return s; +}; + +// SOURCE FILE +yy.Source.prototype.execute = function(databaseid, params, cb) { + + var res; + loadFile( + this.url, + !!cb, + function(data) { + + // res = 1; + res = alasql(data); + if (cb) res = cb(res); + return res; + }, + function(err) { + throw err; + } + ); + return res; +}; + +/* +// +// HELP for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +/* global alasql, yy */ + +yy.Require = function(params) { + return yy.extend(this, params); +}; +yy.Require.prototype.toString = function() { + var s = 'REQUIRE'; + if (this.paths && this.paths.length > 0) { + s += this.paths + .map(function(path) { + return path.toString(); + }) + .join(','); + } + if (this.plugins && this.plugins.length > 0) { + s += this.plugins + .map(function(plugin) { + return plugin.toUpperCase(); + }) + .join(','); + } + return s; +}; + +/** + Attach plug-in for Alasql + */ +yy.Require.prototype.execute = function(databaseid, params, cb) { + var self = this; + var res = 0; + var ss = ''; + + if (this.paths && this.paths.length > 0) { + this.paths.forEach(function(path) { + loadFile(path.value, !!cb, function(data) { + res++; + + ss += data; + if (res < self.paths.length) return; + + new Function('params,alasql', ss)(params, alasql); + if (cb) res = cb(res); + }); + }); + } else if (this.plugins && this.plugins.length > 0) { + this.plugins.forEach(function(plugin) { + // If plugin is not loaded already + if (!alasql.plugins[plugin]) { + loadFile(alasql.path + '/alasql-' + plugin.toLowerCase() + '.js', !!cb, function( + data + ) { + // Execute all plugins at the same time + res++; + ss += data; + if (res < self.plugins.length) return; + + new Function('params,alasql', ss)(params, alasql); + alasql.plugins[plugin] = true; // Plugin is loaded + if (cb) res = cb(res); + }); + } + }); + } else { + if (cb) res = cb(res); + } + return res; +}; + +/* +// +// HELP for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +yy.Assert = function(params) { + return yy.extend(this, params); +}; +yy.Source.prototype.toString = function() { + var s = 'ASSERT'; + if (this.value) s += ' ' + JSON.stringify(this.value); + return s; +}; + +// SOURCE FILE +yy.Assert.prototype.execute = function(databaseid) { + + if (!deepEqual(alasql.res, this.value)) { + // if(this.message) { + // throw this. + // } else { + throw new Error( + (this.message || 'Assert wrong') + + ': ' + + JSON.stringify(alasql.res) + + ' == ' + + JSON.stringify(this.value) + ); + // } + } + return 1; +}; + +// +// 91websql.js +// WebSQL database support +// (c) 2014, Andrey Gershun +// + +var WEBSQL = (alasql.engines.WEBSQL = function() {}); + +WEBSQL.createDatabase = function(wdbid, args, dbid, cb) { + var res = 1; + var wdb = openDatabase(wdbid, args[0], args[1], args[2]); + if (this.dbid) { + var db = alasql.createDatabase(this.dbid); + db.engineid = 'WEBSQL'; + db.wdbid = wdbid; + sb.wdb = db; + } + if (!wdb) { + throw new Error('Cannot create WebSQL database "' + databaseid + '"'); + } + if (cb) cb(res); + return res; +}; + +WEBSQL.dropDatabase = function(databaseid) { + throw new Error('This is impossible to drop WebSQL database.'); +}; + +WEBSQL.attachDatabase = function(databaseid, dbid, args, params, cb) { + var res = 1; + if (alasql.databases[dbid]) { + throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); + } + alasqlopenDatabase(databaseid, args[0], args[1], args[2]); + return res; +}; + +// +// 91indexeddb.js +// AlaSQL IndexedDB module +// Date: 18.04.2015 +// (c) Andrey Gershun +// + +/* global alasql, yy, utils*/ + +var IDB = (alasql.engines.INDEXEDDB = function() { + ''; +}); + +if (utils.hasIndexedDB) { + // For Chrome it work normally, for Firefox - simple shim + if (typeof utils.global.indexedDB.webkitGetDatabaseNames == 'function') { + IDB.getDatabaseNames = utils.global.indexedDB.webkitGetDatabaseNames.bind( + utils.global.indexedDB + ); + } else { + IDB.getDatabaseNames = function() { + var request = {}; + var result = { + contains: function(name) { + return true; // Always return true + }, + notsupported: true, + }; + setTimeout(function() { + var event = {target: {result: result}}; + request.onsuccess(event); + }, 0); + return request; + }; + IDB.getDatabaseNamesNotSupported = true; + } +} + +// +// SHOW DATABASES +// work only in chrome +// +IDB.showDatabases = function(like, cb) { + + var request = IDB.getDatabaseNames(); + request.onsuccess = function(event) { + var dblist = event.target.result; + if (IDB.getDatabaseNamesNotSupported) { + throw new Error('SHOW DATABASE is not supported in this browser'); + } + var res = []; + if (like) { + var relike = new RegExp(like.value.replace(/\%/g, '.*'), 'g'); + } + for (var i = 0; i < dblist.length; i++) { + if (!like || dblist[i].match(relike)) { + res.push({databaseid: dblist[i]}); + } + } + cb(res); + }; +}; + +IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) { + + var indexedDB = utils.global.indexedDB; + if (ifnotexists) { + var request2 = indexedDB.open(ixdbid, 1); + request2.onsuccess = function(event) { + event.target.result.close(); + if (cb) cb(1); + }; + } else { + var request1 = indexedDB.open(ixdbid, 1); + request1.onupgradeneeded = function(e) { + + e.target.transaction.abort(); + }; + request1.onsuccess = function(e) { + + if (ifnotexists) { + if (cb) cb(0); + } else { + throw new Error( + 'IndexedDB: Cannot create new database "' + + ixdbid + + '" because it already exists' + ); + } + }; + } + +}; + +IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) { + var indexedDB = utils.global.indexedDB; + if (IDB.getDatabaseNamesNotSupported) { + // Hack for Firefox + if (ifnotexists) { + + var dbExists = true; + var request2 = indexedDB.open(ixdbid); + + request2.onupgradeneeded = function(e) { + + dbExists = false; + // e.target.transaction.abort(); + // cb(0); + }; + request2.onsuccess = function(event) { + + event.target.result.close(); + if (dbExists) { + if (cb) cb(0); + } else { + if (cb) cb(1); + } + }; + } else { + + var request1 = indexedDB.open(ixdbid); + request1.onupgradeneeded = function(e) { + e.target.transaction.abort(); + }; + request1.onabort = function(event) { + if (cb) cb(1); + }; + request1.onsuccess = function(event) { + event.target.result.close(); + throw new Error( + 'IndexedDB: Cannot create new database "' + + ixdbid + + '" because it already exists' + ); + // cb(0); + }; + } + } else { + var request1 = IDB.getDatabaseNames(); + request1.onsuccess = function(event) { + var dblist = event.target.result; + if (dblist.contains(ixdbid)) { + if (ifnotexists) { + if (cb) cb(0); + return; + } else { + throw new Error( + 'IndexedDB: Cannot create new database "' + + ixdbid + + '" because it already exists' + ); + } + } + + var request2 = indexedDB.open(ixdbid, 1); + request2.onsuccess = function(event) { + event.target.result.close(); + if (cb) cb(1); + }; + }; + } +}; + +IDB.dropDatabase = function(ixdbid, ifexists, cb) { + var indexedDB = utils.global.indexedDB; + var request1 = IDB.getDatabaseNames(); + request1.onsuccess = function(event) { + var dblist = event.target.result; + if (!dblist.contains(ixdbid)) { + if (ifexists) { + if (cb) cb(0); + return; + } else { + throw new Error( + 'IndexedDB: Cannot drop new database "' + ixdbid + '" because it does not exist' + ); + } + } + var request2 = indexedDB.deleteDatabase(ixdbid); + request2.onsuccess = function(event) { + + if (cb) cb(1); + }; + }; +}; + +IDB.attachDatabase = function(ixdbid, dbid, args, params, cb) { + if (!utils.hasIndexedDB) { + throw new Error('The current browser does not support IndexedDB'); + } + var indexedDB = utils.global.indexedDB; + var request1 = IDB.getDatabaseNames(); + request1.onsuccess = function(event) { + var dblist = event.target.result; + if (!dblist.contains(ixdbid)) { + throw new Error( + 'IndexedDB: Cannot attach database "' + ixdbid + '" because it does not exist' + ); + } + var request2 = indexedDB.open(ixdbid); + request2.onsuccess = function(event) { + var ixdb = event.target.result; + var db = new alasql.Database(dbid || ixdbid); + db.engineid = 'INDEXEDDB'; + db.ixdbid = ixdbid; + db.tables = []; + var tblist = ixdb.objectStoreNames; + for (var i = 0; i < tblist.length; i++) { + db.tables[tblist[i]] = {}; + } + + event.target.result.close(); + if (cb) cb(1); + }; + }; +}; + +IDB.createTable = function(databaseid, tableid, ifnotexists, cb) { + var indexedDB = utils.global.indexedDB; + + var ixdbid = alasql.databases[databaseid].ixdbid; + + var request1 = IDB.getDatabaseNames(); + request1.onsuccess = function(event__) { + var dblist = event__.target.result; + if (!dblist.contains(ixdbid)) { + throw new Error( + 'IndexedDB: Cannot create table in database "' + + ixdbid + + '" because it does not exist' + ); + } + var request2 = indexedDB.open(ixdbid); + request2.onversionchange = function(event_) { + + event_.target.result.close(); + }; + request2.onsuccess = function(event_) { + var version = event_.target.result.version; + event_.target.result.close(); + + var request3 = indexedDB.open(ixdbid, version + 1); + request3.onupgradeneeded = function(event) { + var ixdb = event.target.result; + + var store = ixdb.createObjectStore(tableid, {autoIncrement: true}); + + }; + request3.onsuccess = function(event) { + + event.target.result.close(); + if (cb) cb(1); + }; + request3.onerror = function(event) { + throw event; + + }; + request3.onblocked = function(event) { + throw new Error( + 'Cannot create table "' + + tableid + + '" because database "' + + databaseid + + '" is blocked' + ); + + }; + }; + }; +}; + +IDB.dropTable = function(databaseid, tableid, ifexists, cb) { + var indexedDB = utils.global.indexedDB; + var ixdbid = alasql.databases[databaseid].ixdbid; + + var request1 = IDB.getDatabaseNames(); + request1.onsuccess = function(event) { + var dblist = event.target.result; + + if (!dblist.contains(ixdbid)) { + throw new Error( + 'IndexedDB: Cannot drop table in database "' + + ixdbid + + '" because it does not exist' + ); + } + + var request2 = indexedDB.open(ixdbid); + request2.onversionchange = function(event) { + event.target.result.close(); + }; + + request2.onsuccess = function(event) { + var version = event.target.result.version; + event.target.result.close(); + + var request3 = indexedDB.open(ixdbid, version + 1); + request3.onupgradeneeded = function(event) { + var ixdb = event.target.result; + if (ixdb.objectStoreNames.contains(tableid)) { + ixdb.deleteObjectStore(tableid); + delete alasql.databases[databaseid].tables[tableid]; + } else { + if (!ifexists) { + throw new Error( + 'IndexedDB: Cannot drop table "' + + tableid + + '" because it does not exist' + ); + } + } + // var store = ixdb.createObjectStore(tableid); + + }; + request3.onsuccess = function(event) { + + event.target.result.close(); + if (cb) cb(1); + }; + request3.onerror = function(event) { + + throw event; + }; + request3.onblocked = function(event) { + throw new Error( + 'Cannot drop table "' + + tableid + + '" because database "' + + databaseid + + '" is blocked' + ); + + }; + }; + }; +}; + +IDB.intoTable = function(databaseid, tableid, value, columns, cb) { + + // console.trace(); + + var indexedDB = utils.global.indexedDB; + var ixdbid = alasql.databases[databaseid].ixdbid; + var request1 = indexedDB.open(ixdbid); + request1.onsuccess = function(event) { + var ixdb = event.target.result; + var tx = ixdb.transaction([tableid], 'readwrite'); + var tb = tx.objectStore(tableid); + + for (var i = 0, ilen = value.length; i < ilen; i++) { + tb.add(value[i]); + } + tx.oncomplete = function() { + ixdb.close(); + + if (cb) cb(ilen); + }; + }; + +}; + +IDB.fromTable = function(databaseid, tableid, cb, idx, query) { + + // console.trace(); + var indexedDB = utils.global.indexedDB; + var ixdbid = alasql.databases[databaseid].ixdbid; + var request = indexedDB.open(ixdbid); + request.onsuccess = function(event) { + var res = []; + var ixdb = event.target.result; + + var tx = ixdb.transaction([tableid]); + var store = tx.objectStore(tableid); + var cur = store.openCursor(); + + cur.onblocked = function(event) { + + }; + cur.onerror = function(event) { + + }; + cur.onsuccess = function(event) { + + var cursor = event.target.result; + + if (cursor) { + res.push(cursor.value); + cursor["continue"](); + } else { + + ixdb.close(); + if (cb) cb(res, idx, query); + } + }; + }; +}; + +IDB.deleteFromTable = function(databaseid, tableid, wherefn, params, cb) { + + // console.trace(); + var indexedDB = utils.global.indexedDB; + var ixdbid = alasql.databases[databaseid].ixdbid; + var request = indexedDB.open(ixdbid); + request.onsuccess = function(event) { + var res = []; + var ixdb = event.target.result; + + var tx = ixdb.transaction([tableid], 'readwrite'); + var store = tx.objectStore(tableid); + var cur = store.openCursor(); + var num = 0; + + cur.onblocked = function(event) { + + }; + cur.onerror = function(event) { + + }; + cur.onsuccess = function(event) { + + var cursor = event.target.result; + + if (cursor) { + if (!wherefn || wherefn(cursor.value, params)) { + + cursor["delete"](); + num++; + } + cursor["continue"](); + } else { + + ixdb.close(); + if (cb) cb(num); + } + }; + }; +}; + +IDB.updateTable = function(databaseid, tableid, assignfn, wherefn, params, cb) { + + // console.trace(); + var indexedDB = utils.global.indexedDB; + var ixdbid = alasql.databases[databaseid].ixdbid; + var request = indexedDB.open(ixdbid); + request.onsuccess = function(event) { + var res = []; + var ixdb = event.target.result; + + var tx = ixdb.transaction([tableid], 'readwrite'); + var store = tx.objectStore(tableid); + var cur = store.openCursor(); + var num = 0; + + cur.onblocked = function(event) { + + }; + cur.onerror = function(event) { + + }; + cur.onsuccess = function(event) { + + var cursor = event.target.result; + + if (cursor) { + if (!wherefn || wherefn(cursor.value, params)) { + + var r = cursor.value; + assignfn(r, params); + + cursor.update(r); + num++; + } + cursor["continue"](); + } else { + + ixdb.close(); + if (cb) cb(num); + } + }; + }; +}; + +// +// 91localstorage.js +// localStorage and DOM-Storage engine +// Date: 09.12.2014 +// (c) Andrey Gershun +// + +/* global alasql, yy, localStorage*/ + +var LS = (alasql.engines.LOCALSTORAGE = function() {}); + +/** + Read data from localStorage with security breaks + @param key {string} Address in localStorage + @return {object} JSON object +*/ +LS.get = function(key) { + var s = localStorage.getItem(key); + if (typeof s === 'undefined') return; + var v; + try { + v = JSON.parse(s); + } catch (err) { + throw new Error('Cannot parse JSON object from localStorage' + s); + } + return v; +}; + +/** + Store data into localStorage with security breaks + @param key {string} Address in localStorage + @return {object} JSON object +*/ +LS.set = function(key, value) { + if (typeof value === 'undefined') localStorage.removeItem(key); + else localStorage.setItem(key, JSON.stringify(value)); +}; + +/** + Store table structure and data into localStorage + @param databaseid {string} AlaSQL database id (not external localStorage) + @param tableid {string} Table name + @return Nothing +*/ +LS.storeTable = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + var table = db.tables[tableid]; + // Create empty structure for table + var tbl = {}; + tbl.columns = table.columns; + tbl.data = table.data; + tbl.identities = table.identities; + // TODO: May be add indexes, objects and other fields? + LS.set(db.lsdbid + '.' + tableid, tbl); +}; + +/** + Restore table structure and data + @param databaseid {string} AlaSQL database id (not external localStorage) + @param tableid {string} Table name + @return Nothing +*/ +LS.restoreTable = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + var tbl = LS.get(db.lsdbid + '.' + tableid); + var table = new alasql.Table(); + for (var f in tbl) { + table[f] = tbl[f]; + } + db.tables[tableid] = table; + table.indexColumns(); + // We need to add other things here + return table; +}; + +/** + Remove table from localStorage + @param databaseid {string} AlaSQL database id (not external localStorage) + @param tableid {string} Table name +*/ + +LS.removeTable = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + localStorage.removeItem(db.lsdbid + '.' + tableid); +}; + +/** + Create database in localStorage + @param lsdbid {string} localStorage database id + @param args {array} List of parameters (not used in localStorage) + @param ifnotexists {boolean} Check if database does not exist + @param databaseid {string} AlaSQL database id (not external localStorage) + @param cb {function} Callback +*/ + +LS.createDatabase = function(lsdbid, args, ifnotexists, databaseid, cb) { + var res = 1; + var ls = LS.get('alasql'); // Read list of all databases + if (!(ifnotexists && ls && ls.databases && ls.databases[lsdbid])) { + if (!ls) ls = {databases: {}}; // Empty record + if (ls.databases && ls.databases[lsdbid]) { + throw new Error( + 'localStorage: Cannot create new database "' + + lsdbid + + '" because it already exists' + ); + } + ls.databases[lsdbid] = true; + LS.set('alasql', ls); + LS.set(lsdbid, {databaseid: lsdbid, tables: {}}); // Create database record + } else { + res = 0; + } + if (cb) res = cb(res); + return res; +}; + +/** + Drop external database + @param lsdbid {string} localStorage database id + @param ifexists {boolean} Check if database exists + @param cb {function} Callback +*/ +LS.dropDatabase = function(lsdbid, ifexists, cb) { + var res = 1; + var ls = LS.get('alasql'); + if (!(ifexists && ls && ls.databases && !ls.databases[lsdbid])) { + // 1. Remove record from 'alasql' record + if (!ls) { + if (!ifexists) { + throw new Error('There is no any AlaSQL databases in localStorage'); + } else { + return cb ? cb(0) : 0; + } + } + + if (ls.databases && !ls.databases[lsdbid]) { + throw new Error( + 'localStorage: Cannot drop database "' + + lsdbid + + '" because there is no such database' + ); + } + delete ls.databases[lsdbid]; + LS.set('alasql', ls); + + // 2. Remove tables definitions + var db = LS.get(lsdbid); + for (var tableid in db.tables) { + localStorage.removeItem(lsdbid + '.' + tableid); + } + + // 3. Remove database definition + localStorage.removeItem(lsdbid); + } else { + res = 0; + } + if (cb) res = cb(res); + return res; +}; + +/** + Attach existing localStorage database to AlaSQL database + @param lsdibid {string} localStorage database id + @param +*/ + +LS.attachDatabase = function(lsdbid, databaseid, args, params, cb) { + var res = 1; + if (alasql.databases[databaseid]) { + throw new Error( + 'Unable to attach database as "' + databaseid + '" because it already exists' + ); + } + if (!databaseid) databaseid = lsdbid; + var db = new alasql.Database(databaseid); + db.engineid = 'LOCALSTORAGE'; + db.lsdbid = lsdbid; + db.tables = LS.get(lsdbid).tables; + // IF AUTOABORT IS OFF then copy data to memory + if (!alasql.options.autocommit) { + if (db.tables) { + for (var tbid in db.tables) { + LS.restoreTable(databaseid, tbid); + // db.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid); + } + } + } + if (cb) res = cb(res); + return res; +}; + +/** + Show list of databases from localStorage + @param like {string} Mathing pattern + @param cb {function} Callback +*/ +LS.showDatabases = function(like, cb) { + var res = []; + var ls = LS.get('alasql'); + if (like) { + // TODO: If we have a special function for LIKE patterns? + var relike = new RegExp(like.value.replace(/%/g, '.*'), 'g'); + } + if (ls && ls.databases) { + for (var dbid in ls.databases) { + res.push({databaseid: dbid}); + } + if (like && res && res.length > 0) { + res = res.filter(function(d) { + return d.databaseid.match(relike); + }); + } + } + if (cb) res = cb(res); + return res; +}; + +/** + Create table in localStorage database + @param databaseid {string} AlaSQL database id + @param tableid {string} Table id + @param ifnotexists {boolean} If not exists flag + @param cb {function} Callback +*/ + +LS.createTable = function(databaseid, tableid, ifnotexists, cb) { + var res = 1; + var lsdbid = alasql.databases[databaseid].lsdbid; + var tb = LS.get(lsdbid + '.' + tableid); + // Check if such record exists + if (tb && !ifnotexists) { + throw new Error( + 'Table "' + tableid + '" alsready exists in localStorage database "' + lsdbid + '"' + ); + } + var lsdb = LS.get(lsdbid); + var table = alasql.databases[databaseid].tables[tableid]; + + // TODO: Check if required + lsdb.tables[tableid] = true; + + LS.set(lsdbid, lsdb); + LS.storeTable(databaseid, tableid); + + if (cb) res = cb(res); + return res; +}; + +/** + Empty table and reset identities + @param databaseid {string} AlaSQL database id (not external localStorage) + @param tableid {string} Table name + @param ifexists {boolean} If exists flag + @param cb {function} Callback + @return 1 on success +*/ +LS.truncateTable = function(databaseid, tableid, ifexists, cb) { + var res = 1; + var lsdbid = alasql.databases[databaseid].lsdbid; + var lsdb; + if (alasql.options.autocommit) { + lsdb = LS.get(lsdbid); + } else { + lsdb = alasql.databases[databaseid]; + } + + if (!ifexists && !lsdb.tables[tableid]) { + throw new Error( + 'Cannot truncate table "' + tableid + '" in localStorage, because it does not exist' + ); + } + + //load table + var tbl = LS.restoreTable(databaseid, tableid); + + //clear data from table + tbl.data = []; + //TODO reset all identities + //but identities are not working on LOCALSTORAGE + //See test 607 for details + + //store table + LS.storeTable(databaseid, tableid); + + if (cb) res = cb(res); + return res; +}; + +/** + Create table in localStorage database + @param databaseid {string} AlaSQL database id + @param tableid {string} Table id + @param ifexists {boolean} If exists flag + @param cb {function} Callback +*/ + +LS.dropTable = function(databaseid, tableid, ifexists, cb) { + var res = 1; + var lsdbid = alasql.databases[databaseid].lsdbid; + var lsdb; + + if (alasql.options.autocommit) { + lsdb = LS.get(lsdbid); + } else { + lsdb = alasql.databases[databaseid]; + } + if (!ifexists && !lsdb.tables[tableid]) { + throw new Error( + 'Cannot drop table "' + tableid + '" in localStorage, because it does not exist' + ); + } + delete lsdb.tables[tableid]; + LS.set(lsdbid, lsdb); + // localStorage.removeItem(lsdbid+'.'+tableid); + LS.removeTable(databaseid, tableid); + if (cb) res = cb(res); + return res; +}; + +/** + Read all data from table +*/ + +LS.fromTable = function(databaseid, tableid, cb, idx, query) { + + var lsdbid = alasql.databases[databaseid].lsdbid; + // var res = LS.get(lsdbid+'.'+tableid); + + var res = LS.restoreTable(databaseid, tableid).data; + + if (cb) res = cb(res, idx, query); + return res; +}; + +/** + Insert data into the table + @param databaseid {string} Database id + @param tableid {string} Table id + @param value {array} Array of values + @param columns {array} Columns (not used) + @param cb {function} Callback +*/ + +LS.intoTable = function(databaseid, tableid, value, columns, cb) { + + var lsdbid = alasql.databases[databaseid].lsdbid; + var res = value.length; + // var tb = LS.get(lsdbid+'.'+tableid); + var tb = LS.restoreTable(databaseid, tableid); + for (var columnid in tb.identities) { + var ident = tb.identities[columnid]; + + for (var index in value) { + value[index][columnid] = ident.value; + ident.value += ident.step; + } + } + if (!tb.data) tb.data = []; + tb.data = tb.data.concat(value); + // LS.set(lsdbid+'.'+tableid, tb); + LS.storeTable(databaseid, tableid); + + if (cb) res = cb(res); + + return res; +}; + +/** + Laad data from table +*/ +LS.loadTableData = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + var lsdbid = alasql.databases[databaseid].lsdbid; + LS.restoreTable(databaseid, tableid); + // db.tables[tableid].data = LS.get(lsdbid+'.'+tableid); +}; + +/** + Save data to the table +*/ + +LS.saveTableData = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + var lsdbid = alasql.databases[databaseid].lsdbid; + LS.storeTable(lsdbid, tableid); + // LS.set(lsdbid+'.'+tableid,db.tables[tableid].data); + db.tables[tableid].data = undefined; +}; + +/** + Commit +*/ + +LS.commit = function(databaseid, cb) { + + var db = alasql.databases[databaseid]; + var lsdbid = alasql.databases[databaseid].lsdbid; + var lsdb = {databaseid: lsdbid, tables: {}}; + if (db.tables) { + for (var tbid in db.tables) { + // TODO: Question - do we need this line + lsdb.tables[tbid] = true; + LS.storeTable(databaseid, tbid); + // LS.set(lsdbid+'.'+tbid, db.tables[tbid].data); + } + } + LS.set(lsdbid, lsdb); + return cb ? cb(1) : 1; +}; + +/** + Alias BEGIN = COMMIT +*/ +LS.begin = LS.commit; + +/** + ROLLBACK +*/ + +LS.rollback = function(databaseid, cb) { + // This does not work and should be fixed + // Plus test 151 and 231 + + return; + + var db = alasql.databases[databaseid]; + db.dbversion++; + + var lsdbid = alasql.databases[databaseid].lsdbid; + var lsdb = LS.get(lsdbid); + // if(!alasql.options.autocommit) { + + delete alasql.databases[databaseid]; + alasql.databases[databaseid] = new alasql.Database(databaseid); + extend(alasql.databases[databaseid], lsdb); + alasql.databases[databaseid].databaseid = databaseid; + alasql.databases[databaseid].engineid = 'LOCALSTORAGE'; + + if (lsdb.tables) { + for (var tbid in lsdb.tables) { + // var tb = new alasql.Table({columns: db.tables[tbid].columns}); + // extend(tb,lsdb.tables[tbid]); + // lsdb.tables[tbid] = true; + + // if(!alasql.options.autocommit) { + + // lsdb.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid); + LS.restoreTable(databaseid, tbid); + // } + // lsdb.tables[tbid].indexColumns(); + + // index columns + // convert types + } + } + // } + +}; + +// +// 91websql.js +// WebSQL database support +// (c) 2014, Andrey Gershun +// + +var SQLITE = (alasql.engines.SQLITE = function() {}); + +SQLITE.createDatabase = function(wdbid, args, ifnotexists, dbid, cb) { + throw new Error('Connot create SQLITE database in memory. Attach it.'); +}; + +SQLITE.dropDatabase = function(databaseid) { + throw new Error('This is impossible to drop SQLite database. Detach it.'); +}; + +SQLITE.attachDatabase = function(sqldbid, dbid, args, params, cb) { + var res = 1; + if (alasql.databases[dbid]) { + throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); + } + + if ((args[0] && args[0] instanceof yy.StringValue) || args[0] instanceof yy.ParamValue) { + if (args[0] instanceof yy.StringValue) { + var value = args[0].value; + } else if (args[0] instanceof yy.ParamValue) { + var value = params[args[0].param]; + } + alasql.utils.loadBinaryFile( + value, + true, + function(data) { + var db = new alasql.Database(dbid || sqldbid); + db.engineid = 'SQLITE'; + db.sqldbid = sqldbid; + var sqldb = (db.sqldb = new SQL.Database(data)); + db.tables = []; + var tables = sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values; + + tables.forEach(function(tbl) { + db.tables[tbl[1]] = {}; + var columns = (db.tables[tbl[1]].columns = []); + var ast = alasql.parse(tbl[4]); + + var coldefs = ast.statements[0].columns; + if (coldefs && coldefs.length > 0) { + coldefs.forEach(function(cd) { + columns.push(cd); + }); + } + }); + + cb(1); + }, + function(err) { + throw new Error('Cannot open SQLite database file "' + args[0].value + '"'); + } + ); + return res; + } else { + throw new Error('Cannot attach SQLite database without a file'); + } + + return res; +}; + +SQLITE.fromTable = function(databaseid, tableid, cb, idx, query) { + var data = alasql.databases[databaseid].sqldb.exec('SELECT * FROM ' + tableid); + var columns = (query.sources[idx].columns = []); + if (data[0].columns.length > 0) { + data[0].columns.forEach(function(columnid) { + columns.push({columnid: columnid}); + }); + } + + var res = []; + if (data[0].values.length > 0) { + data[0].values.forEach(function(d) { + var r = {}; + columns.forEach(function(col, idx) { + r[col.columnid] = d[idx]; + }); + res.push(r); + }); + } + if (cb) cb(res, idx, query); +}; + +SQLITE.intoTable = function(databaseid, tableid, value, columns, cb) { + var sqldb = alasql.databases[databaseid].sqldb; + for (var i = 0, ilen = value.length; i < ilen; i++) { + var s = 'INSERT INTO ' + tableid + ' ('; + var d = value[i]; + var keys = Object.keys(d); + s += keys.join(','); + s += ') VALUES ('; + s += keys + .map(function(k) { + v = d[k]; + if (typeof v == 'string') v = "'" + v + "'"; + return v; + }) + .join(','); + s += ')'; + sqldb.exec(s); + } + var res = ilen; + if (cb) cb(res); + return res; +}; + +// +// 91localstorage.js +// localStorage and DOM-Storage engine +// Date: 09.12.2014 +// (c) Andrey Gershun +// + +var FS = (alasql.engines.FILESTORAGE = alasql.engines.FILE = function() {}); + +FS.createDatabase = function(fsdbid, args, ifnotexists, dbid, cb) { + + var res = 1; + var filename = args[0].value; + + alasql.utils.fileExists(filename, function(fex) { + + if (fex) { + if (ifnotexists) { + res = 0; + if (cb) res = cb(res); + return res; + } else { + throw new Error('Cannot create new database file, because it already exists'); + } + } else { + var data = {tables: {}}; + alasql.utils.saveFile(filename, JSON.stringify(data), function(data) { + if (cb) res = cb(res); + }); + } + }); + return res; +}; + +FS.dropDatabase = function(fsdbid, ifexists, cb) { + var res; + var filename = fsdbid.value; + + alasql.utils.fileExists(filename, function(fex) { + if (fex) { + res = 1; + alasql.utils.deleteFile(filename, function() { + res = 1; + if (cb) res = cb(res); + }); + } else { + if (!ifexists) { + throw new Error('Cannot drop database file, because it does not exist'); + } + res = 0; + if (cb) res = cb(res); + } + }); + return res; +}; + +FS.attachDatabase = function(fsdbid, dbid, args, params, cb) { + + var res = 1; + if (alasql.databases[dbid]) { + throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); + } + var db = new alasql.Database(dbid || fsdbid); + db.engineid = 'FILESTORAGE'; + // db.fsdbid = fsdbid; + db.filename = args[0].value; + loadFile(db.filename, !!cb, function(s) { + try { + db.data = JSON.parse(s); + } catch (err) { + throw new Error('Data in FileStorage database are corrupted'); + } + db.tables = db.data.tables; + // IF AUTOCOMMIT IS OFF then copy data to memory + if (!alasql.options.autocommit) { + if (db.tables) { + for (var tbid in db.tables) { + db.tables[tbid].data = db.data[tbid]; + } + } + } + if (cb) res = cb(res); + }); + return res; +}; + +FS.createTable = function(databaseid, tableid, ifnotexists, cb) { + var db = alasql.databases[databaseid]; + var tb = db.data[tableid]; + var res = 1; + + if (tb && !ifnotexists) { + throw new Error('Table "' + tableid + '" alsready exists in the database "' + fsdbid + '"'); + } + var table = alasql.databases[databaseid].tables[tableid]; + db.data.tables[tableid] = {columns: table.columns}; + db.data[tableid] = []; + + FS.updateFile(databaseid); + + if (cb) cb(res); + return res; +}; + +FS.updateFile = function(databaseid) { + + var db = alasql.databases[databaseid]; + if (db.issaving) { + db.postsave = true; + return; + } + db.issaving = true; + db.postsave = false; + alasql.utils.saveFile(db.filename, JSON.stringify(db.data), function() { + db.issaving = false; + + if (db.postsave) { + setTimeout(function() { + FS.updateFile(databaseid); + }, 50); // TODO Test with different timeout parameters + } + }); +}; + +FS.dropTable = function(databaseid, tableid, ifexists, cb) { + var res = 1; + var db = alasql.databases[databaseid]; + if (!ifexists && !db.tables[tableid]) { + throw new Error( + 'Cannot drop table "' + tableid + '" in fileStorage, because it does not exist' + ); + } + delete db.tables[tableid]; + delete db.data.tables[tableid]; + delete db.data[tableid]; + FS.updateFile(databaseid); + if (cb) cb(res); + return res; +}; + +FS.fromTable = function(databaseid, tableid, cb, idx, query) { + + var db = alasql.databases[databaseid]; + var res = db.data[tableid]; + if (cb) res = cb(res, idx, query); + return res; +}; + +FS.intoTable = function(databaseid, tableid, value, columns, cb) { + var db = alasql.databases[databaseid]; + var res = value.length; + var tb = db.data[tableid]; + if (!tb) tb = []; + db.data[tableid] = tb.concat(value); + FS.updateFile(databaseid); + if (cb) cb(res); + return res; +}; + +FS.loadTableData = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + db.tables[tableid].data = db.data[tableid]; +}; + +FS.saveTableData = function(databaseid, tableid) { + var db = alasql.databases[databaseid]; + db.data[tableid] = db.tables[tableid].data; + db.tables[tableid].data = null; + FS.updateFile(databaseid); +}; + +FS.commit = function(databaseid, cb) { + + var db = alasql.databases[databaseid]; + var fsdb = {tables: {}}; + if (db.tables) { + for (var tbid in db.tables) { + db.data.tables[tbid] = {columns: db.tables[tbid].columns}; + db.data[tbid] = db.tables[tbid].data; + } + } + FS.updateFile(databaseid); + return cb ? cb(1) : 1; +}; + +FS.begin = FS.commit; + +FS.rollback = function(databaseid, cb) { + var res = 1; + var db = alasql.databases[databaseid]; + db.dbversion++; + + // var lsdbid = alasql.databases[databaseid].lsdbid; + // lsdb = LS.get(lsdbid); + wait(); + function wait() { + setTimeout(function() { + if (db.issaving) { + return wait(); + } else { + alasql.loadFile(db.filename, !!cb, function(data) { + db.data = data; + db.tables = {}; + for (var tbid in db.data.tables) { + var tb = new alasql.Table({columns: db.data.tables[tbid].columns}); + extend(tb, db.data.tables[tbid]); + db.tables[tbid] = tb; + if (!alasql.options.autocommit) { + db.tables[tbid].data = db.data[tbid]; + } + db.tables[tbid].indexColumns(); + + // index columns + // convert types + } + + delete alasql.databases[databaseid]; + alasql.databases[databaseid] = new alasql.Database(databaseid); + extend(alasql.databases[databaseid], db); + alasql.databases[databaseid].engineid = 'FILESTORAGE'; + alasql.databases[databaseid].filename = db.filename; + + if (cb) res = cb(res); + // Todo: check why no return + }); + } + }, 100); + } + + // if(!alasql.options.autocommit) { + +}; + +if(utils.isBrowser && !utils.isWebWorker) { + +alasql = alasql || false; + +if (!alasql) { + throw new Error('alasql was not found'); +} + +alasql.worker = function() { + throw new Error('Can find webworker in this enviroment'); +}; + +if (typeof Worker !== 'undefined') { + alasql.worker = function(path, paths, cb) { + // var path; + if (path === true) { + path = undefined; + } + + if (typeof path === 'undefined') { + var sc = document.getElementsByTagName('script'); + for (var i = 0; i < sc.length; i++) { + if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') { + path = sc[i].src.substr(0, sc[i].src.length - 16) + 'alasql.js'; + break; + } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') { + path = sc[i].src.substr(0, sc[i].src.length - 20) + 'alasql.min.js'; + break; + } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') { + path = sc[i].src; + break; + } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') { + path = sc[i].src.substr(0, sc[i].src.length - 13) + 'alasql.min.js'; + break; + } + } + } + + if (typeof path === 'undefined') { + throw new Error('Path to alasql.js is not specified'); + } else if (path !== false) { + var js = "importScripts('"; + js += path; + js += + "');self.onmessage = function(event) {" + + 'alasql(event.data.sql,event.data.params, function(data){' + + 'postMessage({id:event.data.id, data:data});});}'; + + var blob = new Blob([js], {type: 'text/plain'}); + alasql.webworker = new Worker(URL.createObjectURL(blob)); + + alasql.webworker.onmessage = function(event) { + var id = event.data.id; + + alasql.buffer[id](event.data.data); + delete alasql.buffer[id]; + }; + + alasql.webworker.onerror = function(e) { + throw e; + }; + + if (arguments.length > 1) { + var sql = + 'REQUIRE ' + + paths + .map(function(p) { + return '"' + p + '"'; + }) + .join(','); + alasql(sql, [], cb); + } + } else if (path === false) { + delete alasql.webworker; + return; + } + }; +} + +/* FileSaver.js + * A saveAs() FileSaver implementation. + * 1.3.2 + * 2016-06-16 18:25:19 + * + * By Eli Grey, http://eligrey.com + * License: MIT + * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md + */ + +/*global self */ +/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */ + +/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ + +var saveAs = + saveAs || + (function(view) { + 'use strict'; + // IE <10 is explicitly unsupported + if ( + typeof view === 'undefined' || + (typeof navigator !== 'undefined' && /MSIE [1-9]\./.test(navigator.userAgent)) + ) { + return; + } + var doc = view.document, + // only get URL when necessary in case Blob.js hasn't overridden it yet + get_URL = function() { + return view.URL || view.webkitURL || view; + }, + save_link = doc.createElementNS('http://www.w3.org/1999/xhtml', 'a'), + can_use_save_link = 'download' in save_link, + click = function(node) { + var event = new MouseEvent('click'); + node.dispatchEvent(event); + }, + is_safari = /constructor/i.test(view.HTMLElement) || view.safari, + is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent), + throw_outside = function(ex) { + (view.setImmediate || view.setTimeout)(function() { + throw ex; + }, 0); + }, + force_saveable_type = 'application/octet-stream', + // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to + arbitrary_revoke_timeout = 1000 * 40, // in ms + revoke = function(file) { + var revoker = function() { + if (typeof file === 'string') { + // file is an object URL + get_URL().revokeObjectURL(file); + } else { + // file is a File + file.remove(); + } + }; + setTimeout(revoker, arbitrary_revoke_timeout); + }, + dispatch = function(filesaver, event_types, event) { + event_types = [].concat(event_types); + var i = event_types.length; + while (i--) { + var listener = filesaver['on' + event_types[i]]; + if (typeof listener === 'function') { + try { + listener.call(filesaver, event || filesaver); + } catch (ex) { + throw_outside(ex); + } + } + } + }, + auto_bom = function(blob) { + // prepend BOM for UTF-8 XML and text/* types (including HTML) + // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF + if ( + /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test( + blob.type + ) + ) { + return new Blob([String.fromCharCode(0xfeff), blob], {type: blob.type}); + } + return blob; + }, + FileSaver = function(blob, name, no_auto_bom) { + if (!no_auto_bom) { + blob = auto_bom(blob); + } + // First try a.download, then web filesystem, then object URLs + var filesaver = this, + type = blob.type, + force = type === force_saveable_type, + object_url, + dispatch_all = function() { + dispatch(filesaver, 'writestart progress write writeend'.split(' ')); + }, + // on any filesys errors revert to saving with object URLs + fs_error = function() { + if ((is_chrome_ios || (force && is_safari)) && view.FileReader) { + // Safari doesn't allow downloading of blob urls + var reader = new FileReader(); + reader.onloadend = function() { + var url = is_chrome_ios + ? reader.result + : reader.result.replace( + /^data:[^;]*;/, + 'data:attachment/file;' + ); + var popup = view.open(url, '_blank'); + if (!popup) view.location.href = url; + url = undefined; // release reference before dispatching + filesaver.readyState = filesaver.DONE; + dispatch_all(); + }; + reader.readAsDataURL(blob); + filesaver.readyState = filesaver.INIT; + return; + } + // don't create more object URLs than needed + if (!object_url) { + object_url = get_URL().createObjectURL(blob); + } + if (force) { + view.location.href = object_url; + } else { + var opened = view.open(object_url, '_blank'); + if (!opened) { + // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html + view.location.href = object_url; + } + } + filesaver.readyState = filesaver.DONE; + dispatch_all(); + revoke(object_url); + }; + filesaver.readyState = filesaver.INIT; + + if (can_use_save_link) { + object_url = get_URL().createObjectURL(blob); + setTimeout(function() { + save_link.href = object_url; + save_link.download = name; + click(save_link); + dispatch_all(); + revoke(object_url); + filesaver.readyState = filesaver.DONE; + }); + return; + } + + fs_error(); + }, + FS_proto = FileSaver.prototype, + saveAs = function(blob, name, no_auto_bom) { + return new FileSaver(blob, name || blob.name || 'download', no_auto_bom); + }; + // IE 10+ (native saveAs) + if (typeof navigator !== 'undefined' && navigator.msSaveOrOpenBlob) { + return function(blob, name, no_auto_bom) { + name = name || blob.name || 'download'; + + if (!no_auto_bom) { + blob = auto_bom(blob); + } + return navigator.msSaveOrOpenBlob(blob, name); + }; + } + + FS_proto.abort = function() {}; + FS_proto.readyState = FS_proto.INIT = 0; + FS_proto.WRITING = 1; + FS_proto.DONE = 2; + + FS_proto.error = FS_proto.onwritestart = FS_proto.onprogress = FS_proto.onwrite = FS_proto.onabort = FS_proto.onerror = FS_proto.onwriteend = null; + + return saveAs; + })( + (typeof self !== 'undefined' && self) || + (typeof window !== 'undefined' && window) || + this.content + ); +// `self` is undefined in Firefox for Android content script context +// while `this` is nsIContentFrameMessageManager +// with an attribute `content` that corresponds to the window + +if (typeof module !== 'undefined' && module.exports) { + module.exports.saveAs = saveAs; +} else if (typeof define !== 'undefined' && define !== null && define.amd !== null) { + define('FileSaver.js', function() { + return saveAs; + }); +} + +/* eslint-disable */ + +/* +// +// Last part of Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ + +// This is a final part of Alasql + +//*only-for-browser/* +if(utils.isCordova || utils.isMeteorServer || utils.isNode ){ + console.warn('It looks like you are using the browser version of AlaSQL. Please use the alasql.fs.js file instead.') +} +//*/ + +// FileSaveAs +alasql.utils.saveAs = saveAs; + +}; + +// Create default database +new Database("alasql"); + +// Set default database +alasql.use("alasql"); + +return alasql; +})); + diff --git a/dist/alasql.min.js b/dist/alasql.min.js index cced5a035a..b0f55b1546 100755 --- a/dist/alasql.min.js +++ b/dist/alasql.min.js @@ -1,16 +1,2 @@ -//! AlaSQL v0.4.11-develop-d00d3b02undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT -"use strict";!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.alasql=t()}(this,function(){function e(e){return"(y="+e+",y===y?y:undefined)"}function t(e,t){return"(y="+e+',typeof y=="undefined"?undefined:'+t+")"}function r(){return!0}function n(){}function a(){var e=navigator.userAgent.toLowerCase();return-1!==e.indexOf("msie")&&parseInt(e.split("msie")[1])}function s(e,t,r){function n(e,r,a){var o,u,c,l=e[r];if(l.selid){if("PATH"===l.selid){for(var h=[{node:a,stack:[]}],d={},f=T.databases[T.useid].objects;h.length>0;){var p=h.shift(),b=p.node,E=p.stack,c=n(l.args,0,b);if(c.length>0){if(r+1+1>e.length)return E;var g=[];return E&&E.length>0&&E.forEach(function(t){g=g.concat(n(e,r+1,t))}),g}void 0===d[b.$id]&&(d[b.$id]=!0,b.$out&&b.$out.length>0&&b.$out.forEach(function(e){var t=f[e],r=E.concat(t);r.push(f[t.$out[0]]),h.push({node:f[t.$out[0]],stack:r})}))}return[]}if("NOT"===l.selid){var u=n(l.args,0,a);return u.length>0?[]:r+1+1>e.length?[a]:n(e,r+1,a)}if("DISTINCT"===l.selid){var u;if(u=void 0===l.args||0===l.args.length?P(a):n(l.args,0,a),0===u.length)return[];var m=P(u);return r+1+1>e.length?m:n(e,r+1,m)}if("AND"===l.selid){var m=!0;return l.args.forEach(function(e){m=m&&n(e,0,a).length>0}),m?r+1+1>e.length?[a]:n(e,r+1,a):[]}if("OR"===l.selid){var m=!1;return l.args.forEach(function(e){m=m||n(e,0,a).length>0}),m?r+1+1>e.length?[a]:n(e,r+1,a):[]}if("ALL"===l.selid){var u=n(l.args[0],0,a);return 0===u.length?[]:r+1+1>e.length?u:n(e,r+1,u)}if("ANY"===l.selid){var u=n(l.args[0],0,a);return 0===u.length?[]:r+1+1>e.length?[u[0]]:n(e,r+1,[u[0]])}if("UNIONALL"===l.selid){var u=[];return l.args.forEach(function(e){u=u.concat(n(e,0,a))}),0===u.length?[]:r+1+1>e.length?u:n(e,r+1,u)}if("UNION"===l.selid){var u=[];l.args.forEach(function(e){u=u.concat(n(e,0,a))});var u=P(u);return 0===u.length?[]:r+1+1>e.length?u:n(e,r+1,u)}if("IF"===l.selid){var u=n(l.args,0,a);return 0===u.length?[]:r+1+1>e.length?[a]:n(e,r+1,a)}if("REPEAT"===l.selid){var v,S,A=l.args[0].value;S=l.args[1]?l.args[1].value:A,l.args[2]&&(v=l.args[2].variable);var y=[];if(0===A&&(r+1+1>e.length?y=[a]:(v&&(T.vars[v]=0),y=y.concat(n(e,r+1,a)))),S>0)for(var N=[{value:a,lvl:1}],C=0;N.length>0;){var u=N[0];if(N.shift(),u.lvl<=S){v&&(T.vars[v]=u.lvl);var R=n(l.sels,0,u.value);R.forEach(function(e){N.push({value:e,lvl:u.lvl+1})}),u.lvl>=A&&(r+1+1>e.length?y=y.concat(R):R.forEach(function(t){y=y.concat(n(e,r+1,t))}))}if(++C>1e5)throw new Error("Security brake. Number of iterations = "+C)}return y}if("OF"===l.selid){if(r+1+1>e.length)return[a];var O=[];return Object.keys(a).forEach(function(t){T.vars[l.args[0].variable]=t,O=O.concat(n(e,r+1,a[t]))}),O}if("TO"===l.selid){var w=T.vars[l.args[0]],I=[];if(I=void 0!==w?w.slice(0):[],I.push(a),r+1+1>e.length)return[a];T.vars[l.args[0]]=I;var O=n(e,r+1,a);return T.vars[l.args[0]]=w,O}if("ARRAY"===l.selid){var u=n(l.args,0,a);return u.length>0?(o=u,r+1+1>e.length?[o]:n(e,r+1,o)):[]}if("SUM"===l.selid){var u=n(l.args,0,a);if(!(u.length>0))return[];var o=u.reduce(function(e,t){return e+t},0);return r+1+1>e.length?[o]:n(e,r+1,o)}if("AVG"===l.selid)return u=n(l.args,0,a),u.length>0?(o=u.reduce(function(e,t){return e+t},0)/u.length,r+1+1>e.length?[o]:n(e,r+1,o)):[];if("COUNT"===l.selid)return u=n(l.args,0,a),u.length>0?(o=u.length,r+1+1>e.length?[o]:n(e,r+1,o)):[];if("FIRST"===l.selid)return u=n(l.args,0,a),u.length>0?(o=u[0],r+1+1>e.length?[o]:n(e,r+1,o)):[];if("LAST"===l.selid)return u=n(l.args,0,a),u.length>0?(o=u[u.length-1],r+1+1>e.length?[o]:n(e,r+1,o)):[];if("MIN"===l.selid){if(u=n(l.args,0,a),0===u.length)return[];var o=u.reduce(function(e,t){return Math.min(e,t)},1/0);return r+1+1>e.length?[o]:n(e,r+1,o)}if("MAX"===l.selid){var u=n(l.args,0,a);if(0===u.length)return[];var o=u.reduce(function(e,t){return Math.max(e,t)},-1/0);return r+1+1>e.length?[o]:n(e,r+1,o)}if("PLUS"===l.selid){var y=[],N=n(l.args,0,a).slice();r+1+1>e.length?y=y.concat(N):N.forEach(function(t){y=y.concat(n(e,r+1,t))});for(var C=0;N.length>0;){var u=N.shift();if(u=n(l.args,0,u),N=N.concat(u),r+1+1>e.length?y=y.concat(u):u.forEach(function(t){var a=n(e,r+1,t);y=y.concat(a)}),++C>1e5)throw new Error("Security brake. Number of iterations = "+C)}return y}if("STAR"===l.selid){var y=[];y=n(e,r+1,a);var N=n(l.args,0,a).slice();r+1+1>e.length?y=y.concat(N):N.forEach(function(t){y=y.concat(n(e,r+1,t))});for(var C=0;N.length>0;){var u=N[0];if(N.shift(),u=n(l.args,0,u),N=N.concat(u),r+1+1<=e.length&&u.forEach(function(t){y=y.concat(n(e,r+1,t))}),++C>1e5)throw new Error("Loop brake. Number of iterations = "+C)}return y}if("QUESTION"===l.selid){var y=[];y=y.concat(n(e,r+1,a));var u=n(l.args,0,a);return r+1+1<=e.length&&u.forEach(function(t){y=y.concat(n(e,r+1,t))}),y}if("WITH"!==l.selid){if("ROOT"===l.selid)return r+1+1>e.length?[a]:n(e,r+1,s);throw new Error("Wrong selector "+l.selid)}var u=n(l.args,0,a);if(0===u.length)return[];var c={status:1,values:u}}else{if(!l.srchid)throw new Error("Selector not found");var c=T.srch[l.srchid.toUpperCase()](a,l.args,i,t)}void 0===c&&(c={status:1,values:[a]});var m=[];if(1===c.status){var x=c.values;if(r+1+1>e.length)m=x;else for(var C=0;C0&&(o&&o[0]&&"PROP"===o[0].srchid&&o[0].args&&o[0].args[0]&&("XML"===o[0].args[0].toUpperCase()?(i.mode="XML",o.shift()):"HTML"===o[0].args[0].toUpperCase()?(i.mode="HTML",o.shift()):"JSON"===o[0].args[0].toUpperCase()&&(i.mode="JSON",o.shift())),o.length>0&&"VALUE"===o[0].srchid&&(i.value=!0,o.shift())),this.from instanceof X.Column){var u=this.from.databaseid||e;s=T.databases[u].tables[this.from.columnid].data}else if(this.from instanceof X.FuncValue&&T.from[this.from.funcid.toUpperCase()]){var c=this.from.args.map(function(e){var r=e.toJS();return new Function("params,alasql","var y;return "+r).bind(this)(t,T)});s=T.from[this.from.funcid.toUpperCase()].apply(this,c)}else if(void 0===this.from)s=T.databases[e].objects;else{var l=new Function("params,alasql","var y;return "+this.from.toJS());s=l(t,T),"object"==typeof Mongo&&"object"!=typeof Mongo.Collection&&s instanceof Mongo.Collection&&(s=s.find().fetch())}if(a=void 0!==o&&o.length>0?n(o,0,s):s,this.into){var h,d;void 0!==this.into.args[0]&&(h=new Function("params,alasql","var y;return "+this.into.args[0].toJS())(t,T)),void 0!==this.into.args[1]&&(d=new Function("params,alasql","var y;return "+this.into.args[1].toJS())(t,T)),a=T.into[this.into.funcid.toUpperCase()](h,d,a,[],r)}else i.value&&a.length>0&&(a=a[0]),r&&(a=r(a));return a}function i(e,t,r,n,a){e.sources.length;e.sourceslen=e.sources.length;var s=e.sourceslen;e.query=e,e.A=n,e.B=a,e.cb=r,e.oldscope=t,e.queriesfn&&(e.sourceslen+=e.queriesfn.length,s+=e.queriesfn.length,e.queriesdata=[],e.queriesfn.forEach(function(t,r){t.query.params=e.params,o([],-r-1,e)}));var i;i=t?_(t):{},e.scope=i;var c;return e.sources.forEach(function(t,r){t.query=e;var n=t.datafn(e,e.params,o,r,T);void 0!==n&&((e.intofn||e.intoallfn)&&Array.isArray(n)&&(n=n.length),c=n),t.queriesdata=e.queriesdata}),0!=e.sources.length&&0!==s||(c=u(e)),c}function o(e,t,r){if(t>=0){var n=r.sources[t];n.data=e,"function"==typeof n.data&&(n.getfn=n.data,n.dontcache=n.getfn.dontcache,"OUTER"!=n.joinmode&&"RIGHT"!=n.joinmode&&"ANTI"!=n.joinmode||(n.dontcache=!1),n.data={})}else r.queriesdata[-t-1]=G(e);if(!(--r.sourceslen>0))return u(r)}function u(e){var t,r=e.scope;z(e),e.data=[],e.xgroups={},e.groups=[];if(h(e,r,0),e.groupfn){if(e.data=[],0===e.groups.length){var n={};e.selectGroup.length>0&&e.selectGroup.forEach(function(e){"COUNT"==e.aggregatorid||"SUM"==e.aggregatorid?n[e.nick]=0:n[e.nick]=void 0}),e.groups=[n]}if(e.aggrKeys.length>0){var a="";e.aggrKeys.forEach(function(e){a+="g['"+e.nick+"']=alasql.aggr['"+e.funcid+"'](undefined,g['"+e.nick+"'],3);"});var s=new Function("g,params,alasql","var y;"+a)}for(var i=0,o=e.groups.length;i0){var g=e.removeKeys;if((t=g.length)>0)for(o=e.data.length,i=0;i0&&(e.columns=e.columns.filter(function(e){var t=!1;return g.forEach(function(r){e.columnid==r&&(t=!0)}),!t}))}if(void 0!==e.removeLikeKeys&&e.removeLikeKeys.length>0){for(var m=e.removeLikeKeys,i=0,o=e.data.length;i0&&(e.columns=e.columns.filter(function(e){var t=!1;return m.forEach(function(r){T.utils.like(r,e.columnid)&&(t=!0)}),!t}))}if(e.pivotfn&&e.pivotfn(),e.unpivotfn&&e.unpivotfn(),e.intoallfn){var S=e.intoallfn(e.columns,e.cb,e.params,e.alasql);return S}if(e.intofn){for(o=e.data.length,i=0;i=e.sources.length)e.wherefn(t,e.params,T)&&(e.groupfn?e.groupfn(t,e.params,T):e.data.push(e.selectfn(t,e.params,T)));else if(e.sources[r].applyselect){var n=e.sources[r];n.applyselect(e.params,function(a){if(a.length>0)for(var s=0;s0){for(var a={},s=Math.min(t.length,T.options.columnlookup||10)-1;0<=s;s--)for(var i in t[s])a[i]=!0;n=Object.keys(a).map(function(e){return{columnid:e}})}else n=[];if("VALUE"===r)if(t.length>0){var i;i=n&&n.length>0?n[0].columnid:Object.keys(t[0])[0],t=t[0][i]}else t=void 0;else if("ROW"===r)if(t.length>0){var i,o=[];for(var i in t[0])o.push(t[0][i]);t=o}else t=void 0;else if("COLUMN"===r){var u=[];if(t.length>0){var i;i=n&&n.length>0?n[0].columnid:Object.keys(t[0])[0];for(var s=0,c=t.length;s0)i=n[0].columnid,d=n[1].columnid;else{var f=Object.keys(t[0]);i=f[0],d=f[1]}for(var s=0,c=t.length;s0?n[0].columnid:Object.keys(t[0])[0];for(var s=0,c=t.length;s0?i.forEach(function(i){if(r&&"underscore"==T.options.joinstar)a.push("'"+t+"_"+i.columnid+"':p['"+t+"']['"+i.columnid+"']");else if(r&&"json"==T.options.joinstar)n+="r['"+t+"']['"+i.columnid+"']=p['"+t+"']['"+i.columnid+"'];";else{var o="p['"+t+"']['"+i.columnid+"']";if(s[i.columnid]){var u=o+" !== undefined ? "+o+" : "+s[i.columnid].value;a[s[i.columnid].id]=s[i.columnid].key+u,s[i.columnid].value=u}else{var c="'"+i.columnid+"':";a.push(c+o),s[i.columnid]={id:a.length-1,value:o,key:c}}}e.selectColumns[C(i.columnid)]=!0;var l={columnid:i.columnid,dbtypeid:i.dbtypeid,dbsize:i.dbsize,dbprecision:i.dbprecision,dbenum:i.dbenum};e.columns.push(l),e.xcolumns[l.columnid]=l}):(n+='var w=p["'+t+'"];for(var k in w){r[k]=w[k]};',e.dirtyColumns=!0)}),{s:a.join(","),sp:n}}function p(e,t){if(Array.isArray(e)){for(var r=[[]],n=0;n"+(a+1),r.forEach(function(r){t+=" ",e[a][r]==+e[a][r]?(t+='

',void 0===e[a][r]?t+="NULL":t+=e[a][r],t+="
"):void 0===e[a][r]?t+="NULL":"string"==typeof e[a][r]?t+=e[a][r]:t+=oe(e[a][r])});t+=""}else t+="

"+oe(e)+"

";return t}function g(e,t,r){if(!(r<=0)){var n=t-e.scrollTop,a=n/r*10;setTimeout(function(){e.scrollTop!==t&&(e.scrollTop=e.scrollTop+a,g(e,t,r-10))},10)}}function m(e,t,r,n,a,s){function i(e){for(var t="",r=0,n=10240;r0&&d[d.length-1]&&0==Object.keys(d[d.length-1]).length&&d.pop(),n&&(d=n(d,a,s))},function(e){throw e})}function S(e){function t(){if(i(/^<\?xml\s*/)){for(var e={attributes:{}};!o()&&!u("?>");){var t=a();if(!t)return e;e.attributes[t.name]=t.value}return i(/\?>\s*/),e}}function r(){var e=i(/^<([\w-:.]+)\s*/);if(e){for(var t={name:e[1],attributes:{},children:[]};!(o()||u(">")||u("?>")||u("/>"));){var s=a();if(!s)return t;t.attributes[s.name]=s.value}if(i(/^\s*\/>\s*/))return t;i(/\??>\s*/),t.content=n();for(var c;c=r();)t.children.push(c);return i(/^<\/[\w-:.]+>\s*/),t}}function n(){var e=i(/^([^<]*)/);return e?e[1]:""}function a(){var e=i(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);if(e)return{name:e[1],value:s(e[2])}}function s(e){return e.replace(/^['"]|['"]$/g,"")}function i(t){var r=e.match(t);if(r)return e=e.slice(r[0].length),r}function o(){return 0==e.length}function u(t){return 0==e.indexOf(t)}return e=e.trim(),e=e.replace(//g,""),function(){return{declaration:t(),root:r()}}()}var T=function(e,t,r,n){if(t=t||[],"function"!=typeof importScripts&&T.webworker){var a=T.lastid++;return T.buffer[a]=r,void T.webworker.postMessage({id:a,sql:e,params:t})}return 0===arguments.length?new X.Select({columns:[new X.Column({columnid:"*"})],from:[new X.ParamValue({param:0})]}):1===arguments.length&&e.constructor===Array?T.promise(e):("function"==typeof t&&(n=r,r=t,t=[]),"object"!=typeof t&&(t=[t]),"string"==typeof e&&"#"===e[0]&&"object"==typeof document?e=document.querySelector(e).textContent:"object"==typeof e&&e instanceof HTMLElement?e=e.textContent:"function"==typeof e&&(e=e.toString(),e=(/\/\*([\S\s]+)\*\//m.exec(e)||["","Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function."])[1]),T.exec(e,t,r,n))};T.version="0.4.11-develop-d00d3b02undefined",T.debug=void 0;var A=function(){return null},y=function(){function e(){this.yy={}}var t=function(e,t,r,n){for(r=r||{},n=e.length;n--;r[e[n]]=t);return r -},r=[2,13],n=[1,104],a=[1,102],s=[1,103],i=[1,6],o=[1,42],u=[1,79],c=[1,76],l=[1,94],h=[1,93],d=[1,69],f=[1,101],p=[1,85],b=[1,64],E=[1,71],g=[1,84],m=[1,66],v=[1,70],S=[1,68],A=[1,61],y=[1,74],N=[1,62],C=[1,67],R=[1,83],w=[1,77],I=[1,86],x=[1,87],D=[1,81],k=[1,82],L=[1,80],$=[1,88],M=[1,89],U=[1,90],_=[1,91],F=[1,92],P=[1,98],q=[1,65],G=[1,78],V=[1,72],B=[1,96],j=[1,97],H=[1,63],J=[1,73],Y=[1,108],W=[1,107],X=[10,306,602,764],K=[10,306,310,602,764],Q=[1,115],z=[1,116],Z=[1,117],ee=[1,118],te=[1,119],re=[130,353,410],ne=[1,127],ae=[1,126],se=[1,134],ie=[1,164],oe=[1,175],ue=[1,178],ce=[1,173],le=[1,181],he=[1,185],de=[1,160],fe=[1,182],pe=[1,169],be=[1,171],Ee=[1,174],ge=[1,183],me=[1,166],ve=[1,193],Se=[1,188],Te=[1,189],Ae=[1,194],ye=[1,195],Ne=[1,196],Ce=[1,197],Re=[1,198],Oe=[1,199],we=[1,200],Ie=[1,201],xe=[1,202],De=[1,176],ke=[1,177],Le=[1,179],$e=[1,180],Me=[1,186],Ue=[1,192],_e=[1,184],Fe=[1,187],Pe=[1,172],qe=[1,170],Ge=[1,191],Ve=[1,203],Be=[2,4,5],je=[2,471],He=[1,206],Je=[1,211],Ye=[1,220],We=[1,216],Xe=[10,72,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],Ke=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],Qe=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],ze=[1,249],Ze=[1,256],et=[1,265],tt=[1,270],rt=[1,269],nt=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],at=[2,162],st=[1,281],it=[10,74,78,306,310,505,602,764],ot=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,302,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,344,356,368,369,370,373,374,386,389,396,400,401,402,403,404,405,406,408,409,417,418,420,424,426,433,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,514,515,516,517,602,764],ut=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],ct=[1,562],lt=[1,564],ht=[2,503],dt=[1,569],ft=[1,580],pt=[1,583],bt=[1,584],Et=[10,78,89,132,137,146,189,296,306,310,470,602,764],gt=[10,74,306,310,602,764],mt=[2,567],vt=[1,602],St=[2,4,5,156],Tt=[1,640],At=[1,612],yt=[1,646],Nt=[1,647],Ct=[1,620],Rt=[1,631],Ot=[1,618],wt=[1,626],It=[1,619],xt=[1,627],Dt=[1,629],kt=[1,621],Lt=[1,622],$t=[1,641],Mt=[1,638],Ut=[1,639],_t=[1,615],Ft=[1,617],Pt=[1,609],qt=[1,610],Gt=[1,611],Vt=[1,613],Bt=[1,614],jt=[1,616],Ht=[1,623],Jt=[1,624],Yt=[1,628],Wt=[1,630],Xt=[1,632],Kt=[1,633],Qt=[1,634],zt=[1,635],Zt=[1,636],er=[1,642],tr=[1,643],rr=[1,644],nr=[1,645],ar=[2,287],sr=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],ir=[2,359],or=[1,668],ur=[1,678],cr=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],lr=[1,694],hr=[1,703],dr=[1,702],fr=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],pr=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],br=[2,202],Er=[1,725],gr=[10,72,78,93,98,118,128,162,168,169,183,232,245,247,306,310,602,764],mr=[2,163],vr=[1,728],Sr=[2,4,5,112],Tr=[1,741],Ar=[1,760],yr=[1,740],Nr=[1,739],Cr=[1,734],Rr=[1,735],Or=[1,737],wr=[1,738],Ir=[1,742],xr=[1,743],Dr=[1,744],kr=[1,745],Lr=[1,746],$r=[1,747],Mr=[1,748],Ur=[1,749],_r=[1,750],Fr=[1,751],Pr=[1,752],qr=[1,753],Gr=[1,754],Vr=[1,755],Br=[1,756],jr=[1,757],Hr=[1,759],Jr=[1,761],Yr=[1,762],Wr=[1,763],Xr=[1,764],Kr=[1,765],Qr=[1,766],zr=[1,767],Zr=[1,770],en=[1,771],tn=[1,772],rn=[1,773],nn=[1,774],an=[1,775],sn=[1,776],on=[1,777],un=[1,778],cn=[1,779],ln=[1,780],hn=[1,781],dn=[74,89,189],fn=[10,74,78,154,187,230,297,306,310,343,356,368,369,373,374,602,764],pn=[1,798],bn=[10,74,78,300,306,310,602,764],En=[1,799],gn=[1,805],mn=[1,806],vn=[1,810],Sn=[10,74,78,306,310,602,764],Tn=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,312,317,420,424],An=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],yn=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],Nn=[2,4,5,132,296],Cn=[1,844],Rn=[10,74,76,78,306,310,602,764],On=[2,738],wn=[10,74,76,78,132,139,141,145,152,306,310,420,424,602,764],In=[2,1161],xn=[10,74,76,78,139,141,145,152,306,310,420,424,602,764],Dn=[10,74,76,78,139,141,145,306,310,420,424,602,764],kn=[10,74,78,139,141,306,310,602,764],Ln=[10,78,89,132,146,189,296,306,310,470,602,764],$n=[335,338,339],Mn=[2,764],Un=[1,869],_n=[1,870],Fn=[1,871],Pn=[1,872],qn=[1,881],Gn=[1,880],Vn=[164,166,334],Bn=[2,444],jn=[1,936],Hn=[2,4,5,77,131,156,290,291,292,293],Jn=[1,951],Yn=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Wn=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Xn=[2,375],Kn=[1,958],Qn=[306,308,310],zn=[74,300],Zn=[74,300,426],ea=[1,965],ta=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],ra=[74,426],na=[1,978],aa=[1,977],sa=[1,984],ia=[10,72,78,93,98,118,128,162,168,169,232,245,247,306,310,602,764],oa=[1,1010],ua=[10,72,78,306,310,602,764],ca=[1,1016],la=[1,1017],ha=[1,1018],da=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],fa=[1,1068],pa=[1,1067],ba=[1,1081],Ea=[1,1080],ga=[1,1088],ma=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],va=[1,1119],Sa=[10,78,89,146,189,306,310,470,602,764],Ta=[1,1139],Aa=[1,1138],ya=[1,1137],Na=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Ca=[1,1153],Ra=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Oa=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],wa=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Ia=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],xa=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Da=[2,406],ka=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],La=[2,285],$a=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Ma=[10,78,306,310,602,764],Ua=[1,1189],_a=[10,77,78,143,145,152,181,302,306,310,420,424,602,764],Fa=[10,74,78,306,308,310,464,602,764],Pa=[1,1200],qa=[10,72,78,118,128,162,168,169,232,245,247,306,310,602,764],Ga=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],Va=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],Ba=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],ja=[2,1085],Ha=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],Ja=[1,1252],Ya=[10,74,78,128,306,308,310,464,602,764],Wa=[115,116,124],Xa=[2,584],Ka=[1,1280],Qa=[76,139],za=[2,724],Za=[1,1297],es=[1,1298],ts=[2,4,5,10,53,72,76,89,124,146,156,189,230,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],rs=[2,330],ns=[1,1322],as=[1,1336],ss=[1,1338],is=[2,487],os=[74,78],us=[10,306,308,310,464,602,764],cs=[10,72,78,118,162,168,169,232,245,247,306,310,602,764],ls=[1,1354],hs=[1,1358],ds=[1,1359],fs=[1,1361],ps=[1,1362],bs=[1,1363],Es=[1,1364],gs=[1,1365],ms=[1,1366],vs=[1,1367],Ss=[1,1368],Ts=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],As=[1,1393],ys=[10,72,78,118,162,168,169,245,247,306,310,602,764],Ns=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],Cs=[1,1490],Rs=[1,1492],Os=[2,4,5,77,143,145,152,156,181,290,291,292,293,302,420,424],ws=[1,1506],Is=[10,72,74,78,162,168,169,245,247,306,310,602,764],xs=[1,1524],Ds=[1,1526],ks=[1,1527],Ls=[1,1523],$s=[1,1522],Ms=[1,1521],Us=[1,1528],_s=[1,1518],Fs=[1,1519],Ps=[1,1520],qs=[1,1545],Gs=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],Vs=[1,1556],Bs=[1,1564],js=[1,1563],Hs=[10,72,78,162,168,169,245,247,306,310,602,764],Js=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],Ys=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],Ws=[1,1621],Xs=[1,1623],Ks=[1,1620],Qs=[1,1622],zs=[187,193,368,369,370,373],Zs=[2,515],ei=[1,1628],ti=[1,1647],ri=[10,72,78,162,168,169,306,310,602,764],ni=[1,1657],ai=[1,1658],si=[1,1659],ii=[1,1678],oi=[4,10,243,306,310,343,356,602,764],ui=[1,1726],ci=[10,72,74,78,118,162,168,169,239,245,247,306,310,602,764],li=[2,4,5,77],hi=[1,1820],di=[1,1832],fi=[1,1851],pi=[10,72,78,162,168,169,306,310,415,602,764],bi=[10,74,78,230,306,310,602,764],Ei={trace:function(){},yy:{},symbols_:{error:2,Literal:3,LITERAL:4,BRALITERAL:5,NonReserved:6,LiteralWithSpaces:7,main:8,Statements:9,EOF:10,Statements_group0:11,AStatement:12,ExplainStatement:13,EXPLAIN:14,QUERY:15,PLAN:16,Statement:17,AlterTable:18,AttachDatabase:19,Call:20,CreateDatabase:21,CreateIndex:22,CreateGraph:23,CreateTable:24,CreateView:25,CreateEdge:26,CreateVertex:27,Declare:28,Delete:29,DetachDatabase:30,DropDatabase:31,DropIndex:32,DropTable:33,DropView:34,If:35,Insert:36,Merge:37,Reindex:38,RenameTable:39,Select:40,ShowCreateTable:41,ShowColumns:42,ShowDatabases:43,ShowIndex:44,ShowTables:45,TruncateTable:46,WithSelect:47,CreateTrigger:48,DropTrigger:49,BeginTransaction:50,CommitTransaction:51,RollbackTransaction:52,EndTransaction:53,UseDatabase:54,Update:55,JavaScript:56,Source:57,Assert:58,While:59,Continue:60,Break:61,BeginEnd:62,Print:63,Require:64,SetVariable:65,ExpressionStatement:66,AddRule:67,Query:68,Echo:69,CreateFunction:70,CreateAggregate:71,WITH:72,WithTablesList:73,COMMA:74,WithTable:75,AS:76,LPAR:77,RPAR:78,SelectClause:79,Select_option0:80,IntoClause:81,FromClause:82,Select_option1:83,WhereClause:84,GroupClause:85,OrderClause:86,LimitClause:87,UnionClause:88,SEARCH:89,Select_repetition0:90,Select_option2:91,PivotClause:92,PIVOT:93,Expression:94,FOR:95,PivotClause_option0:96,PivotClause_option1:97,UNPIVOT:98,IN:99,ColumnsList:100,PivotClause_option2:101,PivotClause2:102,AsList:103,AsLiteral:104,AsPart:105,RemoveClause:106,REMOVE:107,RemoveClause_option0:108,RemoveColumnsList:109,RemoveColumn:110,Column:111,LIKE:112,StringValue:113,ArrowDot:114,ARROW:115,DOT:116,SearchSelector:117,ORDER:118,BY:119,OrderExpressionsList:120,SearchSelector_option0:121,DOTDOT:122,CARET:123,EQ:124,SearchSelector_repetition_plus0:125,SearchSelector_repetition_plus1:126,SearchSelector_option1:127,WHERE:128,OF:129,CLASS:130,NUMBER:131,STRING:132,SLASH:133,VERTEX:134,EDGE:135,EXCLAMATION:136,SHARP:137,MODULO:138,GT:139,LT:140,GTGT:141,LTLT:142,DOLLAR:143,Json:144,AT:145,SET:146,SetColumnsList:147,TO:148,VALUE:149,ROW:150,ExprList:151,COLON:152,PlusStar:153,NOT:154,SearchSelector_repetition2:155,IF:156,SearchSelector_repetition3:157,Aggregator:158,SearchSelector_repetition4:159,SearchSelector_group0:160,SearchSelector_repetition5:161,UNION:162,SearchSelectorList:163,ALL:164,SearchSelector_repetition6:165,ANY:166,SearchSelector_repetition7:167,INTERSECT:168,EXCEPT:169,AND:170,OR:171,PATH:172,RETURN:173,ResultColumns:174,REPEAT:175,SearchSelector_repetition8:176,SearchSelectorList_repetition0:177,SearchSelectorList_repetition1:178,PLUS:179,STAR:180,QUESTION:181,SearchFrom:182,FROM:183,SelectModifier:184,DISTINCT:185,TopClause:186,UNIQUE:187,SelectClause_option0:188,SELECT:189,COLUMN:190,MATRIX:191,TEXTSTRING:192,INDEX:193,RECORDSET:194,TOP:195,NumValue:196,TopClause_option0:197,INTO:198,Table:199,FuncValue:200,ParamValue:201,VarValue:202,FromTablesList:203,JoinTablesList:204,ApplyClause:205,CROSS:206,APPLY:207,OUTER:208,FromTable:209,FromTable_option0:210,FromTable_option1:211,INDEXED:212,INSERTED:213,FromString:214,JoinTable:215,JoinMode:216,JoinTableAs:217,OnClause:218,JoinTableAs_option0:219,JoinTableAs_option1:220,JoinModeMode:221,NATURAL:222,JOIN:223,INNER:224,LEFT:225,RIGHT:226,FULL:227,SEMI:228,ANTI:229,ON:230,USING:231,GROUP:232,GroupExpressionsList:233,HavingClause:234,GroupExpression:235,GROUPING:236,ROLLUP:237,CUBE:238,HAVING:239,CORRESPONDING:240,OrderExpression:241,DIRECTION:242,COLLATE:243,NOCASE:244,LIMIT:245,OffsetClause:246,OFFSET:247,LimitClause_option0:248,FETCH:249,LimitClause_option1:250,LimitClause_option2:251,LimitClause_option3:252,ResultColumn:253,Star:254,AggrValue:255,Op:256,LogicValue:257,NullValue:258,ExistsValue:259,CaseValue:260,CastClause:261,ArrayValue:262,NewClause:263,Expression_group0:264,CURRENT_TIMESTAMP:265,JAVASCRIPT:266,CREATE:267,FUNCTION:268,AGGREGATE:269,NEW:270,CAST:271,ColumnType:272,CONVERT:273,PrimitiveValue:274,OverClause:275,OVER:276,OverPartitionClause:277,OverOrderByClause:278,PARTITION:279,SUM:280,COUNT:281,MIN:282,MAX:283,AVG:284,FIRST:285,LAST:286,AGGR:287,ARRAY:288,FuncValue_option0:289,REPLACE:290,DATEADD:291,DATEDIFF:292,INTERVAL:293,TRUE:294,FALSE:295,NSTRING:296,NULL:297,EXISTS:298,ARRAYLBRA:299,RBRA:300,ParamValue_group0:301,BRAQUESTION:302,CASE:303,WhensList:304,ElseClause:305,END:306,When:307,WHEN:308,THEN:309,ELSE:310,REGEXP:311,TILDA:312,GLOB:313,ESCAPE:314,NOT_LIKE:315,BARBAR:316,MINUS:317,AMPERSAND:318,BAR:319,GE:320,LE:321,EQEQ:322,EQEQEQ:323,NE:324,NEEQEQ:325,NEEQEQEQ:326,CondOp:327,AllSome:328,ColFunc:329,BETWEEN:330,NOT_BETWEEN:331,IS:332,DOUBLECOLON:333,SOME:334,UPDATE:335,SetColumn:336,SetColumn_group0:337,DELETE:338,INSERT:339,Into:340,Values:341,ValuesListsList:342,DEFAULT:343,VALUES:344,ValuesList:345,Value:346,DateValue:347,TemporaryClause:348,TableClass:349,IfNotExists:350,CreateTableDefClause:351,CreateTableOptionsClause:352,TABLE:353,CreateTableOptions:354,CreateTableOption:355,IDENTITY:356,TEMP:357,ColumnDefsList:358,ConstraintsList:359,Constraint:360,ConstraintName:361,PrimaryKey:362,ForeignKey:363,UniqueKey:364,IndexKey:365,Check:366,CONSTRAINT:367,CHECK:368,PRIMARY:369,KEY:370,PrimaryKey_option0:371,ColsList:372,FOREIGN:373,REFERENCES:374,ForeignKey_option0:375,OnForeignKeyClause:376,ParColsList:377,OnDeleteClause:378,OnUpdateClause:379,NO:380,ACTION:381,UniqueKey_option0:382,UniqueKey_option1:383,ColumnDef:384,ColumnConstraintsClause:385,ColumnConstraints:386,SingularColumnType:387,NumberMax:388,ENUM:389,MAXNUM:390,ColumnConstraintsList:391,ColumnConstraint:392,ParLiteral:393,ColumnConstraint_option0:394,ColumnConstraint_option1:395,DROP:396,DropTable_group0:397,IfExists:398,TablesList:399,ALTER:400,RENAME:401,ADD:402,MODIFY:403,ATTACH:404,DATABASE:405,DETACH:406,AsClause:407,USE:408,SHOW:409,VIEW:410,CreateView_option0:411,CreateView_option1:412,SubqueryRestriction:413,READ:414,ONLY:415,OPTION:416,SOURCE:417,ASSERT:418,JsonObject:419,ATLBRA:420,JsonArray:421,JsonValue:422,JsonPrimitiveValue:423,LCUR:424,JsonPropertiesList:425,RCUR:426,JsonElementsList:427,JsonProperty:428,OnOff:429,SetPropsList:430,AtDollar:431,SetProp:432,OFF:433,COMMIT:434,TRANSACTION:435,ROLLBACK:436,BEGIN:437,ElseStatement:438,WHILE:439,CONTINUE:440,BREAK:441,PRINT:442,REQUIRE:443,StringValuesList:444,PluginsList:445,Plugin:446,ECHO:447,DECLARE:448,DeclaresList:449,DeclareItem:450,TRUNCATE:451,MERGE:452,MergeInto:453,MergeUsing:454,MergeOn:455,MergeMatchedList:456,OutputClause:457,MergeMatched:458,MergeNotMatched:459,MATCHED:460,MergeMatchedAction:461,MergeNotMatchedAction:462,TARGET:463,OUTPUT:464,CreateVertex_option0:465,CreateVertex_option1:466,CreateVertex_option2:467,CreateVertexSet:468,SharpValue:469,CONTENT:470,CreateEdge_option0:471,GRAPH:472,GraphList:473,GraphVertexEdge:474,GraphElement:475,GraphVertexEdge_option0:476,GraphVertexEdge_option1:477,GraphElementVar:478,GraphVertexEdge_option2:479,GraphVertexEdge_option3:480,GraphVertexEdge_option4:481,GraphVar:482,GraphAsClause:483,GraphAtClause:484,GraphElement2:485,GraphElement2_option0:486,GraphElement2_option1:487,GraphElement2_option2:488,GraphElement2_option3:489,GraphElement_option0:490,GraphElement_option1:491,GraphElement_option2:492,SharpLiteral:493,GraphElement_option3:494,GraphElement_option4:495,GraphElement_option5:496,ColonLiteral:497,DeleteVertex:498,DeleteVertex_option0:499,DeleteEdge:500,DeleteEdge_option0:501,DeleteEdge_option1:502,DeleteEdge_option2:503,Term:504,COLONDASH:505,TermsList:506,QUESTIONDASH:507,CALL:508,TRIGGER:509,BeforeAfter:510,InsertDeleteUpdate:511,CreateTrigger_option0:512,CreateTrigger_option1:513,BEFORE:514,AFTER:515,INSTEAD:516,REINDEX:517,A:518,ABSENT:519,ABSOLUTE:520,ACCORDING:521,ADA:522,ADMIN:523,ALWAYS:524,ASC:525,ASSERTION:526,ASSIGNMENT:527,ATTRIBUTE:528,ATTRIBUTES:529,BASE64:530,BERNOULLI:531,BLOCKED:532,BOM:533,BREADTH:534,C:535,CASCADE:536,CATALOG:537,CATALOG_NAME:538,CHAIN:539,CHARACTERISTICS:540,CHARACTERS:541,CHARACTER_SET_CATALOG:542,CHARACTER_SET_NAME:543,CHARACTER_SET_SCHEMA:544,CLASS_ORIGIN:545,COBOL:546,COLLATION:547,COLLATION_CATALOG:548,COLLATION_NAME:549,COLLATION_SCHEMA:550,COLUMNS:551,COLUMN_NAME:552,COMMAND_FUNCTION:553,COMMAND_FUNCTION_CODE:554,COMMITTED:555,CONDITION_NUMBER:556,CONNECTION:557,CONNECTION_NAME:558,CONSTRAINTS:559,CONSTRAINT_CATALOG:560,CONSTRAINT_NAME:561,CONSTRAINT_SCHEMA:562,CONSTRUCTOR:563,CONTROL:564,CURSOR_NAME:565,DATA:566,DATETIME_INTERVAL_CODE:567,DATETIME_INTERVAL_PRECISION:568,DB:569,DEFAULTS:570,DEFERRABLE:571,DEFERRED:572,DEFINED:573,DEFINER:574,DEGREE:575,DEPTH:576,DERIVED:577,DESC:578,DESCRIPTOR:579,DIAGNOSTICS:580,DISPATCH:581,DOCUMENT:582,DOMAIN:583,DYNAMIC_FUNCTION:584,DYNAMIC_FUNCTION_CODE:585,EMPTY:586,ENCODING:587,ENFORCED:588,EXCLUDE:589,EXCLUDING:590,EXPRESSION:591,FILE:592,FINAL:593,FLAG:594,FOLLOWING:595,FORTRAN:596,FOUND:597,FS:598,G:599,GENERAL:600,GENERATED:601,GO:602,GOTO:603,GRANTED:604,HEX:605,HIERARCHY:606,ID:607,IGNORE:608,IMMEDIATE:609,IMMEDIATELY:610,IMPLEMENTATION:611,INCLUDING:612,INCREMENT:613,INDENT:614,INITIALLY:615,INPUT:616,INSTANCE:617,INSTANTIABLE:618,INTEGRITY:619,INVOKER:620,ISOLATION:621,K:622,KEY_MEMBER:623,KEY_TYPE:624,LENGTH:625,LEVEL:626,LIBRARY:627,LINK:628,LOCATION:629,LOCATOR:630,M:631,MAP:632,MAPPING:633,MAXVALUE:634,MESSAGE_LENGTH:635,MESSAGE_OCTET_LENGTH:636,MESSAGE_TEXT:637,MINVALUE:638,MORE:639,MUMPS:640,NAME:641,NAMES:642,NAMESPACE:643,NESTING:644,NEXT:645,NFC:646,NFD:647,NFKC:648,NFKD:649,NIL:650,NORMALIZED:651,NULLABLE:652,NULLS:653,OBJECT:654,OCTETS:655,OPTIONS:656,ORDERING:657,ORDINALITY:658,OTHERS:659,OVERRIDING:660,P:661,PAD:662,PARAMETER_MODE:663,PARAMETER_NAME:664,PARAMETER_ORDINAL_POSITION:665,PARAMETER_SPECIFIC_CATALOG:666,PARAMETER_SPECIFIC_NAME:667,PARAMETER_SPECIFIC_SCHEMA:668,PARTIAL:669,PASCAL:670,PASSING:671,PASSTHROUGH:672,PERMISSION:673,PLACING:674,PLI:675,PRECEDING:676,PRESERVE:677,PRIOR:678,PRIVILEGES:679,PUBLIC:680,RECOVERY:681,RELATIVE:682,REPEATABLE:683,REQUIRING:684,RESPECT:685,RESTART:686,RESTORE:687,RESTRICT:688,RETURNED_CARDINALITY:689,RETURNED_LENGTH:690,RETURNED_OCTET_LENGTH:691,RETURNED_SQLSTATE:692,RETURNING:693,ROLE:694,ROUTINE:695,ROUTINE_CATALOG:696,ROUTINE_NAME:697,ROUTINE_SCHEMA:698,ROW_COUNT:699,SCALE:700,SCHEMA:701,SCHEMA_NAME:702,SCOPE_CATALOG:703,SCOPE_NAME:704,SCOPE_SCHEMA:705,SECTION:706,SECURITY:707,SELECTIVE:708,SELF:709,SEQUENCE:710,SERIALIZABLE:711,SERVER:712,SERVER_NAME:713,SESSION:714,SETS:715,SIMPLE:716,SIZE:717,SPACE:718,SPECIFIC_NAME:719,STANDALONE:720,STATE:721,STATEMENT:722,STRIP:723,STRUCTURE:724,STYLE:725,SUBCLASS_ORIGIN:726,T:727,TABLE_NAME:728,TEMPORARY:729,TIES:730,TOKEN:731,TOP_LEVEL_COUNT:732,TRANSACTIONS_COMMITTED:733,TRANSACTIONS_ROLLED_BACK:734,TRANSACTION_ACTIVE:735,TRANSFORM:736,TRANSFORMS:737,TRIGGER_CATALOG:738,TRIGGER_NAME:739,TRIGGER_SCHEMA:740,TYPE:741,UNBOUNDED:742,UNCOMMITTED:743,UNDER:744,UNLINK:745,UNNAMED:746,UNTYPED:747,URI:748,USAGE:749,USER_DEFINED_TYPE_CATALOG:750,USER_DEFINED_TYPE_CODE:751,USER_DEFINED_TYPE_NAME:752,USER_DEFINED_TYPE_SCHEMA:753,VALID:754,VERSION:755,WHITESPACE:756,WORK:757,WRAPPER:758,WRITE:759,XMLDECLARATION:760,XMLSCHEMA:761,YES:762,ZONE:763,SEMICOLON:764,PERCENT:765,ROWS:766,FuncValue_option0_group0:767,$accept:0,$end:1},terminals_:{2:"error",4:"LITERAL",5:"BRALITERAL",10:"EOF",14:"EXPLAIN",15:"QUERY",16:"PLAN",53:"EndTransaction",72:"WITH",74:"COMMA",76:"AS",77:"LPAR",78:"RPAR",89:"SEARCH",93:"PIVOT",95:"FOR",98:"UNPIVOT",99:"IN",107:"REMOVE",112:"LIKE",115:"ARROW",116:"DOT",118:"ORDER",119:"BY",122:"DOTDOT",123:"CARET",124:"EQ",128:"WHERE",129:"OF",130:"CLASS",131:"NUMBER",132:"STRING",133:"SLASH",134:"VERTEX",135:"EDGE",136:"EXCLAMATION",137:"SHARP",138:"MODULO",139:"GT",140:"LT",141:"GTGT",142:"LTLT",143:"DOLLAR",145:"AT",146:"SET",148:"TO",149:"VALUE",150:"ROW",152:"COLON",154:"NOT",156:"IF",162:"UNION",164:"ALL",166:"ANY",168:"INTERSECT",169:"EXCEPT",170:"AND",171:"OR",172:"PATH",173:"RETURN",175:"REPEAT",179:"PLUS",180:"STAR",181:"QUESTION",183:"FROM",185:"DISTINCT",187:"UNIQUE",189:"SELECT",190:"COLUMN",191:"MATRIX",192:"TEXTSTRING",193:"INDEX",194:"RECORDSET",195:"TOP",198:"INTO",206:"CROSS",207:"APPLY",208:"OUTER",212:"INDEXED",213:"INSERTED",222:"NATURAL",223:"JOIN",224:"INNER",225:"LEFT",226:"RIGHT",227:"FULL",228:"SEMI",229:"ANTI",230:"ON",231:"USING",232:"GROUP",236:"GROUPING",237:"ROLLUP",238:"CUBE",239:"HAVING",240:"CORRESPONDING",242:"DIRECTION",243:"COLLATE",244:"NOCASE",245:"LIMIT",247:"OFFSET",249:"FETCH",265:"CURRENT_TIMESTAMP",266:"JAVASCRIPT",267:"CREATE",268:"FUNCTION",269:"AGGREGATE",270:"NEW",271:"CAST",273:"CONVERT",276:"OVER",279:"PARTITION",280:"SUM",281:"COUNT",282:"MIN",283:"MAX",284:"AVG",285:"FIRST",286:"LAST",287:"AGGR",288:"ARRAY",290:"REPLACE",291:"DATEADD",292:"DATEDIFF",293:"INTERVAL",294:"TRUE",295:"FALSE",296:"NSTRING",297:"NULL",298:"EXISTS",299:"ARRAYLBRA",300:"RBRA",302:"BRAQUESTION",303:"CASE",306:"END",308:"WHEN",309:"THEN",310:"ELSE",311:"REGEXP",312:"TILDA",313:"GLOB",314:"ESCAPE",315:"NOT_LIKE",316:"BARBAR",317:"MINUS",318:"AMPERSAND",319:"BAR",320:"GE",321:"LE",322:"EQEQ",323:"EQEQEQ",324:"NE",325:"NEEQEQ",326:"NEEQEQEQ",330:"BETWEEN",331:"NOT_BETWEEN",332:"IS",333:"DOUBLECOLON",334:"SOME",335:"UPDATE",338:"DELETE",339:"INSERT",343:"DEFAULT",344:"VALUES",347:"DateValue",353:"TABLE",356:"IDENTITY",357:"TEMP",367:"CONSTRAINT",368:"CHECK",369:"PRIMARY",370:"KEY",373:"FOREIGN",374:"REFERENCES",380:"NO",381:"ACTION",386:"ColumnConstraints",389:"ENUM",390:"MAXNUM",396:"DROP",400:"ALTER",401:"RENAME",402:"ADD",403:"MODIFY",404:"ATTACH",405:"DATABASE",406:"DETACH",408:"USE",409:"SHOW",410:"VIEW",414:"READ",415:"ONLY",416:"OPTION",417:"SOURCE",418:"ASSERT",420:"ATLBRA",424:"LCUR",426:"RCUR",433:"OFF",434:"COMMIT",435:"TRANSACTION",436:"ROLLBACK",437:"BEGIN",439:"WHILE",440:"CONTINUE",441:"BREAK",442:"PRINT",443:"REQUIRE",447:"ECHO",448:"DECLARE",451:"TRUNCATE",452:"MERGE",460:"MATCHED",463:"TARGET",464:"OUTPUT",470:"CONTENT",472:"GRAPH",505:"COLONDASH",507:"QUESTIONDASH",508:"CALL",509:"TRIGGER",514:"BEFORE",515:"AFTER",516:"INSTEAD",517:"REINDEX",518:"A",519:"ABSENT",520:"ABSOLUTE",521:"ACCORDING",522:"ADA",523:"ADMIN",524:"ALWAYS",525:"ASC",526:"ASSERTION",527:"ASSIGNMENT",528:"ATTRIBUTE",529:"ATTRIBUTES",530:"BASE64",531:"BERNOULLI",532:"BLOCKED",533:"BOM",534:"BREADTH",535:"C",536:"CASCADE",537:"CATALOG",538:"CATALOG_NAME",539:"CHAIN",540:"CHARACTERISTICS",541:"CHARACTERS",542:"CHARACTER_SET_CATALOG",543:"CHARACTER_SET_NAME",544:"CHARACTER_SET_SCHEMA",545:"CLASS_ORIGIN",546:"COBOL",547:"COLLATION",548:"COLLATION_CATALOG",549:"COLLATION_NAME",550:"COLLATION_SCHEMA",551:"COLUMNS",552:"COLUMN_NAME", -553:"COMMAND_FUNCTION",554:"COMMAND_FUNCTION_CODE",555:"COMMITTED",556:"CONDITION_NUMBER",557:"CONNECTION",558:"CONNECTION_NAME",559:"CONSTRAINTS",560:"CONSTRAINT_CATALOG",561:"CONSTRAINT_NAME",562:"CONSTRAINT_SCHEMA",563:"CONSTRUCTOR",564:"CONTROL",565:"CURSOR_NAME",566:"DATA",567:"DATETIME_INTERVAL_CODE",568:"DATETIME_INTERVAL_PRECISION",569:"DB",570:"DEFAULTS",571:"DEFERRABLE",572:"DEFERRED",573:"DEFINED",574:"DEFINER",575:"DEGREE",576:"DEPTH",577:"DERIVED",578:"DESC",579:"DESCRIPTOR",580:"DIAGNOSTICS",581:"DISPATCH",582:"DOCUMENT",583:"DOMAIN",584:"DYNAMIC_FUNCTION",585:"DYNAMIC_FUNCTION_CODE",586:"EMPTY",587:"ENCODING",588:"ENFORCED",589:"EXCLUDE",590:"EXCLUDING",591:"EXPRESSION",592:"FILE",593:"FINAL",594:"FLAG",595:"FOLLOWING",596:"FORTRAN",597:"FOUND",598:"FS",599:"G",600:"GENERAL",601:"GENERATED",602:"GO",603:"GOTO",604:"GRANTED",605:"HEX",606:"HIERARCHY",607:"ID",608:"IGNORE",609:"IMMEDIATE",610:"IMMEDIATELY",611:"IMPLEMENTATION",612:"INCLUDING",613:"INCREMENT",614:"INDENT",615:"INITIALLY",616:"INPUT",617:"INSTANCE",618:"INSTANTIABLE",619:"INTEGRITY",620:"INVOKER",621:"ISOLATION",622:"K",623:"KEY_MEMBER",624:"KEY_TYPE",625:"LENGTH",626:"LEVEL",627:"LIBRARY",628:"LINK",629:"LOCATION",630:"LOCATOR",631:"M",632:"MAP",633:"MAPPING",634:"MAXVALUE",635:"MESSAGE_LENGTH",636:"MESSAGE_OCTET_LENGTH",637:"MESSAGE_TEXT",638:"MINVALUE",639:"MORE",640:"MUMPS",641:"NAME",642:"NAMES",643:"NAMESPACE",644:"NESTING",645:"NEXT",646:"NFC",647:"NFD",648:"NFKC",649:"NFKD",650:"NIL",651:"NORMALIZED",652:"NULLABLE",653:"NULLS",654:"OBJECT",655:"OCTETS",656:"OPTIONS",657:"ORDERING",658:"ORDINALITY",659:"OTHERS",660:"OVERRIDING",661:"P",662:"PAD",663:"PARAMETER_MODE",664:"PARAMETER_NAME",665:"PARAMETER_ORDINAL_POSITION",666:"PARAMETER_SPECIFIC_CATALOG",667:"PARAMETER_SPECIFIC_NAME",668:"PARAMETER_SPECIFIC_SCHEMA",669:"PARTIAL",670:"PASCAL",671:"PASSING",672:"PASSTHROUGH",673:"PERMISSION",674:"PLACING",675:"PLI",676:"PRECEDING",677:"PRESERVE",678:"PRIOR",679:"PRIVILEGES",680:"PUBLIC",681:"RECOVERY",682:"RELATIVE",683:"REPEATABLE",684:"REQUIRING",685:"RESPECT",686:"RESTART",687:"RESTORE",688:"RESTRICT",689:"RETURNED_CARDINALITY",690:"RETURNED_LENGTH",691:"RETURNED_OCTET_LENGTH",692:"RETURNED_SQLSTATE",693:"RETURNING",694:"ROLE",695:"ROUTINE",696:"ROUTINE_CATALOG",697:"ROUTINE_NAME",698:"ROUTINE_SCHEMA",699:"ROW_COUNT",700:"SCALE",701:"SCHEMA",702:"SCHEMA_NAME",703:"SCOPE_CATALOG",704:"SCOPE_NAME",705:"SCOPE_SCHEMA",706:"SECTION",707:"SECURITY",708:"SELECTIVE",709:"SELF",710:"SEQUENCE",711:"SERIALIZABLE",712:"SERVER",713:"SERVER_NAME",714:"SESSION",715:"SETS",716:"SIMPLE",717:"SIZE",718:"SPACE",719:"SPECIFIC_NAME",720:"STANDALONE",721:"STATE",722:"STATEMENT",723:"STRIP",724:"STRUCTURE",725:"STYLE",726:"SUBCLASS_ORIGIN",727:"T",728:"TABLE_NAME",729:"TEMPORARY",730:"TIES",731:"TOKEN",732:"TOP_LEVEL_COUNT",733:"TRANSACTIONS_COMMITTED",734:"TRANSACTIONS_ROLLED_BACK",735:"TRANSACTION_ACTIVE",736:"TRANSFORM",737:"TRANSFORMS",738:"TRIGGER_CATALOG",739:"TRIGGER_NAME",740:"TRIGGER_SCHEMA",741:"TYPE",742:"UNBOUNDED",743:"UNCOMMITTED",744:"UNDER",745:"UNLINK",746:"UNNAMED",747:"UNTYPED",748:"URI",749:"USAGE",750:"USER_DEFINED_TYPE_CATALOG",751:"USER_DEFINED_TYPE_CODE",752:"USER_DEFINED_TYPE_NAME",753:"USER_DEFINED_TYPE_SCHEMA",754:"VALID",755:"VERSION",756:"WHITESPACE",757:"WORK",758:"WRAPPER",759:"WRITE",760:"XMLDECLARATION",761:"XMLSCHEMA",762:"YES",763:"ZONE",764:"SEMICOLON",765:"PERCENT",766:"ROWS"},productions_:[0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[241,1],[241,2],[241,3],[241,4],[87,0],[87,3],[87,8],[246,0],[246,2],[174,3],[174,1],[253,3],[253,2],[253,3],[253,2],[253,3],[253,2],[253,1],[254,5],[254,3],[254,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[263,2],[263,2],[261,6],[261,8],[261,6],[261,8],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[255,5],[255,6],[255,6],[275,0],[275,4],[275,4],[275,5],[277,3],[278,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[257,1],[257,1],[113,1],[113,1],[258,1],[202,2],[259,4],[262,3],[201,2],[201,2],[201,1],[201,1],[260,5],[260,4],[304,2],[304,1],[307,4],[305,2],[305,0],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,6],[256,6],[256,3],[256,3],[256,2],[256,2],[256,2],[256,2],[256,2],[256,3],[256,5],[256,6],[256,5],[256,6],[256,4],[256,5],[256,3],[256,4],[256,3],[256,4],[256,3],[256,3],[256,3],[256,3],[256,3],[329,1],[329,1],[329,4],[327,1],[327,1],[327,1],[327,1],[327,1],[327,1],[328,1],[328,1],[328,1],[55,6],[55,4],[147,1],[147,3],[336,3],[336,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[341,1],[341,1],[340,0],[340,1],[342,3],[342,1],[342,1],[342,5],[342,3],[342,3],[345,1],[345,3],[346,1],[346,1],[346,1],[346,1],[346,1],[346,1],[100,1],[100,3],[24,9],[24,5],[349,1],[349,1],[352,0],[352,1],[354,2],[354,1],[355,1],[355,3],[355,3],[355,3],[348,0],[348,1],[350,0],[350,3],[351,3],[351,1],[351,2],[359,1],[359,3],[360,2],[360,2],[360,2],[360,2],[360,2],[361,0],[361,2],[366,4],[362,6],[363,9],[377,3],[376,0],[376,2],[378,4],[379,4],[364,6],[365,5],[365,5],[372,1],[372,1],[372,3],[372,3],[358,1],[358,3],[384,3],[384,2],[384,1],[387,6],[387,4],[387,1],[387,4],[272,2],[272,1],[388,1],[388,1],[385,0],[385,1],[391,2],[391,1],[393,3],[392,2],[392,5],[392,3],[392,6],[392,1],[392,2],[392,4],[392,2],[392,1],[392,2],[392,1],[392,1],[392,3],[392,5],[33,4],[399,3],[399,1],[398,0],[398,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[407,0],[407,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[413,3],[413,3],[413,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[422,1],[422,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,3],[419,3],[419,4],[419,2],[421,2],[421,3],[421,1],[425,3],[425,1],[428,3],[428,3],[428,3],[427,3],[427,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[431,1],[431,1],[430,3],[430,2],[432,1],[432,1],[432,3],[429,1],[429,1],[51,2],[52,2],[50,2],[35,4],[35,3],[438,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[446,1],[446,1],[69,2],[444,3],[444,1],[445,3],[445,1],[28,2],[449,1],[449,3],[450,3],[450,4],[450,5],[450,6],[46,3],[37,6],[453,1],[453,2],[454,2],[455,2],[456,2],[456,2],[456,1],[456,1],[458,4],[458,6],[461,1],[461,3],[459,5],[459,7],[459,7],[459,9],[459,7],[459,9],[462,3],[462,6],[462,3],[462,6],[457,0],[457,2],[457,5],[457,4],[457,7],[27,6],[469,2],[468,0],[468,2],[468,2],[468,1],[26,8],[23,3],[23,4],[473,3],[473,1],[474,3],[474,7],[474,6],[474,3],[474,4],[478,1],[478,1],[482,2],[483,3],[484,2],[485,4],[475,4],[475,3],[475,2],[475,1],[497,2],[493,2],[493,2],[498,4],[500,6],[67,3],[67,2],[506,3],[506,1],[504,1],[504,4],[68,2],[20,2],[48,9],[48,8],[48,9],[510,0],[510,1],[510,1],[510,1],[510,2],[511,1],[511,1],[511,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[248,0],[248,1],[250,0],[250,1],[251,0],[251,1],[252,0],[252,1],[264,1],[264,1],[767,1],[767,1],[289,0],[289,1],[301,1],[301,1],[337,1],[337,1],[371,0],[371,1],[375,0],[375,1],[382,0],[382,1],[383,0],[383,1],[394,0],[394,1],[395,0],[395,1],[397,1],[397,1],[411,0],[411,1],[412,0],[412,1],[465,0],[465,1],[466,0],[466,1],[467,0],[467,1],[471,0],[471,1],[476,0],[476,1],[477,0],[477,1],[479,0],[479,1],[480,0],[480,1],[481,0],[481,1],[486,0],[486,1],[487,0],[487,1],[488,0],[488,1],[489,0],[489,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[499,0],[499,2],[501,0],[501,2],[502,0],[502,2],[503,0],[503,2],[512,0],[512,1],[513,0],[513,1]],performAction:function(e,t,r,n,a,s,i){var o=s.length-1;switch(a){case 1:T.options.casesensitive?this.$=s[o]:this.$=s[o].toLowerCase();break;case 2:this.$=O(s[o].substr(1,s[o].length-2));break;case 3:this.$=s[o].toLowerCase();break;case 4:this.$=s[o];break;case 5:this.$=s[o]?s[o-1]+" "+s[o]:s[o-1];break;case 6:return new n.Statements({statements:s[o-1]});case 7:this.$=s[o-2],s[o]&&s[o-2].push(s[o]);break;case 8:case 9:case 70:case 80:case 85:case 143:case 177:case 205:case 206:case 242:case 261:case 273:case 354:case 372:case 451:case 474:case 475:case 479:case 487:case 528:case 529:case 566:case 649:case 659:case 683:case 685:case 687:case 701:case 702:case 732:case 756:this.$=[s[o]];break;case 10:case 11:this.$=s[o],s[o].explain=!0;break;case 12:this.$=s[o],n.exists&&(this.$.exists=n.exists),delete n.exists,n.queries&&(this.$.queries=n.queries),delete n.queries;break;case 13:case 162:case 172:case 237:case 238:case 240:case 248:case 250:case 259:case 267:case 270:case 375:case 491:case 501:case 503:case 515:case 521:case 522:case 567:this.$=void 0;break;case 68:this.$=new n.WithSelect({withs:s[o-1],select:s[o]});break;case 69:case 565:s[o-2].push(s[o]),this.$=s[o-2];break;case 71:this.$={name:s[o-4],select:s[o-1]};break;case 72:n.extend(this.$,s[o-9]),n.extend(this.$,s[o-8]),n.extend(this.$,s[o-7]),n.extend(this.$,s[o-6]),n.extend(this.$,s[o-5]),n.extend(this.$,s[o-4]),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1]),n.extend(this.$,s[o]),this.$=s[o-9];break;case 73:this.$=new n.Search({selectors:s[o-2],from:s[o]}),n.extend(this.$,s[o-1]);break;case 74:this.$={pivot:{expr:s[o-5],columnid:s[o-3],inlist:s[o-2],as:s[o]}};break;case 75:this.$={unpivot:{tocolumnid:s[o-8],forcolumnid:s[o-6],inlist:s[o-3],as:s[o]}};break;case 76:case 520:case 549:case 585:case 619:case 636:case 637:case 640:case 662:this.$=s[o-1];break;case 77:case 78:case 86:case 147:case 185:case 247:case 280:case 288:case 289:case 290:case 291:case 292:case 293:case 294:case 295:case 296:case 297:case 298:case 299:case 300:case 301:case 304:case 305:case 320:case 321:case 322:case 323:case 324:case 325:case 374:case 440:case 441:case 442:case 443:case 444:case 445:case 516:case 542:case 546:case 548:case 623:case 624:case 625:case 626:case 627:case 628:case 632:case 634:case 635:case 644:case 660:case 661:case 723:case 738:case 739:case 741:case 742:case 748:case 749:this.$=s[o];break;case 79:case 84:case 731:case 755:this.$=s[o-2],this.$.push(s[o]);break;case 81:this.$={expr:s[o]};break;case 82:this.$={expr:s[o-2],as:s[o]};break;case 83:this.$={removecolumns:s[o]};break;case 87:this.$={like:s[o]};break;case 90:case 104:this.$={srchid:"PROP",args:[s[o]]};break;case 91:this.$={srchid:"ORDERBY",args:s[o-1]};break;case 92:var u=s[o-1];u||(u="ASC"),this.$={srchid:"ORDERBY",args:[{expression:new n.Column({columnid:"_"}),direction:u}]};break;case 93:this.$={srchid:"PARENT"};break;case 94:this.$={srchid:"APROP",args:[s[o]]};break;case 95:this.$={selid:"ROOT"};break;case 96:this.$={srchid:"EQ",args:[s[o]]};break;case 97:this.$={srchid:"LIKE",args:[s[o]]};break;case 98:case 99:this.$={selid:"WITH",args:s[o-1]};break;case 100:this.$={srchid:s[o-3].toUpperCase(),args:s[o-1]};break;case 101:this.$={srchid:"WHERE",args:[s[o-1]]};break;case 102:this.$={selid:"OF",args:[s[o-1]]};break;case 103:this.$={srchid:"CLASS",args:[s[o-1]]};break;case 105:this.$={srchid:"NAME",args:[s[o].substr(1,s[o].length-2)]};break;case 106:this.$={srchid:"CHILD"};break;case 107:this.$={srchid:"VERTEX"};break;case 108:this.$={srchid:"EDGE"};break;case 109:this.$={srchid:"REF"};break;case 110:this.$={srchid:"SHARP",args:[s[o]]};break;case 111:this.$={srchid:"ATTR",args:void 0===s[o]?void 0:[s[o]]};break;case 112:this.$={srchid:"ATTR"};break;case 113:this.$={srchid:"OUT"};break;case 114:this.$={srchid:"IN"};break;case 115:this.$={srchid:"OUTOUT"};break;case 116:this.$={srchid:"ININ"};break;case 117:this.$={srchid:"CONTENT"};break;case 118:this.$={srchid:"EX",args:[new n.Json({value:s[o]})]};break;case 119:this.$={srchid:"AT",args:[s[o]]};break;case 120:this.$={srchid:"AS",args:[s[o]]};break;case 121:this.$={srchid:"SET",args:s[o-1]};break;case 122:this.$={selid:"TO",args:[s[o]]};break;case 123:this.$={srchid:"VALUE"};break;case 124:this.$={srchid:"ROW",args:s[o-1]};break;case 125:this.$={srchid:"CLASS",args:[s[o]]};break;case 126:this.$={selid:s[o],args:[s[o-1]]};break;case 127:this.$={selid:"NOT",args:s[o-1]};break;case 128:this.$={selid:"IF",args:s[o-1]};break;case 129:this.$={selid:s[o-3],args:s[o-1]};break;case 130:this.$={selid:"DISTINCT",args:s[o-1]};break;case 131:this.$={selid:"UNION",args:s[o-1]};break;case 132:this.$={selid:"UNIONALL",args:s[o-1]};break;case 133:this.$={selid:"ALL",args:[s[o-1]]};break;case 134:this.$={selid:"ANY",args:[s[o-1]]};break;case 135:this.$={selid:"INTERSECT",args:s[o-1]};break;case 136:this.$={selid:"EXCEPT",args:s[o-1]};break;case 137:this.$={selid:"AND",args:s[o-1]};break;case 138:this.$={selid:"OR",args:s[o-1]};break;case 139:this.$={selid:"PATH",args:[s[o-1]]};break;case 140:this.$={srchid:"RETURN",args:s[o-1]};break;case 141:this.$={selid:"REPEAT",sels:s[o-3],args:s[o-1]};break;case 142:this.$=s[o-2],this.$.push(s[o]);break;case 144:this.$="PLUS";break;case 145:this.$="STAR";break;case 146:this.$="QUESTION";break;case 148:case 149:this.$=new n.Select({columns:s[o],distinct:!0}),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-1]);break;case 150:this.$=new n.Select({columns:s[o],all:!0}),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-1]);break;case 151:s[o]?(this.$=new n.Select({columns:s[o]}),n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1])):this.$=new n.Select({columns:[new n.Column({columnid:"_"})],modifier:"COLUMN"});break;case 152:"SELECT"==s[o]?this.$=void 0:this.$={modifier:s[o]};break;case 153:this.$={modifier:"VALUE"};break;case 154:this.$={modifier:"ROW"};break;case 155:this.$={modifier:"COLUMN"};break;case 156:this.$={modifier:"MATRIX"};break;case 157:this.$={modifier:"TEXTSTRING"};break;case 158:this.$={modifier:"INDEX"};break;case 159:this.$={modifier:"RECORDSET"};break;case 160:this.$={top:s[o-1],percent:void 0!==s[o]||void 0};break;case 161:this.$={top:s[o-1]};break;case 163:case 330:case 523:case 524:case 724:this.$=void 0;break;case 164:case 165:case 166:case 167:this.$={into:s[o]};break;case 168:var c=s[o];c=c.substr(1,c.length-2);var l=c.substr(-3).toUpperCase(),h=c.substr(-4).toUpperCase();"#"==c[0]?this.$={into:new n.FuncValue({funcid:"HTML",args:[new n.StringValue({value:c}),new n.Json({value:{headers:!0}})]})}:"XLS"==l||"CSV"==l||"TAB"==l?this.$={into:new n.FuncValue({funcid:l,args:[new n.StringValue({value:c}),new n.Json({value:{headers:!0}})]})}:"XLSX"!=h&&"JSON"!=h||(this.$={into:new n.FuncValue({funcid:h,args:[new n.StringValue({value:c}),new n.Json({value:{headers:!0}})]})});break;case 169:this.$={from:s[o]};break;case 170:this.$={from:s[o-1],joins:s[o]};break;case 171:this.$={from:s[o-2],joins:s[o-1]};break;case 173:this.$=new n.Apply({select:s[o-2],applymode:"CROSS",as:s[o]});break;case 174:this.$=new n.Apply({select:s[o-3],applymode:"CROSS",as:s[o]});break;case 175:this.$=new n.Apply({select:s[o-2],applymode:"OUTER",as:s[o]});break;case 176:this.$=new n.Apply({select:s[o-3],applymode:"OUTER",as:s[o]});break;case 178:case 243:case 452:case 530:case 531:this.$=s[o-2],s[o-2].push(s[o]);break;case 179:this.$=s[o-2],this.$.as=s[o];break;case 180:this.$=s[o-3],this.$.as=s[o];break;case 181:this.$=s[o-1],this.$.as="default";break;case 182:this.$=new n.Json({value:s[o-2]}),s[o-2].as=s[o];break;case 183:this.$=s[o-1],s[o-1].as=s[o];break;case 184:this.$=s[o-2],s[o-2].as=s[o];break;case 186:case 638:case 641:this.$=s[o-2];break;case 187:case 191:case 195:case 198:this.$=s[o-1],s[o-1].as=s[o];break;case 188:case 192:case 196:case 199:this.$=s[o-2],s[o-2].as=s[o];break;case 189:case 190:case 194:case 197:this.$=s[o],s[o].as="default";break;case 193:this.$={inserted:!0};break;case 200:var c=s[o];c=c.substr(1,c.length-2);var d,l=c.substr(-3).toUpperCase(),h=c.substr(-4).toUpperCase();if("#"==c[0])d=new n.FuncValue({funcid:"HTML",args:[new n.StringValue({value:c}),new n.Json({value:{headers:!0}})]});else if("XLS"==l||"CSV"==l||"TAB"==l)d=new n.FuncValue({funcid:l,args:[new n.StringValue({value:c}),new n.Json({value:{headers:!0}})]});else{if("XLSX"!=h&&"JSON"!=h)throw new Error("Unknown string in FROM clause");d=new n.FuncValue({funcid:h,args:[new n.StringValue({value:c}),new n.Json({value:{headers:!0}})]})}this.$=d;break;case 201:"INFORMATION_SCHEMA"==s[o-2]?this.$=new n.FuncValue({funcid:s[o-2],args:[new n.StringValue({value:s[o]})]}):this.$=new n.Table({databaseid:s[o-2],tableid:s[o]});break;case 202:this.$=new n.Table({tableid:s[o]});break;case 203:case 204:this.$=s[o-1],s[o-1].push(s[o]);break;case 207:this.$=new n.Join(s[o-2]),n.extend(this.$,s[o-1]),n.extend(this.$,s[o]);break;case 208:this.$={table:s[o]};break;case 209:this.$={table:s[o-1],as:s[o]};break;case 210:this.$={table:s[o-2],as:s[o]};break;case 211:this.$={json:new n.Json({value:s[o-2],as:s[o]})};break;case 212:this.$={param:s[o-1],as:s[o]};break;case 213:this.$={param:s[o-2],as:s[o]};break;case 214:this.$={select:s[o-2],as:s[o]};break;case 215:this.$={select:s[o-3],as:s[o]};break;case 216:this.$={func:s[o],as:"default"};break;case 217:this.$={func:s[o-1],as:s[o]};break;case 218:this.$={func:s[o-2],as:s[o]};break;case 219:this.$={variable:s[o],as:"default"};break;case 220:this.$={variable:s[o-1],as:s[o]};break;case 221:this.$={variable:s[o-2],as:s[o]};break;case 222:this.$={joinmode:s[o]};break;case 223:this.$={joinmode:s[o-1],natural:!0};break;case 224:case 225:this.$="INNER";break;case 226:case 227:this.$="LEFT";break;case 228:case 229:this.$="RIGHT";break;case 230:case 231:this.$="OUTER";break;case 232:this.$="SEMI";break;case 233:this.$="ANTI";break;case 234:this.$="CROSS";break;case 235:this.$={on:s[o]};break;case 236:case 697:this.$={using:s[o]};break;case 239:this.$={where:new n.Expression({expression:s[o]})};break;case 241:this.$={group:s[o-1]},n.extend(this.$,s[o]);break;case 244:this.$=new n.GroupExpression({type:"GROUPING SETS",group:s[o-1]});break;case 245:this.$=new n.GroupExpression({type:"ROLLUP",group:s[o-1]});break;case 246:this.$=new n.GroupExpression({type:"CUBE",group:s[o-1]});break;case 249:this.$={having:s[o]};break;case 251:this.$={union:s[o]};break;case 252:this.$={unionall:s[o]};break;case 253:this.$={except:s[o]};break;case 254:this.$={intersect:s[o]};break;case 255:this.$={union:s[o],corresponding:!0};break;case 256:this.$={unionall:s[o],corresponding:!0};break;case 257:this.$={except:s[o],corresponding:!0};break;case 258:this.$={intersect:s[o],corresponding:!0};break;case 260:this.$={order:s[o]};break;case 262:this.$=s[o-2],s[o-2].push(s[o]);break;case 263:this.$=new n.Expression({expression:s[o],direction:"ASC"});break;case 264:this.$=new n.Expression({expression:s[o-1],direction:s[o].toUpperCase()});break;case 265:this.$=new n.Expression({expression:s[o-2],direction:"ASC",nocase:!0});break;case 266:this.$=new n.Expression({expression:s[o-3],direction:s[o].toUpperCase(),nocase:!0});break;case 268:this.$={limit:s[o-1]},n.extend(this.$,s[o]);break;case 269:this.$={limit:s[o-2],offset:s[o-6]};break;case 271:this.$={offset:s[o]};break;case 272:case 509:case 533:case 648:case 658:case 682:case 684:case 688:s[o-2].push(s[o]),this.$=s[o-2];break;case 274:case 276:case 278:s[o-2].as=s[o],this.$=s[o-2];break;case 275:case 277:case 279:s[o-1].as=s[o],this.$=s[o-1];break;case 281:this.$=new n.Column({columid:s[o],tableid:s[o-2],databaseid:s[o-4]});break;case 282:this.$=new n.Column({columnid:s[o],tableid:s[o-2]});break;case 283:this.$=new n.Column({columnid:s[o]});break;case 284:this.$=new n.Column({columnid:s[o],tableid:s[o-2],databaseid:s[o-4]});break;case 285:case 286:this.$=new n.Column({columnid:s[o],tableid:s[o-2]});break;case 287:this.$=new n.Column({columnid:s[o]});break;case 302:this.$=new n.DomainValueValue;break;case 303:this.$=new n.Json({value:s[o]});break;case 306:case 307:case 308:n.queries||(n.queries=[]),n.queries.push(s[o-1]),s[o-1].queriesidx=n.queries.length,this.$=s[o-1];break;case 309:this.$=s[o];break;case 310:this.$=new n.FuncValue({funcid:"CURRENT_TIMESTAMP"});break;case 311:this.$=new n.JavaScript({value:s[o].substr(2,s[o].length-4)});break;case 312:this.$=new n.JavaScript({value:'alasql.fn["'+s[o-2]+'"] = '+s[o].substr(2,s[o].length-4)});break;case 313:this.$=new n.JavaScript({value:'alasql.aggr["'+s[o-2]+'"] = '+s[o].substr(2,s[o].length-4)});break;case 314:this.$=new n.FuncValue({funcid:s[o],newid:!0});break;case 315:this.$=s[o],n.extend(this.$,{newid:!0});break;case 316:this.$=new n.Convert({expression:s[o-3]}),n.extend(this.$,s[o-1]);break;case 317:this.$=new n.Convert({expression:s[o-5],style:s[o-1]}),n.extend(this.$,s[o-3]);break;case 318:this.$=new n.Convert({expression:s[o-1]}),n.extend(this.$,s[o-3]);break;case 319:this.$=new n.Convert({expression:s[o-3],style:s[o-1]}),n.extend(this.$,s[o-5]);break;case 326:this.$=new n.FuncValue({funcid:"CURRENT_TIMESTAMP"});break;case 327:s[o-2].length>1&&("MAX"==s[o-4].toUpperCase()||"MIN"==s[o-4].toUpperCase())?this.$=new n.FuncValue({funcid:s[o-4],args:s[o-2]}):this.$=new n.AggrValue({aggregatorid:s[o-4].toUpperCase(),expression:s[o-2].pop(),over:s[o]});break;case 328:this.$=new n.AggrValue({aggregatorid:s[o-5].toUpperCase(),expression:s[o-2],distinct:!0,over:s[o]});break;case 329:this.$=new n.AggrValue({aggregatorid:s[o-5].toUpperCase(),expression:s[o-2],over:s[o]});break;case 331:case 332:this.$=new n.Over,n.extend(this.$,s[o-1]);break;case 333:this.$=new n.Over,n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1]);break;case 334:this.$={partition:s[o]};break;case 335:this.$={order:s[o]};break;case 336:this.$="SUM";break;case 337:this.$="COUNT";break;case 338:this.$="MIN";break;case 339:case 544:this.$="MAX";break;case 340:this.$="AVG";break;case 341:this.$="FIRST";break;case 342:this.$="LAST";break;case 343:this.$="AGGR";break;case 344:this.$="ARRAY";break;case 345:var f=s[o-4],p=s[o-1];p.length>1&&("MIN"==f.toUpperCase()||"MAX"==f.toUpperCase())?this.$=new n.FuncValue({funcid:f,args:p}):T.aggr[s[o-4]]?this.$=new n.AggrValue({aggregatorid:"REDUCE",funcid:f,expression:p.pop(),distinct:"DISTINCT"==s[o-2]}):this.$=new n.FuncValue({funcid:f,args:p});break;case 346:this.$=new n.FuncValue({funcid:s[o-2]});break;case 347:this.$=new n.FuncValue({funcid:"IIF",args:s[o-1]});break;case 348:this.$=new n.FuncValue({funcid:"REPLACE",args:s[o-1]});break;case 349:this.$=new n.FuncValue({funcid:"DATEADD",args:[new n.StringValue({value:s[o-5]}),s[o-3],s[o-1]]});break;case 350:this.$=new n.FuncValue({funcid:"DATEADD",args:[s[o-5],s[o-3],s[o-1]]});break;case 351:this.$=new n.FuncValue({funcid:"DATEDIFF",args:[new n.StringValue({value:s[o-5]}),s[o-3],s[o-1]]});break;case 352:this.$=new n.FuncValue({funcid:"DATEDIFF",args:[s[o-5],s[o-3],s[o-1]]});break;case 353:this.$=new n.FuncValue({funcid:"INTERVAL",args:[s[o-1],new n.StringValue({value:s[o].toLowerCase()})]});break;case 355:s[o-2].push(s[o]),this.$=s[o-2];break;case 356:this.$=new n.NumValue({value:+s[o]});break;case 357:this.$=new n.LogicValue({value:!0});break;case 358:this.$=new n.LogicValue({value:!1});break;case 359:this.$=new n.StringValue({value:s[o].substr(1,s[o].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});break;case 360:this.$=new n.StringValue({value:s[o].substr(2,s[o].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});break;case 361:this.$=new n.NullValue({value:void 0});break;case 362:this.$=new n.VarValue({variable:s[o]});break;case 363:n.exists||(n.exists=[]),this.$=new n.ExistsValue({value:s[o-1],existsidx:n.exists.length}),n.exists.push(s[o-1]);break;case 364:this.$=new n.ArrayValue({value:s[o-1]});break;case 365:case 366:this.$=new n.ParamValue({param:s[o]});break;case 367:void 0===n.question&&(n.question=0),this.$=new n.ParamValue({param:n.question++});break;case 368:void 0===n.question&&(n.question=0),this.$=new n.ParamValue({param:n.question++,array:!0});break;case 369:this.$=new n.CaseValue({expression:s[o-3],whens:s[o-2],elses:s[o-1]});break;case 370:this.$=new n.CaseValue({whens:s[o-2],elses:s[o-1]});break;case 371:case 699:case 700:this.$=s[o-1],this.$.push(s[o]);break;case 373:this.$={when:s[o-2],then:s[o]};break;case 376:case 377:this.$=new n.Op({left:s[o-2],op:"REGEXP",right:s[o]});break;case 378:this.$=new n.Op({left:s[o-2],op:"GLOB",right:s[o]});break;case 379:this.$=new n.Op({left:s[o-2],op:"LIKE",right:s[o]});break;case 380:this.$=new n.Op({left:s[o-4],op:"LIKE",right:s[o-2],escape:s[o]});break;case 381:this.$=new n.Op({left:s[o-2],op:"NOT LIKE",right:s[o]});break;case 382:this.$=new n.Op({left:s[o-4],op:"NOT LIKE",right:s[o-2],escape:s[o]});break;case 383:this.$=new n.Op({left:s[o-2],op:"||",right:s[o]});break;case 384:this.$=new n.Op({left:s[o-2],op:"+",right:s[o]});break;case 385:this.$=new n.Op({left:s[o-2],op:"-",right:s[o]});break;case 386:this.$=new n.Op({left:s[o-2],op:"*",right:s[o]});break;case 387:this.$=new n.Op({left:s[o-2],op:"/",right:s[o]});break;case 388:this.$=new n.Op({left:s[o-2],op:"%",right:s[o]});break;case 389:this.$=new n.Op({left:s[o-2],op:"^",right:s[o]});break;case 390:this.$=new n.Op({left:s[o-2],op:">>",right:s[o]});break;case 391:this.$=new n.Op({left:s[o-2],op:"<<",right:s[o]});break;case 392:this.$=new n.Op({left:s[o-2],op:"&",right:s[o]});break;case 393:this.$=new n.Op({left:s[o-2],op:"|",right:s[o]});break;case 394:case 395:case 397:this.$=new n.Op({left:s[o-2],op:"->",right:s[o]});break;case 396:this.$=new n.Op({left:s[o-4],op:"->",right:s[o-1]});break;case 398:case 399:case 401:this.$=new n.Op({left:s[o-2],op:"!",right:s[o]});break;case 400:this.$=new n.Op({left:s[o-4],op:"!",right:s[o-1]});break;case 402:this.$=new n.Op({left:s[o-2],op:">",right:s[o]});break;case 403:this.$=new n.Op({left:s[o-2],op:">=",right:s[o]});break;case 404:this.$=new n.Op({left:s[o-2],op:"<",right:s[o]});break;case 405:this.$=new n.Op({left:s[o-2],op:"<=",right:s[o]});break;case 406:this.$=new n.Op({left:s[o-2],op:"=",right:s[o]});break;case 407:this.$=new n.Op({left:s[o-2],op:"==",right:s[o]});break;case 408:this.$=new n.Op({left:s[o-2],op:"===",right:s[o]});break;case 409:this.$=new n.Op({left:s[o-2],op:"!=",right:s[o]});break;case 410:this.$=new n.Op({left:s[o-2],op:"!==",right:s[o]});break;case 411:this.$=new n.Op({left:s[o-2],op:"!===",right:s[o]});break;case 412:n.queries||(n.queries=[]),this.$=new n.Op({left:s[o-5],op:s[o-4],allsome:s[o-3],right:s[o-1],queriesidx:n.queries.length}),n.queries.push(s[o-1]);break;case 413:this.$=new n.Op({left:s[o-5],op:s[o-4],allsome:s[o-3],right:s[o-1]});break;case 414:"BETWEEN1"==s[o-2].op?"AND"==s[o-2].left.op?this.$=new n.Op({left:s[o-2].left.left,op:"AND",right:new n.Op({left:s[o-2].left.right,op:"BETWEEN",right1:s[o-2].right,right2:s[o]})}):this.$=new n.Op({left:s[o-2].left,op:"BETWEEN",right1:s[o-2].right,right2:s[o]}):"NOT BETWEEN1"==s[o-2].op?"AND"==s[o-2].left.op?this.$=new n.Op({left:s[o-2].left.left,op:"AND",right:new n.Op({left:s[o-2].left.right,op:"NOT BETWEEN",right1:s[o-2].right,right2:s[o]})}):this.$=new n.Op({left:s[o-2].left,op:"NOT BETWEEN",right1:s[o-2].right,right2:s[o]}):this.$=new n.Op({left:s[o-2],op:"AND",right:s[o]});break;case 415:this.$=new n.Op({left:s[o-2],op:"OR",right:s[o]});break;case 416:this.$=new n.UniOp({op:"NOT",right:s[o]});break;case 417:this.$=new n.UniOp({op:"-",right:s[o]});break;case 418:this.$=new n.UniOp({op:"+",right:s[o]});break;case 419:this.$=new n.UniOp({op:"~",right:s[o]});break;case 420:this.$=new n.UniOp({op:"#",right:s[o]});break;case 421:this.$=new n.UniOp({right:s[o-1]});break;case 422:n.queries||(n.queries=[]),this.$=new n.Op({left:s[o-4],op:"IN",right:s[o-1],queriesidx:n.queries.length}),n.queries.push(s[o-1]);break;case 423:n.queries||(n.queries=[]),this.$=new n.Op({left:s[o-5],op:"NOT IN",right:s[o-1],queriesidx:n.queries.length}), -n.queries.push(s[o-1]);break;case 424:this.$=new n.Op({left:s[o-4],op:"IN",right:s[o-1]});break;case 425:this.$=new n.Op({left:s[o-5],op:"NOT IN",right:s[o-1]});break;case 426:this.$=new n.Op({left:s[o-3],op:"IN",right:[]});break;case 427:this.$=new n.Op({left:s[o-4],op:"NOT IN",right:[]});break;case 428:case 430:this.$=new n.Op({left:s[o-2],op:"IN",right:s[o]});break;case 429:case 431:this.$=new n.Op({left:s[o-3],op:"NOT IN",right:s[o]});break;case 432:this.$=new n.Op({left:s[o-2],op:"BETWEEN1",right:s[o]});break;case 433:this.$=new n.Op({left:s[o-2],op:"NOT BETWEEN1",right:s[o]});break;case 434:this.$=new n.Op({op:"IS",left:s[o-2],right:s[o]});break;case 435:this.$=new n.Op({op:"IS",left:s[o-2],right:new n.UniOp({op:"NOT",right:new n.NullValue({value:void 0})})});break;case 436:this.$=new n.Convert({expression:s[o-2]}),n.extend(this.$,s[o]);break;case 437:case 438:this.$=s[o];break;case 439:this.$=s[o-1];break;case 446:this.$="ALL";break;case 447:this.$="SOME";break;case 448:this.$="ANY";break;case 449:this.$=new n.Update({table:s[o-4],columns:s[o-2],where:s[o]});break;case 450:this.$=new n.Update({table:s[o-2],columns:s[o]});break;case 453:this.$=new n.SetColumn({column:s[o-2],expression:s[o]});break;case 454:this.$=new n.SetColumn({variable:s[o-2],expression:s[o],method:s[o-3]});break;case 455:this.$=new n.Delete({table:s[o-2],where:s[o]});break;case 456:this.$=new n.Delete({table:s[o]});break;case 457:this.$=new n.Insert({into:s[o-2],values:s[o]});break;case 458:this.$=new n.Insert({into:s[o-1],values:s[o]});break;case 459:case 461:this.$=new n.Insert({into:s[o-2],values:s[o],orreplace:!0});break;case 460:case 462:this.$=new n.Insert({into:s[o-1],values:s[o],orreplace:!0});break;case 463:this.$=new n.Insert({into:s[o-2],default:!0});break;case 464:this.$=new n.Insert({into:s[o-5],columns:s[o-3],values:s[o]});break;case 465:this.$=new n.Insert({into:s[o-4],columns:s[o-2],values:s[o]});break;case 466:this.$=new n.Insert({into:s[o-1],select:s[o]});break;case 467:this.$=new n.Insert({into:s[o-1],select:s[o],orreplace:!0});break;case 468:this.$=new n.Insert({into:s[o-4],columns:s[o-2],select:s[o]});break;case 473:this.$=[s[o-1]];break;case 476:this.$=s[o-4],s[o-4].push(s[o-1]);break;case 477:case 478:case 480:case 488:this.$=s[o-2],s[o-2].push(s[o]);break;case 489:this.$=new n.CreateTable({table:s[o-4]}),n.extend(this.$,s[o-7]),n.extend(this.$,s[o-6]),n.extend(this.$,s[o-5]),n.extend(this.$,s[o-2]),n.extend(this.$,s[o]);break;case 490:this.$=new n.CreateTable({table:s[o]}),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1]);break;case 492:this.$={class:!0};break;case 502:this.$={temporary:!0};break;case 504:this.$={ifnotexists:!0};break;case 505:this.$={columns:s[o-2],constraints:s[o]};break;case 506:this.$={columns:s[o]};break;case 507:this.$={as:s[o]};break;case 508:case 532:this.$=[s[o]];break;case 510:case 511:case 512:case 513:case 514:s[o].constraintid=s[o-1],this.$=s[o];break;case 517:this.$={type:"CHECK",expression:s[o-1]};break;case 518:this.$={type:"PRIMARY KEY",columns:s[o-1],clustered:(s[o-3]+"").toUpperCase()};break;case 519:this.$={type:"FOREIGN KEY",columns:s[o-5],fktable:s[o-2],fkcolumns:s[o-1]};break;case 525:this.$={type:"UNIQUE",columns:s[o-1],clustered:(s[o-3]+"").toUpperCase()};break;case 534:this.$=new n.ColumnDef({columnid:s[o-2]}),n.extend(this.$,s[o-1]),n.extend(this.$,s[o]);break;case 535:this.$=new n.ColumnDef({columnid:s[o-1]}),n.extend(this.$,s[o]);break;case 536:this.$=new n.ColumnDef({columnid:s[o],dbtypeid:""});break;case 537:this.$={dbtypeid:s[o-5],dbsize:s[o-3],dbprecision:+s[o-1]};break;case 538:this.$={dbtypeid:s[o-3],dbsize:s[o-1]};break;case 539:this.$={dbtypeid:s[o]};break;case 540:this.$={dbtypeid:"ENUM",enumvalues:s[o-1]};break;case 541:this.$=s[o-1],s[o-1].dbtypeid+="["+s[o]+"]";break;case 543:case 750:this.$=+s[o];break;case 545:this.$=void 0;break;case 547:n.extend(s[o-1],s[o]),this.$=s[o-1];break;case 550:this.$={primarykey:!0};break;case 551:case 552:this.$={foreignkey:{table:s[o-1],columnid:s[o]}};break;case 553:this.$={identity:{value:s[o-3],step:s[o-1]}};break;case 554:this.$={identity:{value:1,step:1}};break;case 555:case 557:this.$={default:s[o]};break;case 556:this.$={default:s[o-1]};break;case 558:this.$={null:!0};break;case 559:this.$={notnull:!0};break;case 560:this.$={check:s[o]};break;case 561:this.$={unique:!0};break;case 562:this.$={onupdate:s[o]};break;case 563:this.$={onupdate:s[o-1]};break;case 564:this.$=new n.DropTable({tables:s[o],type:s[o-2]}),n.extend(this.$,s[o-1]);break;case 568:this.$={ifexists:!0};break;case 569:this.$=new n.AlterTable({table:s[o-3],renameto:s[o]});break;case 570:this.$=new n.AlterTable({table:s[o-3],addcolumn:s[o]});break;case 571:this.$=new n.AlterTable({table:s[o-3],modifycolumn:s[o]});break;case 572:this.$=new n.AlterTable({table:s[o-5],renamecolumn:s[o-2],to:s[o]});break;case 573:this.$=new n.AlterTable({table:s[o-3],dropcolumn:s[o]});break;case 574:this.$=new n.AlterTable({table:s[o-2],renameto:s[o]});break;case 575:this.$=new n.AttachDatabase({databaseid:s[o],engineid:s[o-2].toUpperCase()});break;case 576:this.$=new n.AttachDatabase({databaseid:s[o-3],engineid:s[o-5].toUpperCase(),args:s[o-1]});break;case 577:this.$=new n.AttachDatabase({databaseid:s[o-2],engineid:s[o-4].toUpperCase(),as:s[o]});break;case 578:this.$=new n.AttachDatabase({databaseid:s[o-5],engineid:s[o-7].toUpperCase(),as:s[o],args:s[o-3]});break;case 579:this.$=new n.DetachDatabase({databaseid:s[o]});break;case 580:this.$=new n.CreateDatabase({databaseid:s[o]}),n.extend(this.$,s[o]);break;case 581:this.$=new n.CreateDatabase({engineid:s[o-4].toUpperCase(),databaseid:s[o-1],as:s[o]}),n.extend(this.$,s[o-2]);break;case 582:this.$=new n.CreateDatabase({engineid:s[o-7].toUpperCase(),databaseid:s[o-4],args:s[o-2],as:s[o]}),n.extend(this.$,s[o-5]);break;case 583:this.$=new n.CreateDatabase({engineid:s[o-4].toUpperCase(),as:s[o],args:[s[o-1]]}),n.extend(this.$,s[o-2]);break;case 584:this.$=void 0;break;case 586:case 587:this.$=new n.UseDatabase({databaseid:s[o]});break;case 588:this.$=new n.DropDatabase({databaseid:s[o]}),n.extend(this.$,s[o-1]);break;case 589:case 590:this.$=new n.DropDatabase({databaseid:s[o],engineid:s[o-3].toUpperCase()}),n.extend(this.$,s[o-1]);break;case 591:this.$=new n.CreateIndex({indexid:s[o-5],table:s[o-3],columns:s[o-1]});break;case 592:this.$=new n.CreateIndex({indexid:s[o-5],table:s[o-3],columns:s[o-1],unique:!0});break;case 593:this.$=new n.DropIndex({indexid:s[o]});break;case 594:this.$=new n.ShowDatabases;break;case 595:this.$=new n.ShowDatabases({like:s[o]});break;case 596:this.$=new n.ShowDatabases({engineid:s[o-1].toUpperCase()});break;case 597:this.$=new n.ShowDatabases({engineid:s[o-3].toUpperCase(),like:s[o]});break;case 598:this.$=new n.ShowTables;break;case 599:this.$=new n.ShowTables({like:s[o]});break;case 600:this.$=new n.ShowTables({databaseid:s[o]});break;case 601:this.$=new n.ShowTables({like:s[o],databaseid:s[o-2]});break;case 602:this.$=new n.ShowColumns({table:s[o]});break;case 603:this.$=new n.ShowColumns({table:s[o-2],databaseid:s[o]});break;case 604:this.$=new n.ShowIndex({table:s[o]});break;case 605:this.$=new n.ShowIndex({table:s[o-2],databaseid:s[o]});break;case 606:this.$=new n.ShowCreateTable({table:s[o]});break;case 607:this.$=new n.ShowCreateTable({table:s[o-2],databaseid:s[o]});break;case 608:this.$=new n.CreateTable({table:s[o-6],view:!0,select:s[o-1],viewcolumns:s[o-4]}),n.extend(this.$,s[o-9]),n.extend(this.$,s[o-7]);break;case 609:this.$=new n.CreateTable({table:s[o-3],view:!0,select:s[o-1]}),n.extend(this.$,s[o-6]),n.extend(this.$,s[o-4]);break;case 613:this.$=new n.DropTable({tables:s[o],view:!0}),n.extend(this.$,s[o-1]);break;case 614:case 760:this.$=new n.ExpressionStatement({expression:s[o]});break;case 615:this.$=new n.Source({url:s[o].value});break;case 616:this.$=new n.Assert({value:s[o]});break;case 617:this.$=new n.Assert({value:s[o].value});break;case 618:this.$=new n.Assert({value:s[o],message:s[o-2]});break;case 620:case 631:case 633:this.$=s[o].value;break;case 621:case 629:this.$=+s[o].value;break;case 622:this.$=!!s[o].value;break;case 630:this.$=""+s[o].value;break;case 639:this.$={};break;case 642:this.$=[];break;case 643:n.extend(s[o-2],s[o]),this.$=s[o-2];break;case 645:this.$={},this.$[s[o-2].substr(1,s[o-2].length-2)]=s[o];break;case 646:case 647:this.$={},this.$[s[o-2]]=s[o];break;case 650:this.$=new n.SetVariable({variable:s[o-2].toLowerCase(),value:s[o]});break;case 651:this.$=new n.SetVariable({variable:s[o-1].toLowerCase(),value:s[o]});break;case 652:this.$=new n.SetVariable({variable:s[o-2],expression:s[o]});break;case 653:this.$=new n.SetVariable({variable:s[o-3],props:s[o-2],expression:s[o]});break;case 654:this.$=new n.SetVariable({variable:s[o-2],expression:s[o],method:s[o-3]});break;case 655:this.$=new n.SetVariable({variable:s[o-3],props:s[o-2],expression:s[o],method:s[o-4]});break;case 656:this.$="@";break;case 657:this.$="$";break;case 663:this.$=!0;break;case 664:this.$=!1;break;case 665:this.$=new n.CommitTransaction;break;case 666:this.$=new n.RollbackTransaction;break;case 667:this.$=new n.BeginTransaction;break;case 668:this.$=new n.If({expression:s[o-2],thenstat:s[o-1],elsestat:s[o]}),s[o-1].exists&&(this.$.exists=s[o-1].exists),s[o-1].queries&&(this.$.queries=s[o-1].queries);break;case 669:this.$=new n.If({expression:s[o-1],thenstat:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 670:this.$=s[o];break;case 671:this.$=new n.While({expression:s[o-1],loopstat:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 672:this.$=new n.Continue;break;case 673:this.$=new n.Break;break;case 674:this.$=new n.BeginEnd({statements:s[o-1]});break;case 675:this.$=new n.Print({exprs:s[o]});break;case 676:this.$=new n.Print({select:s[o]});break;case 677:this.$=new n.Require({paths:s[o]});break;case 678:this.$=new n.Require({plugins:s[o]});break;case 679:case 680:this.$=s[o].toUpperCase();break;case 681:this.$=new n.Echo({expr:s[o]});break;case 686:this.$=new n.Declare({declares:s[o]});break;case 689:this.$={variable:s[o-1]},n.extend(this.$,s[o]);break;case 690:this.$={variable:s[o-2]},n.extend(this.$,s[o]);break;case 691:this.$={variable:s[o-3],expression:s[o]},n.extend(this.$,s[o-2]);break;case 692:this.$={variable:s[o-4],expression:s[o]},n.extend(this.$,s[o-2]);break;case 693:this.$=new n.TruncateTable({table:s[o]});break;case 694:this.$=new n.Merge,n.extend(this.$,s[o-4]),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-2]),n.extend(this.$,{matches:s[o-1]}),n.extend(this.$,s[o]);break;case 695:case 696:this.$={into:s[o]};break;case 698:this.$={on:s[o]};break;case 703:this.$={matched:!0,action:s[o]};break;case 704:this.$={matched:!0,expr:s[o-2],action:s[o]};break;case 705:this.$={delete:!0};break;case 706:this.$={update:s[o]};break;case 707:case 708:this.$={matched:!1,bytarget:!0,action:s[o]};break;case 709:case 710:this.$={matched:!1,bytarget:!0,expr:s[o-2],action:s[o]};break;case 711:this.$={matched:!1,bysource:!0,action:s[o]};break;case 712:this.$={matched:!1,bysource:!0,expr:s[o-2],action:s[o]};break;case 713:this.$={insert:!0,values:s[o]};break;case 714:this.$={insert:!0,values:s[o],columns:s[o-3]};break;case 715:this.$={insert:!0,defaultvalues:!0};break;case 716:this.$={insert:!0,defaultvalues:!0,columns:s[o-3]};break;case 718:this.$={output:{columns:s[o]}};break;case 719:this.$={output:{columns:s[o-3],intovar:s[o],method:s[o-1]}};break;case 720:this.$={output:{columns:s[o-2],intotable:s[o]}};break;case 721:this.$={output:{columns:s[o-5],intotable:s[o-3],intocolumns:s[o-1]}};break;case 722:this.$=new n.CreateVertex({class:s[o-3],sharp:s[o-2],name:s[o-1]}),n.extend(this.$,s[o]);break;case 725:this.$={sets:s[o]};break;case 726:this.$={content:s[o]};break;case 727:this.$={select:s[o]};break;case 728:this.$=new n.CreateEdge({from:s[o-3],to:s[o-1],name:s[o-5]}),n.extend(this.$,s[o]);break;case 729:this.$=new n.CreateGraph({graph:s[o]});break;case 730:this.$=new n.CreateGraph({from:s[o]});break;case 733:this.$=s[o-2],s[o-1]&&(this.$.json=new n.Json({value:s[o-1]})),s[o]&&(this.$.as=s[o]);break;case 734:this.$={source:s[o-6],target:s[o]},s[o-3]&&(this.$.json=new n.Json({value:s[o-3]})),s[o-2]&&(this.$.as=s[o-2]),n.extend(this.$,s[o-4]);break;case 735:this.$={source:s[o-5],target:s[o]},s[o-2]&&(this.$.json=new n.Json({value:s[o-3]})),s[o-1]&&(this.$.as=s[o-2]);break;case 736:this.$={source:s[o-2],target:s[o]};break;case 740:this.$={vars:s[o],method:s[o-1]};break;case 743:case 744:var b=s[o-1];this.$={prop:s[o-3],sharp:s[o-2],name:void 0===b?void 0:b.substr(1,b.length-2),class:s[o]};break;case 745:var E=s[o-1];this.$={sharp:s[o-2],name:void 0===E?void 0:E.substr(1,E.length-2),class:s[o]};break;case 746:var g=s[o-1];this.$={name:void 0===g?void 0:g.substr(1,g.length-2),class:s[o]};break;case 747:this.$={class:s[o]};break;case 753:this.$=new n.AddRule({left:s[o-2],right:s[o]});break;case 754:this.$=new n.AddRule({right:s[o]});break;case 757:this.$=new n.Term({termid:s[o]});break;case 758:this.$=new n.Term({termid:s[o-3],args:s[o-1]});break;case 761:this.$=new n.CreateTrigger({trigger:s[o-6],when:s[o-5],action:s[o-4],table:s[o-2],statement:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 762:this.$=new n.CreateTrigger({trigger:s[o-5],when:s[o-4],action:s[o-3],table:s[o-1],funcid:s[o]});break;case 763:this.$=new n.CreateTrigger({trigger:s[o-6],when:s[o-4],action:s[o-3],table:s[o-5],statement:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 764:case 765:case 767:this.$="AFTER";break;case 766:this.$="BEFORE";break;case 768:this.$="INSTEADOF";break;case 769:this.$="INSERT";break;case 770:this.$="DELETE";break;case 771:this.$="UPDATE";break;case 772:this.$=new n.DropTrigger({trigger:s[o]});break;case 773:this.$=new n.Reindex({indexid:s[o]});break;case 1047:case 1067:case 1069:case 1071:case 1075:case 1077:case 1079:case 1081:case 1083:case 1085:this.$=[];break;case 1048:case 1062:case 1064:case 1068:case 1070:case 1072:case 1076:case 1078:case 1080:case 1082:case 1084:case 1086:s[o-1].push(s[o]);break;case 1061:case 1063:this.$=[s[o]]}},table:[t([10,602,764],r,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,2:n,4:a,5:s,14:i,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),{1:[3]},{10:[1,105],11:106,602:Y,764:W},t(X,[2,8]),t(X,[2,9]),t(K,[2,12]),t(X,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:109,2:n,4:a,5:s,15:[1,110],53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(K,[2,14]),t(K,[2,15]),t(K,[2,16]),t(K,[2,17]),t(K,[2,18]),t(K,[2,19]),t(K,[2,20]),t(K,[2,21]),t(K,[2,22]),t(K,[2,23]),t(K,[2,24]),t(K,[2,25]),t(K,[2,26]),t(K,[2,27]),t(K,[2,28]),t(K,[2,29]),t(K,[2,30]),t(K,[2,31]),t(K,[2,32]),t(K,[2,33]),t(K,[2,34]),t(K,[2,35]),t(K,[2,36]),t(K,[2,37]),t(K,[2,38]),t(K,[2,39]),t(K,[2,40]),t(K,[2,41]),t(K,[2,42]),t(K,[2,43]),t(K,[2,44]),t(K,[2,45]),t(K,[2,46]),t(K,[2,47]),t(K,[2,48]),t(K,[2,49]),t(K,[2,50]),t(K,[2,51]),t(K,[2,52]),t(K,[2,53]),t(K,[2,54]),t(K,[2,55]),t(K,[2,56]),t(K,[2,57]),t(K,[2,58]),t(K,[2,59]),t(K,[2,60]),t(K,[2,61]),t(K,[2,62]),t(K,[2,63]),t(K,[2,64]),t(K,[2,65]),t(K,[2,66]),t(K,[2,67]),{353:[1,111]},{2:n,3:112,4:a,5:s},{2:n,3:114,4:a,5:s,156:Q,200:113,290:z,291:Z,292:ee,293:te},t(re,[2,501],{3:121,348:125,2:n,4:a,5:s,134:ne,135:ae,187:[1,123],193:[1,122],268:[1,129],269:[1,130],357:[1,131],405:[1,120],472:[1,124],509:[1,128]}),{145:se,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:n,3:138,4:a,5:s,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:145,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Be,je,{340:204,171:[1,205],198:He}),t(Be,je,{340:207,198:He}),{2:n,3:219,4:a,5:s,77:Je,132:Ye,143:le,144:212,145:he,152:fe,156:Q,181:ge,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:We,214:218,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve,453:208},{2:n,3:221,4:a,5:s},{353:[1,222]},t(Xe,[2,1043],{80:223,106:224,107:[1,225]}),t(Ke,[2,1047],{90:226}),{2:n,3:230,4:a,5:s,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:n,3:236,4:a,5:s,73:234,75:235},t([306,602,764],r,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,9:238,2:n,4:a,5:s,14:i,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,435:[1,237],436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),{435:[1,239]},{435:[1,240]},{2:n,3:242,4:a,5:s,405:[1,241]},{2:n,3:244,4:a,5:s,199:243},t(Qe,[2,311]),{113:245,132:ue,296:Le},{2:n,3:114,4:a,5:s,113:251,131:oe,132:[1,248],143:le,144:246,145:ze,152:fe,156:Q,181:ge,196:250,200:255,201:254,257:252,258:253,265:Ze,274:247,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,302:_e,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:257,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(K,[2,672]),t(K,[2,673]),{2:n,3:168,4:a,5:s,40:259,56:165,77:ie,79:75,89:c,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:258,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,184:99,189:f,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:266,4:a,5:s,113:263,132:ue,296:Le,444:261,445:262,446:264,447:et},{2:n,3:267,4:a,5:s,143:tt,145:rt,431:268},{2:n,3:168,4:a,5:s,56:165,77:ie,94:271,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{505:[1,272]},{2:n,3:100,4:a,5:s,504:274,506:273},{2:n,3:114,4:a,5:s,156:Q,200:275,290:z,291:Z,292:ee,293:te},{2:n,3:168,4:a,5:s,56:165,77:ie,94:276,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(nt,at,{186:280,164:[1,279],185:[1,277],187:[1,278],195:st}),t(it,[2,757],{77:[1,282]}),t([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],[2,152],{149:[1,283],150:[1,284],190:[1,285],191:[1,286],192:[1,287],193:[1,288],194:[1,289]}),t(ot,[2,1]),t(ot,[2,2]),{6:290,131:[1,439],172:[1,462],245:[1,411],285:[1,373],286:[1,407],370:[1,404],381:[1,295],402:[1,297],410:[1,549],414:[1,471],416:[1,443],417:[1,509],433:[1,442],435:[1,525],440:[1,342],460:[1,418],464:[1,448],470:[1,341],514:[1,307],515:[1,299],516:[1,399],518:[1,291],519:[1,292],520:[1,293],521:[1,294],522:[1,296],523:[1,298],524:[1,300],525:[1,301],526:[1,302],527:[1,303],528:[1,304],529:[1,305],530:[1,306],531:[1,308],532:[1,309],533:[1,310],534:[1,311],535:[1,312],536:[1,313],537:[1,314],538:[1,315],539:[1,316],540:[1,317],541:[1,318],542:[1,319],543:[1,320],544:[1,321],545:[1,322],546:[1,323],547:[1,324],548:[1,325],549:[1,326],550:[1,327],551:[1,328],552:[1,329],553:[1,330],554:[1,331],555:[1,332],556:[1,333],557:[1,334],558:[1,335],559:[1,336],560:[1,337],561:[1,338],562:[1,339],563:[1,340],564:[1,343],565:[1,344],566:[1,345],567:[1,346],568:[1,347],569:[1,348],570:[1,349],571:[1,350],572:[1,351],573:[1,352],574:[1,353],575:[1,354],576:[1,355],577:[1,356],578:[1,357],579:[1,358],580:[1,359],581:[1,360],582:[1,361],583:[1,362],584:[1,363],585:[1,364],586:[1,365],587:[1,366],588:[1,367],589:[1,368],590:[1,369],591:[1,370],592:[1,371],593:[1,372],594:[1,374],595:[1,375],596:[1,376],597:[1,377],598:[1,378],599:[1,379],600:[1,380],601:[1,381],602:[1,382],603:[1,383],604:[1,384],605:[1,385],606:[1,386],607:[1,387],608:[1,388],609:[1,389],610:[1,390],611:[1,391],612:[1,392],613:[1,393],614:[1,394],615:[1,395],616:[1,396],617:[1,397],618:[1,398],619:[1,400],620:[1,401],621:[1,402],622:[1,403],623:[1,405],624:[1,406],625:[1,408],626:[1,409],627:[1,410],628:[1,412],629:[1,413],630:[1,414],631:[1,415],632:[1,416],633:[1,417],634:[1,419],635:[1,420],636:[1,421],637:[1,422],638:[1,423],639:[1,424],640:[1,425],641:[1,426],642:[1,427],643:[1,428],644:[1,429],645:[1,430],646:[1,431],647:[1,432],648:[1,433],649:[1,434],650:[1,435],651:[1,436],652:[1,437],653:[1,438],654:[1,440],655:[1,441],656:[1,444],657:[1,445],658:[1,446],659:[1,447],660:[1,449],661:[1,450],662:[1,451],663:[1,452],664:[1,453],665:[1,454],666:[1,455],667:[1,456],668:[1,457],669:[1,458],670:[1,459],671:[1,460],672:[1,461],673:[1,463],674:[1,464],675:[1,465],676:[1,466],677:[1,467],678:[1,468],679:[1,469],680:[1,470],681:[1,472],682:[1,473],683:[1,474],684:[1,475],685:[1,476],686:[1,477],687:[1,478],688:[1,479],689:[1,480],690:[1,481],691:[1,482],692:[1,483],693:[1,484],694:[1,485],695:[1,486],696:[1,487],697:[1,488],698:[1,489],699:[1,490],700:[1,491],701:[1,492],702:[1,493],703:[1,494],704:[1,495],705:[1,496],706:[1,497],707:[1,498],708:[1,499],709:[1,500],710:[1,501],711:[1,502],712:[1,503],713:[1,504],714:[1,505],715:[1,506],716:[1,507],717:[1,508],718:[1,510],719:[1,511],720:[1,512],721:[1,513],722:[1,514],723:[1,515],724:[1,516],725:[1,517],726:[1,518],727:[1,519],728:[1,520],729:[1,521],730:[1,522],731:[1,523],732:[1,524],733:[1,526],734:[1,527],735:[1,528],736:[1,529],737:[1,530],738:[1,531],739:[1,532],740:[1,533],741:[1,534],742:[1,535],743:[1,536],744:[1,537],745:[1,538],746:[1,539],747:[1,540],748:[1,541],749:[1,542],750:[1,543],751:[1,544],752:[1,545],753:[1,546],754:[1,547],755:[1,548],756:[1,550],757:[1,551],758:[1,552],759:[1,553],760:[1,554],761:[1,555],762:[1,556],763:[1,557]},{1:[2,6]},t(X,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:558,2:n,4:a,5:s,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(ut,[2,1041]),t(ut,[2,1042]),t(X,[2,10]),{16:[1,559]},{2:n,3:244,4:a,5:s,199:560},{405:[1,561]},t(K,[2,760]),{77:ct},{77:[1,563]},{77:lt},{77:[1,565]},{77:[1,566]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:567,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Be,ht,{350:568,156:dt}),{405:[1,570]},{2:n,3:571,4:a,5:s},{193:[1,572]},{2:n,3:578,4:a,5:s,132:ft,137:pt,143:tt,145:rt,152:bt,183:[1,574],431:585,473:573,474:575,475:576,478:577,482:582,493:579,497:581},{130:[1,589],349:586,353:[1,588],410:[1,587]},{113:591,132:ue,183:[2,1141],296:Le,471:590},t(Et,[2,1135],{465:592,3:593,2:n,4:a,5:s}),{2:n,3:594,4:a,5:s},{4:[1,595]},{4:[1,596]},t(re,[2,502]),t(K,[2,686],{74:[1,597]}),t(gt,[2,687]),{2:n,3:598,4:a,5:s},{2:n,3:244,4:a,5:s,199:599},{2:n,3:600,4:a,5:s},t(Be,mt,{398:601,156:vt}),{405:[1,603]},{2:n,3:604,4:a,5:s},t(Be,mt,{398:605,156:vt}),t(Be,mt,{398:606,156:vt}),{2:n,3:607,4:a,5:s},t(St,[2,1129]),t(St,[2,1130]),t(K,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:608,114:625,327:637,2:n,4:a,5:s,53:o,72:u,89:c,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:Rt,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,146:h,154:$t,156:d,170:Mt,171:Ut,179:_t,180:Ft,189:f,266:p,267:b,290:E,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(Qe,[2,288]),t(Qe,[2,289]),t(Qe,[2,290]),t(Qe,[2,291]),t(Qe,[2,292]),t(Qe,[2,293]),t(Qe,[2,294]),t(Qe,[2,295]),t(Qe,[2,296]),t(Qe,[2,297]),t(Qe,[2,298]),t(Qe,[2,299]),t(Qe,[2,300]),t(Qe,[2,301]),t(Qe,[2,302]),t(Qe,[2,303]),t(Qe,[2,304]),t(Qe,[2,305]),{2:n,3:168,4:a,5:s,26:654,27:653,36:649,40:648,56:165,77:ie,79:75,89:c,94:651,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,184:99,189:f,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,264:650,265:me,266:p,267:[1,655],270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:[1,652],291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,339:v,419:190,420:Ge,424:Ve},t(Qe,[2,309]),t(Qe,[2,310]),{77:[1,656]},t([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],ar,{77:ct,116:[1,657]}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:658,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:659,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:661,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:662,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve -},t(Qe,[2,283]),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,249,265,266,267,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,300,302,303,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,415,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764,765,766],[2,356]),t(sr,[2,357]),t(sr,[2,358]),t(sr,ir),t(sr,[2,360]),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,361]),{2:n,3:664,4:a,5:s,131:[1,665],301:663},{2:n,3:666,4:a,5:s},t(sr,[2,367]),t(sr,[2,368]),{2:n,3:667,4:a,5:s,77:or,113:669,131:oe,132:ue,143:le,152:fe,181:ge,196:670,201:672,257:671,294:De,295:ke,296:Le,302:_e,419:673,424:Ve},{77:[1,674]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:675,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,304:676,307:677,308:ur,312:Pe,317:qe,419:190,420:Ge,424:Ve},{77:[1,679]},{77:[1,680]},t(cr,[2,624]),{2:n,3:695,4:a,5:s,77:lr,111:690,113:688,131:oe,132:ue,143:le,144:685,145:ze,152:fe,156:Q,181:ge,196:687,200:693,201:692,257:689,258:691,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,300:[1,683],302:_e,419:190,420:Ge,421:681,422:684,423:686,424:Ve,427:682},{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:696,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:697,4:a,5:s,156:Q,200:698,290:z,291:Z,292:ee,293:te},{77:[2,336]},{77:[2,337]},{77:[2,338]},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{2:n,3:704,4:a,5:s,131:hr,132:dr,425:699,426:[1,700],428:701},{2:n,3:244,4:a,5:s,199:705},{290:[1,706]},t(Be,[2,472]),{2:n,3:244,4:a,5:s,199:707},{231:[1,709],454:708},{231:[2,695]},{2:n,3:219,4:a,5:s,77:Je,132:Ye,143:le,144:212,145:he,152:fe,156:Q,181:ge,199:213,200:215,201:214,202:217,209:710,213:We,214:218,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve},{40:711,79:75,89:c,184:99,189:f},t(fr,[2,1091],{210:712,76:[1,713]}),t(pr,[2,185],{3:714,2:n,4:a,5:s,76:[1,715],154:[1,716]}),t(pr,[2,189],{3:717,2:n,4:a,5:s,76:[1,718]}),t(pr,[2,190],{3:719,2:n,4:a,5:s,76:[1,720]}),t(pr,[2,193]),t(pr,[2,194],{3:721,2:n,4:a,5:s,76:[1,722]}),t(pr,[2,197],{3:723,2:n,4:a,5:s,76:[1,724]}),t([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],br,{77:ct,116:Er}),t([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],[2,200]),t(K,[2,773]),{2:n,3:244,4:a,5:s,199:726},t(gr,mr,{81:727,198:vr}),t(Xe,[2,1044]),t(Sr,[2,1057],{108:729,190:[1,730]}),t([10,78,183,306,310,602,764],mr,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:n,4:a,5:s,72:Tr,76:Ar,77:yr,112:Nr,115:yt,116:Nt,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,198:vr,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,420:Ge,424:Ve}),{353:[1,782]},{183:[1,783]},t(K,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},t(K,[2,598],{112:[1,787],183:[1,788]}),{2:n,3:244,4:a,5:s,199:789},{40:790,74:[1,791],79:75,89:c,184:99,189:f},t(dn,[2,70]),{76:[1,792]},t(K,[2,667]),{11:106,306:[1,793],602:Y,764:W},t(K,[2,665]),t(K,[2,666]),{2:n,3:794,4:a,5:s},t(K,[2,587]),{146:[1,795]},t([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],br,{116:Er}),t(K,[2,615]),t(K,[2,616]),t(K,[2,617]),t(K,ir,{74:[1,796]}),{77:or,113:669,131:oe,132:ue,143:le,152:fe,181:ge,196:670,201:672,257:671,294:De,295:ke,296:Le,302:_e,419:673,424:Ve},t(fn,[2,320]),t(fn,[2,321]),t(fn,[2,322]),t(fn,[2,323]),t(fn,[2,324]),t(fn,[2,325]),t(fn,[2,326]),t(K,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,114:625,327:637,12:797,2:n,4:a,5:s,53:o,72:u,89:c,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:Rt,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,146:h,154:$t,156:d,170:Mt,171:Ut,179:_t,180:Ft,189:f,266:p,267:b,290:E,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(K,[2,675],{74:pn}),t(K,[2,676]),t(bn,[2,354],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(K,[2,677],{74:[1,800]}),t(K,[2,678],{74:[1,801]}),t(gt,[2,683]),t(gt,[2,685]),t(gt,[2,679]),t(gt,[2,680]),{114:807,115:yt,116:Nt,124:[1,802],230:gn,429:803,430:804,433:mn},{2:n,3:808,4:a,5:s},t(Be,[2,656]),t(Be,[2,657]),t(K,[2,614],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:100,4:a,5:s,504:274,506:809},t(K,[2,754],{74:vn}),t(Sn,[2,756]),t(K,[2,759]),t(K,[2,681],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(Tn,at,{186:811,195:st}),t(Tn,at,{186:812,195:st}),t(Tn,at,{186:813,195:st}),t(An,[2,1087],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,188:814,174:815,253:816,94:817,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),{77:[1,819],131:oe,196:818},{2:n,3:100,4:a,5:s,504:274,506:820},t(yn,[2,153]),t(yn,[2,154]),t(yn,[2,155]),t(yn,[2,156]),t(yn,[2,157]),t(yn,[2,158]),t(yn,[2,159]),t(ot,[2,3]),t(ot,[2,774]),t(ot,[2,775]),t(ot,[2,776]),t(ot,[2,777]),t(ot,[2,778]),t(ot,[2,779]),t(ot,[2,780]),t(ot,[2,781]),t(ot,[2,782]),t(ot,[2,783]),t(ot,[2,784]),t(ot,[2,785]),t(ot,[2,786]),t(ot,[2,787]),t(ot,[2,788]),t(ot,[2,789]),t(ot,[2,790]),t(ot,[2,791]),t(ot,[2,792]),t(ot,[2,793]),t(ot,[2,794]),t(ot,[2,795]),t(ot,[2,796]),t(ot,[2,797]),t(ot,[2,798]),t(ot,[2,799]),t(ot,[2,800]),t(ot,[2,801]),t(ot,[2,802]),t(ot,[2,803]),t(ot,[2,804]),t(ot,[2,805]),t(ot,[2,806]),t(ot,[2,807]),t(ot,[2,808]),t(ot,[2,809]),t(ot,[2,810]),t(ot,[2,811]),t(ot,[2,812]),t(ot,[2,813]),t(ot,[2,814]),t(ot,[2,815]),t(ot,[2,816]),t(ot,[2,817]),t(ot,[2,818]),t(ot,[2,819]),t(ot,[2,820]),t(ot,[2,821]),t(ot,[2,822]),t(ot,[2,823]),t(ot,[2,824]),t(ot,[2,825]),t(ot,[2,826]),t(ot,[2,827]),t(ot,[2,828]),t(ot,[2,829]),t(ot,[2,830]),t(ot,[2,831]),t(ot,[2,832]),t(ot,[2,833]),t(ot,[2,834]),t(ot,[2,835]),t(ot,[2,836]),t(ot,[2,837]),t(ot,[2,838]),t(ot,[2,839]),t(ot,[2,840]),t(ot,[2,841]),t(ot,[2,842]),t(ot,[2,843]),t(ot,[2,844]),t(ot,[2,845]),t(ot,[2,846]),t(ot,[2,847]),t(ot,[2,848]),t(ot,[2,849]),t(ot,[2,850]),t(ot,[2,851]),t(ot,[2,852]),t(ot,[2,853]),t(ot,[2,854]),t(ot,[2,855]),t(ot,[2,856]),t(ot,[2,857]),t(ot,[2,858]),t(ot,[2,859]),t(ot,[2,860]),t(ot,[2,861]),t(ot,[2,862]),t(ot,[2,863]),t(ot,[2,864]),t(ot,[2,865]),t(ot,[2,866]),t(ot,[2,867]),t(ot,[2,868]),t(ot,[2,869]),t(ot,[2,870]),t(ot,[2,871]),t(ot,[2,872]),t(ot,[2,873]),t(ot,[2,874]),t(ot,[2,875]),t(ot,[2,876]),t(ot,[2,877]),t(ot,[2,878]),t(ot,[2,879]),t(ot,[2,880]),t(ot,[2,881]),t(ot,[2,882]),t(ot,[2,883]),t(ot,[2,884]),t(ot,[2,885]),t(ot,[2,886]),t(ot,[2,887]),t(ot,[2,888]),t(ot,[2,889]),t(ot,[2,890]),t(ot,[2,891]),t(ot,[2,892]),t(ot,[2,893]),t(ot,[2,894]),t(ot,[2,895]),t(ot,[2,896]),t(ot,[2,897]),t(ot,[2,898]),t(ot,[2,899]),t(ot,[2,900]),t(ot,[2,901]),t(ot,[2,902]),t(ot,[2,903]),t(ot,[2,904]),t(ot,[2,905]),t(ot,[2,906]),t(ot,[2,907]),t(ot,[2,908]),t(ot,[2,909]),t(ot,[2,910]),t(ot,[2,911]),t(ot,[2,912]),t(ot,[2,913]),t(ot,[2,914]),t(ot,[2,915]),t(ot,[2,916]),t(ot,[2,917]),t(ot,[2,918]),t(ot,[2,919]),t(ot,[2,920]),t(ot,[2,921]),t(ot,[2,922]),t(ot,[2,923]),t(ot,[2,924]),t(ot,[2,925]),t(ot,[2,926]),t(ot,[2,927]),t(ot,[2,928]),t(ot,[2,929]),t(ot,[2,930]),t(ot,[2,931]),t(ot,[2,932]),t(ot,[2,933]),t(ot,[2,934]),t(ot,[2,935]),t(ot,[2,936]),t(ot,[2,937]),t(ot,[2,938]),t(ot,[2,939]),t(ot,[2,940]),t(ot,[2,941]),t(ot,[2,942]),t(ot,[2,943]),t(ot,[2,944]),t(ot,[2,945]),t(ot,[2,946]),t(ot,[2,947]),t(ot,[2,948]),t(ot,[2,949]),t(ot,[2,950]),t(ot,[2,951]),t(ot,[2,952]),t(ot,[2,953]),t(ot,[2,954]),t(ot,[2,955]),t(ot,[2,956]),t(ot,[2,957]),t(ot,[2,958]),t(ot,[2,959]),t(ot,[2,960]),t(ot,[2,961]),t(ot,[2,962]),t(ot,[2,963]),t(ot,[2,964]),t(ot,[2,965]),t(ot,[2,966]),t(ot,[2,967]),t(ot,[2,968]),t(ot,[2,969]),t(ot,[2,970]),t(ot,[2,971]),t(ot,[2,972]),t(ot,[2,973]),t(ot,[2,974]),t(ot,[2,975]),t(ot,[2,976]),t(ot,[2,977]),t(ot,[2,978]),t(ot,[2,979]),t(ot,[2,980]),t(ot,[2,981]),t(ot,[2,982]),t(ot,[2,983]),t(ot,[2,984]),t(ot,[2,985]),t(ot,[2,986]),t(ot,[2,987]),t(ot,[2,988]),t(ot,[2,989]),t(ot,[2,990]),t(ot,[2,991]),t(ot,[2,992]),t(ot,[2,993]),t(ot,[2,994]),t(ot,[2,995]),t(ot,[2,996]),t(ot,[2,997]),t(ot,[2,998]),t(ot,[2,999]),t(ot,[2,1e3]),t(ot,[2,1001]),t(ot,[2,1002]),t(ot,[2,1003]),t(ot,[2,1004]),t(ot,[2,1005]),t(ot,[2,1006]),t(ot,[2,1007]),t(ot,[2,1008]),t(ot,[2,1009]),t(ot,[2,1010]),t(ot,[2,1011]),t(ot,[2,1012]),t(ot,[2,1013]),t(ot,[2,1014]),t(ot,[2,1015]),t(ot,[2,1016]),t(ot,[2,1017]),t(ot,[2,1018]),t(ot,[2,1019]),t(ot,[2,1020]),t(ot,[2,1021]),t(ot,[2,1022]),t(ot,[2,1023]),t(ot,[2,1024]),t(ot,[2,1025]),t(ot,[2,1026]),t(ot,[2,1027]),t(ot,[2,1028]),t(ot,[2,1029]),t(ot,[2,1030]),t(ot,[2,1031]),t(ot,[2,1032]),t(ot,[2,1033]),t(ot,[2,1034]),t(ot,[2,1035]),t(ot,[2,1036]),t(ot,[2,1037]),t(ot,[2,1038]),t(ot,[2,1039]),t(ot,[2,1040]),t(X,[2,7]),t(X,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:821,2:n,4:a,5:s,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:n,3:826,4:a,5:s},t(Tn,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:832,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:833,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:834,4:a,5:s,132:[1,835]},{2:n,3:836,4:a,5:s,132:[1,837]},{2:n,3:838,4:a,5:s,99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{2:n,3:839,4:a,5:s},{154:[1,840]},t(Nn,ht,{350:841,156:dt}),{230:[1,842]},{2:n,3:843,4:a,5:s},t(K,[2,729],{74:Cn}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:845,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Sn,[2,732]),t(Rn,[2,1143],{419:190,476:846,144:847,139:On,141:On,145:ze,420:Ge,424:Ve}),{139:[1,848],141:[1,849]},t(wn,In,{490:851,493:852,77:[1,850],137:pt}),t(xn,[2,1167],{494:853,132:[1,854]}),t(Dn,[2,1171],{496:855,497:856,152:bt}),t(Dn,[2,747]),t(kn,[2,739]),{2:n,3:857,4:a,5:s,131:[1,858]},{2:n,3:859,4:a,5:s},{2:n,3:860,4:a,5:s},t(Be,ht,{350:861,156:dt}),t(Be,ht,{350:862,156:dt}),t(St,[2,491]),t(St,[2,492]),{183:[1,863]},{183:[2,1142]},t(Ln,[2,1137],{466:864,469:865,137:[1,866]}),t(Et,[2,1136]),t($n,Mn,{510:867,95:Un,230:[1,868],514:_n,515:Fn,516:Pn}),{76:[1,873]},{76:[1,874]},{145:se,450:875},{4:qn,7:879,76:[1,877],272:876,387:878,389:Gn},t(K,[2,456],{128:[1,882]}),t(K,[2,579]),{2:n,3:883,4:a,5:s},{298:[1,884]},t(Nn,mt,{398:885,156:vt}),t(K,[2,593]),{2:n,3:244,4:a,5:s,199:887,399:886},{2:n,3:244,4:a,5:s,199:887,399:888},t(K,[2,772]),t(X,[2,669],{438:889,310:[1,890]}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:891,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:892,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:893,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:894,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:895,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:896,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:897,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:898,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:899,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:900,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:901,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:902,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:903,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:904,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:905,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:906,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:907,4:a,5:s,77:[1,909],131:oe,156:Q,196:908,200:910,290:z,291:Z,292:ee,293:te},{2:n,3:911,4:a,5:s,77:[1,913],131:oe,156:Q,196:912,200:914,290:z,291:Z,292:ee,293:te},t(Vn,[2,440],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:915,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),t(Vn,[2,441],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:916,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),t(Vn,[2,442],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:917,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),t(Vn,[2,443],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:918,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),t(Vn,Bn,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:919,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:920,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:921,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Vn,[2,445],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:922,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:923,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:924,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:929,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:930,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:695,4:a,5:s,77:[1,931],111:934,145:jn,156:Q,200:935,202:933,290:z,291:Z,292:ee,293:te,329:932},{99:[1,937],297:[1,938]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:939,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:940,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:941,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{4:qn,7:879,272:942,387:878,389:Gn},t(Hn,[2,88]),t(Hn,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(Be,je,{340:207,77:lt,198:He}),{78:[2,1107]},{78:[2,1108]},{134:ne,135:ae},{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:947,152:fe,154:pe,156:Q,158:167,164:[1,949],179:be,180:Ee,181:ge,185:[1,948],196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163, -265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:950,4:a,5:s,149:Jn,180:[1,952]},t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,416],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,332:rr}),t(Yn,[2,417],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,180:Ft,312:qt,316:Bt}),t(Yn,[2,418],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,180:Ft,312:qt,316:Bt}),t(Wn,[2,419],{114:625,327:637,316:Bt}),t(Wn,[2,420],{114:625,327:637,316:Bt}),t(sr,[2,365]),t(sr,[2,1113]),t(sr,[2,1114]),t(sr,[2,366]),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,362]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:953,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(cr,[2,620]),t(cr,[2,621]),t(cr,[2,622]),t(cr,[2,623]),t(cr,[2,625]),{40:954,79:75,89:c,184:99,189:f},{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,304:955,307:677,308:ur,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{305:956,306:Xn,307:957,308:ur,310:Kn},t(Qn,[2,372]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:959,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:960,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{4:qn,7:879,272:961,387:878,389:Gn},t(cr,[2,626]),{74:[1,963],300:[1,962]},t(cr,[2,642]),t(zn,[2,649]),t(Zn,[2,627]),t(Zn,[2,628]),t(Zn,[2,629]),t(Zn,[2,630]),t(Zn,[2,631]),t(Zn,[2,632]),t(Zn,[2,633]),t(Zn,[2,634]),t(Zn,[2,635]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:964,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],ar,{77:ct,116:ea}),{74:pn,300:[1,966]},t(ta,[2,314],{77:ct}),t(Qe,[2,315]),{74:[1,968],426:[1,967]},t(cr,[2,639]),t(ra,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:c,143:le,144:979,145:ze,149:na,152:fe,181:ge,184:99,189:f,201:980,302:_e,341:972,342:973,343:[1,974],344:aa,419:190,420:Ge,424:Ve},t(Be,je,{340:981,198:He}),{77:sa,143:le,144:979,145:ze,149:na,152:fe,181:ge,201:980,302:_e,341:982,342:983,344:aa,419:190,420:Ge,424:Ve},{230:[1,986],455:985},{2:n,3:219,4:a,5:s,77:Je,132:Ye,143:le,144:212,145:he,152:fe,156:Q,181:ge,199:213,200:215,201:214,202:217,209:987,213:We,214:218,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve},{231:[2,696]},{78:[1,988]},t(pr,[2,1093],{211:989,3:990,2:n,4:a,5:s}),t(fr,[2,1092]),t(pr,[2,183]),{2:n,3:991,4:a,5:s},{212:[1,992]},t(pr,[2,187]),{2:n,3:993,4:a,5:s},t(pr,[2,191]),{2:n,3:994,4:a,5:s},t(pr,[2,195]),{2:n,3:995,4:a,5:s},t(pr,[2,198]),{2:n,3:996,4:a,5:s},{2:n,3:997,4:a,5:s},{148:[1,998]},t(ia,[2,172],{82:999,183:[1,1e3]}),{2:n,3:219,4:a,5:s,132:[1,1005],143:le,145:[1,1006],152:fe,156:Q,181:ge,199:1001,200:1002,201:1003,202:1004,290:z,291:Z,292:ee,293:te,302:_e},{2:n,3:1011,4:a,5:s,109:1007,110:1008,111:1009,112:oa},t(Sr,[2,1058]),t(ua,[2,1049],{91:1012,182:1013,183:[1,1014]}),t(Ke,[2,1048],{153:1015,179:ca,180:la,181:ha}),t([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,90],{77:[1,1019]}),{119:[1,1020]},t(da,[2,93]),{2:n,3:1021,4:a,5:s},t(da,[2,95]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1022,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1023,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,112:Nr,114:736,115:yt,116:Nt,117:1025,118:Cr,122:Rr,123:Or,124:wr,125:1024,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},t(da,[2,104]),t(da,[2,105]),t(da,[2,106]),t(da,[2,107]),t(da,[2,108]),t(da,[2,109]),{2:n,3:1030,4:a,5:s},{2:n,3:1031,4:a,5:s,133:[1,1032]},t(da,[2,113]),t(da,[2,114]),t(da,[2,115]),t(da,[2,116]),t(da,[2,117]),t(da,[2,118]),{2:n,3:1033,4:a,5:s,77:or,113:669,131:oe,132:ue,143:le,152:fe,181:ge,196:670,201:672,257:671,294:De,295:ke,296:Le,302:_e,419:673,424:Ve},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},t(da,[2,123]),{77:[1,1037]},{2:n,3:1038,4:a,5:s},{77:[1,1039]},{77:[1,1040]},{77:[1,1041]},{77:[1,1042]},{77:[1,1043],164:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047]},{77:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[2,1073]},{77:[2,1074]},{2:n,3:244,4:a,5:s,199:1054},{2:n,3:244,4:a,5:s,199:1055},{113:1056,132:ue,296:Le},t(K,[2,596],{112:[1,1057]}),{2:n,3:244,4:a,5:s,199:1058},{113:1059,132:ue,296:Le},{2:n,3:1060,4:a,5:s},t(K,[2,693]),t(K,[2,68]),{2:n,3:236,4:a,5:s,75:1061},{77:[1,1062]},t(K,[2,674]),t(K,[2,586]),{2:n,3:1011,4:a,5:s,111:1065,143:fa,145:pa,147:1063,336:1064,337:1066},{144:1069,145:ze,419:190,420:Ge,424:Ve},t(K,[2,671]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1070,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Vn,Bn,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:1071,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),{113:1072,132:ue,296:Le},{2:n,3:266,4:a,5:s,446:1073,447:et},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1075,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,230:gn,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve,429:1074,433:mn},t(K,[2,651]),{114:1077,115:yt,116:Nt,124:[1,1076]},t(K,[2,663]),t(K,[2,664]),{2:n,3:1079,4:a,5:s,77:ba,131:Ea,432:1078},{114:807,115:yt,116:Nt,124:[1,1082],430:1083},t(K,[2,753],{74:vn}),{2:n,3:100,4:a,5:s,504:1084},{2:n,3:168,4:a,5:s,56:165,77:ie,94:817,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,174:1085,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:817,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,174:1086,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:817,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,174:1087,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(An,[2,151]),t(An,[2,1088],{74:ga}),t(ma,[2,273]),t(ma,[2,280],{114:625,327:637,3:1090,113:1092,2:n,4:a,5:s,76:[1,1089],99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,131:[1,1091],132:ue,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,296:Le,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(nt,[2,1089],{197:1093,765:[1,1094]}),{131:oe,196:1095},{74:vn,78:[1,1096]},t(X,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},t(K,[2,575],{76:[1,1103],77:[1,1102]}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1104,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(sr,[2,346]),t(Tn,[2,1112]),t(Tn,[2,1109]),t(Tn,[2,1110]),{74:pn,78:[1,1105]},{74:pn,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},t(sr,[2,353]),t(K,[2,580]),{298:[1,1111]},{2:n,3:1112,4:a,5:s,113:1113,132:ue,296:Le},{2:n,3:244,4:a,5:s,199:1114},{230:[1,1115]},{2:n,3:578,4:a,5:s,132:ft,137:pt,143:tt,145:rt,152:bt,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},t(K,[2,730],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(Sn,[2,1145],{477:1117,483:1118,76:va}),t(Rn,[2,1144]),{2:n,3:1122,4:a,5:s,132:ft,137:pt,144:1121,145:ze,152:bt,419:190,420:Ge,424:Ve,475:1120,493:579,497:581},{2:n,3:1122,4:a,5:s,132:ft,137:pt,143:tt,145:rt,152:bt,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:n,3:578,4:a,5:s,132:ft,137:pt,143:tt,145:rt,152:bt,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},t(xn,[2,1163],{491:1126,132:[1,1127]}),t(wn,[2,1162]),t(Dn,[2,1169],{495:1128,497:1129,152:bt}),t(xn,[2,1168]),t(Dn,[2,746]),t(Dn,[2,1172]),t(wn,[2,749]),t(wn,[2,750]),t(Dn,[2,748]),t(kn,[2,740]),{2:n,3:244,4:a,5:s,199:1130},{2:n,3:244,4:a,5:s,199:1131},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1132,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Sa,[2,1139],{467:1133,113:1134,132:ue,296:Le}),t(Ln,[2,1138]),{2:n,3:1135,4:a,5:s},{335:Ta,338:Aa,339:ya,511:1136},{2:n,3:244,4:a,5:s,199:1140},t($n,[2,765]),t($n,[2,766]),t($n,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},t(gt,[2,688]),t(gt,[2,689],{124:[1,1144]}),{4:qn,7:879,272:1145,387:878,389:Gn},t([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,542],{5:[1,1146]}),t([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,539],{4:[1,1148],77:[1,1147]}),{77:[1,1149]},t(Na,[2,4]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1150,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(K,[2,588]),t(Nn,[2,568]),{2:n,3:1151,4:a,5:s,113:1152,132:ue,296:Le},t(K,[2,564],{74:Ca}),t(gt,[2,566]),t(K,[2,613],{74:Ca}),t(K,[2,668]),t(K,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1154,2:n,4:a,5:s,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(Ra,[2,376],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,312:qt,316:Bt,317:jt,318:Ht,319:Jt}),t(Wn,[2,377],{114:625,327:637,316:Bt}),t(Ra,[2,378],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,312:qt,316:Bt,317:jt,318:Ht,319:Jt}),t(Oa,[2,379],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,312:qt,314:[1,1155],316:Bt,317:jt,318:Ht,319:Jt}),t(Oa,[2,381],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,312:qt,314:[1,1156],316:Bt,317:jt,318:Ht,319:Jt}),t(Qe,[2,383],{114:625,327:637}),t(Yn,[2,384],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,180:Ft,312:qt,316:Bt}),t(Yn,[2,385],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,180:Ft,312:qt,316:Bt}),t(wa,[2,386],{114:625,327:637,115:yt,116:Nt,123:Ct,136:wt,312:qt,316:Bt}),t(wa,[2,387],{114:625,327:637,115:yt,116:Nt,123:Ct,136:wt,312:qt,316:Bt}),t(wa,[2,388],{114:625,327:637,115:yt,116:Nt,123:Ct,136:wt,312:qt,316:Bt}),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,389],{114:625,327:637,115:yt,116:Nt,136:wt,312:qt,316:Bt}),t(Ia,[2,390],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,179:_t,180:Ft,312:qt,316:Bt,317:jt}),t(Ia,[2,391],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,179:_t,180:Ft,312:qt,316:Bt,317:jt}),t(Ia,[2,392],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,179:_t,180:Ft,312:qt,316:Bt,317:jt}),t(Ia,[2,393],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,179:_t,180:Ft,312:qt,316:Bt,317:jt}),t(ta,[2,394],{77:ct}),t(Qe,[2,395]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1157,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Qe,[2,397]),t(ta,[2,398],{77:ct}),t(Qe,[2,399]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1158,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Qe,[2,401]),t(xa,[2,402],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,403],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,404],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,405],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,266,267,290,306,310,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],Da,{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,407],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,408],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,409],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,410],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,411],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},t(ka,[2,414],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,332:rr}),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,415],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr}),{2:n,3:168,4:a,5:s,40:1160,56:165,77:ie,78:[1,1162],79:75,89:c,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1161,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,184:99,189:f,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Qe,[2,428]),t(Qe,[2,430]),t(Qe,[2,437]),t(Qe,[2,438]),{2:n,3:667,4:a,5:s,77:[1,1163]},{2:n,3:695,4:a,5:s,77:[1,1164],111:934,145:jn,156:Q,200:935,202:1166,290:z,291:Z,292:ee,293:te,329:1165},t(Qe,[2,435]),t(ka,[2,432],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,332:rr}),t(ka,[2,433],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,332:rr}),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,434],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt}),t(Qe,[2,436]),t(Qe,[2,306]),t(Qe,[2,307]),t(Qe,[2,308]),t(Qe,[2,421]),{74:pn,78:[1,1167]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1168,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1169,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Qe,La),t($a,[2,286]),t(Qe,[2,282]),{78:[1,1171],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1172]},{305:1173,306:Xn,307:957,308:ur,310:Kn},{306:[1,1174]},t(Qn,[2,371]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1175,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,309:[1,1176],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{76:[1,1177],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{74:[1,1178]},t(cr,[2,640]),{2:n,3:695,4:a,5:s,77:lr,111:690,113:688,131:oe,132:ue,143:le,144:685,145:ze,152:fe,156:Q,181:ge,196:687,200:693,201:692,257:689,258:691,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,300:[1,1179],302:_e,419:190,420:Ge,422:1180,423:686,424:Ve},{78:[1,1181],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{2:n,3:1182,4:a,5:s,149:Jn},t(Qe,[2,364]),t(cr,[2,637]),{2:n,3:704,4:a,5:s,131:hr,132:dr,426:[1,1183],428:1184},{2:n,3:695,4:a,5:s,77:lr,111:690,113:688,131:oe,132:ue,143:le,144:685,145:ze,152:fe,156:Q,181:ge,196:687,200:693,201:692,257:689,258:691,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,302:_e,419:190,420:Ge,422:1185,423:686,424:Ve},{2:n,3:695,4:a,5:s,77:lr,111:690,113:688,131:oe,132:ue,143:le,144:685,145:ze,152:fe,156:Q,181:ge,196:687,200:693,201:692,257:689,258:691,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,302:_e,419:190,420:Ge,422:1186,423:686,424:Ve},{2:n,3:695,4:a,5:s,77:lr,111:690,113:688,131:oe,132:ue,143:le,144:685,145:ze,152:fe,156:Q,181:ge,196:687,200:693,201:692,257:689,258:691,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,302:_e,419:190,420:Ge,422:1187,423:686,424:Ve},{77:sa,143:le,144:979,145:ze,152:fe,181:ge,201:980,302:_e,342:1188,419:190,420:Ge,424:Ve},t(Ma,[2,458],{74:Ua}),{149:na,341:1190,344:aa},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1194,100:1191,111:1193,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,345:1192,419:190,420:Ge,424:Ve},t(Ma,[2,466]),t(_a,[2,469]),t(_a,[2,470]),t(Fa,[2,474]),t(Fa,[2,475]),{2:n,3:244,4:a,5:s,199:1195},{77:sa,143:le,144:979,145:ze,152:fe,181:ge,201:980,302:_e,342:1196,419:190,420:Ge,424:Ve},t(Ma,[2,462],{74:Ua}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1194,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,345:1192,419:190,420:Ge,424:Ve},{308:Pa,456:1197,458:1198,459:1199},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1201,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge, -196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{230:[2,697]},t(pr,[2,181],{3:1202,2:n,4:a,5:s,76:[1,1203]}),t(pr,[2,182]),t(pr,[2,1094]),t(pr,[2,184]),t(pr,[2,186]),t(pr,[2,188]),t(pr,[2,192]),t(pr,[2,196]),t(pr,[2,199]),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],[2,201]),{2:n,3:1204,4:a,5:s},t(qa,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:n,3:219,4:a,5:s,77:[1,1210],132:Ye,143:le,144:212,145:he,152:fe,156:Q,181:ge,199:213,200:215,201:214,202:217,203:1209,209:1211,213:We,214:218,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve},t(gr,[2,164]),t(gr,[2,165]),t(gr,[2,166]),t(gr,[2,167]),t(gr,[2,168]),{2:n,3:667,4:a,5:s},t(Xe,[2,83],{74:[1,1212]}),t(Ga,[2,85]),t(Ga,[2,86]),{113:1213,132:ue,296:Le},t([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],ar,{116:ea}),t(ua,[2,73]),t(ua,[2,1050]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1214,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(da,[2,126]),t(da,[2,144]),t(da,[2,145]),t(da,[2,146]),{2:n,3:168,4:a,5:s,56:165,77:ie,78:[2,1065],94:260,111:149,113:153,127:1215,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1216,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{77:[1,1217]},t(da,[2,94]),t([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,96],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,97],{114:625,327:637,99:Tt,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1218],112:Nr,114:736,115:yt,116:Nt,117:1219,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},t(Va,[2,1061],{153:1015,179:ca,180:la,181:ha}),{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,112:Nr,114:736,115:yt,116:Nt,117:1221,118:Cr,122:Rr,123:Or,124:wr,126:1220,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1222,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1223,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1224,4:a,5:s},t(da,[2,110]),t(da,[2,111]),t(da,[2,112]),t(da,[2,119]),{2:n,3:1225,4:a,5:s},{2:n,3:1011,4:a,5:s,111:1065,143:fa,145:pa,147:1226,336:1064,337:1066},{2:n,3:1227,4:a,5:s},{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1228,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(da,[2,125]),t(Va,[2,1067],{155:1229}),t(Va,[2,1069],{157:1230}),t(Va,[2,1071],{159:1231}),t(Va,[2,1075],{161:1232}),t(Ba,ja,{163:1233,178:1234}),{77:[1,1235]},t(Va,[2,1077],{165:1236}),t(Va,[2,1079],{167:1237}),t(Ba,ja,{178:1234,163:1238}),t(Ba,ja,{178:1234,163:1239}),t(Ba,ja,{178:1234,163:1240}),t(Ba,ja,{178:1234,163:1241}),{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,112:Nr,114:736,115:yt,116:Nt,117:1242,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:817,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,174:1243,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Ha,[2,1081],{176:1244}),t(K,[2,606],{183:[1,1245]}),t(K,[2,602],{183:[1,1246]}),t(K,[2,595]),{113:1247,132:ue,296:Le},t(K,[2,604],{183:[1,1248]}),t(K,[2,599]),t(K,[2,600],{112:[1,1249]}),t(dn,[2,69]),{40:1250,79:75,89:c,184:99,189:f},t(K,[2,450],{74:Ja,128:[1,1251]}),t(Ya,[2,451]),{124:[1,1253]},{2:n,3:1254,4:a,5:s},t(Be,[2,1115]),t(Be,[2,1116]),t(K,[2,618]),t(bn,[2,355],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(xa,Da,{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(gt,[2,682]),t(gt,[2,684]),t(K,[2,650]),t(K,[2,652],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1255,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1079,4:a,5:s,77:ba,131:Ea,432:1256},t(Wa,[2,659]),t(Wa,[2,660]),t(Wa,[2,661]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1257,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1258,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{114:1077,115:yt,116:Nt,124:[1,1259]},t(Sn,[2,755]),t(An,[2,148],{74:ga}),t(An,[2,149],{74:ga}),t(An,[2,150],{74:ga}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:817,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,253:1260,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1261,4:a,5:s,113:1263,131:[1,1262],132:ue,296:Le},t(ma,[2,275]),t(ma,[2,277]),t(ma,[2,279]),t(nt,[2,160]),t(nt,[2,1090]),{78:[1,1264]},t(it,[2,758]),{2:n,3:1265,4:a,5:s},{2:n,3:1266,4:a,5:s},{2:n,3:1268,4:a,5:s,384:1267},{2:n,3:1268,4:a,5:s,384:1269},{2:n,3:1270,4:a,5:s},{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1271,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1272,4:a,5:s},{74:pn,78:[1,1273]},t(sr,[2,347]),t(sr,[2,348]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1274,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1275,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1276,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1277,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Nn,[2,504]),t(K,Xa,{407:1278,76:Ka,77:[1,1279]}),t(K,Xa,{407:1281,76:Ka}),{77:[1,1282]},{2:n,3:244,4:a,5:s,199:1283},t(Sn,[2,731]),t(Sn,[2,733]),t(Sn,[2,1146]),{143:tt,145:rt,431:1284},t(Qa,[2,1147],{419:190,479:1285,144:1286,145:ze,420:Ge,424:Ve}),{76:va,139:[2,1151],481:1287,483:1288},t([10,74,76,78,132,139,145,152,306,310,420,424,602,764],In,{490:851,493:852,137:pt}),t(Sn,[2,736]),t(Sn,On),{74:Cn,78:[1,1289]},t(Dn,[2,1165],{492:1290,497:1291,152:bt}),t(xn,[2,1164]),t(Dn,[2,745]),t(Dn,[2,1170]),t(K,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,148:[1,1295],154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(Ma,za,{79:75,184:99,468:1296,40:1299,89:c,146:Za,189:f,470:es}),t(Sa,[2,1140]),t(Ln,[2,723]),{230:[1,1300]},t(ts,[2,769]),t(ts,[2,770]),t(ts,[2,771]),t($n,Mn,{510:1301,95:Un,514:_n,515:Fn,516:Pn}),t($n,[2,768]),t(K,[2,312]),t(K,[2,313]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1302,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(gt,[2,690],{124:[1,1303]}),t(Na,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},t(Na,[2,5]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1194,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,345:1307,419:190,420:Ge,424:Ve},t(K,[2,455],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(K,[2,589]),t(K,[2,590]),{2:n,3:244,4:a,5:s,199:1308},t(K,[2,670]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1309,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1310,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{78:[1,1311],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1312],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{2:n,3:168,4:a,5:s,40:1313,56:165,77:ie,79:75,89:c,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1314,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,184:99,189:f,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{78:[1,1315]},{74:pn,78:[1,1316]},t(Qe,[2,426]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1317,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,40:1318,56:165,77:ie,78:[1,1320],79:75,89:c,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1319,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,184:99,189:f,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Qe,[2,429]),t(Qe,[2,431]),t(Qe,rs,{275:1321,276:ns}),{78:[1,1323],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1324],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{2:n,3:1325,4:a,5:s,180:[1,1326]},t(cr,[2,619]),t(Qe,[2,363]),{306:[1,1327]},t(Qe,[2,370]),{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,306:[2,374],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1328,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{4:qn,7:879,272:1329,387:878,389:Gn},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1330,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(cr,[2,641]),t(zn,[2,648]),t(Zn,[2,636]),t($a,La),t(cr,[2,638]),t(ra,[2,643]),t(ra,[2,645]),t(ra,[2,646]),t(ra,[2,647]),t(Ma,[2,457],{74:Ua}),{77:[1,1332],143:le,144:1333,145:ze,152:fe,181:ge,201:1334,302:_e,419:190,420:Ge,424:Ve},t(Ma,[2,463]),{74:as,78:[1,1335]},{74:ss,78:[1,1337]},t([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,311,312,313,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333],is),t(os,[2,479],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{40:1341,77:sa,79:75,89:c,143:le,144:979,145:ze,149:na,152:fe,181:ge,184:99,189:f,201:980,302:_e,341:1339,342:1340,344:aa,419:190,420:Ge,424:Ve},t(Ma,[2,461],{74:Ua}),t(K,[2,717],{457:1342,458:1343,459:1344,308:Pa,464:[1,1345]}),t(us,[2,701]),t(us,[2,702]),{154:[1,1347],460:[1,1346]},{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,308:[2,698],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(pr,[2,179]),{2:n,3:1348,4:a,5:s},t(K,[2,574]),t(cs,[2,238],{84:1349,128:[1,1350]}),t(qa,[2,1046]),{77:[1,1351]},{77:[1,1352]},t(ia,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:ls,206:hs,208:ds,222:fs,223:ps,224:bs,225:Es,226:gs,227:ms,228:vs,229:Ss}),{2:n,3:219,4:a,5:s,40:711,77:Je,79:75,89:c,132:Ye,143:le,144:212,145:he,152:fe,156:Q,181:ge,184:99,189:f,199:213,200:215,201:214,202:217,203:1369,209:1211,213:We,214:218,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve},t(Ts,[2,177]),{2:n,3:1011,4:a,5:s,110:1370,111:1009,112:oa},t(Ga,[2,87]),t(ua,[2,147],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{78:[1,1371]},{74:pn,78:[2,1066]},{2:n,3:168,4:a,5:s,56:165,77:ie,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,241:1374,242:[1,1375],254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(da,[2,98]),t(Va,[2,1062],{153:1015,179:ca,180:la,181:ha}),{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1377],112:Nr,114:736,115:yt,116:Nt,117:1378,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},t(Va,[2,1063],{153:1015,179:ca,180:la,181:ha}),{78:[1,1379],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1380],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1381]},t(da,[2,120]),{74:Ja,78:[1,1382]},t(da,[2,122]),{74:pn,78:[1,1383]},{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1384],112:Nr,114:736,115:yt,116:Nt,117:1385,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1386],112:Nr,114:736,115:yt,116:Nt,117:1387,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1388],112:Nr,114:736,115:yt,116:Nt,117:1389,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1390],112:Nr,114:736,115:yt,116:Nt,117:1391,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{74:As,78:[1,1392]},t(os,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:n,4:a,5:s,72:Tr,76:Ar,77:yr,112:Nr,115:yt,116:Nt,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,420:Ge,424:Ve}),t(Ba,ja,{178:1234,163:1395}),{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1396],112:Nr,114:736,115:yt,116:Nt,117:1397,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1398],112:Nr,114:736,115:yt,116:Nt,117:1399,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{74:As,78:[1,1400]},{74:As,78:[1,1401]},{74:As,78:[1,1402]},{74:As,78:[1,1403]},{78:[1,1404],153:1015,179:ca,180:la,181:ha},{74:ga,78:[1,1405]},{2:n,3:733,4:a,5:s,72:Tr,74:[1,1406],76:Ar,77:yr,112:Nr,114:736,115:yt,116:Nt,117:1407,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:1408,4:a,5:s},{2:n,3:1409,4:a,5:s},t(K,[2,597]),{2:n,3:1410,4:a,5:s},{113:1411,132:ue,296:Le},{78:[1,1412]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1413,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1011,4:a,5:s,111:1065,143:fa,145:pa,336:1414,337:1066},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1415,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{124:[1,1416]},t(K,[2,653],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(Wa,[2,658]),{78:[1,1417],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(K,[2,654],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1418,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(ma,[2,272]),t(ma,[2,274]),t(ma,[2,276]),t(ma,[2,278]),t(nt,[2,161]),t(K,[2,569]),{148:[1,1419]},t(K,[2,570]),t(Sn,[2,536],{387:878,7:879,272:1420,4:qn,386:[1,1421],389:Gn}),t(K,[2,571]),t(K,[2,573]),{74:pn,78:[1,1422]},t(K,[2,577]),t(sr,[2,345]),{74:[1,1423],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct, -124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{74:[1,1424],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{74:[1,1425],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{74:[1,1426],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(K,[2,581]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1427,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1428,4:a,5:s},t(K,[2,583]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1376,111:149,113:153,120:1429,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{77:[1,1430]},{2:n,3:1431,4:a,5:s},{76:va,139:[2,1149],480:1432,483:1433},t(Qa,[2,1148]),{139:[1,1434]},{139:[2,1152]},t(Sn,[2,737]),t(Dn,[2,744]),t(Dn,[2,1166]),{2:n,3:1268,4:a,5:s,76:[1,1437],351:1435,358:1436,384:1438},{2:n,3:1011,4:a,5:s,100:1439,111:1440},{40:1441,79:75,89:c,184:99,189:f},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1442,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Ma,[2,722]),{2:n,3:1011,4:a,5:s,111:1065,143:fa,145:pa,147:1443,336:1064,337:1066},{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1444,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Ma,[2,727]),{2:n,3:244,4:a,5:s,199:1445},{335:Ta,338:Aa,339:ya,511:1446},t(gt,[2,691],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1447,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{74:[1,1448],78:[1,1449]},t(os,[2,543]),t(os,[2,544]),{74:ss,78:[1,1450]},t(gt,[2,565]),t(Ra,[2,380],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,312:qt,316:Bt,317:jt,318:Ht,319:Jt}),t(Ra,[2,382],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,312:qt,316:Bt,317:jt,318:Ht,319:Jt}),t(Qe,[2,396]),t(Qe,[2,400]),{78:[1,1451]},{74:pn,78:[1,1452]},t(Qe,[2,422]),t(Qe,[2,424]),{78:[1,1453],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1454]},{74:pn,78:[1,1455]},t(Qe,[2,427]),t(Qe,[2,327]),{77:[1,1456]},t(Qe,rs,{275:1457,276:ns}),t(Qe,rs,{275:1458,276:ns}),t($a,[2,284]),t(Qe,[2,281]),t(Qe,[2,369]),t(Qn,[2,373],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{2:n,3:1325,4:a,5:s},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1194,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,345:1463,419:190,420:Ge,424:Ve},t(Fa,[2,477]),t(Fa,[2,478]),{40:1466,77:sa,79:75,89:c,143:le,144:979,145:ze,149:na,152:fe,181:ge,184:99,189:f,201:980,302:_e,341:1464,342:1465,344:aa,419:190,420:Ge,424:Ve},{2:n,3:1011,4:a,5:s,111:1467},t(Fa,[2,473]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1468,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{77:sa,143:le,144:979,145:ze,152:fe,181:ge,201:980,302:_e,342:1469,419:190,420:Ge,424:Ve},t(Ma,[2,460],{74:Ua}),t(Ma,[2,467]),t(K,[2,694]),t(us,[2,699]),t(us,[2,700]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:817,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,174:1470,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{170:[1,1472],309:[1,1471]},{460:[1,1473]},t(pr,[2,180]),t(ys,[2,240],{85:1474,232:[1,1475]}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1476,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1477,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1478,4:a,5:s},t(ia,[2,170],{216:1357,221:1360,215:1479,205:1480,206:hs,208:ds,222:fs,223:ps,224:bs,225:Es,226:gs,227:ms,228:vs,229:Ss}),{2:n,3:219,4:a,5:s,77:Je,132:Ye,143:le,144:212,145:he,152:fe,156:Q,181:ge,199:213,200:215,201:214,202:217,209:1481,213:We,214:218,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve},t(Ns,[2,205]),t(Ns,[2,206]),{2:n,3:219,4:a,5:s,77:[1,1486],143:le,144:1484,145:he,152:fe,156:Q,181:ge,199:1483,200:1487,201:1485,202:1488,217:1482,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve},{207:[1,1489],223:Cs},{207:[1,1491],223:Rs},t(Os,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:ps,224:bs,225:Es,226:gs,227:ms,228:vs,229:Ss},t(Os,[2,224]),{223:[1,1496]},{208:[1,1498],223:[1,1497]},{208:[1,1500],223:[1,1499]},{208:[1,1501]},{223:[1,1502]},{223:[1,1503]},{74:ls,204:1504,205:1356,206:hs,208:ds,215:1355,216:1357,221:1360,222:fs,223:ps,224:bs,225:Es,226:gs,227:ms,228:vs,229:Ss},t(Ga,[2,84]),t(da,[2,100]),{74:ws,78:[1,1505]},{78:[1,1507]},t(Is,[2,261]),{78:[2,1060]},t(Is,[2,263],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,242:[1,1508],243:[1,1509],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(da,[2,99]),t(Va,[2,1064],{153:1015,179:ca,180:la,181:ha}),t(da,[2,101]),t(da,[2,102]),t(da,[2,103]),t(da,[2,121]),t(da,[2,124]),t(da,[2,127]),t(Va,[2,1068],{153:1015,179:ca,180:la,181:ha}),t(da,[2,128]),t(Va,[2,1070],{153:1015,179:ca,180:la,181:ha}),t(da,[2,129]),t(Va,[2,1072],{153:1015,179:ca,180:la,181:ha}),t(da,[2,130]),t(Va,[2,1076],{153:1015,179:ca,180:la,181:ha}),t(da,[2,131]),t(Ba,[2,1083],{177:1510}),t(Ba,[2,1086],{153:1015,179:ca,180:la,181:ha}),{74:As,78:[1,1511]},t(da,[2,133]),t(Va,[2,1078],{153:1015,179:ca,180:la,181:ha}),t(da,[2,134]),t(Va,[2,1080],{153:1015,179:ca,180:la,181:ha}),t(da,[2,135]),t(da,[2,136]),t(da,[2,137]),t(da,[2,138]),t(da,[2,139]),t(da,[2,140]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1512,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Ha,[2,1082],{153:1015,179:ca,180:la,181:ha}),t(K,[2,607]),t(K,[2,603]),t(K,[2,605]),t(K,[2,601]),t(dn,[2,71]),t(K,[2,449],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(Ya,[2,452]),t(Ya,[2,453],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1513,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Wa,[2,662]),t(K,[2,655],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:1514,4:a,5:s},t(Sn,[2,545],{385:1515,391:1516,392:1517,366:1525,154:xs,187:Ds,230:ks,297:Ls,343:$s,356:Ms,368:Us,369:_s,373:Fs,374:Ps}),t(Sn,[2,535]),t(K,[2,576],{76:[1,1529]}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1530,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1531,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1532,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1533,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{74:pn,78:[1,1534]},t(K,[2,585]),{74:ws,78:[1,1535]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1376,111:149,113:153,120:1536,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:n,3:1122,4:a,5:s,132:ft,137:pt,143:tt,145:rt,152:bt,431:585,475:1124,478:1538,482:582,493:579,497:581},{78:[1,1539]},{74:[1,1540],78:[2,506]},{40:1541,79:75,89:c,184:99,189:f},t(os,[2,532]),{74:as,78:[1,1542]},t(Ts,is),t(K,[2,1133],{412:1543,413:1544,72:qs}),t(Ma,za,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:c,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,146:Za,154:$t,170:Mt,171:Ut,179:_t,180:Ft,189:f,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr,470:es}),t(Ma,[2,725],{74:Ja}),t(Ma,[2,726],{74:pn}),t([10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],[2,1181],{512:1547,3:1548,2:n,4:a,5:s,76:[1,1549]}),t(Gs,[2,1183],{513:1550,76:[1,1551]}),t(gt,[2,692],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{131:[1,1552]},t(Na,[2,538]),t(Na,[2,540]),t(Qe,[2,412]),t(Qe,[2,413]),t(Qe,[2,439]),t(Qe,[2,423]),t(Qe,[2,425]),{118:Vs,277:1553,278:1554,279:[1,1555]},t(Qe,[2,328]),t(Qe,[2,329]),t(Qe,[2,316]),{131:[1,1557]},t(Qe,[2,318]),{131:[1,1558]},{74:ss,78:[1,1559]},{77:sa,143:le,144:979,145:ze,152:fe,181:ge,201:980,302:_e,342:1560,419:190,420:Ge,424:Ve},t(Ma,[2,465],{74:Ua}),t(Ma,[2,468]),t(Ts,[2,488]),t(os,[2,480],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(Ma,[2,459],{74:Ua}),t(K,[2,718],{74:ga,198:[1,1561]}),{335:Bs,338:js,461:1562},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1565,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{119:[1,1567],170:[1,1568],309:[1,1566]},t(Hs,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},t(cs,[2,239],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{95:[1,1572],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{95:[1,1573]},t(Ns,[2,203]),t(Ns,[2,204]),t(Ts,[2,178]),t(Ns,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),t(Js,[2,208],{3:1577,2:n,4:a,5:s,76:[1,1578]}),t(Ys,[2,1095],{219:1579,76:[1,1580]}),{2:n,3:1581,4:a,5:s,76:[1,1582]},{40:1583,79:75,89:c,184:99,189:f},t(Js,[2,216],{3:1584,2:n,4:a,5:s,76:[1,1585]}),t(Js,[2,219],{3:1586,2:n,4:a,5:s,76:[1,1587]}),{77:[1,1588]},t(Os,[2,234]),{77:[1,1589]},t(Os,[2,230]),t(Os,[2,223]),{223:Rs},{223:Cs},t(Os,[2,225]),t(Os,[2,226]),{223:[1,1590]},t(Os,[2,228]),{223:[1,1591]},{223:[1,1592]},t(Os,[2,232]),t(Os,[2,233]),{78:[1,1593],205:1480,206:hs,208:ds,215:1479,216:1357,221:1360,222:fs,223:ps,224:bs,225:Es,226:gs,227:ms,228:vs,229:Ss},t(da,[2,91]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1376,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,241:1594,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(da,[2,92]),t(Is,[2,264]),{244:[1,1595]},t(os,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:n,4:a,5:s,72:Tr,76:Ar,77:yr,112:Nr,115:yt,116:Nt,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,420:Ge,424:Ve}),t(da,[2,132]),{74:pn,78:[1,1597]},t(Ya,[2,454],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(K,[2,572]),t(Sn,[2,534]),t(Sn,[2,546],{366:1525,392:1598,154:xs,187:Ds,230:ks,297:Ls,343:$s,356:Ms,368:Us,369:_s,373:Fs,374:Ps}),t(fn,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:n,3:244,4:a,5:s,199:1601},t(fn,[2,554],{77:[1,1602]}),{2:n,3:114,4:a,5:s,77:[1,1604],113:251,131:oe,132:ue,143:le,152:fe,156:Q,181:ge,196:250,200:1605,201:254,257:252,258:253,265:Ze,274:1603,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,302:_e},t(fn,[2,558]),{297:[1,1606]},t(fn,[2,560]),t(fn,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:n,3:1609,4:a,5:s},{78:[1,1610],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1611],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1612],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1613],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(K,Xa,{407:1614,76:Ka}),t(K,[2,591]),{74:ws,78:[1,1615]},{2:n,3:1122,4:a,5:s,132:ft,137:pt,143:tt,145:rt,152:bt,431:585,475:1124,478:1616,482:582,493:579,497:581},t(Sn,[2,735]),t(K,[2,493],{352:1617,354:1618,355:1619,4:Ws,243:Xs,343:Ks,356:Qs}),t(zs,Zs,{3:1268,359:1624,384:1625,360:1626,361:1627,2:n,4:a,5:s,367:ei}),{78:[2,507]},{76:[1,1629]},t(K,[2,609]),t(K,[2,1134]),{368:[1,1631],414:[1,1630]},t(Ma,[2,728]),t(K,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1632,2:n,4:a,5:s,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(K,[2,762]),t(Gs,[2,1182]),t(K,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1633,2:n,4:a,5:s,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(Gs,[2,1184]),{78:[1,1634]},{78:[1,1635],118:Vs,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},t(Fa,[2,476]),t(Ma,[2,464],{74:Ua}),{2:n,3:244,4:a,5:s,143:tt,145:rt,199:1643,431:1642},t(us,[2,703]),t(us,[2,705]),{146:[1,1644]},{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,309:[1,1645],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{339:ti,462:1646},{417:[1,1649],463:[1,1648]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1650,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(ri,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,233:1655,235:1656,236:ni,237:ai,238:si,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1661,4:a,5:s},{2:n,3:1662,4:a,5:s},t(Ns,[2,207]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1663,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1011,4:a,5:s,100:1664,111:1440},t(Js,[2,209]),{2:n,3:1665,4:a,5:s},t(Js,[2,1097],{220:1666,3:1667,2:n,4:a,5:s}),t(Ys,[2,1096]),t(Js,[2,212]),{2:n,3:1668,4:a,5:s},{78:[1,1669]},t(Js,[2,217]),{2:n,3:1670,4:a,5:s},t(Js,[2,220]),{2:n,3:1671,4:a,5:s},{40:1672,79:75,89:c,184:99,189:f},{40:1673,79:75,89:c,184:99,189:f},t(Os,[2,227]),t(Os,[2,229]),t(Os,[2,231]),t(ia,[2,171]),t(Is,[2,262]),t(Is,[2,265],{242:[1,1674]}),t(Ba,[2,1084],{153:1015,179:ca,180:la,181:ha}),t(da,[2,141]),t(fn,[2,547]),t(fn,[2,550]),{374:[1,1675]},t(fn,[2,1127],{395:1676,393:1677,77:ii}),{131:oe,196:1679},t(fn,[2,555]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1680,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(fn,[2,557]),t(fn,[2,559]),{2:n,3:114,4:a,5:s,77:[1,1682],113:251,131:oe,132:ue,143:le,152:fe,156:Q,181:ge,196:250,200:255,201:254,257:252,258:253,265:Ze,274:1681,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,302:_e},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1683,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(K,[2,578]),t(sr,[2,349]),t(sr,[2,350]),t(sr,[2,351]),t(sr,[2,352]),t(K,[2,582]),t(K,[2,592]),t(Sn,[2,734]),t(K,[2,489]),t(K,[2,494],{355:1684,4:Ws,243:Xs,343:Ks,356:Qs}),t(oi,[2,496]),t(oi,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},t(os,[2,533]),t(os,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:Us,369:[1,1694],370:[1,1698],373:[1,1695]},{2:n,3:1699,4:a,5:s},{40:1700,79:75,89:c,184:99,189:f},{415:[1,1701]},{416:[1,1702]},t(K,[2,761]),t(K,[2,763]),t(Na,[2,537]),t(Qe,[2,331]),{78:[1,1703]},t(Qe,[2,332]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,233:1704,235:1656,236:ni,237:ai,238:si,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1376,111:149,113:153,120:1705,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Qe,[2,317]),t(Qe,[2,319]),{2:n,3:1706,4:a,5:s},t(K,[2,720],{77:[1,1707]}),{2:n,3:1011,4:a,5:s,111:1065,143:fa,145:pa,147:1708,336:1064,337:1066},{335:Bs,338:js,461:1709},t(us,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,309:[1,1717],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(ua,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:oe,196:1722},{131:oe,196:1723},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1376,111:149,113:153,120:1724,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(ys,[2,248],{234:1725,74:ui,239:[1,1727]}),t(ci,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},t(ci,[2,247],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},t(Ns,[2,235],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(Ns,[2,236],{74:as}),t(Js,[2,210]),t(Js,[2,211]),t(Js,[2,1098]),t(Js,[2,213]),{2:n,3:1735,4:a,5:s,76:[1,1736]},t(Js,[2,218]),t(Js,[2,221]),{78:[1,1737]},{78:[1,1738]},t(Is,[2,266]),{2:n,3:244,4:a,5:s,199:1739},t(fn,[2,552]),t(fn,[2,1128]),{2:n,3:1740,4:a,5:s},{74:[1,1741]},{78:[1,1742],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt, -317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(fn,[2,562]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1743,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{78:[1,1744],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(oi,[2,495]),{2:n,3:1745,4:a,5:s},{131:oe,196:1746},{2:n,3:1747,4:a,5:s},t(zs,Zs,{361:1627,360:1748,367:ei}),t(Sn,[2,510]),t(Sn,[2,511]),t(Sn,[2,512]),t(Sn,[2,513]),t(Sn,[2,514]),{370:[1,1749]},{370:[1,1750]},t(li,[2,1121],{382:1751,370:[1,1752]}),{2:n,3:1753,4:a,5:s},{2:n,3:1754,4:a,5:s},t(zs,[2,516]),t(K,[2,1131],{411:1755,413:1756,72:qs}),t(K,[2,610]),t(K,[2,611],{367:[1,1757]}),t(Qe,[2,333]),t([78,118],[2,334],{74:ui}),{74:ws,78:[2,335]},t(K,[2,719]),{2:n,3:1011,4:a,5:s,100:1758,111:1440},t(us,[2,706],{74:Ja}),t(us,[2,704]),{77:sa,143:le,144:979,145:ze,152:fe,181:ge,201:980,302:_e,342:1759,419:190,420:Ge,424:Ve},{2:n,3:1011,4:a,5:s,100:1760,111:1440},{344:[1,1761]},{339:ti,462:1762},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1763,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{339:ti,462:1764},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1765,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{339:ti,462:1766},t(ua,[2,72]),{40:1767,79:75,89:c,164:[1,1768],184:99,189:f,240:[1,1769]},{40:1770,79:75,89:c,184:99,189:f,240:[1,1771]},{40:1772,79:75,89:c,184:99,189:f,240:[1,1773]},t(ri,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},t(Hs,[2,260],{74:ws}),t(ys,[2,241]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,235:1778,236:ni,237:ai,238:si,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1779,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{77:[1,1780]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,233:1781,235:1656,236:ni,237:ai,238:si,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,233:1782,235:1656,236:ni,237:ai,238:si,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},t(Js,[2,214]),{2:n,3:1786,4:a,5:s},{2:n,3:1787,4:a,5:s,76:[1,1788]},{2:n,3:1789,4:a,5:s,76:[1,1790]},t(fn,[2,1125],{394:1791,393:1792,77:ii}),{78:[1,1793]},{131:oe,196:1794},t(fn,[2,556]),{78:[1,1795],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(fn,[2,517]),t(oi,[2,498]),t(oi,[2,499]),t(oi,[2,500]),t(os,[2,509]),{2:n,3:1797,4:a,5:s,77:[2,1117],371:1796},{77:[1,1798]},{2:n,3:1800,4:a,5:s,77:[2,1123],383:1799},t(li,[2,1122]),{77:[1,1801]},{77:[1,1802]},t(K,[2,608]),t(K,[2,1132]),t(zs,Zs,{361:1627,360:1803,367:ei}),{74:as,78:[1,1804]},t(us,[2,713],{74:Ua}),{74:as,78:[1,1805]},t(us,[2,715]),t(us,[2,708]),{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,309:[1,1806],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(us,[2,711]),{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,309:[1,1807],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(us,[2,709]),t(ua,[2,251]),{40:1808,79:75,89:c,184:99,189:f,240:[1,1809]},{40:1810,79:75,89:c,184:99,189:f},t(ua,[2,253]),{40:1811,79:75,89:c,184:99,189:f},t(ua,[2,254]),{40:1812,79:75,89:c,184:99,189:f},t(ri,[2,268]),{131:oe,196:1813},{249:[1,1814]},{249:[2,1100]},t(ci,[2,243]),t(ys,[2,249],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,233:1815,235:1656,236:ni,237:ai,238:si,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{74:ui,78:[1,1816]},{74:ui,78:[1,1817]},t(qa,[2,1053],{97:1818,104:1819,3:1821,2:n,4:a,5:s,76:hi}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1824,103:1822,105:1823,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1011,4:a,5:s,100:1825,111:1440},t(Js,[2,215]),t(Ns,[2,173]),{2:n,3:1826,4:a,5:s},t(Ns,[2,175]),{2:n,3:1827,4:a,5:s},t(fn,[2,551]),t(fn,[2,1126]),t(fn,[2,549]),{78:[1,1828]},t(fn,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:n,3:1831,4:a,5:s,132:di,372:1830},{77:[1,1833]},{77:[2,1124]},{2:n,3:1011,4:a,5:s,100:1834,111:1440},{2:n,3:1011,4:a,5:s,100:1835,111:1440},t(K,[2,612]),t(K,[2,721]),{343:[1,1837],344:[1,1836]},{339:ti,462:1838},{335:Bs,338:js,461:1839},t(ua,[2,252]),{40:1840,79:75,89:c,184:99,189:f},t(ua,[2,255]),t(ua,[2,257]),t(ua,[2,258]),t(ri,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:ui,78:[1,1843]},t(ci,[2,245]),t(ci,[2,246]),t(qa,[2,74]),t(qa,[2,1054]),{2:n,3:1844,4:a,5:s},t(qa,[2,78]),{74:[1,1846],78:[1,1845]},t(os,[2,80]),t(os,[2,81],{114:625,327:637,76:[1,1847],99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{74:as,78:[1,1848]},t(Ns,[2,174]),t(Ns,[2,176]),t(fn,[2,553]),{2:n,3:1831,4:a,5:s,132:di,372:1849},{74:fi,78:[1,1850]},t(os,[2,528]),t(os,[2,529]),{2:n,3:1011,4:a,5:s,100:1852,111:1440},{74:as,78:[1,1853]},{74:as,78:[1,1854]},{77:sa,143:le,144:979,145:ze,152:fe,181:ge,201:980,302:_e,342:1855,419:190,420:Ge,424:Ve},{344:[1,1856]},t(us,[2,710]),t(us,[2,712]),t(ua,[2,256]),{131:oe,196:1857},{131:[2,1102]},t(ci,[2,244]),t(qa,[2,77]),{78:[2,76]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1824,105:1858,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1859,4:a,5:s},{78:[1,1860]},{74:fi,78:[1,1861]},{374:[1,1862]},{2:n,3:1863,4:a,5:s,132:[1,1864]},{74:as,78:[1,1865]},t(Sn,[2,526]),t(Sn,[2,527]),t(us,[2,714],{74:Ua}),t(us,[2,716]),t(pi,[2,1103],{251:1866,766:[1,1867]}),t(os,[2,79]),t(os,[2,82]),t(qa,[2,1055],{3:1821,101:1868,104:1869,2:n,4:a,5:s,76:hi}),t(Sn,[2,518]),{2:n,3:244,4:a,5:s,199:1870},t(os,[2,530]),t(os,[2,531]),t(Sn,[2,525]),t(ri,[2,1105],{252:1871,415:[1,1872]}),t(pi,[2,1104]),t(qa,[2,75]),t(qa,[2,1056]),t(bi,[2,1119],{375:1873,377:1874,77:[1,1875]}),t(ri,[2,269]),t(ri,[2,1106]),t(Sn,[2,521],{376:1876,378:1877,230:[1,1878]}),t(bi,[2,1120]),{2:n,3:1831,4:a,5:s,132:di,372:1879},t(Sn,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:fi,78:[1,1883]},t(Sn,[2,522]),{335:[1,1884]},{380:[1,1885]},t(bi,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},t(Sn,[2,524])],defaultActions:{105:[2,6],194:[2,336],195:[2,337],196:[2,338],197:[2,339],198:[2,340],199:[2,341],200:[2,342],201:[2,343],202:[2,344],209:[2,695],591:[2,1142],653:[2,1107],654:[2,1108],710:[2,696],780:[2,1073],781:[2,1074],926:[2,446],927:[2,447],928:[2,448],987:[2,697],1288:[2,1152],1375:[2,1060],1433:[2,1150],1541:[2,507],1732:[2,1052],1777:[2,1100],1797:[2,1118],1800:[2,1124],1842:[2,1102],1845:[2,76],1887:[2,523]},parseError:function(e,t){if(!t.recoverable){var r=new Error(e);throw r.hash=t,r}this.trace(e)},parse:function(e){function t(e){for(var t=n.length-1,r=0;;){if(h.toString()in i[e])return r;if(0===e||t<2)return!1;t-=2,e=n[t],++r}}var r=this,n=[0],a=[null],s=[],i=this.table,o="",u=0,c=0,l=0,h=2,d=s.slice.call(arguments,1),f=Object.create(this.lexer),p={yy:{}};for(var b in this.yy)Object.prototype.hasOwnProperty.call(this.yy,b)&&(p.yy[b]=this.yy[b]);f.setInput(e,p.yy),p.yy.lexer=f,p.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var E=f.yylloc;s.push(E);var g=f.options&&f.options.ranges;"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var m,v,S,T,A,y,N,C,R,O=function(){var e;return e=f.lex()||1,"number"!=typeof e&&(e=r.symbols_[e]||e),e},w={};;){if(S=n[n.length-1],this.defaultActions[S]?T=this.defaultActions[S]:(null!==m&&void 0!==m||(m=O()),T=i[S]&&i[S][m]),void 0===T||!T.length||!T[0]){var I,x="";if(l)1!==v&&(I=t(S));else{I=t(S),R=[];for(y in i[S])this.terminals_[y]&&y>h&&R.push("'"+this.terminals_[y]+"'");x=f.showPosition?"Parse error on line "+(u+1)+":\n"+f.showPosition()+"\nExpecting "+R.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(u+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(x,{text:f.match,token:this.terminals_[m]||m,line:f.yylineno,loc:E,expected:R,recoverable:!1!==I})}if(3==l){if(1===m||1===v)throw new Error(x||"Parsing halted while starting to recover from another error.");c=f.yyleng,o=f.yytext,u=f.yylineno,E=f.yylloc,m=O()}if(!1===I)throw new Error(x||"Parsing halted. No suitable error recovery rule available.");!function(e){n.length=n.length-2*e,a.length=a.length-e,s.length=s.length-e}(I),v=m==h?null:m,m=h,S=n[n.length-1],T=i[S]&&i[S][h],l=3}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+S+", token: "+m);switch(T[0]){case 1:n.push(m),a.push(f.yytext),s.push(f.yylloc),n.push(T[1]),m=null,v?(m=v,v=null):(c=f.yyleng,o=f.yytext,u=f.yylineno,E=f.yylloc,l>0&&l--);break;case 2:if(N=this.productions_[T[1]][1],w.$=a[a.length-N],w._$={first_line:s[s.length-(N||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(N||1)].first_column,last_column:s[s.length-1].last_column},g&&(w._$.range=[s[s.length-(N||1)].range[0],s[s.length-1].range[1]]),void 0!==(A=this.performAction.apply(w,[o,c,u,p.yy,T[1],a,s].concat(d))))return A;N&&(n=n.slice(0,-1*N*2),a=a.slice(0,-1*N),s=s.slice(0,-1*N)),n.push(this.productions_[T[1]][0]),a.push(w.$),s.push(w._$),C=i[n[n.length-2]][n[n.length-1]],n.push(C);break;case 3:return!0}}return!0}},gi=["A","ABSENT","ABSOLUTE","ACCORDING","ACTION","ADA","ADD","ADMIN","AFTER","ALWAYS","ASC","ASSERTION","ASSIGNMENT","ATTRIBUTE","ATTRIBUTES","BASE64","BEFORE","BERNOULLI","BLOCKED","BOM","BREADTH","C","CASCADE","CATALOG","CATALOG_NAME","CHAIN","CHARACTERISTICS","CHARACTERS","CHARACTER_SET_CATALOG","CHARACTER_SET_NAME","CHARACTER_SET_SCHEMA","CLASS_ORIGIN","COBOL","COLLATION","COLLATION_CATALOG","COLLATION_NAME","COLLATION_SCHEMA","COLUMNS","COLUMN_NAME","COMMAND_FUNCTION","COMMAND_FUNCTION_CODE","COMMITTED","CONDITION_NUMBER","CONNECTION","CONNECTION_NAME","CONSTRAINTS","CONSTRAINT_CATALOG","CONSTRAINT_NAME","CONSTRAINT_SCHEMA","CONSTRUCTOR","CONTENT","CONTINUE","CONTROL","CURSOR_NAME","DATA","DATETIME_INTERVAL_CODE","DATETIME_INTERVAL_PRECISION","DB","DEFAULTS","DEFERRABLE","DEFERRED","DEFINED","DEFINER","DEGREE","DEPTH","DERIVED","DESC","DESCRIPTOR","DIAGNOSTICS","DISPATCH","DOCUMENT","DOMAIN","DYNAMIC_FUNCTION","DYNAMIC_FUNCTION_CODE","EMPTY","ENCODING","ENFORCED","EXCLUDE","EXCLUDING","EXPRESSION","FILE","FINAL","FIRST","FLAG","FOLLOWING","FORTRAN","FOUND","FS","G","GENERAL","GENERATED","GO","GOTO","GRANTED","HEX","HIERARCHY","ID","IGNORE","IMMEDIATE","IMMEDIATELY","IMPLEMENTATION","INCLUDING","INCREMENT","INDENT","INITIALLY","INPUT","INSTANCE","INSTANTIABLE","INSTEAD","INTEGRITY","INVOKER","ISOLATION","K","KEY","KEY_MEMBER","KEY_TYPE","LAST","LENGTH","LEVEL","LIBRARY","LIMIT","LINK","LOCATION","LOCATOR","M","MAP","MAPPING","MATCHED","MAXVALUE","MESSAGE_LENGTH","MESSAGE_OCTET_LENGTH","MESSAGE_TEXT","MINVALUE","MORE","MUMPS","NAME","NAMES","NAMESPACE","NESTING","NEXT","NFC","NFD","NFKC","NFKD","NIL","NORMALIZED","NULLABLE","NULLS","NUMBER","OBJECT","OCTETS","OFF","OPTION","OPTIONS","ORDERING","ORDINALITY","OTHERS","OUTPUT","OVERRIDING","P","PAD","PARAMETER_MODE","PARAMETER_NAME","PARAMETER_ORDINAL_POSITION","PARAMETER_SPECIFIC_CATALOG","PARAMETER_SPECIFIC_NAME","PARAMETER_SPECIFIC_SCHEMA","PARTIAL","PASCAL","PASSING","PASSTHROUGH","PATH","PERMISSION","PLACING","PLI","PRECEDING","PRESERVE","PRIOR","PRIVILEGES","PUBLIC","READ","RECOVERY","RELATIVE","REPEATABLE","REQUIRING","RESPECT","RESTART","RESTORE","RESTRICT","RETURNED_CARDINALITY","RETURNED_LENGTH","RETURNED_OCTET_LENGTH","RETURNED_SQLSTATE","RETURNING","ROLE","ROUTINE","ROUTINE_CATALOG","ROUTINE_NAME","ROUTINE_SCHEMA","ROW_COUNT","SCALE","SCHEMA","SCHEMA_NAME","SCOPE_CATALOG","SCOPE_NAME","SCOPE_SCHEMA","SECTION","SECURITY","SELECTIVE","SELF","SEQUENCE","SERIALIZABLE","SERVER","SERVER_NAME","SESSION","SETS","SIMPLE","SIZE","SOURCE","SPACE","SPECIFIC_NAME","STANDALONE","STATE","STATEMENT","STRIP","STRUCTURE","STYLE","SUBCLASS_ORIGIN","T","TABLE_NAME","TEMPORARY","TIES","TOKEN","TOP_LEVEL_COUNT","TRANSACTION","TRANSACTIONS_COMMITTED","TRANSACTIONS_ROLLED_BACK","TRANSACTION_ACTIVE","TRANSFORM","TRANSFORMS","TRIGGER_CATALOG","TRIGGER_NAME","TRIGGER_SCHEMA","TYPE","UNBOUNDED","UNCOMMITTED","UNDER","UNLINK","UNNAMED","UNTYPED","URI","USAGE","USER_DEFINED_TYPE_CATALOG","USER_DEFINED_TYPE_CODE","USER_DEFINED_TYPE_NAME","USER_DEFINED_TYPE_SCHEMA","VALID","VERSION","VIEW","WHITESPACE","WORK","WRAPPER","WRITE","XMLDECLARATION","XMLSCHEMA","YES","ZONE"];Ei.parseError=function(e,t){if(!(t.expected&&t.expected.indexOf("'LITERAL'")>-1&&/[a-zA-Z_][a-zA-Z_0-9]*/.test(t.token)&&gi.indexOf(t.token)>-1))throw new SyntaxError(e)};var mi=function(){return{EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,r=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===n.length?this.yylloc.first_column:0)+n[n.length-r.length].length-r[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var r,n,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),n=e[0].match(/(?:\r\n?|\n).*/g),n&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],r=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var s in a)this[s]=a[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,r,n;this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),s=0;st[0].length)){if(t=r,n=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(r,a[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,a[n]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,r,n){switch(r){case 0:return 266;case 1:return 302;case 2:return 420;case 3:return 299;case 4:case 5:return 5;case 6:case 7:return 296;case 8:case 9:return 132;case 10:return;case 11:break;case 12:return 316;case 13:return 319;case 14:return t.yytext="VALUE",89;case 15:return t.yytext="VALUE",189;case 16:return t.yytext="ROW",189;case 17:return t.yytext="COLUMN",189;case 18:return t.yytext="MATRIX",189;case 19:return t.yytext="INDEX",189;case 20:return t.yytext="RECORDSET",189;case 21:return t.yytext="TEXT",189;case 22:return t.yytext="SELECT",189;case 23:return 520;case 24:return 381;case 25:return 402;case 26:return 515;case 27:return 287;case 28:case 29:return 269;case 30:return 164;case 31:return 400;case 32:return 170;case 33:return 229;case 34:return 166;case 35:return 207;case 36:return 288;case 37:return 76;case 38:return 418;case 39:return 242;case 40:return 404;case 41:return 356;case 42:return 284;case 43:return 514;case 44:return 437;case 45:return 330;case 46:return 441;case 47:return 331;case 48:return 315;case 49:return 119;case 50:return 112;case 51:return 315;case 52:return 112;case 53:return 315;case 54:return 112;case 55:return 315;case 56:return 508;case 57:return 303;case 58:return 271;case 59:return 368;case 60:return 130;case 61:return"CLOSE";case 62:return 243;case 63:case 64:return 190;case 65:return 434;case 66:return 367;case 67:return 470;case 68:return 440;case 69:return 273;case 70:return 240;case 71:return 281;case 72:return 267;case 73:return 206;case 74:return 238;case 75:return 265;case 76:return"CURSOR";case 77:return 405;case 78:return 291;case 79:return 292;case 80:return 448;case 81:return 343;case 82:return 338;case 83:return"DELETED";case 84:return 242;case 85:return 406;case 86:return 185;case 87:return 396;case 88:return 447;case 89:return 135;case 90:return 306;case 91:return 389;case 92:return 310;case 93:return 314;case 94:return 169;case 95:case 96:return 508;case 97:return 298;case 98:return 14;case 99:return 295;case 100:return 249;case 101:return 285;case 102:return 95;case 103:return 373;case 104:return 183;case 105:return 227;case 106:return 268;case 107:return 313;case 108:return 602;case 109:return 472;case 110:return 232;case 111:return 236;case 112:return 239;case 113:return 156;case 114:return 356;case 115:return 332;case 116:return 99;case 117:return 193;case 118:return 212;case 119:return 224;case 120:return 516;case 121:return 339;case 122:return 213;case 123:return 168;case 124:return 293;case 125:return 198;case 126:return 223;case 127:return 370;case 128:return 286;case 129:return"LET";case 130:return 225;case 131:return 112;case 132:return 245;case 133:return 460;case 134:return 191;case 135:return 283;case 136:return 390;case 137:return 282;case 138:return 452;case 139:return 169;case 140:return 403;case 141:return 222;case 142:return 645;case 143:return 270;case 144:return 244;case 145:return 380;case 146:return 154;case 147:return 297;case 148:return 433;case 149:return 230;case 150:return 415;case 151:return 129;case 152:return 247;case 153:return"OPEN";case 154:return 416;case 155:return 171;case 156:return 118;case 157:return 208;case 158:return 276;case 159:return 172;case 160:return 279;case 161:return 765;case 162:return 93;case 163:return 16;case 164:return 369;case 165:return 442;case 166:return 678;case 167:return 15;case 168:return 414;case 169:return 194;case 170:return"REDUCE";case 171:return 374;case 172:return 311;case 173:return 517;case 174:return 682;case 175:return 107;case 176:return 401;case 177:return 175;case 178:return 290;case 179:return 443;case 180:return 687;case 181:case 182:return 173;case 183:return 226;case 184:return 436;case 185:return 237;case 186:return 150;case 187:return 766;case 188:return 405;case 189:return 89;case 190:return 228;case 191:case 192:return 146;case 193:return 409;case 194:return 334;case 195:return 417;case 196:return"STRATEGY";case 197:return"STORE";case 198:return 280;case 199:case 200:return 353;case 201:return 463;case 202:case 203:return 357;case 204:return 192;case 205:return 309;case 206:return"TIMEOUT";case 207:return 148;case 208:return 195;case 209:case 210:return 435;case 211:return 509;case 212:return 294;case 213:return 451;case 214:return 162;case 215:return 187;case 216:return 98;case 217:return 335;case 218:return 408;case 219:return 231;case 220:return 149;case 221:return 344;case 222:return 134;case 223:return 410;case 224:return 308;case 225:return 128;case 226:return 439;case 227:return 72;case 228:return 435;case 229:case 230:return 131;case 231:return 115;case 232:return 137;case 233:return 179;case 234:return 317;case 235:return 180;case 236:return 133;case 237:return 138;case 238:return 326;case 239:return 323;case 240:return 325;case 241:return 322;case 242:return 320;case 243:return 318;case 244:return 319;case 245:return 142;case 246:return 141;case 247:return 139;case 248:return 321;case 249:return 324;case 250:return 140;case 251:return 124;case 252:return 324;case 253:return 77;case 254:return 78;case 255:return 145;case 256:return 424;case 257:return 426;case 258:return 300;case 259:return 505;case 260:return 507;case 261:return 122;case 262:return 116;case 263:return 74;case 264:return 333;case 265:return 152;case 266:return 764;case 267:return 143;case 268:return 181;case 269:return 136;case 270:return 123;case 271:return 312;case 272:return 4;case 273:return 10;case 274:return"INVALID"}}, -rules:[/^(?:``([^\`])+``)/i,/^(?:\[\?\])/i,/^(?:@\[)/i,/^(?:ARRAY\[)/i,/^(?:\[([^\]])*?\])/i,/^(?:`([^\`])*?`)/i,/^(?:N(['](\\.|[^']|\\')*?['])+)/i,/^(?:X(['](\\.|[^']|\\')*?['])+)/i,/^(?:(['](\\.|[^']|\\')*?['])+)/i,/^(?:(["](\\.|[^"]|\\")*?["])+)/i,/^(?:--(.*?)($|\r\n|\r|\n))/i,/^(?:\s+)/i,/^(?:\|\|)/i,/^(?:\|)/i,/^(?:VALUE\s+OF\s+SEARCH\b)/i,/^(?:VALUE\s+OF\s+SELECT\b)/i,/^(?:ROW\s+OF\s+SELECT\b)/i,/^(?:COLUMN\s+OF\s+SELECT\b)/i,/^(?:MATRIX\s+OF\s+SELECT\b)/i,/^(?:INDEX\s+OF\s+SELECT\b)/i,/^(?:RECORDSET\s+OF\s+SELECT\b)/i,/^(?:TEXT\s+OF\s+SELECT\b)/i,/^(?:SELECT\b)/i,/^(?:ABSOLUTE\b)/i,/^(?:ACTION\b)/i,/^(?:ADD\b)/i,/^(?:AFTER\b)/i,/^(?:AGGR\b)/i,/^(?:AGGREGATE\b)/i,/^(?:AGGREGATOR\b)/i,/^(?:ALL\b)/i,/^(?:ALTER\b)/i,/^(?:AND\b)/i,/^(?:ANTI\b)/i,/^(?:ANY\b)/i,/^(?:APPLY\b)/i,/^(?:ARRAY\b)/i,/^(?:AS\b)/i,/^(?:ASSERT\b)/i,/^(?:ASC\b)/i,/^(?:ATTACH\b)/i,/^(?:AUTO(_)?INCREMENT\b)/i,/^(?:AVG\b)/i,/^(?:BEFORE\b)/i,/^(?:BEGIN\b)/i,/^(?:BETWEEN\b)/i,/^(?:BREAK\b)/i,/^(?:NOT\s+BETWEEN\b)/i,/^(?:NOT\s+LIKE\b)/i,/^(?:BY\b)/i,/^(?:~~\*)/i,/^(?:!~~\*)/i,/^(?:~~)/i,/^(?:!~~)/i,/^(?:ILIKE\b)/i,/^(?:NOT\s+ILIKE\b)/i,/^(?:CALL\b)/i,/^(?:CASE\b)/i,/^(?:CAST\b)/i,/^(?:CHECK\b)/i,/^(?:CLASS\b)/i,/^(?:CLOSE\b)/i,/^(?:COLLATE\b)/i,/^(?:COLUMN\b)/i,/^(?:COLUMNS\b)/i,/^(?:COMMIT\b)/i,/^(?:CONSTRAINT\b)/i,/^(?:CONTENT\b)/i,/^(?:CONTINUE\b)/i,/^(?:CONVERT\b)/i,/^(?:CORRESPONDING\b)/i,/^(?:COUNT\b)/i,/^(?:CREATE\b)/i,/^(?:CROSS\b)/i,/^(?:CUBE\b)/i,/^(?:CURRENT_TIMESTAMP\b)/i,/^(?:CURSOR\b)/i,/^(?:DATABASE(S)?)/i,/^(?:DATEADD\b)/i,/^(?:DATEDIFF\b)/i,/^(?:DECLARE\b)/i,/^(?:DEFAULT\b)/i,/^(?:DELETE\b)/i,/^(?:DELETED\b)/i,/^(?:DESC\b)/i,/^(?:DETACH\b)/i,/^(?:DISTINCT\b)/i,/^(?:DROP\b)/i,/^(?:ECHO\b)/i,/^(?:EDGE\b)/i,/^(?:END\b)/i,/^(?:ENUM\b)/i,/^(?:ELSE\b)/i,/^(?:ESCAPE\b)/i,/^(?:EXCEPT\b)/i,/^(?:EXEC\b)/i,/^(?:EXECUTE\b)/i,/^(?:EXISTS\b)/i,/^(?:EXPLAIN\b)/i,/^(?:FALSE\b)/i,/^(?:FETCH\b)/i,/^(?:FIRST\b)/i,/^(?:FOR\b)/i,/^(?:FOREIGN\b)/i,/^(?:FROM\b)/i,/^(?:FULL\b)/i,/^(?:FUNCTION\b)/i,/^(?:GLOB\b)/i,/^(?:GO\b)/i,/^(?:GRAPH\b)/i,/^(?:GROUP\b)/i,/^(?:GROUPING\b)/i,/^(?:HAVING\b)/i,/^(?:IF\b)/i,/^(?:IDENTITY\b)/i,/^(?:IS\b)/i,/^(?:IN\b)/i,/^(?:INDEX\b)/i,/^(?:INDEXED\b)/i,/^(?:INNER\b)/i,/^(?:INSTEAD\b)/i,/^(?:INSERT\b)/i,/^(?:INSERTED\b)/i,/^(?:INTERSECT\b)/i,/^(?:INTERVAL\b)/i,/^(?:INTO\b)/i,/^(?:JOIN\b)/i,/^(?:KEY\b)/i,/^(?:LAST\b)/i,/^(?:LET\b)/i,/^(?:LEFT\b)/i,/^(?:LIKE\b)/i,/^(?:LIMIT\b)/i,/^(?:MATCHED\b)/i,/^(?:MATRIX\b)/i,/^(?:MAX(\s+)?(?=\())/i,/^(?:MAX(\s+)?(?=(,|\))))/i,/^(?:MIN(\s+)?(?=\())/i,/^(?:MERGE\b)/i,/^(?:MINUS\b)/i,/^(?:MODIFY\b)/i,/^(?:NATURAL\b)/i,/^(?:NEXT\b)/i,/^(?:NEW\b)/i,/^(?:NOCASE\b)/i,/^(?:NO\b)/i,/^(?:NOT\b)/i,/^(?:NULL\b)/i,/^(?:OFF\b)/i,/^(?:ON\b)/i,/^(?:ONLY\b)/i,/^(?:OF\b)/i,/^(?:OFFSET\b)/i,/^(?:OPEN\b)/i,/^(?:OPTION\b)/i,/^(?:OR\b)/i,/^(?:ORDER\b)/i,/^(?:OUTER\b)/i,/^(?:OVER\b)/i,/^(?:PATH\b)/i,/^(?:PARTITION\b)/i,/^(?:PERCENT\b)/i,/^(?:PIVOT\b)/i,/^(?:PLAN\b)/i,/^(?:PRIMARY\b)/i,/^(?:PRINT\b)/i,/^(?:PRIOR\b)/i,/^(?:QUERY\b)/i,/^(?:READ\b)/i,/^(?:RECORDSET\b)/i,/^(?:REDUCE\b)/i,/^(?:REFERENCES\b)/i,/^(?:REGEXP\b)/i,/^(?:REINDEX\b)/i,/^(?:RELATIVE\b)/i,/^(?:REMOVE\b)/i,/^(?:RENAME\b)/i,/^(?:REPEAT\b)/i,/^(?:REPLACE\b)/i,/^(?:REQUIRE\b)/i,/^(?:RESTORE\b)/i,/^(?:RETURN\b)/i,/^(?:RETURNS\b)/i,/^(?:RIGHT\b)/i,/^(?:ROLLBACK\b)/i,/^(?:ROLLUP\b)/i,/^(?:ROW\b)/i,/^(?:ROWS\b)/i,/^(?:SCHEMA(S)?)/i,/^(?:SEARCH\b)/i,/^(?:SEMI\b)/i,/^(?:SET\b)/i,/^(?:SETS\b)/i,/^(?:SHOW\b)/i,/^(?:SOME\b)/i,/^(?:SOURCE\b)/i,/^(?:STRATEGY\b)/i,/^(?:STORE\b)/i,/^(?:SUM\b)/i,/^(?:TABLE\b)/i,/^(?:TABLES\b)/i,/^(?:TARGET\b)/i,/^(?:TEMP\b)/i,/^(?:TEMPORARY\b)/i,/^(?:TEXTSTRING\b)/i,/^(?:THEN\b)/i,/^(?:TIMEOUT\b)/i,/^(?:TO\b)/i,/^(?:TOP\b)/i,/^(?:TRAN\b)/i,/^(?:TRANSACTION\b)/i,/^(?:TRIGGER\b)/i,/^(?:TRUE\b)/i,/^(?:TRUNCATE\b)/i,/^(?:UNION\b)/i,/^(?:UNIQUE\b)/i,/^(?:UNPIVOT\b)/i,/^(?:UPDATE\b)/i,/^(?:USE\b)/i,/^(?:USING\b)/i,/^(?:VALUE\b)/i,/^(?:VALUES\b)/i,/^(?:VERTEX\b)/i,/^(?:VIEW\b)/i,/^(?:WHEN\b)/i,/^(?:WHERE\b)/i,/^(?:WHILE\b)/i,/^(?:WITH\b)/i,/^(?:WORK\b)/i,/^(?:(\d*[.])?\d+[eE]\d+)/i,/^(?:(\d*[.])?\d+)/i,/^(?:->)/i,/^(?:#)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?::-)/i,/^(?:\?-)/i,/^(?:\.\.)/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:!)/i,/^(?:\^)/i,/^(?:~)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274],inclusive:!0}}}}();return Ei.lexer=mi,e.prototype=Ei,Ei.Parser=e,new e}();void 0!==A&&"undefined"!=typeof exports&&(exports.parser=y,exports.Parser=y.Parser,exports.parse=function(){return y.parse.apply(y,arguments)},exports.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var t=A("fs").readFileSync(A("path").normalize(e[1]),"utf8");return exports.parser.parse(t)},"undefined"!=typeof module&&A.main===module&&exports.main(process.argv.slice(1))),T.prettyflag=!1,T.pretty=function(e,t){var r=T.prettyflag;T.prettyflag=!t;var n=T.parse(e).toString();return T.prettyflag=r,n};var N=T.utils={},C=N.escapeq=function(e){return(""+e).replace(/["'\\\n\r\u2028\u2029]/g,function(e){switch(e){case'"':case"'":case"\\":return"\\"+e;case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029"}})},R=N.undoubleq=function(e){return e.replace(/(\')/g,"''")},O=N.doubleq=function(e){return e.replace(/(\'\')/g,"\\'")},w=(N.doubleqq=function(e){return e.replace(/\'/g,"'")},function(e){return e[0]===String.fromCharCode(65279)&&(e=e.substr(1)),e});N.global=function(){return"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:Function("return this")()}();N.isNativeFunction=function(e){return"function"==typeof e&&!!~e.toString().indexOf("[native code]")};N.isWebWorker=function(){try{var e=N.global.importScripts;return N.isNativeFunction(e)}catch(e){return!1}}(),N.isNode=function(){try{return N.isNativeFunction(N.global.process.reallyExit)}catch(e){return!1}}(),N.isBrowser=function(){try{return N.isNativeFunction(N.global.location.reload)}catch(e){return!1}}(),N.isBrowserify=function(){return N.isBrowser&&"undefined"!=typeof process&&process.browser}(),N.isRequireJS=function(){return N.isBrowser&&"function"==typeof A&&"function"==typeof A.specified}(),N.isMeteor=function(){return"undefined"!=typeof Meteor&&Meteor.release}(),N.isMeteorClient=N.isMeteorClient=function(){return N.isMeteor&&Meteor.isClient}(),N.isMeteorServer=function(){return N.isMeteor&&Meteor.isServer}(),N.isCordova=function(){return"object"==typeof cordova}(),N.isReactNative=function(){return!1}(),N.hasIndexedDB=function(){return!!N.global.indexedDB}(),N.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var I=N.loadFile=function(e,t,r,n){var a;if(N.isNode||N.isMeteorServer);else if(N.isCordova)N.global.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(t){t.root.getFile(e,{create:!1},function(e){e.file(function(e){var t=new FileReader;t.onloadend=function(e){r(w(this.result))},t.readAsText(e)})})});else if("string"==typeof e)if("#"===e.substr(0,1)&&"undefined"!=typeof document)a=document.querySelector(e).textContent,r(a);else{var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState)if(200===s.status)r&&r(w(s.responseText));else if(n)return n(s)},s.open("GET",e,t),s.responseType="text",s.send()}else if(e instanceof Event){var i=e.target.files,o=new FileReader;i[0].name;o.onload=function(e){var t=e.target.result;r(w(t))},o.readAsText(i[0])}};N.loadBinaryFile=function(e,t,r,n){if(N.isNode||N.isMeteorServer);else if("string"==typeof e){var a=new XMLHttpRequest;a.open("GET",e,t),a.responseType="arraybuffer",a.onload=function(){for(var e=new Uint8Array(a.response),t=[],n=0;n=26&&(e=(e/26|0)-1,t=String.fromCharCode(65+e%26)+t,e>26&&(e=(e/26|0)-1,t=String.fromCharCode(65+e%26)+t)),t},N.xlscn=function(e){var t=e.charCodeAt(0)-65;return e.length>1&&(t=26*(t+1)+e.charCodeAt(1)-65,e.length>2&&(t=26*(t+1)+e.charCodeAt(2)-65)),t},N.domEmptyChildren=function(e){for(var t=e.childNodes.length;t--;)e.removeChild(e.lastChild)},N.like=function(e,t,r){r||(r="");for(var n=0,a="^";n-1?a+="\\"+s:a+=s,n++}return a+="$",(""+(t||"")).toUpperCase().search(RegExp(a.toUpperCase()))>-1};N.glob=function(e,t){for(var r=0,n="^";r-1?n+="\\"+a:n+=a,r++}return n+="$",(""+(e||"")).toUpperCase().search(RegExp(n.toUpperCase()))>-1},N.findAlaSQLPath=function(){if(N.isWebWorker)return"";if(N.isMeteorClient)return"/packages/dist/";if(N.isMeteorServer)return"assets/packages/dist/";if(N.isNode)return"";if(N.isBrowser)for(var e=document.getElementsByTagName("script"),t=0;tT.MAXSQLCACHESIZE&&i.resetSqlCache(),i.sqlCacheSize++,i.sqlCache[s]=o);var c=T.res=o(r,n,a);return c}T.precompile(u.statements[0],T.useid,r);var c=T.res=u.statements[0].execute(e,r,n,a);return c}if(!n)return T.drun(e,u,r,n,a);T.adrun(e,u,r,n,a)}},T.drun=function(e,t,r,n,a){var s=T.useid;s!==e&&T.use(e);for(var i=[],o=0,u=t.statements.length;oe;e+=2){(0,Q[e])(Q[e+1]),Q[e]=void 0,Q[e+1]=void 0}j=0}function o(e,t){var r=this,n=new this.constructor(c);void 0===n[ee]&&I(n);var a=r._state;if(a){var s=arguments[a-1];H(function(){R(a,n,s,r._result)})}else T(r,n,e,t);return n}function u(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var r=new t(c);return g(r,e),r}function c(){}function l(){return new TypeError("You cannot resolve a promise with itself")}function h(){return new TypeError("A promises callback cannot return that same promise.")}function d(e){try{return e.then}catch(e){return ae.error=e,ae}}function f(e,t,r,n){try{e.call(t,r,n)}catch(e){return e}}function p(e,t,r){H(function(e){var n=!1,a=f(r,t,function(r){n||(n=!0,t!==r?g(e,r):v(e,r))},function(t){n||(n=!0,S(e,t))},"Settle: "+(e._label||" unknown promise"));!n&&a&&(n=!0,S(e,a))},e)}function b(e,t){t._state===re?v(e,t._result):t._state===ne?S(e,t._result):T(t,void 0,function(t){g(e,t)},function(t){S(e,t)})}function E(e,r,n){r.constructor===e.constructor&&n===z&&constructor.resolve===Z?b(e,r):n===ae?S(e,ae.error):void 0===n?v(e,r):t(n)?p(e,r,n):v(e,r)}function g(t,r){t===r?S(t,l()):e(r)?E(t,r,d(r)):v(t,r)}function m(e){e._onerror&&e._onerror(e._result),y(e)}function v(e,t){e._state===te&&(e._result=t,e._state=re,0!==e._subscribers.length&&H(y,e))}function S(e,t){e._state===te&&(e._state=ne,e._result=t,H(m,e))}function T(e,t,r,n){var a=e._subscribers,s=a.length;e._onerror=null,a[s]=t,a[s+re]=r,a[s+ne]=n,0===s&&e._state&&H(y,e)}function y(e){var t=e._subscribers,r=e._state;if(0!==t.length){for(var n,a,s=e._result,i=0;is;s++)t.resolve(e[s]).then(r,n)}:function(e,t){t(new TypeError("You must pass an array to race."))})}function k(e){var t=this,r=new t(c);return S(r,e),r}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function $(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function M(e){this[ee]=w(),this._result=this._state=void 0,this._subscribers=[],c!==e&&("function"!=typeof e&&L(),this instanceof M?O(this,e):$())}function U(e,t){this._instanceConstructor=e,this.promise=new e(c),this.promise[ee]||I(this.promise),Array.isArray(t)?(this._input=t,this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?v(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&v(this.promise,this._result))):S(this.promise,_())}function _(){return new Error("Array Methods must be provided an Array")}function F(){var e;if("undefined"!=typeof global)e=global;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;(!t||"[object Promise]"!==Object.prototype.toString.call(t.resolve())||t.cast)&&(e.Promise=le)}var P;P=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var q,G,V,B=P,j=0,H=function(e,t){Q[j]=e,Q[j+1]=t,2===(j+=2)&&(G?G(i):V())},J="undefined"!=typeof window?window:void 0,Y=J||{},W=Y.MutationObserver||Y.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),K="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,Q=new Array(1e3);V=X?function(){return function(){process.nextTick(i)}}():W?function(){var e=0,t=new W(i),r=document.createTextNode("");return t.observe(r,{characterData:!0}),function(){r.data=e=++e%2}}():K?function(){var e=new MessageChannel;return e.port1.onmessage=i,function(){e.port2.postMessage(0)}}():void 0===J&&"function"==typeof A?function(){try{var e=A,t=e("vertx");return q=t.runOnLoop||t.runOnContext,a()}catch(e){return s()}}():s();var z=o,Z=u,ee=Math.random().toString(36).substring(16),te=void 0,re=1,ne=2,ae=new N,se=new N,ie=0,oe=x,ue=D,ce=k,le=M;M.all=oe,M.race=ue,M.resolve=Z,M.reject=ce,M._setScheduler=r,M._setAsap=n,M._asap=H,M.prototype={constructor:M,then:z,catch:function(e){return this.then(null,e)}};var he=U;U.prototype._enumerate=function(){for(var e=this.length,t=this._input,r=0;this._state===te&&e>r;r++)this._eachEntry(t[r],r)},U.prototype._eachEntry=function(e,t){var r=this._instanceConstructor,n=r.resolve;if(n===Z){var a=d(e);if(a===z&&e._state!==te)this._settledAt(e._state,t,e._result);else if("function"!=typeof a)this._remaining--,this._result[t]=e;else if(r===le){var s=new r(c);E(s,e,a),this._willSettleAt(s,t)}else this._willSettleAt(new r(function(t){t(e)}),t)}else this._willSettleAt(n(e),t)},U.prototype._settledAt=function(e,t,r){var n=this.promise;n._state===te&&(this._remaining--,e===ne?S(n,r):this._result[t]=r),0===this._remaining&&v(n,this._result)},U.prototype._willSettleAt=function(e,t){var r=this;T(e,void 0,function(e){r._settledAt(re,t,e)},function(e){r._settledAt(ne,t,e)})};var de=F,fe={Promise:le,polyfill:de};"function"==typeof define&&define.amd?define(function(){return fe}):"undefined"!=typeof module&&module.exports?module.exports=fe:void 0!==this&&(this.ES6Promise=fe),de()}.call(this);var B=function(e,t,r,n){return new N.global.Promise(function(a,s){T(e,t,function(e,t){t?s(t):(r&&n&&!1!==T.options.progress&&T.options.progress(r,n),a(e))})})},j=function(e){if(!(e.length<1)){for(var t,r,n,a=[],s=0;s0?{status:1,values:n}:{status:-1,values:[]}}return"object"!=typeof e||null===e||"object"!=typeof t||void 0===e[t[0]]?{status:-1,values:[]}:{status:1,values:[e[t[0]]]}},T.srch.APROP=function(e,t){return"object"!=typeof e||null===e||"object"!=typeof t||void 0===e[t[0]]?{status:1,values:[void 0]}:{status:1,values:[e[t[0]]]}},T.srch.EQ=function(e,t,r,n){var a=t[0].toJS("x","");return e===new Function("x,alasql,params","return "+a)(e,T,n)?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.LIKE=function(e,t,r,n){var a=t[0].toJS("x",""),s=new Function("x,alasql,params","return "+a);return e.toUpperCase().match(new RegExp("^"+s(e,T,n).toUpperCase().replace(/%/g,".*").replace(/\?|_/g,".")+"$"),"g")?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.ATTR=function(e,t,r){if("XML"===r.mode)return void 0===t?{status:1,values:[e.attributes]}:"object"==typeof e&&"object"==typeof e.attributes&&void 0!==e.attributes[t[0]]?{status:1,values:[e.attributes[t[0]]]}:{status:-1,values:[]};throw new Error("ATTR is not using in usual mode")},T.srch.CONTENT=function(e,t,r){if("XML"===r.mode)return{status:1,values:[e.content]};throw new Error("ATTR is not using in usual mode")},T.srch.SHARP=function(e,t){var r=T.databases[T.useid].objects[t[0]];return void 0!==e&&e===r?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.PARENT=function(){return console.error("PARENT not implemented",arguments),{status:-1,values:[]}},T.srch.CHILD=function(e,t,r){return"object"==typeof e?Array.isArray(e)?{status:1,values:e}:"XML"===r.mode?{status:1,values:Object.keys(e.children).map(function(t){return e.children[t]})}:{status:1,values:Object.keys(e).map(function(t){return e[t]})}:{status:1,values:[]}},T.srch.KEYS=function(e){return"object"==typeof e&&null!==e?{status:1,values:Object.keys(e)}:{status:1,values:[]}},T.srch.WHERE=function(e,t,r,n){var a=t[0].toJS("x","");return new Function("x,alasql,params","return "+a)(e,T,n)?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.NAME=function(e,t){return e.name===t[0]?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.CLASS=function(e,t){return e.$class==t?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.VERTEX=function(e){return"VERTEX"===e.$node?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.INSTANCEOF=function(e,t){return e instanceof T.fn[t[0]]?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.EDGE=function(e){return"EDGE"===e.$node?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.EX=function(e,t,r,n){var a=t[0].toJS("x","");return{status:1,values:[new Function("x,alasql,params","return "+a)(e,T,n)]}},T.srch.RETURN=function(e,t,r,n){var a={};return t&&t.length>0&&t.forEach(function(t){var r=t.toJS("x",""),s=new Function("x,alasql,params","return "+r);void 0===t.as&&(t.as=t.toString()),a[t.as]=s(e,T,n)}),{status:1,values:[a]}},T.srch.REF=function(e){return{status:1,values:[T.databases[T.useid].objects[e]]}},T.srch.OUT=function(e){if(e.$out&&e.$out.length>0){return{status:1,values:e.$out.map(function(e){return T.databases[T.useid].objects[e]})}}return{status:-1,values:[]}},T.srch.OUTOUT=function(e){if(e.$out&&e.$out.length>0){var t=[];return e.$out.forEach(function(e){var r=T.databases[T.useid].objects[e];r&&r.$out&&r.$out.length>0&&r.$out.forEach(function(e){t=t.concat(T.databases[T.useid].objects[e])})}),{status:1,values:t}}return{status:-1,values:[]}},T.srch.IN=function(e){if(e.$in&&e.$in.length>0){return{status:1,values:e.$in.map(function(e){return T.databases[T.useid].objects[e]})}}return{status:-1,values:[]}},T.srch.ININ=function(e){if(e.$in&&e.$in.length>0){var t=[];return e.$in.forEach(function(e){var r=T.databases[T.useid].objects[e];r&&r.$in&&r.$in.length>0&&r.$in.forEach(function(e){t=t.concat(T.databases[T.useid].objects[e])})}),{status:1,values:t}}return{status:-1,values:[]}},T.srch.AS=function(e,t){ -return T.vars[t[0]]=e,{status:1,values:[e]}},T.srch.AT=function(e,t){return{status:1,values:[T.vars[t[0]]]}},T.srch.CLONEDEEP=function(e){return{status:1,values:[_(e)]}},T.srch.SET=function(e,t,r,n){var a=t.map(function(e){return"@"===e.method?"alasql.vars['"+e.variable+"']="+e.expression.toJS("x",""):"$"===e.method?"params['"+e.variable+"']="+e.expression.toJS("x",""):"x['"+e.column.columnid+"']="+e.expression.toJS("x","")}).join(";");return new Function("x,params,alasql",a)(e,n,T),{status:1,values:[e]}},T.srch.ROW=function(e,t,r,n){var a="var y;return [";return a+=t.map(function(e){return e.toJS("x","")}).join(","),a+="]",{status:1,values:[new Function("x,params,alasql",a)(e,n,T)]}},T.srch.D3=function(e){return"VERTEX"!==e.$node&&"EDGE"===e.$node&&(e.source=e.$in[0],e.target=e.$out[0]),{status:1,values:[e]}};var Q=function(e){if(e){if(e&&1===e.length&&e[0].expression&&"function"==typeof e[0].expression){var t=e[0].expression;return function(e,r){var n=t(e),a=t(r);return n>a?1:n===a?0:-1}}var r="",n="";return e.forEach(function(e){var t="";if(e.expression instanceof X.NumValue&&(e.expression=self.columns[e.expression.value-1]),e.expression instanceof X.Column){var a=e.expression.columnid;T.options.valueof&&(t=".valueOf()"),e.nocase&&(t+=".toUpperCase()"),"_"===a?(r+="if(a"+t+("ASC"===e.direction?">":"<")+"b"+t+")return 1;",r+="if(a"+t+"==b"+t+"){"):(r+="if((a['"+a+"']||'')"+t+("ASC"===e.direction?">":"<")+"(b['"+a+"']||'')"+t+")return 1;",r+="if((a['"+a+"']||'')"+t+"==(b['"+a+"']||'')"+t+"){")}else t=".valueOf()",e.nocase&&(t+=".toUpperCase()"),r+="if(("+e.toJS("a","")+"||'')"+t+("ASC"===e.direction?">(":"<(")+e.toJS("b","")+"||'')"+t+")return 1;",r+="if(("+e.toJS("a","")+"||'')"+t+"==("+e.toJS("b","")+"||'')"+t+"){";n+="}"}),r+="return 0;",r+=n+"return -1",new Function("a,b",r)}};T.srch.ORDERBY=function(e,t){return{status:1,values:e.sort(Q(t))}};var z=function(e){for(var t=0,r=e.sources.length;t0&&"ix"==n.optimization&&n.onleftfn&&n.onrightfn){if(n.databaseid&&T.databases[n.databaseid].tables[n.tableid]){T.databases[n.databaseid].tables[n.tableid].indices||(e.database.tables[n.tableid].indices={});var a=T.databases[n.databaseid].tables[n.tableid].indices[x(n.onrightfns+"`"+n.srcwherefns)];!T.databases[n.databaseid].tables[n.tableid].dirty&&a&&(n.ix=a)}if(!n.ix){n.ix={};for(var s,i={},o=0,u=n.data.length;(s=n.data[o])||n.getfn&&(s=n.getfn(o))||o0&&(e+=" GROUP BY "+this.group.map(function(e){return e.toString()}).join(", ")),this.having&&(e+=" HAVING "+this.having.toString()),this.order&&this.order.length>0&&(e+=" ORDER BY "+this.order.map(function(e){return e.toString()}).join(", ")),this.limit&&(e+=" LIMIT "+this.limit.value),this.offset&&(e+=" OFFSET "+this.offset.value),this.union&&(e+=" UNION "+(this.corresponding?"CORRESPONDING ":"")+this.union.toString()),this.unionall&&(e+=" UNION ALL "+(this.corresponding?"CORRESPONDING ":"")+this.unionall.toString()),this.except&&(e+=" EXCEPT "+(this.corresponding?"CORRESPONDING ":"")+this.except.toString()),this.intersect&&(e+=" INTERSECT "+(this.corresponding?"CORRESPONDING ":"")+this.intersect.toString()),e},X.Select.prototype.toJS=function(e){return"alasql.utils.flatArray(this.queriesfn["+(this.queriesidx-1)+"](this.params,null,"+e+"))[0]"},X.Select.prototype.compile=function(e,t){var r=T.databases[e],n=new W;if(n.removeKeys=[],n.aggrKeys=[],n.explain=this.explain,n.explaination=[],n.explid=1,n.modifier=this.modifier,n.database=r,this.compileWhereExists(n),this.compileQueries(n),n.defcols=this.compileDefCols(n,e),n.fromfn=this.compileFrom(n),this.joins&&this.compileJoins(n),n.rownums=[],this.compileSelectGroup0(n),this.group||n.selectGroup.length>0?n.selectgfns=this.compileSelectGroup1(n):n.selectfns=this.compileSelect1(n,t),this.compileRemoveColumns(n),this.where&&this.compileWhereJoins(n),n.wherefn=this.compileWhere(n),(this.group||n.selectGroup.length>0)&&(n.groupfn=this.compileGroup(n)),this.having&&(n.havingfn=this.compileHaving(n)),this.order&&(n.orderfn=this.compileOrder(n)),this.group||n.selectGroup.length>0?n.selectgfn=this.compileSelectGroup2(n):n.selectfn=this.compileSelect2(n),n.distinct=this.distinct,this.pivot&&(n.pivotfn=this.compilePivot(n)),this.unpivot&&(n.pivotfn=this.compileUnpivot(n)),this.top?n.limit=this.top.value:this.limit&&(n.limit=this.limit.value,this.offset&&(n.offset=this.offset.value)),n.percent=this.percent,n.corresponding=this.corresponding,this.union?(n.unionfn=this.union.compile(e),this.union.order?n.orderfn=this.union.compileOrder(n):n.orderfn=null):this.unionall?(n.unionallfn=this.unionall.compile(e),this.unionall.order?n.orderfn=this.unionall.compileOrder(n):n.orderfn=null):this.except?(n.exceptfn=this.except.compile(e),this.except.order?n.orderfn=this.except.compileOrder(n):n.orderfn=null):this.intersect&&(n.intersectfn=this.intersect.compile(e),this.intersect.order?n.intersectfn=this.intersect.compileOrder(n):n.orderfn=null),this.into){if(this.into instanceof X.Table)T.options.autocommit&&T.databases[this.into.databaseid||e].engineid?n.intoallfns='return alasql.engines["'+T.databases[this.into.databaseid||e].engineid+'"].intoTable("'+(this.into.databaseid||e)+'","'+this.into.tableid+'",this.data, columns, cb);':n.intofns="alasql.databases['"+(this.into.databaseid||e)+"'].tables['"+this.into.tableid+"'].data.push(r);";else if(this.into instanceof X.VarValue)n.intoallfns='alasql.vars["'+this.into.variable+'"]=this.data;res=this.data.length;if(cb)res=cb(res);return res;';else if(this.into instanceof X.FuncValue){var a="return alasql.into['"+this.into.funcid.toUpperCase()+"'](";this.into.args&&this.into.args.length>0?(a+=this.into.args[0].toJS()+",",this.into.args.length>1?a+=this.into.args[1].toJS()+",":a+="undefined,"):a+="undefined, undefined,",n.intoallfns=a+"this.data,columns,cb)"}else this.into instanceof X.ParamValue&&(n.intofns="params['"+this.into.param+"'].push(r)");n.intofns?n.intofn=new Function("r,i,params,alasql","var y;"+n.intofns):n.intoallfns&&(n.intoallfn=new Function("columns,cb,params,alasql","var y;"+n.intoallfns))}var s=function(e,t,r){return n.params=e,i(n,r,function(e,r){if(r)return t(r,null);if(n.rownums.length>0)for(var a=0,s=e.length;a0?(t.args[0]?n+=t.args[0].toJS("query.oldscope")+",":n+="null,",t.args[1]?n+=t.args[1].toJS("query.oldscope")+",":n+="null,"):n+="null,null,",n+="cb,idx,query",n+=");/*if(cb)res=cb(res,idx,query);*/return res",s.datafn=new Function("query, params, cb, idx, alasql",n);else{if(!(t instanceof X.FromData))throw new Error("Wrong table at FROM");s.datafn=function(e,r,n,a,s){var i=t.data;return n&&(i=n(i,a,e)),i}}e.sources.push(s)}),e.defaultTableid=e.sources[0].alias)},T.prepareFromData=function(e,t){var r,n,a=e;if("string"==typeof e){if(a=e.split(/\r?\n/),t)for(r=0,n=a.length;r0?(u[0]?o+=u[0].toJS("query.oldscope")+",":o+="null,",u[1]?o+=u[1].toJS("query.oldscope")+",":o+="null,"):o+="null,null,",o+="cb,idx,query",o+=");/*if(cb)res=cb(res,idx,query);*/return res",s.datafn=new Function("query, params, cb, idx, alasql",o),e.aliases[s.alias]={type:"funcvalue"}}var c=s.alias;if(t.natural){if(t.using||t.on)throw new Error("NATURAL JOIN cannot have USING or ON clauses");if(e.sources.length>0){var l=e.sources[e.sources.length-1],h=T.databases[l.databaseid].tables[l.tableid],d=T.databases[s.databaseid].tables[s.tableid];if(!h||!d)throw new Error("In this version of Alasql NATURAL JOIN works for tables with predefined columns only");var f=h.columns.map(function(e){return e.columnid}),p=d.columns.map(function(e){return e.columnid});t.using=L(f,p).map(function(e){return{columnid:e}})}}if(t.using)l=e.sources[e.sources.length-1],s.onleftfns=t.using.map(function(e){return"p['"+(l.alias||l.tableid)+"']['"+e.columnid+"']"}).join('+"`"+'),s.onleftfn=new Function("p,params,alasql","var y;return "+s.onleftfns),s.onrightfns=t.using.map(function(e){return"p['"+(s.alias||s.tableid)+"']['"+e.columnid+"']"}).join('+"`"+'),s.onrightfn=new Function("p,params,alasql","var y;return "+s.onrightfns),s.optimization="ix";else if(t.on)if(t.on instanceof X.Op&&"="===t.on.op&&!t.on.allsome){s.optimization="ix";var b="",E="",g="",m=!1,v=t.on.left.toJS("p",e.defaultTableid,e.defcols),S=t.on.right.toJS("p",e.defaultTableid,e.defcols);v.indexOf("p['"+c+"']")>-1&&!(S.indexOf("p['"+c+"']")>-1)?(v.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+c+"']"})?E=v:m=!0:!(v.indexOf("p['"+c+"']")>-1)&&S.indexOf("p['"+c+"']")>-1&&(S.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+c+"']"})?b=v:m=!0,S.indexOf("p['"+c+"']")>-1&&!(v.indexOf("p['"+c+"']")>-1)?(S.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+c+"']"})?E=S:m=!0:!(S.indexOf("p['"+c+"']")>-1)&&v.indexOf("p['"+c+"']")>-1&&(v.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+c+"']"})?b=S:m=!0,m&&(E="",b="",g=t.on.toJS("p",e.defaultTableid,e.defcols),s.optimization="no"),s.onleftfns=b,s.onrightfns=E,s.onmiddlefns=g||"true",s.onleftfn=new Function("p,params,alasql","var y;return "+s.onleftfns),s.onrightfn=new Function("p,params,alasql","var y;return "+s.onrightfns),s.onmiddlefn=new Function("p,params,alasql","var y;return "+s.onmiddlefns)}else s.optimization="no",s.onmiddlefns=t.on.toJS("p",e.defaultTableid,e.defcols),s.onmiddlefn=new Function("p,params,alasql","var y;return "+t.on.toJS("p",e.defaultTableid,e.defcols));e.sources.push(s)})},X.Select.prototype.compileWhere=function(e){if(this.where){if("function"==typeof this.where)return this.where;var t=this.where.toJS("p",e.defaultTableid,e.defcols);return e.wherefns=t,new Function("p,params,alasql","var y;return "+t)}return function(){return!0}},X.Select.prototype.compileWhereJoins=function(e){},X.Select.prototype.compileGroup=function(e){if(e.sources.length>0)var t=e.sources[0].alias;else var t="";var r=e.defcols,n=[[]];this.group&&(n=p(this.group,e));var a=[];n.forEach(function(e){a=D(a,e)}),e.allgroups=a,e.ingroup=[];var s="";return n.forEach(function(n){s+="var g=this.xgroups[";var i=n.map(function(t){var r=t.split("\t")[0],n=t.split("\t")[1];return""===r?"1":(e.ingroup.push(r),n)});0===i.length&&(i=["''"]),s+=i.join('+"`"+'),s+="];if(!g) {this.groups.push((g=this.xgroups[",s+=i.join('+"`"+'),s+="] = {",s+=n.map(function(e){var t=e.split("\t")[0],r=e.split("\t")[1];return""===t?"":"'"+t+"':"+r+","}).join("");var o=k(a,n);s+=o.map(function(e){return"'"+e.split("\t")[0]+"':null,"}).join("");var u="",c="";void 0!==e.groupStar&&(c+="for(var f in p['"+e.groupStar+"']) {g[f]=p['"+e.groupStar+"'][f];};"),s+=e.selectGroup.map(function(n){var a=n.expression.toJS("p",t,r),s=n.nick;return n instanceof X.AggrValue?(n.distinct&&(u+=",g['$$_VALUES_"+s+"']={},g['$$_VALUES_"+s+"']["+a+"]=true"),"SUM"===n.aggregatorid?"'"+s+"':("+a+")||0,":"MIN"===n.aggregatorid||"MAX"===n.aggregatorid||"FIRST"===n.aggregatorid||"LAST"===n.aggregatorid?"'"+s+"':"+a+",":"ARRAY"===n.aggregatorid?"'"+s+"':["+a+"],":"COUNT"===n.aggregatorid?"*"===n.expression.columnid?"'"+s+"':1,":"'"+s+"':(typeof "+a+' != "undefined")?1:0,':"AVG"===n.aggregatorid?(e.removeKeys.push("_SUM_"+s),e.removeKeys.push("_COUNT_"+s),"'"+s+"':"+a+",'_SUM_"+s+"':("+a+")||0,'_COUNT_"+s+"':(typeof "+a+' != "undefined")?1:0,'):"AGGR"===n.aggregatorid?(u+=",g['"+s+"']="+n.expression.toJS("g",-1),""):"REDUCE"===n.aggregatorid?(e.aggrKeys.push(n),"'"+s+"':alasql.aggr['"+n.funcid+"']("+a+",undefined,1),"):""):""}).join(""),s+="}"+u+",g));"+c+"} else {",s+=e.selectGroup.map(function(e){var n=e.nick,a=e.expression.toJS("p",t,r);if(e instanceof X.AggrValue){var s="",i="";if(e.distinct)var s="if(typeof "+a+'!="undefined" && (!g[\'$$_VALUES_'+n+"']["+a+"])) \t\t\t\t \t\t {",i="g['$$_VALUES_"+n+"']["+a+"]=true;}";return"SUM"===e.aggregatorid?s+"g['"+n+"']+=("+a+"||0);"+i:"COUNT"===e.aggregatorid?"*"===e.expression.columnid?s+"g['"+n+"']++;"+i:s+"if(typeof "+a+'!="undefined") g[\''+n+"']++;"+i:"ARRAY"===e.aggregatorid?s+"g['"+n+"'].push("+a+");"+i:"MIN"===e.aggregatorid?s+"g['"+n+"']=Math.min(g['"+n+"'],"+a+");"+i:"MAX"===e.aggregatorid?s+"g['"+n+"']=Math.max(g['"+n+"'],"+a+");"+i:"FIRST"===e.aggregatorid?"":"LAST"===e.aggregatorid?s+"g['"+n+"']="+a+";"+i:"AVG"===e.aggregatorid?s+"g['_SUM_"+n+"']+=(y="+a+")||0;g['_COUNT_"+n+"']+=(typeof y!=\"undefined\")?1:0;g['"+n+"']=g['_SUM_"+n+"']/g['_COUNT_"+n+"'];"+i:"AGGR"===e.aggregatorid?s+"g['"+n+"']="+e.expression.toJS("g",-1)+";"+i:"REDUCE"===e.aggregatorid?s+"g['"+n+"']=alasql.aggr."+e.funcid+"("+a+",g['"+n+"'],2);"+i:""}return""}).join(""),s+="}"}),new Function("p,params,alasql","var y;"+s)},X.Select.prototype.compileSelect1=function(t,r){var n=this;t.columns=[],t.xcolumns={},t.selectColumns={},t.dirtyColumns=!1;var a="var r={",s="",i=[];return this.columns.forEach(function(a){if(a instanceof X.Column)if("*"===a.columnid)if(a.func)s+="r=params['"+a.param+"'](p['"+t.sources[0].alias+"'],p,params,alasql);";else if(a.tableid){var o=f(t,[a.tableid],!1);o.s&&(i=i.concat(o.s)),s+=o.sp}else{var o=f(t,Object.keys(t.aliases),!0);o.s&&(i=i.concat(o.s)),s+=o.sp}else{var u=a.tableid,c=a.databaseid||t.sources[0].databaseid||t.database.databaseid;if(u||(u=t.defcols[a.columnid]),u||(u=t.defaultTableid),"_"!==a.columnid){var l=r&&r.length>1&&Array.isArray(r[0])&&r[0].length>=1&&r[0][0].hasOwnProperty("sheetid");l?s='var r={};var w=p["'+u+'"];var cols=['+n.columns.map(function(e){return"'"+e.columnid+"'"}).join(",")+"];var colas=["+n.columns.map(function(e){return"'"+(e.as||e.columnid)+"'"}).join(",")+"];for (var i=0;i0){var p=d[a.columnid];if(void 0===p)throw new Error("Column does not exist: "+a.columnid);var b={columnid:a.as||a.columnid,dbtypeid:p.dbtypeid,dbsize:p.dbsize,dbpecision:p.dbprecision,dbenum:p.dbenum};t.columns.push(b),t.xcolumns[b.columnid]=b}else{var b={columnid:a.as||a.columnid};t.columns.push(b),t.xcolumns[b.columnid]=b,t.dirtyColumns=!0}}else{var b={columnid:a.as||a.columnid};t.columns.push(b),t.xcolumns[b.columnid]=b}}else if(a instanceof X.AggrValue){n.group||(n.group=[""]),a.as||(a.as=C(a.toString())),"SUM"===a.aggregatorid||"MAX"===a.aggregatorid||"MIN"===a.aggregatorid||"FIRST"===a.aggregatorid||"LAST"===a.aggregatorid||"AVG"===a.aggregatorid||"ARRAY"===a.aggregatorid||"REDUCE"===a.aggregatorid?i.push("'"+C(a.as)+"':"+e(a.expression.toJS("p",t.defaultTableid,t.defcols))):"COUNT"===a.aggregatorid&&i.push("'"+C(a.as)+"':1");var b={columnid:a.as||a.columnid||a.toString()};t.columns.push(b),t.xcolumns[b.columnid]=b}else{i.push("'"+C(a.as||a.columnid||a.toString())+"':"+e(a.toJS("p",t.defaultTableid,t.defcols))),t.selectColumns[C(a.as||a.columnid||a.toString())]=!0;var b={columnid:a.as||a.columnid||a.toString()};t.columns.push(b),t.xcolumns[b.columnid]=b}}),a+=i.join(",")+"};"+s},X.Select.prototype.compileSelect2=function(e){var t=e.selectfns;return this.orderColumns&&this.orderColumns.length>0&&this.orderColumns.forEach(function(r,n){var a="$$$"+n;r instanceof X.Column&&e.xcolumns[r.columnid]?t+="r['"+a+"']=r['"+r.columnid+"'];":t+="r['"+a+"']="+r.toJS("p",e.defaultTableid,e.defcols)+";",e.removeKeys.push(a)}),new Function("p,params,alasql","var y;"+t+"return r")},X.Select.prototype.compileSelectGroup0=function(e){var t=this;t.columns.forEach(function(r,n){if(r instanceof X.Column&&"*"===r.columnid)e.groupStar=r.tableid||"default";else{var a;a=C(r instanceof X.Column?r.columnid:r.toString(!0));for(var s=0;s-1&&(r+="r['"+(t.as||t.nick)+"']=g['"+t.nick+"'];")}),this.orderColumns&&this.orderColumns.length>0&&this.orderColumns.forEach(function(t,n){var a="$$$"+n;t instanceof X.Column&&e.groupColumns[t.columnid]?r+="r['"+a+"']=r['"+t.columnid+"'];":r+="r['"+a+"']="+t.toJS("g","")+";",e.removeKeys.push(a)}),new Function("g,params,alasql","var y;"+r+"return r")},X.Select.prototype.compileRemoveColumns=function(e){void 0!==this.removecolumns&&(e.removeKeys=e.removeKeys.concat(this.removecolumns.filter(function(e){return void 0===e.like}).map(function(e){return e.columnid})),e.removeLikeKeys=this.removecolumns.filter(function(e){return void 0!==e.like}).map(function(e){return e.like.value}))},X.Select.prototype.compileHaving=function(e){if(this.having){var t=this.having.toJS("g",-1);return e.havingfns=t,new Function("g,params,alasql","var y;return "+t)}return function(){return!0}},X.Select.prototype.compileOrder=function(e){var t=this;if(t.orderColumns=[],this.order){if(this.order&&1==this.order.length&&this.order[0].expression&&"function"==typeof this.order[0].expression){var r=this.order[0].expression;return function(e,t){var n=r(e),a=r(t);return n>a?1:n==a?0:-1}}var n="",a="";return this.order.forEach(function(r,s){if(r.expression instanceof X.NumValue)var i=t.columns[r.expression.value-1];else var i=r.expression;t.orderColumns.push(i);var o="$$$"+s,u="";if(r.expression instanceof X.Column){var c=r.expression.columnid;if(e.xcolumns[c]){var l=e.xcolumns[c].dbtypeid;"DATE"!=l&&"DATETIME"!=l&&"DATETIME2"!=l||(u=".valueOf()")}else T.options.valueof&&(u=".valueOf()")}r.nocase&&(u+=".toUpperCase()"),n+="if((a['"+o+"']||'')"+u+("ASC"==r.direction?">":"<")+"(b['"+o+"']||'')"+u+")return 1;",n+="if((a['"+o+"']||'')"+u+"==(b['"+o+"']||'')"+u+"){",a+="}"}),n+="return 0;",n+=a+"return -1",e.orderfns=n,new Function("a,b","var y;"+n)}},X.Select.prototype.compilePivot=function(e){var t=this,r=t.pivot.columnid,n=t.pivot.expr.expression.columnid,a=t.pivot.expr.aggregatorid,s=t.pivot.inlist;return s&&(s=s.map(function(e){return e.expr.columnid})),function(){var e=this,t=e.columns.filter(function(e){return e.columnid!=r&&e.columnid!=n}).map(function(e){return e.columnid}),i=[],o={},u={},c={},l=[];if(e.data.forEach(function(e){if(!s||s.indexOf(e[r])>-1){var h=t.map(function(t){return e[t]}).join("`"),d=u[h];if(d||(d={},u[h]=d,l.push(d),t.forEach(function(t){d[t]=e[t]})),c[h]||(c[h]={}),c[h][e[r]]?c[h][e[r]]++:c[h][e[r]]=1,o[e[r]]||(o[e[r]]=!0,i.push(e[r])),"SUM"==a||"AVG"==a)void 0===d[e[r]]&&(d[e[r]]=0),d[e[r]]+=e[n];else if("COUNT"==a)void 0===d[e[r]]&&(d[e[r]]=0),d[e[r]]++;else if("MIN"==a)void 0===d[e[r]]&&(d[e[r]]=1/0),e[n]d[e[r]]&&(d[e[r]]=e[n]);else if("FIRST"==a)void 0===d[e[r]]&&(d[e[r]]=e[n]);else if("LAST"==a)d[e[r]]=e[n];else{if(!T.aggr[a])throw new Error("Wrong aggregator in PIVOT clause");T.aggr[a](d[e[r]],e[n])}}}),"AVG"==a)for(var h in u){var d=u[h];for(var f in d)-1==t.indexOf(f)&&f!=n&&(d[f]=d[f]/c[h][f])}e.data=l,s&&(i=s);var p=e.columns.filter(function(e){return e.columnid==n})[0];e.columns=e.columns.filter(function(e){return!(e.columnid==r||e.columnid==n)}),i.forEach(function(t){var r=_(p);r.columnid=t,e.columns.push(r)})}},X.Select.prototype.compileUnpivot=function(e){var t=this,r=t.unpivot.tocolumnid,n=t.unpivot.forcolumnid,a=t.unpivot.inlist.map(function(e){return e.columnid});return function(){var t=[],s=e.columns.map(function(e){return e.columnid}).filter(function(e){return-1==a.indexOf(e)&&e!=n&&e!=r});e.data.forEach(function(e){a.forEach(function(a){var i={};s.forEach(function(t){i[t]=e[t]}),i[n]=a,i[r]=e[a],t.push(i)})}),e.data=t}};var Z=function(e,t){for(var r=[],n=0,a=e.length,s=0;s"===this.op||"!"===this.op){var e=this.left.toString()+this.op;return"string"!=typeof this.right&&"number"!=typeof this.right&&(e+="("),e+=this.right.toString(),"string"!=typeof this.right&&"number"!=typeof this.right&&(e+=")"),e}return this.left.toString()+" "+this.op+" "+(this.allsome?this.allsome+" ":"")+this.right.toString()},X.Op.prototype.findAggregator=function(e){this.left&&this.left.findAggregator&&this.left.findAggregator(e),this.right&&this.right.findAggregator&&!this.allsome&&this.right.findAggregator(e)},X.Op.prototype.toType=function(e){if(["-","*","/","%","^"].indexOf(this.op)>-1)return"number";if(["||"].indexOf(this.op)>-1)return"string";if("+"===this.op){if("string"===this.left.toType(e)||"string"===this.right.toType(e))return"string";if("number"===this.left.toType(e)||"number"===this.right.toType(e))return"number"}return["AND","OR","NOT","=","==","===","!=","!==","!===",">",">=","<","<=","IN","NOT IN","LIKE","NOT LIKE","REGEXP","GLOB"].indexOf(this.op)>-1?"boolean":"BETWEEN"===this.op||"NOT BETWEEN"===this.op||"IS NULL"===this.op||"IS NOT NULL"===this.op?"boolean":this.allsome?"boolean":this.op?"unknown":this.left.toType()},X.Op.prototype.toJS=function(e,t,r){var n,a=[],s=this.op,i=this,o=function(n){return n.toJS&&(n=n.toJS(e,t,r)),"y["+(a.push(n)-1)+"]"},u=function(){return o(i.left)},c=function(){return o(i.right)};if("="===this.op?s="===":"<>"===this.op?s="!=":"OR"===this.op&&(s="||"),"->"===this.op){var l="("+u()+"||{})";if("string"==typeof this.right)n=l+'["'+this.right+'"]';else if("number"==typeof this.right)n=l+"["+this.right+"]";else if(this.right instanceof X.FuncValue){var h=[];if(this.right.args&&0!==this.right.args.length)var h=this.right.args.map(o);n=l+"['"+this.right.funcid+"']("+h.join(",")+")"}else n=l+"["+c()+"]"}if("!"===this.op&&"string"==typeof this.right&&(n="alasql.databases[alasql.useid].objects["+u()+']["'+this.right+'"]'),"IS"===this.op&&(n="(("+u()+"==null) === ("+c()+"==null))"),"=="===this.op&&(n="alasql.utils.deepEqual("+u()+","+c()+")"),"==="!==this.op&&"!==="!==this.op||(n="("+("!==="===this.op?"!":"")+"(("+u()+").valueOf()===("+c()+").valueOf()))"),"!=="===this.op&&(n="(!alasql.utils.deepEqual("+u()+","+c()+"))"),"||"===this.op&&(n="(''+("+u()+"||'')+("+c()+'||""))'),"LIKE"===this.op||"NOT LIKE"===this.op){var n="("+("NOT LIKE"===this.op?"!":"")+"alasql.utils.like("+c()+","+u();this.escape&&(n+=","+o(this.escape)),n+="))"}if("REGEXP"===this.op&&(n="alasql.stdfn.REGEXP_LIKE("+u()+","+c()+")"),"GLOB"===this.op&&(n="alasql.utils.glob("+u()+","+c()+")"),"BETWEEN"===this.op||"NOT BETWEEN"===this.op){var d=u();n="("+("NOT BETWEEN"===this.op?"!":"")+"(("+o(this.right1)+"<="+d+") && ("+d+"<="+o(this.right2)+")))"}if("IN"===this.op&&(this.right instanceof X.Select?(n="(",n+="alasql.utils.flatArray(this.queriesfn["+this.queriesidx+"](params,null,"+e+"))",n+=".indexOf(",n+=u()+")>-1)"):n=Array.isArray(this.right)?"(["+this.right.map(o).join(",")+"].indexOf("+u()+")>-1)":"("+c()+".indexOf("+u()+")>-1)"),"NOT IN"===this.op&&(this.right instanceof X.Select?(n="(",n+="alasql.utils.flatArray(this.queriesfn["+this.queriesidx+"](params,null,p))",n+=".indexOf(",n+=u()+")<0)"):Array.isArray(this.right)?(n="(["+this.right.map(o).join(",")+"].indexOf(",n+=u()+")<0)"):(n="("+c()+".indexOf(",n+=u()+")==-1)")),"ALL"===this.allsome){var n;if(this.right instanceof X.Select)n="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))",n+=".every(function(b){return (",n+=u()+")"+s+"b})";else{if(!Array.isArray(this.right))throw new Error("NOT IN operator without SELECT");n=""+(1==this.right.length?o(this.right[0]):"["+this.right.map(o).join(",")+"]"),n+=".every(function(b){return (",n+=u()+")"+s+"b})"}}if("SOME"===this.allsome||"ANY"===this.allsome){var n;if(this.right instanceof X.Select)n="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))",n+=".some(function(b){return (",n+=u()+")"+s+"b})";else{if(!Array.isArray(this.right))throw new Error("SOME/ANY operator without SELECT");n=""+(1==this.right.length?o(this.right[0]):"["+this.right.map(o).join(",")+"]"),n+=".some(function(b){return (",n+=u()+")"+s+"b})"}}if("AND"===this.op){if(this.left.reduced){if(this.right.reduced)return"true";n=c()}else this.right.reduced&&(n=u());s="&&"}var f=n||"("+u()+s+c()+")",p="y=[("+a.join("), (")+")]";return"&&"===s||"||"===s||"IS"===s||"IS NULL"===s||"IS NOT NULL"===s?"("+p+", "+f+")":"("+p+", y.some(function(e){return e == null}) ? void 0 : "+f+")"},X.VarValue=function(e){return X.extend(this,e)},X.VarValue.prototype.toString=function(){return"@"+this.variable},X.VarValue.prototype.toType=function(){return"unknown"},X.VarValue.prototype.toJS=function(){return"alasql.vars['"+this.variable+"']"},X.NumValue=function(e){return X.extend(this,e)},X.NumValue.prototype.toString=function(){return this.value.toString()},X.NumValue.prototype.toType=function(){return"number"},X.NumValue.prototype.toJS=function(){return""+this.value},X.StringValue=function(e){return X.extend(this,e)},X.StringValue.prototype.toString=function(){return"'"+this.value.toString()+"'"},X.StringValue.prototype.toType=function(){return"string"},X.StringValue.prototype.toJS=function(){return"'"+C(this.value)+"'"},X.DomainValueValue=function(e){return X.extend(this,e)},X.DomainValueValue.prototype.toString=function(){return"VALUE"},X.DomainValueValue.prototype.toType=function(){return"object"},X.DomainValueValue.prototype.toJS=function(e,t,r){return e},X.ArrayValue=function(e){return X.extend(this,e)},X.ArrayValue.prototype.toString=function(){return"ARRAY[]"},X.ArrayValue.prototype.toType=function(){return"object"},X.ArrayValue.prototype.toJS=function(e,t,r){return"[("+this.value.map(function(n){return n.toJS(e,t,r)}).join("), (")+")]"},X.LogicValue=function(e){return X.extend(this,e)},X.LogicValue.prototype.toString=function(){return this.value?"TRUE":"FALSE"},X.LogicValue.prototype.toType=function(){return"boolean"},X.LogicValue.prototype.toJS=function(){return this.value?"true":"false"},X.NullValue=function(e){return X.extend(this,e)},X.NullValue.prototype.toString=function(){return"NULL"},X.NullValue.prototype.toJS=function(){return"undefined"},X.ParamValue=function(e){return X.extend(this,e)},X.ParamValue.prototype.toString=function(){return"$"+this.param},X.ParamValue.prototype.toJS=function(){return"string"==typeof this.param?"params['"+this.param+"']":"params["+this.param+"]"},X.UniOp=function(e){return X.extend(this,e)},X.UniOp.prototype.toString=function(){var e;return e=void 0,"~"===this.op&&(e=this.op+this.right.toString()),"-"===this.op&&(e=this.op+this.right.toString()),"+"===this.op&&(e=this.op+this.right.toString()),"#"===this.op&&(e=this.op+this.right.toString()),"NOT"===this.op&&(e=this.op+"("+this.right.toString()+")"),null===this.op&&(e="("+this.right.toString()+")"),e||(e="("+this.right.toString()+")"),e},X.UniOp.prototype.findAggregator=function(e){this.right.findAggregator&&this.right.findAggregator(e)},X.UniOp.prototype.toType=function(){return"-"===this.op?"number":"+"===this.op?"number":"NOT"===this.op?"boolean":void 0},X.UniOp.prototype.toJS=function(e,t,r){return"~"===this.op?"(~("+this.right.toJS(e,t,r)+"))":"-"===this.op?"(-("+this.right.toJS(e,t,r)+"))":"+"===this.op?"("+this.right.toJS(e,t,r)+")":"NOT"===this.op?"!("+this.right.toJS(e,t,r)+")":"#"===this.op?this.right instanceof X.Column?"(alasql.databases[alasql.useid].objects['"+this.right.columnid+"'])":"(alasql.databases[alasql.useid].objects["+this.right.toJS(e,t,r)+"])":null==this.op?"("+this.right.toJS(e,t,r)+")":void 0},X.Column=function(e){return X.extend(this,e)},X.Column.prototype.toString=function(e){var t;return t=this.columnid==+this.columnid?"["+this.columnid+"]":this.columnid,this.tableid&&(t=+this.columnid===this.columnid?this.tableid+t:this.tableid+"."+t,this.databaseid&&(t=this.databaseid+"."+t)),this.alias&&!e&&(t+=" AS "+this.alias),t},X.Column.prototype.toJS=function(e,t,r){var n="";if(this.tableid||""!==t||r)if("g"===e)n="g['"+this.nick+"']";else if(this.tableid)n="_"!==this.columnid?e+"['"+this.tableid+"']['"+this.columnid+"']":"g"===e?"g['_']":e+"['"+this.tableid+"']";else if(r){var a=r[this.columnid];if("-"===a)throw new Error('Cannot resolve column "'+this.columnid+'" because it exists in two source tables');n=a?"_"!==this.columnid?e+"['"+a+"']['"+this.columnid+"']":e+"['"+a+"']":"_"!==this.columnid?e+"['"+(this.tableid||t)+"']['"+this.columnid+"']":e+"['"+(this.tableid||t)+"']"}else n=-1===t?e+"['"+this.columnid+"']":"_"!==this.columnid?e+"['"+(this.tableid||t)+"']['"+this.columnid+"']":e+"['"+(this.tableid||t)+"']";else n="_"!==this.columnid?e+"['"+this.columnid+"']":"g"===e?"g['_']":e;return n},X.AggrValue=function(e){return X.extend(this,e)},X.AggrValue.prototype.toString=function(e){var t="";return"REDUCE"===this.aggregatorid?t+=this.funcid+"(":t+=this.aggregatorid+"(",this.distinct&&(t+="DISTINCT "),this.expression&&(t+=this.expression.toString()),t+=")",this.over&&(t+=" "+this.over.toString()),this.alias&&!e&&(t+=" AS "+this.alias),t},X.AggrValue.prototype.findAggregator=function(e){var t=C(this.toString())+":"+e.selectGroup.length,r=!1;if(!r){if(!this.nick){this.nick=t;for(var r=!1,n=0;n-1?"number":["ARRAY"].indexOf(this.aggregatorid)>-1?"array":["FIRST","LAST"].indexOf(this.aggregatorid)>-1?this.expression.toType():void 0},X.AggrValue.prototype.toJS=function(){var e=this.nick;return void 0===e&&(e=this.toString()),"g['"+e+"']"},X.OrderExpression=function(e){return X.extend(this,e)},X.OrderExpression.prototype.toString=X.Expression.prototype.toString,X.GroupExpression=function(e){return X.extend(this,e)},X.GroupExpression.prototype.toString=function(){return this.type+"("+this.group.toString()+")"},X.FromData=function(e){return X.extend(this,e)},X.FromData.prototype.toString=function(){return this.data?"DATA("+(1e16*Math.random()|0)+")":"?"},X.FromData.prototype.toJS=function(){},X.Select.prototype.exec=function(e,t){this.preparams&&(e=this.preparams.concat(e));var r=T.useid;db=T.databases[r];var n=this.toString(),a=x(n),s=this.compile(r);if(s){s.sql=n,s.dbversion=db.dbversion,db.sqlCacheSize>T.MAXSQLCACHESIZE&&db.resetSqlCache(),db.sqlCacheSize++,db.sqlCache[a]=s;return T.res=s(e,t)}},X.Select.prototype.Select=function(){var e=this;if(arguments.length>1)args=Array.prototype.slice.call(arguments);else{if(1!=arguments.length)throw new Error("Wrong number of arguments of Select() function");Array.isArray(arguments[0])?args=arguments[0]:args=[arguments[0]]}return e.columns=[],args.forEach(function(t){if("string"==typeof t)e.columns.push(new X.Column({columnid:t}));else if("function"==typeof t){var r=0;e.preparams?r=e.preparams.length:e.preparams=[],e.preparams.push(t),e.columns.push(new X.Column({columnid:"*",func:t,param:r}))}}),e},X.Select.prototype.From=function(e){var t=this;if(t.from||(t.from=[]),Array.isArray(e)){var r=0;t.preparams?r=t.preparams.length:t.preparams=[],t.preparams.push(e),t.from.push(new X.ParamValue({param:r}))}else{if("string"!=typeof e)throw new Error("Unknown arguments in From() function");t.from.push(new X.Table({tableid:e}))}return t},X.Select.prototype.OrderBy=function(){var e=this;if(e.order=[],0==arguments.length)args=["_"];else if(arguments.length>1)args=Array.prototype.slice.call(arguments);else{if(1!=arguments.length)throw new Error("Wrong number of arguments of Select() function");Array.isArray(arguments[0])?args=arguments[0]:args=[arguments[0]]}return args.length>0&&args.forEach(function(t){var r=new X.Column({columnid:t});"function"==typeof t&&(r=t),e.order.push(new X.OrderExpression({expression:r,direction:"ASC"}))}),e},X.Select.prototype.Top=function(e){var t=this;return t.top=new X.NumValue({value:e}),t},X.Select.prototype.GroupBy=function(){var e=this;if(arguments.length>1)args=Array.prototype.slice.call(arguments);else{if(1!=arguments.length)throw new Error("Wrong number of arguments of Select() function");Array.isArray(arguments[0])?args=arguments[0]:args=[arguments[0]]}return e.group=[],args.forEach(function(t){var r=new X.Column({columnid:t});e.group.push(r)}),e},X.Select.prototype.Where=function(e){var t=this;return"function"==typeof e&&(t.where=e),t},X.FuncValue=function(e){return X.extend(this,e)},X.FuncValue.prototype.toString=function(e){var t="";return T.fn[this.funcid]?t+=this.funcid:T.aggr[this.funcid]?t+=this.funcid:(T.stdlib[this.funcid.toUpperCase()]||T.stdfn[this.funcid.toUpperCase()])&&(t+=this.funcid.toUpperCase()),t+="(",this.args&&this.args.length>0&&(t+=this.args.map(function(e){return e.toString()}).join(",")),t+=")",this.as&&!e&&(t+=" AS "+this.as.toString()),t},X.FuncValue.prototype.execute=function(e,t,r){var n=1;return T.precompile(this,e,t),new Function("params,alasql","var y;return "+this.toJS("","",null))(t,T),r&&(n=r(n)),n},X.FuncValue.prototype.findAggregator=function(e){this.args&&this.args.length>0&&this.args.forEach(function(t){t.findAggregator&&t.findAggregator(e)})},X.FuncValue.prototype.toJS=function(e,t,r){var n="",a=this.funcid;return!T.fn[a]&&T.stdlib[a.toUpperCase()]?this.args&&this.args.length>0?n+=T.stdlib[a.toUpperCase()].apply(this,this.args.map(function(r){return r.toJS(e,t)})):n+=T.stdlib[a.toUpperCase()]():!T.fn[a]&&T.stdfn[a.toUpperCase()]?(this.newid&&(n+="new "),n+="alasql.stdfn."+this.funcid.toUpperCase()+"(",this.args&&this.args.length>0&&(n+=this.args.map(function(n){return n.toJS(e,t,r)}).join(",")),n+=")"):(this.newid&&(n+="new "),n+="alasql.fn."+this.funcid+"(",this.args&&this.args.length>0&&(n+=this.args.map(function(n){return n.toJS(e,t,r)}).join(",")),n+=")"),n};var ne=T.stdlib={},ae=T.stdfn={};ne.ABS=function(e){return"Math.abs("+e+")"},ne.CLONEDEEP=function(e){return"alasql.utils.cloneDeep("+e+")"},ae.CONCAT=function(){return Array.prototype.slice.call(arguments).join("")},ne.EXP=function(e){return"Math.pow(Math.E,"+e+")"},ne.IIF=function(e,t,r){if(3==arguments.length)return"(("+e+")?("+t+"):("+r+"))";throw new Error("Number of arguments of IFF is not equals to 3")},ne.IFNULL=function(e,t){return"("+e+"||"+t+")"},ne.INSTR=function(e,t){return"(("+e+").indexOf("+t+")+1)"},ne.LEN=ne.LENGTH=function(e){return t(e,"y.length")},ne.LOWER=ne.LCASE=function(e){return t(e,"String(y).toLowerCase()")},ne.LTRIM=function(e){return t(e,'y.replace(/^[ ]+/,"")')},ne.RTRIM=function(e){return t(e,'y.replace(/[ ]+$/,"")')},ne.MAX=ne.GREATEST=function(){return"Math.max("+Array.prototype.join.call(arguments,",")+")"},ne.MIN=ne.LEAST=function(){return"Math.min("+Array.prototype.join.call(arguments,",")+")"},ne.SUBSTRING=ne.SUBSTR=ne.MID=function(e,r,n){return 2==arguments.length?t(e,"y.substr("+r+"-1)"):3==arguments.length?t(e,"y.substr("+r+"-1,"+n+")"):void 0},ae.REGEXP_LIKE=function(e,t,r){return(e||"").search(RegExp(t,r))>-1},ne.ISNULL=ne.NULLIF=function(e,t){return"("+e+"=="+t+"?undefined:"+e+")"},ne.POWER=function(e,t){return"Math.pow("+e+","+t+")"},ne.RANDOM=function(e){return 0==arguments.length?"Math.random()":"(Math.random()*("+e+")|0)"},ne.ROUND=function(e,t){return 2==arguments.length?"Math.round(("+e+")*Math.pow(10,("+t+")))/Math.pow(10,("+t+"))":"Math.round("+e+")"},ne.CEIL=ne.CEILING=function(e){return"Math.ceil("+e+")"},ne.FLOOR=function(e){return"Math.floor("+e+")"},ne.ROWNUM=function(){return"1"},ne.ROW_NUMBER=function(){return"1"},ne.SQRT=function(e){return"Math.sqrt("+e+")"},ne.TRIM=function(e){return t(e,"y.trim()")},ne.UPPER=ne.UCASE=function(e){return t(e,"String(y).toUpperCase()")},ae.CONCAT_WS=function(){var e=Array.prototype.slice.call(arguments);return e.slice(1,e.length).join(e[0])},T.aggr.GROUP_CONCAT=function(e,t,r){return 1===r?""+e:2===r?t+=","+e:t},T.aggr.MEDIAN=function(e,t,r){if(2===r)return null!==e&&t.push(e),t;if(1===r)return null===e?[]:[e];if(!t.length)return t;var n=t.sort(),a=(n.length+1)/2;return Number.isInteger(a)?n[a-1]:(n[Math.floor(a-1)]+n[Math.ceil(a-1)])/2},T.aggr.QUART=function(e,t,r,n){if(2===r)return null!==e&&t.push(e),t;if(1===r)return null===e?[]:[e];if(!t.length)return t;n=n||1;var a=t.sort(),s=n*(a.length+1)/4;return Number.isInteger(s)?a[s-1]:a[Math.floor(s)]},T.aggr.QUART2=function(e,t,r){return T.aggr.QUART(e,t,r,2)},T.aggr.QUART3=function(e,t,r){return T.aggr.QUART(e,t,r,3)},T.aggr.VAR=function(e,t,r){if(1===r)return null===e?{arr:[],sum:0}:{arr:[e],sum:e};if(2===r)return null===e?t:(t.arr.push(e),t.sum+=e,t);for(var n=t.arr.length,a=t.sum/n,s=0,i=0;i>8&255]+se[e>>16&255]+se[e>>24&255]+"-"+se[255&t]+se[t>>8&255]+"-"+se[t>>16&15|64]+se[t>>24&255]+"-"+se[63&r|128]+se[r>>8&255]+"-"+se[r>>16&255]+se[r>>24&255]+se[255&n]+se[n>>8&255]+se[n>>16&255]+se[n>>24&255]},X.CaseValue=function(e){return X.extend(this,e)},X.CaseValue.prototype.toString=function(){var e="CASE ";return this.expression&&(e+=this.expression.toString()),this.whens&&(e+=this.whens.map(function(e){return" WHEN "+e.when.toString()+" THEN "+e.then.toString()}).join()),e+=" END"},X.CaseValue.prototype.findAggregator=function(e){this.expression&&this.expression.findAggregator&&this.expression.findAggregator(e),this.whens&&this.whens.length>0&&this.whens.forEach(function(t){t.when.findAggregator&&t.when.findAggregator(e),t.then.findAggregator&&t.then.findAggregator(e)}),this.elses&&this.elses.findAggregator&&this.elses.findAggregator(e)},X.CaseValue.prototype.toJS=function(e,t,r){var n="((function("+e+",params,alasql){var y,r;";return this.expression?(n+="v="+this.expression.toJS(e,t,r)+";",n+=(this.whens||[]).map(function(n){return" if(v=="+n.when.toJS(e,t,r)+") {r="+n.then.toJS(e,t,r)+"}"}).join(" else "),this.elses&&(n+=" else {r="+this.elses.toJS(e,t,r)+"}")):(n+=(this.whens||[]).map(function(n){return" if("+n.when.toJS(e,t,r)+") {r="+n.then.toJS(e,t,r)+"}"}).join(" else "),this.elses&&(n+=" else {r="+this.elses.toJS(e,t,r)+"}")),n+=";return r;}).bind(this))("+e+",params,alasql)"},X.Json=function(e){return X.extend(this,e)},X.Json.prototype.toString=function(){var e="";return e+=oe(this.value),e+=""};var oe=T.utils.JSONtoString=function(e){var t="";if("string"==typeof e)t='"'+e+'"';else if("number"==typeof e)t=e;else if("boolean"==typeof e)t=e;else{if("object"!=typeof e)throw new Error("2Can not show JSON object "+JSON.stringify(e));if(Array.isArray(e))t+="["+e.map(function(e){return oe(e)}).join(",")+"]";else if(!e.toJS||e instanceof X.Json){t="{";var r=[];for(var n in e){var a="";if("string"==typeof n)a+='"'+n+'"';else if("number"==typeof n)a+=n;else{if("boolean"!=typeof n)throw new Error("THis is not ES6... no expressions on left side yet");a+=n}a+=":"+oe(e[n]),r.push(a)}t+=r.join(",")+"}"}else{if(!e.toString)throw new Error("1Can not show JSON object "+JSON.stringify(e));t=e.toString()}}return t};X.Json.prototype.toJS=function(e,t,r){return b(this.value,e,t,r)},X.Convert=function(e){return X.extend(this,e)},X.Convert.prototype.toString=function(){var e="CONVERT(";return e+=this.dbtypeid,void 0!==this.dbsize&&(e+="("+this.dbsize,this.dbprecision&&(e+=","+this.dbprecision),e+=")"),e+=","+this.expression.toString(),this.style&&(e+=","+this.style),e+=")"},X.Convert.prototype.toJS=function(e,t,r){return"alasql.stdfn.CONVERT("+this.expression.toJS(e,t,r)+',{dbtypeid:"'+this.dbtypeid+'",dbsize:'+this.dbsize+",dbprecision:"+this.dbprecision+",style:"+this.style+"})"},T.stdfn.CONVERT=function(e,t){var r=e;if(t.style){var n;switch(n=/\d{8}/.test(r)?new Date(+r.substr(0,4),+r.substr(4,2)-1,+r.substr(6,2)):new Date(r),t.style){case 1:r=("0"+(n.getMonth()+1)).substr(-2)+"/"+("0"+n.getDate()).substr(-2)+"/"+("0"+n.getYear()).substr(-2);break;case 2:r=("0"+n.getYear()).substr(-2)+"."+("0"+(n.getMonth()+1)).substr(-2)+"."+("0"+n.getDate()).substr(-2);break;case 3:r=("0"+n.getDate()).substr(-2)+"/"+("0"+(n.getMonth()+1)).substr(-2)+"/"+("0"+n.getYear()).substr(-2);break;case 4:r=("0"+n.getDate()).substr(-2)+"."+("0"+(n.getMonth()+1)).substr(-2)+"."+("0"+n.getYear()).substr(-2);break;case 5:r=("0"+n.getDate()).substr(-2)+"-"+("0"+(n.getMonth()+1)).substr(-2)+"-"+("0"+n.getYear()).substr(-2);break;case 6:r=("0"+n.getDate()).substr(-2)+" "+n.toString().substr(4,3).toLowerCase()+" "+("0"+n.getYear()).substr(-2);break;case 7:r=n.toString().substr(4,3)+" "+("0"+n.getDate()).substr(-2)+","+("0"+n.getYear()).substr(-2);break;case 8:case 108:r=("0"+n.getHours()).substr(-2)+":"+("0"+n.getMinutes()).substr(-2)+":"+("0"+n.getSeconds()).substr(-2);break;case 10:r=("0"+(n.getMonth()+1)).substr(-2)+"-"+("0"+n.getDate()).substr(-2)+"-"+("0"+n.getYear()).substr(-2);break;case 11:r=("0"+n.getYear()).substr(-2)+"/"+("0"+(n.getMonth()+1)).substr(-2)+"/"+("0"+n.getDate()).substr(-2);break;case 12:r=("0"+n.getYear()).substr(-2)+("0"+(n.getMonth()+1)).substr(-2)+("0"+n.getDate()).substr(-2);break;case 101:r=("0"+(n.getMonth()+1)).substr(-2)+"/"+("0"+n.getDate()).substr(-2)+"/"+n.getFullYear();break;case 102:r=n.getFullYear()+"."+("0"+(n.getMonth()+1)).substr(-2)+"."+("0"+n.getDate()).substr(-2);break;case 103:r=("0"+n.getDate()).substr(-2)+"/"+("0"+(n.getMonth()+1)).substr(-2)+"/"+n.getFullYear();break;case 104:r=("0"+n.getDate()).substr(-2)+"."+("0"+(n.getMonth()+1)).substr(-2)+"."+n.getFullYear();break;case 105:r=("0"+n.getDate()).substr(-2)+"-"+("0"+(n.getMonth()+1)).substr(-2)+"-"+n.getFullYear();break;case 106:r=("0"+n.getDate()).substr(-2)+" "+n.toString().substr(4,3).toLowerCase()+" "+n.getFullYear();break;case 107:r=n.toString().substr(4,3)+" "+("0"+n.getDate()).substr(-2)+","+n.getFullYear();break;case 110:r=("0"+(n.getMonth()+1)).substr(-2)+"-"+("0"+n.getDate()).substr(-2)+"-"+n.getFullYear();break;case 111:r=n.getFullYear()+"/"+("0"+(n.getMonth()+1)).substr(-2)+"/"+("0"+n.getDate()).substr(-2);break;case 112:r=n.getFullYear()+("0"+(n.getMonth()+1)).substr(-2)+("0"+n.getDate()).substr(-2);break;default:throw new Error("The CONVERT style "+t.style+" is not realized yet.")}}var a=t.dbtypeid.toUpperCase();if("Date"==t.dbtypeid)return new Date(r);if("DATE"==a){var s=new Date(r),i=s.getFullYear()+"."+("0"+(s.getMonth()+1)).substr(-2)+"."+("0"+s.getDate()).substr(-2);return i}if("DATETIME"==a||"DATETIME2"==a){var s=new Date(r),i=s.getFullYear()+"."+("0"+(s.getMonth()+1)).substr(-2)+"."+("0"+s.getDate()).substr(-2);return i+=" "+("0"+s.getHours()).substr(-2)+":"+("0"+s.getMinutes()).substr(-2)+":"+("0"+s.getSeconds()).substr(-2),i+="."+("00"+s.getMilliseconds()).substr(-3)}if(["MONEY"].indexOf(a)>-1){var o=+r;return(0|o)+100*o%100/100}if(["BOOLEAN"].indexOf(a)>-1)return!!r;if(["INT","INTEGER","SMALLINT","BIGINT","SERIAL","SMALLSERIAL","BIGSERIAL"].indexOf(t.dbtypeid.toUpperCase())>-1)return 0|r;if(["STRING","VARCHAR","NVARCHAR","CHARACTER VARIABLE"].indexOf(t.dbtypeid.toUpperCase())>-1)return t.dbsize?(""+r).substr(0,t.dbsize):""+r;if(["CHAR","CHARACTER","NCHAR"].indexOf(a)>-1)return(r+new Array(t.dbsize+1).join(" ")).substr(0,t.dbsize);if(["NUMBER","FLOAT","DECIMAL","NUMERIC"].indexOf(a)>-1){var o=+r;return o=void 0!==t.dbsize?parseFloat(o.toPrecision(t.dbsize)):o,o=void 0!==t.dbprecision?parseFloat(o.toFixed(t.dbprecision)):o}if(["JSON"].indexOf(a)>-1){if("object"==typeof r)return r;try{return JSON.parse(r)}catch(e){throw new Error("Cannot convert string to JSON")}}return r},X.ColumnDef=function(e){return X.extend(this,e)},X.ColumnDef.prototype.toString=function(){var e=this.columnid;return this.dbtypeid&&(e+=" "+this.dbtypeid),this.dbsize&&(e+="("+this.dbsize,this.dbprecision&&(e+=","+this.dbprecision),e+=")"),this.primarykey&&(e+=" PRIMARY KEY"),this.notnull&&(e+=" NOT NULL"),e},X.CreateTable=function(e){return X.extend(this,e)},X.CreateTable.prototype.toString=function(){var e="CREATE";if(this.temporary&&(e+=" TEMPORARY"),this.view?e+=" VIEW":e+=" "+(this.class?"CLASS":"TABLE"),this.ifnotexists&&(e+=" IF NOT EXISTS"),e+=" "+this.table.toString(),this.viewcolumns&&(e+="("+this.viewcolumns.map(function(e){return e.toString()}).join(",")+")"),this.as)e+=" AS "+this.as;else{e+=" ("+this.columns.map(function(e){return e.toString()}).join(",")+")"}return this.view&&this.select&&(e+=" AS "+this.select.toString()),e},X.CreateTable.prototype.execute=function(e,t,r){var n=T.databases[this.table.databaseid||e],a=this.table.tableid;if(!a)throw new Error("Table name is not defined");var s=this.columns,i=this.constraints||[];if(this.ifnotexists&&n.tables[a])return r?r(0):0;if(n.tables[a])throw new Error("Can not create table '"+a+"', because it already exists in the database '"+n.databaseid+"'");var o=n.tables[a]=new T.Table;this.class&&(o.isclass=!0);var u=[],c=[];if(s&&s.forEach(function(t){var r=t.dbtypeid;T.fn[r]||(r=r.toUpperCase()),["SERIAL","SMALLSERIAL","BIGSERIAL"].indexOf(r)>-1&&(t.identity={value:1,step:1});var n={columnid:t.columnid,dbtypeid:r,dbsize:t.dbsize,dbprecision:t.dbprecision,notnull:t.notnull,identity:t.identity};if(t.identity&&(o.identities[t.columnid]={value:+t.identity.value,step:+t.identity.step}),t.check&&o.checks.push({id:t.check.constrantid,fn:new Function("r","var y;return "+t.check.expression.toJS("r",""))}),t.default&&u.push("'"+t.columnid+"':"+t.default.toJS("r","")),t.primarykey){var a=o.pk={};a.columns=[t.columnid],a.onrightfns="r['"+t.columnid+"']",a.onrightfn=new Function("r","var y;return "+a.onrightfns),a.hh=x(a.onrightfns),o.uniqs[a.hh]={}}if(t.unique){var s={};o.uk=o.uk||[],o.uk.push(s),s.columns=[t.columnid],s.onrightfns="r['"+t.columnid+"']",s.onrightfn=new Function("r","var y;return "+s.onrightfns),s.hh=x(s.onrightfns),o.uniqs[s.hh]={}}if(t.foreignkey){var i=t.foreignkey.table,l=T.databases[i.databaseid||e].tables[i.tableid];if(void 0===i.columnid){if(!(l.pk.columns&&l.pk.columns.length>0))throw new Error("FOREIGN KEY allowed only to tables with PRIMARY KEYs");i.columnid=l.pk.columns[0]}var h=function(e){var r={};if(void 0===e[t.columnid])return!0;r[i.columnid]=e[t.columnid];var n=l.pk.onrightfn(r);if(!l.uniqs[l.pk.hh][n])throw new Error('Foreign key "'+e[t.columnid]+'" is not found in table '+l.tableid);return!0};o.checks.push({fn:h})}t.onupdate&&c.push("r['"+t.columnid+"']="+t.onupdate.toJS("r","")),o.columns.push(n),o.xcolumns[n.columnid]=n}),o.defaultfns=u.join(","),o.onupdatefns=c.join(";"),i.forEach(function(t){var r;if("PRIMARY KEY"===t.type){if(o.pk)throw new Error("Primary key already exists");var n=o.pk={};n.columns=t.columns,n.onrightfns=n.columns.map(function(e){return"r['"+e+"']"}).join("+'`'+"),n.onrightfn=new Function("r","var y;return "+n.onrightfns),n.hh=x(n.onrightfns),o.uniqs[n.hh]={}}else if("CHECK"===t.type)r=new Function("r","var y;return "+t.expression.toJS("r",""));else if("UNIQUE"===t.type){var a={};o.uk=o.uk||[],o.uk.push(a),a.columns=t.columns,a.onrightfns=a.columns.map(function(e){return"r['"+e+"']"}).join("+'`'+"),a.onrightfn=new Function("r","var y;return "+a.onrightfns),a.hh=x(a.onrightfns),o.uniqs[a.hh]={}}else if("FOREIGN KEY"===t.type){var s=o.xcolumns[t.columns[0]],i=t.fktable;t.fkcolumns&&t.fkcolumns.length>0&&(i.columnid=t.fkcolumns[0]);var u=T.databases[i.databaseid||e].tables[i.tableid];void 0===i.columnid&&(i.columnid=u.pk.columns[0]),r=function(e){var t={};if(void 0===e[s.columnid])return!0;t[i.columnid]=e[s.columnid];var r=u.pk.onrightfn(t);if(!u.uniqs[u.pk.hh][r])throw new Error('Foreign key "'+e[s.columnid]+'" is not found in table '+u.tableid);return!0}}r&&o.checks.push({fn:r,id:t.constraintid,fk:"FOREIGN KEY"===t.type})}),this.view&&this.viewcolumns){var l=this;this.viewcolumns.forEach(function(e,t){l.select.columns[t].as=e.columnid})}if(this.view&&this.select&&(o.view=!0,o.select=this.select.compile(this.table.databaseid||e)),n.engineid)return T.engines[n.engineid].createTable(this.table.databaseid||e,a,this.ifnotexists,r);o.insert=function(r,n){var a=T.inserted;T.inserted=[r];var s=this,i=!1,o=!1;for(var u in s.beforeinsert){var c=s.beforeinsert[u];c&&(c.funcid?!1===T.fn[c.funcid](r)&&(o=o||!0):c.statement&&!1===c.statement.execute(e)&&(o=o||!0))}if(!o){var l=!1;for(u in s.insteadofinsert)l=!0,(c=s.insteadofinsert[u])&&(c.funcid?T.fn[c.funcid](r):c.statement&&c.statement.execute(e));if(!l){for(var h in s.identities){var d=s.identities[h];r[h]=d.value}if(s.checks&&s.checks.length>0&&s.checks.forEach(function(e){if(!e.fn(r))throw new Error("Violation of CHECK constraint "+(e.id||""))}),s.columns.forEach(function(e){if(e.notnull&&void 0===r[e.columnid])throw new Error("Wrong NULL value in NOT NULL column "+e.columnid)}),s.pk){var f=s.pk,p=f.onrightfn(r) -;if(void 0!==s.uniqs[f.hh][p]){if(!n)throw new Error("Cannot insert record, because it already exists in primary key index");i=s.uniqs[f.hh][p]}}if(s.uk&&s.uk.length&&s.uk.forEach(function(e){var t=e.onrightfn(r);if(void 0!==s.uniqs[e.hh][t]){if(!n)throw new Error("Cannot insert record, because it already exists in unique index");i=s.uniqs[e.hh][t]}}),i)s.update(function(e){for(var t in r)e[t]=r[t]},s.data.indexOf(i),t);else{s.data.push(r);for(var h in s.identities){var d=s.identities[h];d.value+=d.step}if(s.pk){var f=s.pk,p=f.onrightfn(r);s.uniqs[f.hh][p]=r}s.uk&&s.uk.length&&s.uk.forEach(function(e){var t=e.onrightfn(r);s.uniqs[e.hh][t]=r})}for(var u in s.afterinsert){var c=s.afterinsert[u];c&&(c.funcid?T.fn[c.funcid](r):c.statement&&c.statement.execute(e))}T.inserted=a}}},o.delete=function(t){var r=this,n=r.data[t],a=!1;for(var s in r.beforedelete){var i=r.beforedelete[s];i&&(i.funcid?!1===T.fn[i.funcid](n)&&(a=a||!0):i.statement&&!1===i.statement.execute(e)&&(a=a||!0))}if(a)return!1;var o=!1;for(var s in r.insteadofdelete){o=!0;var i=r.insteadofdelete[s];i&&(i.funcid?T.fn[i.funcid](n):i.statement&&i.statement.execute(e))}if(!o){if(this.pk){var u=this.pk,c=u.onrightfn(n);if(void 0===this.uniqs[u.hh][c])throw new Error("Something wrong with primary key index on table");this.uniqs[u.hh][c]=void 0}r.uk&&r.uk.length&&r.uk.forEach(function(e){var t=e.onrightfn(n);if(void 0===r.uniqs[e.hh][t])throw new Error("Something wrong with unique index on table");r.uniqs[e.hh][t]=void 0})}},o.deleteall=function(){this.data.length=0,this.pk&&(this.uniqs[this.pk.hh]={}),o.uk&&o.uk.length&&o.uk.forEach(function(e){o.uniqs[e.hh]={}})},o.update=function(t,r,n){var a,s=_(this.data[r]);if(this.pk&&(a=this.pk,a.pkaddr=a.onrightfn(s,n),void 0===this.uniqs[a.hh][a.pkaddr]))throw new Error("Something wrong with index on table");o.uk&&o.uk.length&&o.uk.forEach(function(e){if(e.ukaddr=e.onrightfn(s),void 0===o.uniqs[e.hh][e.ukaddr])throw new Error("Something wrong with unique index on table")}),t(s,n,T);var i=!1;for(var u in o.beforeupdate){var c=o.beforeupdate[u];c&&(c.funcid?!1===T.fn[c.funcid](this.data[r],s)&&(i=i||!0):c.statement&&!1===c.statement.execute(e)&&(i=i||!0))}if(i)return!1;var l=!1;for(var u in o.insteadofupdate){l=!0;var c=o.insteadofupdate[u];c&&(c.funcid?T.fn[c.funcid](this.data[r],s):c.statement&&c.statement.execute(e))}if(!l){if(o.checks&&o.checks.length>0&&o.checks.forEach(function(e){if(!e.fn(s))throw new Error("Violation of CHECK constraint "+(e.id||""))}),o.columns.forEach(function(e){if(e.notnull&&void 0===s[e.columnid])throw new Error("Wrong NULL value in NOT NULL column "+e.columnid)}),this.pk&&(a.newpkaddr=a.onrightfn(s),void 0!==this.uniqs[a.hh][a.newpkaddr]&&a.newpkaddr!==a.pkaddr))throw new Error("Record already exists");o.uk&&o.uk.length&&o.uk.forEach(function(e){if(e.newukaddr=e.onrightfn(s),void 0!==o.uniqs[e.hh][e.newukaddr]&&e.newukaddr!==e.ukaddr)throw new Error("Record already exists")}),this.pk&&(this.uniqs[a.hh][a.pkaddr]=void 0,this.uniqs[a.hh][a.newpkaddr]=s),o.uk&&o.uk.length&&o.uk.forEach(function(e){o.uniqs[e.hh][e.ukaddr]=void 0,o.uniqs[e.hh][e.newukaddr]=s}),this.data[r]=s;for(var u in o.afterupdate){var c=o.afterupdate[u];c&&(c.funcid?T.fn[c.funcid](this.data[r],s):c.statement&&c.statement.execute(e))}}};var h;return T.options.nocount||(h=1),r&&(h=r(h)),h},T.fn.Date=Object,T.fn.Date=Date,T.fn.Number=Number,T.fn.String=String,T.fn.Boolean=Boolean,ae.EXTEND=T.utils.extend,ae.CHAR=String.fromCharCode.bind(String),ae.ASCII=function(e){return e.charCodeAt(0)},ae.COALESCE=function(){for(var e=0;e0)var n=this.sets.map(function(e){return"x['"+e.column.columnid+"']="+e.expression.toJS("x","")}).join(";"),s=new Function("x,params,alasql",n);return function(e,n){var i,o,u=T.databases[t];o=void 0!==r?r:u.counter++;var c={$id:o,$node:"VERTEX"};return u.objects[c.$id]=c,i=c,a&&a(c),s&&s(c,e,T),n&&(i=n(i)),i}},X.CreateEdge=function(e){return X.extend(this,e)},X.CreateEdge.prototype.toString=function(){var e="CREATE EDGE ";return this.class&&(e+=this.class+" "),e},X.CreateEdge.prototype.toJS=function(e){return"this.queriesfn["+(this.queriesidx-1)+"](this.params,null,"+e+")"},X.CreateEdge.prototype.compile=function(e){var t=e,r=new Function("params,alasql","var y;return "+this.from.toJS()),n=new Function("params,alasql","var y;return "+this.to.toJS());if(void 0!==this.name)var a="x.name="+this.name.toJS(),s=new Function("x",a);if(this.sets&&this.sets.length>0)var a=this.sets.map(function(e){return"x['"+e.column.columnid+"']="+e.expression.toJS("x","")}).join(";"),i=new Function("x,params,alasql","var y;"+a);return function(e,a){var o=0,u=T.databases[t],c={$id:u.counter++,$node:"EDGE"},l=r(e,T),h=n(e,T);return c.$in=[l.$id],c.$out=[h.$id],void 0===l.$out&&(l.$out=[]),l.$out.push(c.$id),void 0===typeof h.$in&&(h.$in=[]),h.$in.push(c.$id),u.objects[c.$id]=c,o=c,s&&s(c),i&&i(c,e,T),a&&(o=a(o)),o}},X.CreateGraph=function(e){return X.extend(this,e)},X.CreateGraph.prototype.toString=function(){var e="CREATE GRAPH ";return this.class&&(e+=this.class+" "),e},X.CreateGraph.prototype.execute=function(e,t,r){function n(e){var t=T.databases[T.useid].objects;for(var r in t)if(t[r].name===e)return t[r]}function a(r){var n={};void 0!==r.as&&(T.vars[r.as]=n),void 0!==r.prop&&(n.$id=r.prop,n.name=r.prop),void 0!==r.sharp&&(n.$id=r.sharp),void 0!==r.name&&(n.name=r.name),void 0!==r.class&&(n.$class=r.class);var a=T.databases[e];if(void 0===n.$id&&(n.$id=a.counter++),n.$node="VERTEX",void 0!==r.json&&q(n,new Function("params,alasql","var y;return "+r.json.toJS())(t,T)),a.objects[n.$id]=n,void 0!==n.$class){if(void 0===T.databases[e].tables[n.$class])throw new Error("No such class. Pleace use CREATE CLASS");T.databases[e].tables[n.$class].data.push(n)}return s.push(n.$id),n}var s=[];return this.from&&T.from[this.from.funcid]&&(this.graph=T.from[this.from.funcid.toUpperCase()]),this.graph.forEach(function(r){if(r.source){var i={};void 0!==r.as&&(T.vars[r.as]=i),void 0!==r.prop&&(i.name=r.prop),void 0!==r.sharp&&(i.$id=r.sharp),void 0!==r.name&&(i.name=r.name),void 0!==r.class&&(i.$class=r.class);var o=T.databases[e];void 0===i.$id&&(i.$id=o.counter++),i.$node="EDGE",void 0!==r.json&&q(i,new Function("params,alasql","var y;return "+r.json.toJS())(t,T));var u;if(r.source.vars){var c=T.vars[r.source.vars];u="object"==typeof c?c:o.objects[c]}else{var l=r.source.sharp;void 0===l&&(l=r.source.prop),u=T.databases[e].objects[l],void 0!==u||!T.options.autovertex||void 0===r.source.prop&&void 0===r.source.name||void 0===(u=n(r.source.prop||r.source.name))&&(u=a(r.source))}var h;if(r.source.vars){var c=T.vars[r.target.vars];h="object"==typeof c?c:o.objects[c]}else{var d=r.target.sharp;void 0===d&&(d=r.target.prop),h=T.databases[e].objects[d],void 0!==h||!T.options.autovertex||void 0===r.target.prop&&void 0===r.target.name||void 0===(h=n(r.target.prop||r.target.name))&&(h=a(r.target))}if(i.$in=[u.$id],i.$out=[h.$id],void 0===u.$out&&(u.$out=[]),u.$out.push(i.$id),void 0===h.$in&&(h.$in=[]),h.$in.push(i.$id),o.objects[i.$id]=i,void 0!==i.$class){if(void 0===T.databases[e].tables[i.$class])throw new Error("No such class. Pleace use CREATE CLASS");T.databases[e].tables[i.$class].data.push(i)}s.push(i.$id)}else a(r)}),r&&(s=r(s)),s},X.CreateGraph.prototype.compile1=function(e){var t=e,r=new Function("params,alasql","var y;return "+this.from.toJS()),n=new Function("params,alasql","var y;return "+this.to.toJS());if(void 0!==this.name)var a="x.name="+this.name.toJS(),s=new Function("x",a);if(this.sets&&this.sets.length>0)var a=this.sets.map(function(e){return"x['"+e.column.columnid+"']="+e.expression.toJS("x","")}).join(";"),i=new Function("x,params,alasql","var y;"+a);return function(e,a){var o=0,u=T.databases[t],c={$id:u.counter++,$node:"EDGE"},l=r(e,T),h=n(e,T);return c.$in=[l.$id],c.$out=[h.$id],void 0===l.$out&&(l.$out=[]),l.$out.push(c.$id),void 0===h.$in&&(h.$in=[]),h.$in.push(c.$id),u.objects[c.$id]=c,o=c,s&&s(c),i&&i(c,e,T),a&&(o=a(o)),o}},X.AlterTable=function(e){return X.extend(this,e)},X.AlterTable.prototype.toString=function(){var e="ALTER TABLE "+this.table.toString();return this.renameto&&(e+=" RENAME TO "+this.renameto),e},X.AlterTable.prototype.execute=function(e,t,r){var n=T.databases[e];if(n.dbversion=Date.now(),this.renameto){var a=this.table.tableid,s=this.renameto,i=1;if(n.tables[s])throw new Error("Can not rename a table '"+a+"' to '"+s+"', because the table with this name already exists");if(s===a)throw new Error("Can not rename a table '"+a+"' to itself");return n.tables[s]=n.tables[a],delete n.tables[a],i=1,r&&r(i),i}if(this.addcolumn){n=T.databases[this.table.databaseid||e],n.dbversion++;var o=this.table.tableid,u=n.tables[o],c=this.addcolumn.columnid;if(u.xcolumns[c])throw new Error('Cannot add column "'+c+'", because it already exists in the table "'+o+'"');var l={columnid:c,dbtypeid:this.dbtypeid,dbsize:this.dbsize,dbprecision:this.dbprecision,dbenum:this.dbenum,defaultfns:null};u.columns.push(l),u.xcolumns[c]=l;for(var h=0,d=u.data.length;h0)for(var l=0,h=s.data.length;l0)for(var l=0,h=s.data.length;l=0?r+="(x="+s[t].toJS()+",x==undefined?undefined:+x)":T.fn[a.xcolumns[e.columnid].dbtypeid]?(r+="(new "+a.xcolumns[e.columnid].dbtypeid+"(",r+=s[t].toJS(),r+="))"):r+=s[t].toJS():r+=s[t].toJS(),u.push(r)}):Array.isArray(s)&&a.columns&&a.columns.length>0?a.columns.forEach(function(e,t){var r="'"+e.columnid+"':";["INT","FLOAT","NUMBER","MONEY"].indexOf(e.dbtypeid)>=0?r+="+"+s[t].toJS():T.fn[e.dbtypeid]?(r+="(new "+e.dbtypeid+"(",r+=s[t].toJS(),r+="))"):r+=s[t].toJS(),u.push(r)}):o=b(s),r.tables[n].defaultfns&&u.unshift(r.tables[n].defaultfns),i+=o?"a="+o+";":"a={"+u.join(",")+"};",r.tables[n].isclass&&(i+="var db=alasql.databases['"+e+"'];",i+='a.$class="'+n+'";',i+="a.$id=db.counter++;",i+="db.objects[a.$id]=a;"),r.tables[n].insert?(i+="var db=alasql.databases['"+e+"'];",i+="db.tables['"+n+"'].insert(a,"+(t.orreplace?"true":"false")+");"):i+="aa.push(a);"}),s=u+i,r.tables[n].insert||(i+="alasql.databases['"+e+"'].tables['"+n+"'].data=alasql.databases['"+e+"'].tables['"+n+"'].data.concat(aa);"),r.tables[n].insert&&r.tables[n].isclass?i+="return a.$id;":i+="return "+t.values.length;var c=new Function("db, params, alasql","var y;"+u+i).bind(this)}else if(this.select){this.select.modifier="RECORDSET";var l=this.select.compile(e);if(r.engineid&&T.engines[r.engineid].intoTable){var h=function(e,t){var a=l(e);return T.engines[r.engineid].intoTable(r.databaseid,n,a.data,null,t)};return h}var d="return alasql.utils.extend(r,{"+a.defaultfns+"})",f=new Function("r,db,params,alasql",d),c=function(e,r,a){var s=l(r).data;if(e.tables[n].insert)for(var i=0,o=s.length;i0&&(e+="("+this.args.map(function(e){return e.toString()}).join(", ")+")"),this.as&&(e+=" AS "+this.as),e},X.CreateDatabase.prototype.execute=function(e,t,r){if(this.args&&this.args.length>0&&this.args.map(function(e){return new Function("params,alasql","var y;return "+e.toJS())(t,T)}),this.engineid){var n=T.engines[this.engineid].createDatabase(this.databaseid,this.args,this.ifnotexists,this.as,r);return n}var a=this.databaseid;if(T.databases[a])throw new Error("Database '"+a+"' already exists");var n=(new T.Database(a),1);return r?r(n):n},X.AttachDatabase=function(e){return X.extend(this,e)},X.AttachDatabase.prototype.toString=function(e){var t="ATTACH";return this.engineid&&(t+=" "+this.engineid),t+=" DATABASE "+this.databaseid,e&&(t+="(",e.length>0&&(t+=e.map(function(e){return e.toString()}).join(", ")),t+=")"),this.as&&(t+=" AS "+this.as),t},X.AttachDatabase.prototype.execute=function(e,t,r){if(!T.engines[this.engineid])throw new Error('Engine "'+this.engineid+'" is not defined.');return T.engines[this.engineid].attachDatabase(this.databaseid,this.as,this.args,t,r)},X.DetachDatabase=function(e){return X.extend(this,e)},X.DetachDatabase.prototype.toString=function(){var e="DETACH";return e+=" DATABASE "+this.databaseid},X.DetachDatabase.prototype.execute=function(e,t,r){if(!T.databases[this.databaseid].engineid)throw new Error('Cannot detach database "'+this.engineid+'", because it was not attached.');var n,a=this.databaseid;if(a===T.DEFAULTDATABASEID)throw new Error("Drop of default database is prohibited");if(T.databases[a])delete T.databases[a],a===T.useid&&T.use(),n=1;else{if(!this.ifexists)throw new Error("Database '"+a+"' does not exist");n=0}return r&&r(n),n},X.UseDatabase=function(e){return X.extend(this,e)},X.UseDatabase.prototype.toString=function(){return"USE DATABASE "+this.databaseid},X.UseDatabase.prototype.execute=function(e,t,r){var n=this.databaseid;if(!T.databases[n])throw new Error("Database '"+n+"' does not exist");T.use(n);return r&&r(1),1},X.DropDatabase=function(e){return X.extend(this,e)},X.DropDatabase.prototype.toString=function(){var e="DROP";return this.ifexists&&(e+=" IF EXISTS"),e+=" DATABASE "+this.databaseid},X.DropDatabase.prototype.execute=function(e,t,r){if(this.engineid)return T.engines[this.engineid].dropDatabase(this.databaseid,this.ifexists,r);var n,a=this.databaseid;if(a===T.DEFAULTDATABASEID)throw new Error("Drop of default database is prohibited");if(T.databases[a]){if(T.databases[a].engineid)throw new Error("Cannot drop database '"+a+"', because it is attached. Detach it.");delete T.databases[a],a===T.useid&&T.use(),n=1}else{if(!this.ifexists)throw new Error("Database '"+a+"' does not exist");n=0}return r&&r(n),n},X.Declare=function(e){return X.extend(this,e)},X.Declare.prototype.toString=function(){var e="DECLARE ";return this.declares&&this.declares.length>0&&(e=this.declares.map(function(e){var t="";return t+="@"+e.variable+" ",t+=e.dbtypeid,this.dbsize&&(t+="("+this.dbsize,this.dbprecision&&(t+=","+this.dbprecision),t+=")"),e.expression&&(t+=" = "+e.expression.toString()),t}).join(",")),e},X.Declare.prototype.execute=function(e,t,r){var n=1;return this.declares&&this.declares.length>0&&this.declares.map(function(e){var r=e.dbtypeid;T.fn[r]||(r=r.toUpperCase()),T.declares[e.variable]={dbtypeid:r,dbsize:e.dbsize,dbprecision:e.dbprecision},e.expression&&(T.vars[e.variable]=new Function("params,alasql","return "+e.expression.toJS("({})","",null))(t,T),T.declares[e.variable]&&(T.vars[e.variable]=T.stdfn.CONVERT(T.vars[e.variable],T.declares[e.variable])))}),r&&(n=r(n)),n},X.ShowDatabases=function(e){return X.extend(this,e)},X.ShowDatabases.prototype.toString=function(){var e="SHOW DATABASES";return this.like&&(e+="LIKE "+this.like.toString()),e},X.ShowDatabases.prototype.execute=function(e,t,r){if(this.engineid)return T.engines[this.engineid].showDatabases(this.like,r);var n=this,a=[];for(var s in T.databases)a.push({databaseid:s});return n.like&&a&&a.length>0&&(a=a.filter(function(e){return T.utils.like(n.like.value,e.databaseid)})),r&&r(a),a},X.ShowTables=function(e){return X.extend(this,e)},X.ShowTables.prototype.toString=function(){var e="SHOW TABLES";return this.databaseid&&(e+=" FROM "+this.databaseid),this.like&&(e+=" LIKE "+this.like.toString()),e},X.ShowTables.prototype.execute=function(e,t,r){ -var n=T.databases[this.databaseid||e],a=this,s=[];for(var i in n.tables)s.push({tableid:i});return a.like&&s&&s.length>0&&(s=s.filter(function(e){return T.utils.like(a.like.value,e.tableid)})),r&&r(s),s},X.ShowColumns=function(e){return X.extend(this,e)},X.ShowColumns.prototype.toString=function(){var e="SHOW COLUMNS";return this.table.tableid&&(e+=" FROM "+this.table.tableid),this.databaseid&&(e+=" FROM "+this.databaseid),e},X.ShowColumns.prototype.execute=function(e,t,r){var n=T.databases[this.databaseid||e],a=n.tables[this.table.tableid];if(a&&a.columns){var s=a.columns.map(function(e){return{columnid:e.columnid,dbtypeid:e.dbtypeid,dbsize:e.dbsize}});return r&&r(s),s}return r&&r([]),[]},X.ShowIndex=function(e){return X.extend(this,e)},X.ShowIndex.prototype.toString=function(){var e="SHOW INDEX";return this.table.tableid&&(e+=" FROM "+this.table.tableid),this.databaseid&&(e+=" FROM "+this.databaseid),e},X.ShowIndex.prototype.execute=function(e,t,r){var n=T.databases[this.databaseid||e],a=n.tables[this.table.tableid],s=[];if(a&&a.indices)for(var i in a.indices)s.push({hh:i,len:Object.keys(a.indices[i]).length});return r&&r(s),s},X.ShowCreateTable=function(e){return X.extend(this,e)},X.ShowCreateTable.prototype.toString=function(){var e="SHOW CREATE TABLE "+this.table.tableid;return this.databaseid&&(e+=" FROM "+this.databaseid),e},X.ShowCreateTable.prototype.execute=function(e){var t=T.databases[this.databaseid||e],r=t.tables[this.table.tableid];if(r){var n="CREATE TABLE "+this.table.tableid+" (",a=[];return r.columns&&(r.columns.forEach(function(e){var t=e.columnid+" "+e.dbtypeid;e.dbsize&&(t+="("+e.dbsize+")"),e.primarykey&&(t+=" PRIMARY KEY"),a.push(t)}),n+=a.join(", ")),n+=")"}throw new Error('There is no such table "'+this.table.tableid+'"')},X.SetVariable=function(e){return X.extend(this,e)},X.SetVariable.prototype.toString=function(){var e="SET ";return void 0!==this.value&&(e+=this.variable.toUpperCase()+" "+(this.value?"ON":"OFF")),this.expression&&(e+=this.method+this.variable+" = "+this.expression.toString()),e},X.SetVariable.prototype.execute=function(e,t,r){if(void 0!==this.value){var n=this.value;"ON"==n?n=!0:"OFF"==n&&(n=!1),T.options[this.variable]=n}else if(this.expression){this.exists&&(this.existsfn=this.exists.map(function(t){var r=t.compile(e);return r.query&&!r.query.modifier&&(r.query.modifier="RECORDSET"),r})),this.queries&&(this.queriesfn=this.queries.map(function(t){var r=t.compile(e);return r.query&&!r.query.modifier&&(r.query.modifier="RECORDSET"),r}));var a=new Function("params,alasql","return "+this.expression.toJS("({})","",null)).bind(this)(t,T);if(T.declares[this.variable]&&(a=T.stdfn.CONVERT(a,T.declares[this.variable])),this.props&&this.props.length>0){if("@"==this.method)var s="alasql.vars['"+this.variable+"']";else var s="params['"+this.variable+"']";s+=this.props.map(function(e){return"string"==typeof e?"['"+e+"']":"number"==typeof e?"["+e+"]":"["+e.toJS()+"]"}).join(),new Function("value,params,alasql","var y;"+s+"=value")(a,t,T)}else"@"==this.method?T.vars[this.variable]=a:t[this.variable]=a}var a=1;return r&&(a=r(a)),a},T.test=function(e,t,r){if(0===arguments.length)return void T.log(T.con.results);var n=Date.now();if(1===arguments.length)return r(),void T.con.log(Date.now()-n);2===arguments.length&&(r=t,t=1);for(var a=0;a",e),Array.isArray(a)&&console.table?console.table(a):console.log(oe(a));else{var s;s="output"===n?document.getElementsByTagName("output")[0]:"string"==typeof n?document.getElementById(n):n;var i="";if("string"==typeof e&&T.options.logprompt&&(i+="
"+T.pretty(e)+"
"),Array.isArray(a))if(0===a.length)i+="

[ ]

";else if("object"!=typeof a[0]||Array.isArray(a[0]))for(var o=0,u=a.length;o"+E(a[o])+"

";else i+=E(a);else i+=E(a);s.innerHTML+=i}},T.clear=function(){var e=T.options.logtarget;if(N.isNode||N.isMeteorServer)console.clear&&console.clear();else{var t;t="output"===e?document.getElementsByTagName("output")[0]:"string"==typeof e?document.getElementById(e):e,t.innerHTML=""}},T.write=function(e){var t=T.options.logtarget;if(N.isNode||N.isMeteorServer)console.log&&console.log(e);else{var r;r="output"===t?document.getElementsByTagName("output")[0]:"string"==typeof t?document.getElementById(t):t,r.innerHTML+=e}},T.prompt=function(e,t,r){if(N.isNode)throw new Error("The prompt not realized for Node.js");var n=0;if("string"==typeof e&&(e=document.getElementById(e)),"string"==typeof t&&(t=document.getElementById(t)),t.textContent=T.useid,r){T.prompthistory.push(r),n=T.prompthistory.length;try{var a=Date.now();T.log(r),T.write('

'+(Date.now()-a)+" ms

")}catch(e){T.write("

"+olduseid+"> "+sql+"

"),T.write('

'+e+"

")}}var s=e.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;g(document.getElementsByTagName("body")[0],s,500),e.onkeydown=function(r){if(13===r.which){var a=e.value,s=T.useid;e.value="",T.prompthistory.push(a),n=T.prompthistory.length;try{var i=Date.now();T.log(a),T.write('

'+(Date.now()-i)+" ms

")}catch(e){T.write("

"+s+"> "+T.pretty(a,!1)+"

"),T.write('

'+e+"

")}e.focus(),t.textContent=T.useid;var o=e.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;g(document.getElementsByTagName("body")[0],o,500)}else 38===r.which?(n--,n<0&&(n=0),T.prompthistory[n]&&(e.value=T.prompthistory[n],r.preventDefault())):40===r.which&&(n++,n>=T.prompthistory.length?(n=T.prompthistory.length,e.value=""):T.prompthistory[n]&&(e.value=T.prompthistory[n],r.preventDefault()))}},X.BeginTransaction=function(e){return X.extend(this,e)},X.BeginTransaction.prototype.toString=function(){return"BEGIN TRANSACTION"},X.BeginTransaction.prototype.execute=function(e,t,r){return T.databases[e].engineid?T.engines[T.databases[T.useid].engineid].begin(e,r):(r&&r(1),1)},X.CommitTransaction=function(e){return X.extend(this,e)},X.CommitTransaction.prototype.toString=function(){return"COMMIT TRANSACTION"},X.CommitTransaction.prototype.execute=function(e,t,r){return T.databases[e].engineid?T.engines[T.databases[T.useid].engineid].commit(e,r):(r&&r(1),1)},X.RollbackTransaction=function(e){return X.extend(this,e)},X.RollbackTransaction.prototype.toString=function(){return"ROLLBACK TRANSACTION"},X.RollbackTransaction.prototype.execute=function(e,t,r){return T.databases[e].engineid?T.engines[T.databases[e].engineid].rollback(e,r):(r&&r(1),1)},T.options.tsql&&(T.stdfn.OBJECT_ID=function(e,t){void 0===t&&(t="T"),t=t.toUpperCase();var r=e.split("."),n=T.useid,a=r[0];2==r.length&&(n=r[0],a=r[1]);var s=T.databases[n].tables;n=T.databases[n].databaseid;for(var i in s)if(i==a){if(s[i].view&&"V"==t)return n+"."+i;if(!s[i].view&&"T"==t)return n+"."+i;return}}),T.options.mysql,(T.options.mysql||T.options.sqlite)&&(T.from.INFORMATION_SCHEMA=function(e,t,r,n,a){if("VIEWS"==e||"TABLES"==e){var s=[];for(var i in T.databases){var o=T.databases[i].tables;for(var u in o)(o[u].view&&"VIEWS"==e||!o[u].view&&"TABLES"==e)&&s.push({TABLE_CATALOG:i,TABLE_NAME:u})}return r&&(s=r(s,n,a)),s}throw new Error("Unknown INFORMATION_SCHEMA table")}),T.options.postgres,T.options.oracle,T.options.sqlite,T.into.SQL=function(e,t,r,n,a){var s;"object"==typeof e&&(t=e,e=void 0);var i={};if(T.utils.extend(i,t),void 0===i.tableid)throw new Error("Table for INSERT TO is not defined.");var o="";0===n.length&&"object"==typeof r[0]&&(n=Object.keys(r[0]).map(function(e){return{columnid:e}}));for(var u=0,c=r.length;u0&&(n=Object.keys(r[0]).map(function(e){return{columnid:e}})),"object"==typeof e&&(t=e,e=void 0);var s=r.length,i="";if(r.length>0){var o=n[0].columnid;i+=r.map(function(e){return e[o]}).join("\n")}return e=T.utils.autoExtFilename(e,"txt",t),s=T.utils.saveFile(e,i),a&&(s=a(s)),s},T.into.TAB=T.into.TSV=function(e,t,r,n,a){var s={};return T.utils.extend(s,t),s.separator="\t",e=T.utils.autoExtFilename(e,"tab",t),s.autoExt=!1,T.into.CSV(e,s,r,n,a)},T.into.CSV=function(e,t,r,n,a){0===n.length&&r.length>0&&(n=Object.keys(r[0]).map(function(e){return{columnid:e}})),"object"==typeof e&&(t=e,e=void 0);var s={headers:!0};s.separator=";",s.quote='"',s.utf8Bom=!0,t&&!t.headers&&void 0!==t.headers&&(s.utf8Bom=!1),T.utils.extend(s,t);var i=r.length,o=s.utf8Bom?"\ufeff":"";return s.headers&&(o+=s.quote+n.map(function(e){return e.columnid.trim()}).join(s.quote+s.separator+s.quote)+s.quote+"\r\n"),r.forEach(function(e){o+=n.map(function(t){var r=e[t.columnid];return""!==s.quote&&(r=(r+"").replace(new RegExp("\\"+s.quote,"g"),s.quote+s.quote)),+r!=r&&(r=s.quote+r+s.quote),r}).join(s.separator)+"\r\n"}),e=T.utils.autoExtFilename(e,"csv",t),i=T.utils.saveFile(e,o,null,{disableAutoBom:!0}),a&&(i=a(i)),i},T.into.XLS=function(e,t,r,n,a){"object"==typeof e&&(t=e,e=void 0);var s={};t&&t.sheets&&(s=t.sheets);var i={headers:!0};void 0!==s.Sheet1?i=s[0]:void 0!==t&&(i=t),void 0===i.sheetid&&(i.sheetid="Sheet1");var o=function(){var e=' \t\t \t\t\x3c!--[if gte mso 9]> ';if(e+=" "+i.sheetid+" \t\t",e+="",e+="",e+="",void 0!==i.caption){var a=i.caption;"string"==typeof a&&(a={title:a}),e+=""}return void 0!==i.columns?n=i.columns:0==n.length&&r.length>0&&"object"==typeof r[0]&&(n=Array.isArray(r[0])?r[0].map(function(e,t){return{columnid:t}}):Object.keys(r[0]).map(function(e){return{columnid:e}})),n.forEach(function(e,t){void 0!==i.column&&q(e,i.column),void 0===e.width&&(i.column&&"undefined"!=i.column.width?e.width=i.column.width:e.width="120px"),"number"==typeof e.width&&(e.width=e.width+"px"),void 0===e.columnid&&(e.columnid=t),void 0===e.title&&(e.title=""+e.columnid.trim()),i.headers&&Array.isArray(i.headers)&&(e.title=i.headers[t])}),e+="",n.forEach(function(t){e+=''}),e+="",i.headers&&(e+="",e+="",n.forEach(function(t,r){e+="",e+=""),e+="",r&&r.length>0&&r.forEach(function(r,a){if(!(a>i.limit)){e+=""}),e+=""}}),e+="",e+="
"}),e+="
",e+="",e+=""}();e=T.utils.autoExtFilename(e,"xls",t);var u=T.utils.saveFile(e,o);return a&&(u=a(u)),u},T.into.XLSXML=function(e,t,r,n,a){t=t||{},"object"==typeof e&&(t=e,e=void 0);var s,i,o={};t&&t.sheets?(o=t.sheets,s=r,i=n):(o.Sheet1=t,s=[r],i=[n]),e=T.utils.autoExtFilename(e,"xls",t);var u=T.utils.saveFile(e,function(){function e(e){var t="";for(var n in e){t+="<"+n;for(var s in e[n])t+=" ","x:"==s.substr(0,2)?t+=s:t+="ss:",t+=s+'="'+e[n][s]+'"';t+="/>"}var i=x(t);return a[i]||(a[i]={styleid:u},r+='",u++),"s"+a[i].styleid}var r="",n=" ",a={},u=62,c=0;for(var l in o){var h=o[l],d=void 0!==h.dataidx?h.dataidx:c++,f=function(e){try{return Object.values(e)}catch(t){return Object.keys(e).map(function(t){return e[t]})}}(s[d]),p=void 0;void 0!==h.columns?p=h.columns:(void 0===(p=i[d])||0==p.length&&f.length>0)&&"object"==typeof f[0]&&(p=Array.isArray(f[0])?f[0].map(function(e,t){return{columnid:t}}):Object.keys(f[0]).map(function(e){return{columnid:e}})),p.forEach(function(e,t){void 0!==h.column&&q(e,h.column),void 0===e.width&&(h.column&&void 0!==h.column.width?e.width=h.column.width:e.width=120),"number"==typeof e.width&&(e.width=e.width),void 0===e.columnid&&(e.columnid=t),void 0===e.title&&(e.title=""+e.columnid.trim()),h.headers&&Array.isArray(h.headers)&&(e.title=h.headers[t])}),n+=' \t \t\t\t',p.forEach(function(e,t){n+=''}),h.headers&&(n+='',p.forEach(function(t,r){if(n+=""}),n+=""),f&&f.length>0&&f.forEach(function(r,a){if(!(a>h.limit)){var s={};if(q(s,h.row),h.rows&&h.rows[a]&&q(s,h.rows[a]),n+="';var b=u.format;if(void 0===c)n+="";else if(void 0!==b)if("function"==typeof b)n+=b(c);else{if("string"!=typeof b)throw new Error("Unknown format type. Should be function or string");n+=c}else n+="number"==l||"date"==l?c.toString():"money"==l?(+c).toFixed(2):c;n+=""}),n+=""}}),n+="
"}return n+="",' \t\t \t\t \t\t \t\t \t\t \t\t \t\t \t\t 0 \t\t \t\t \t\t '+r+n}());return a&&(u=a(u)),u},T.into.XLSX=function(e,t,r,n,s){function i(){"object"==typeof t&&Array.isArray(t)?r&&r.length>0&&r.forEach(function(e,r){o(t[r],e,void 0,r+1)}):o(t,r,n,1),u(s)}function o(e,t,r,n){var a={sheetid:"Sheet "+n,headers:!0};T.utils.extend(a,e);var s=Object.keys(t).length;(!r||0==r.length)&&s>0&&(r=Object.keys(t[0]).map(function(e){return{columnid:e}}));var i={};h.SheetNames.indexOf(a.sheetid)>-1?i=h.Sheets[a.sheetid]:(h.SheetNames.push(a.sheetid),h.Sheets[a.sheetid]={},i=h.Sheets[a.sheetid]);var o="A1";a.range&&(o=a.range);var u=T.utils.xlscn(o.match(/[A-Z]+/)[0]),c=+o.match(/[0-9]+/)[0]-1;if(h.Sheets[a.sheetid]["!ref"])var l=h.Sheets[a.sheetid]["!ref"],d=T.utils.xlscn(l.match(/[A-Z]+/)[0]),f=+l.match(/[0-9]+/)[0]-1;else var d=1,f=1;var p=Math.max(u+r.length,d),b=Math.max(c+s+2,f),E=c+1;h.Sheets[a.sheetid]["!ref"]="A1:"+T.utils.xlsnc(p)+b,a.headers&&(r.forEach(function(e,t){i[T.utils.xlsnc(u+t)+""+E]={v:e.columnid.trim()}}),E++);for(var g=0;g=b)return f;if(c)return c=!1,d;var t=E;if(e.charCodeAt(t)===h){for(var r=t;r++0){var s=this.exprs.map(function(e){var r=new Function("params,alasql,p","var y;return "+e.toJS("({})","",null)).bind(n),a=r(t,T);return oe(a)});console.log.apply(console,s)}else if(this.select){var i=this.select.execute(e,t);console.log(oe(i))}else console.log();return r&&(a=r(a)),a},X.Source=function(e){return X.extend(this,e)},X.Source.prototype.toString=function(){var e="SOURCE";return this.url&&(e+=" '"+this.url+" '"),e},X.Source.prototype.execute=function(e,t,r){var n;return I(this.url,!!r,function(e){return n=T(e),r&&(n=r(n)),n},function(e){throw e}),n},X.Require=function(e){return X.extend(this,e)},X.Require.prototype.toString=function(){var e="REQUIRE";return this.paths&&this.paths.length>0&&(e+=this.paths.map(function(e){return e.toString()}).join(",")),this.plugins&&this.plugins.length>0&&(e+=this.plugins.map(function(e){return e.toUpperCase()}).join(",")),e},X.Require.prototype.execute=function(e,t,r){var n=this,a=0,s="";return this.paths&&this.paths.length>0?this.paths.forEach(function(e){I(e.value,!!r,function(e){a++,s+=e,a0?this.plugins.forEach(function(e){T.plugins[e]||I(T.path+"/alasql-"+e.toLowerCase()+".js",!!r,function(i){a++,s+=i,a0&&(r=r.filter(function(e){return e.databaseid.match(a)}))}return t&&(r=t(r)),r},he.createTable=function(e,t,r,n){var a=1,s=T.databases[e].lsdbid;if(he.get(s+"."+t)&&!r)throw new Error('Table "'+t+'" alsready exists in localStorage database "'+s+'"');var i=he.get(s);T.databases[e].tables[t];return i.tables[t]=!0,he.set(s,i),he.storeTable(e,t),n&&(a=n(a)),a},he.truncateTable=function(e,t,r,n){var a,s=1,i=T.databases[e].lsdbid;if(a=T.options.autocommit?he.get(i):T.databases[e],!r&&!a.tables[t])throw new Error('Cannot truncate table "'+t+'" in localStorage, because it does not exist');return he.restoreTable(e,t).data=[],he.storeTable(e,t),n&&(s=n(s)),s},he.dropTable=function(e,t,r,n){var a,s=1,i=T.databases[e].lsdbid;if(a=T.options.autocommit?he.get(i):T.databases[e],!r&&!a.tables[t])throw new Error('Cannot drop table "'+t+'" in localStorage, because it does not exist');return delete a.tables[t],he.set(i,a),he.removeTable(e,t),n&&(s=n(s)),s},he.fromTable=function(e,t,r,n,a){var s=(T.databases[e].lsdbid,he.restoreTable(e,t).data);return r&&(s=r(s,n,a)),s},he.intoTable=function(e,t,r,n,a){var s=(T.databases[e].lsdbid,r.length),i=he.restoreTable(e,t);for(var o in i.identities){var u=i.identities[o];for(var c in r)r[c][o]=u.value,u.value+=u.step}return i.data||(i.data=[]),i.data=i.data.concat(r),he.storeTable(e,t),a&&(s=a(s)),s},he.loadTableData=function(e,t){T.databases[e],T.databases[e].lsdbid;he.restoreTable(e,t)},he.saveTableData=function(e,t){var r=T.databases[e],n=T.databases[e].lsdbid;he.storeTable(n,t),r.tables[t].data=void 0},he.commit=function(e,t){var r=T.databases[e],n=T.databases[e].lsdbid,a={databaseid:n,tables:{}};if(r.tables)for(var s in r.tables)a.tables[s]=!0,he.storeTable(e,s);return he.set(n,a),t?t(1):1},he.begin=he.commit,he.rollback=function(e,t){return};var de=T.engines.SQLITE=function(){};de.createDatabase=function(e,t,r,n,a){throw new Error("Connot create SQLITE database in memory. Attach it.")},de.dropDatabase=function(e){throw new Error("This is impossible to drop SQLite database. Detach it.")},de.attachDatabase=function(e,t,r,n,a){if(T.databases[t])throw new Error('Unable to attach database as "'+t+'" because it already exists');if(r[0]&&r[0]instanceof X.StringValue||r[0]instanceof X.ParamValue){if(r[0]instanceof X.StringValue)var s=r[0].value;else if(r[0]instanceof X.ParamValue)var s=n[r[0].param];return T.utils.loadBinaryFile(s,!0,function(r){var n=new T.Database(t||e);n.engineid="SQLITE",n.sqldbid=e;var s=n.sqldb=new SQL.Database(r);n.tables=[],s.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values.forEach(function(e){n.tables[e[1]]={};var t=n.tables[e[1]].columns=[],r=T.parse(e[4]),a=r.statements[0].columns;a&&a.length>0&&a.forEach(function(e){t.push(e)})}),a(1)},function(e){throw new Error('Cannot open SQLite database file "'+r[0].value+'"')}),1}throw new Error("Cannot attach SQLite database without a file")},de.fromTable=function(e,t,r,n,a){var s=T.databases[e].sqldb.exec("SELECT * FROM "+t),i=a.sources[n].columns=[];s[0].columns.length>0&&s[0].columns.forEach(function(e){i.push({columnid:e})});var o=[];s[0].values.length>0&&s[0].values.forEach(function(e){var t={};i.forEach(function(r,n){t[r.columnid]=e[n]}),o.push(t)}),r&&r(o,n,a)},de.intoTable=function(e,t,r,n,a){for(var s=T.databases[e].sqldb,i=0,o=r.length;i1){var o="REQUIRE "+t.map(function(e){return'"'+e+'"'}).join(",");T(o,[],r)}}else if(!1===e)return void delete T.webworker});var pe=pe||function(e){if(!(void 0===e||"undefined"!=typeof navigator&&/MSIE [1-9]\./.test(navigator.userAgent))){var t=e.document,r=function(){return e.URL||e.webkitURL||e},n=t.createElementNS("http://www.w3.org/1999/xhtml","a"),a="download"in n,s=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},i=/constructor/i.test(e.HTMLElement)||e.safari,o=/CriOS\/[\d]+/.test(navigator.userAgent),u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},c=function(e){var t=function(){"string"==typeof e?r().revokeObjectURL(e):e.remove()};setTimeout(t,4e4)},l=function(e,t,r){t=[].concat(t);for(var n=t.length;n--;){var a=e["on"+t[n]];if("function"==typeof a)try{a.call(e,r||e)}catch(e){u(e)}}},h=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e},d=function(t,u,d){d||(t=h(t));var f,p=this,b=t.type,E="application/octet-stream"===b,g=function(){l(p,"writestart progress write writeend".split(" "))};if(p.readyState=p.INIT,a)return f=r().createObjectURL(t),void setTimeout(function(){n.href=f,n.download=u,s(n),g(),c(f),p.readyState=p.DONE});!function(){if((o||E&&i)&&e.FileReader){var n=new FileReader;return n.onloadend=function(){var t=o?n.result:n.result.replace(/^data:[^;]*;/,"data:attachment/file;");e.open(t,"_blank")||(e.location.href=t),t=void 0,p.readyState=p.DONE,g()},n.readAsDataURL(t),void(p.readyState=p.INIT)}if(f||(f=r().createObjectURL(t)),E)e.location.href=f;else{e.open(f,"_blank")||(e.location.href=f)}p.readyState=p.DONE,g(),c(f)}()},f=d.prototype,p=function(e,t,r){return new d(e,t||e.name||"download",r)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,r){return t=t||e.name||"download",r||(e=h(e)),navigator.msSaveOrOpenBlob(e,t)}:(f.abort=function(){},f.readyState=f.INIT=0,f.WRITING=1,f.DONE=2,f.error=f.onwritestart=f.onprogress=f.onwrite=f.onabort=f.onerror=f.onwriteend=null,p)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=pe:"undefined"!=typeof define&&null!==define&&null!==define.amd&&define("FileSaver.js",function(){return pe}),(N.isCordova||N.isMeteorServer||N.isNode)&&console.warn("It looks like you are using the browser version of AlaSQL. Please use the alasql.fs.js file instead."),T.utils.saveAs=pe}return new H("alasql"),T.use("alasql"),T}); \ No newline at end of file +//! AlaSQL v0.4.11-update-dependencies-ac1eccc0undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT +"use strict";!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.alasql=t()}(this,function(){var gi=function(e,t,r,n){if(t=t||[],"function"!=typeof importScripts&&gi.webworker){var a=gi.lastid++;return gi.buffer[a]=r,void gi.webworker.postMessage({id:a,sql:e,params:t})}return 0===arguments.length?new D.Select({columns:[new D.Column({columnid:"*"})],from:[new D.ParamValue({param:0})]}):1===arguments.length&&e.constructor===Array?gi.promise(e):("function"==typeof t&&(n=r,r=t,t=[]),"object"!=typeof t&&(t=[t]),"string"==typeof e&&"#"===e[0]&&"object"==typeof document?e=document.querySelector(e).textContent:"object"==typeof e&&e instanceof HTMLElement?e=e.textContent:"function"==typeof e&&(e=e.toString(),e=(/\/\*([\S\s]+)\*\//m.exec(e)||["","Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function."])[1]),gi.exec(e,t,r,n))};gi.version="0.4.11-update-dependencies-ac1eccc0undefined",gi.debug=void 0;function e(){return null}var t=function(){function e(e,t,r,n){for(r=r||{},n=e.length;n--;r[e[n]]=t);return r}var t=[2,13],r=[1,104],n=[1,102],a=[1,103],s=[1,6],i=[1,42],o=[1,79],u=[1,76],c=[1,94],l=[1,93],h=[1,69],d=[1,101],f=[1,85],p=[1,64],b=[1,71],E=[1,84],g=[1,66],m=[1,70],v=[1,68],S=[1,61],T=[1,74],A=[1,62],y=[1,67],N=[1,83],C=[1,77],R=[1,86],O=[1,87],w=[1,81],I=[1,82],x=[1,80],D=[1,88],k=[1,89],L=[1,90],$=[1,91],M=[1,92],U=[1,98],_=[1,65],F=[1,78],P=[1,72],q=[1,96],G=[1,97],V=[1,63],B=[1,73],j=[1,108],H=[1,107],J=[10,306,602,764],Y=[10,306,310,602,764],W=[1,115],X=[1,116],K=[1,117],Q=[1,118],z=[1,119],Z=[130,353,410],ee=[1,127],te=[1,126],re=[1,134],ne=[1,164],ae=[1,175],se=[1,178],ie=[1,173],oe=[1,181],ue=[1,185],ce=[1,160],le=[1,182],he=[1,169],de=[1,171],fe=[1,174],pe=[1,183],be=[1,166],Ee=[1,193],ge=[1,188],me=[1,189],ve=[1,194],Se=[1,195],Te=[1,196],Ae=[1,197],ye=[1,198],Ne=[1,199],Ce=[1,200],Re=[1,201],Oe=[1,202],we=[1,176],Ie=[1,177],xe=[1,179],De=[1,180],ke=[1,186],Le=[1,192],$e=[1,184],Me=[1,187],Ue=[1,172],_e=[1,170],Fe=[1,191],Pe=[1,203],qe=[2,4,5],Ge=[2,471],Ve=[1,206],Be=[1,211],je=[1,220],He=[1,216],Je=[10,72,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],Ye=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],We=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Xe=[1,249],Ke=[1,256],Qe=[1,265],ze=[1,270],Ze=[1,269],et=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],tt=[2,162],rt=[1,281],nt=[10,74,78,306,310,505,602,764],at=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,302,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,344,356,368,369,370,373,374,386,389,396,400,401,402,403,404,405,406,408,409,417,418,420,424,426,433,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,514,515,516,517,602,764],st=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],it=[1,562],ot=[1,564],ut=[2,503],ct=[1,569],lt=[1,580],ht=[1,583],dt=[1,584],ft=[10,78,89,132,137,146,189,296,306,310,470,602,764],pt=[10,74,306,310,602,764],bt=[2,567],Et=[1,602],gt=[2,4,5,156],mt=[1,640],vt=[1,612],St=[1,646],Tt=[1,647],At=[1,620],yt=[1,631],Nt=[1,618],Ct=[1,626],Rt=[1,619],Ot=[1,627],wt=[1,629],It=[1,621],xt=[1,622],Dt=[1,641],kt=[1,638],Lt=[1,639],$t=[1,615],Mt=[1,617],Ut=[1,609],_t=[1,610],Ft=[1,611],Pt=[1,613],qt=[1,614],Gt=[1,616],Vt=[1,623],Bt=[1,624],jt=[1,628],Ht=[1,630],Jt=[1,632],Yt=[1,633],Wt=[1,634],Xt=[1,635],Kt=[1,636],Qt=[1,642],zt=[1,643],Zt=[1,644],er=[1,645],tr=[2,287],rr=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],nr=[2,359],ar=[1,668],sr=[1,678],ir=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],or=[1,694],ur=[1,703],cr=[1,702],lr=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],hr=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],dr=[2,202],fr=[1,725],pr=[10,72,78,93,98,118,128,162,168,169,183,232,245,247,306,310,602,764],br=[2,163],Er=[1,728],gr=[2,4,5,112],mr=[1,741],vr=[1,760],Sr=[1,740],Tr=[1,739],Ar=[1,734],yr=[1,735],Nr=[1,737],Cr=[1,738],Rr=[1,742],Or=[1,743],wr=[1,744],Ir=[1,745],xr=[1,746],Dr=[1,747],kr=[1,748],Lr=[1,749],$r=[1,750],Mr=[1,751],Ur=[1,752],_r=[1,753],Fr=[1,754],Pr=[1,755],qr=[1,756],Gr=[1,757],Vr=[1,759],Br=[1,761],jr=[1,762],Hr=[1,763],Jr=[1,764],Yr=[1,765],Wr=[1,766],Xr=[1,767],Kr=[1,770],Qr=[1,771],zr=[1,772],Zr=[1,773],en=[1,774],tn=[1,775],rn=[1,776],nn=[1,777],an=[1,778],sn=[1,779],on=[1,780],un=[1,781],cn=[74,89,189],ln=[10,74,78,154,187,230,297,306,310,343,356,368,369,373,374,602,764],hn=[1,798],dn=[10,74,78,300,306,310,602,764],fn=[1,799],pn=[1,805],bn=[1,806],En=[1,810],gn=[10,74,78,306,310,602,764],mn=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,312,317,420,424],vn=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],Sn=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],Tn=[2,4,5,132,296],An=[1,844],yn=[10,74,76,78,306,310,602,764],Nn=[2,738],Cn=[10,74,76,78,132,139,141,145,152,306,310,420,424,602,764],Rn=[2,1161],On=[10,74,76,78,139,141,145,152,306,310,420,424,602,764],wn=[10,74,76,78,139,141,145,306,310,420,424,602,764],In=[10,74,78,139,141,306,310,602,764],xn=[10,78,89,132,146,189,296,306,310,470,602,764],Dn=[335,338,339],kn=[2,764],Ln=[1,869],$n=[1,870],Mn=[1,871],Un=[1,872],_n=[1,881],Fn=[1,880],Pn=[164,166,334],qn=[2,444],Gn=[1,936],Vn=[2,4,5,77,131,156,290,291,292,293],Bn=[1,951],jn=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Hn=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Jn=[2,375],Yn=[1,958],Wn=[306,308,310],Xn=[74,300],Kn=[74,300,426],Qn=[1,965],zn=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Zn=[74,426],ea=[1,978],ta=[1,977],ra=[1,984],na=[10,72,78,93,98,118,128,162,168,169,232,245,247,306,310,602,764],aa=[1,1010],sa=[10,72,78,306,310,602,764],ia=[1,1016],oa=[1,1017],ua=[1,1018],ca=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],la=[1,1068],ha=[1,1067],da=[1,1081],fa=[1,1080],pa=[1,1088],ba=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],Ea=[1,1119],ga=[10,78,89,146,189,306,310,470,602,764],ma=[1,1139],va=[1,1138],Sa=[1,1137],Ta=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Aa=[1,1153],ya=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Na=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Ca=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Ra=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Oa=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],wa=[2,406],Ia=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],xa=[2,285],Da=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],ka=[10,78,306,310,602,764],La=[1,1189],$a=[10,77,78,143,145,152,181,302,306,310,420,424,602,764],Ma=[10,74,78,306,308,310,464,602,764],Ua=[1,1200],_a=[10,72,78,118,128,162,168,169,232,245,247,306,310,602,764],Fa=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],Pa=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],qa=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],Ga=[2,1085],Va=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],Ba=[1,1252],ja=[10,74,78,128,306,308,310,464,602,764],Ha=[115,116,124],Ja=[2,584],Ya=[1,1280],Wa=[76,139],Xa=[2,724],Ka=[1,1297],Qa=[1,1298],za=[2,4,5,10,53,72,76,89,124,146,156,189,230,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],Za=[2,330],es=[1,1322],ts=[1,1336],rs=[1,1338],ns=[2,487],as=[74,78],ss=[10,306,308,310,464,602,764],is=[10,72,78,118,162,168,169,232,245,247,306,310,602,764],os=[1,1354],us=[1,1358],cs=[1,1359],ls=[1,1361],hs=[1,1362],ds=[1,1363],fs=[1,1364],ps=[1,1365],bs=[1,1366],Es=[1,1367],gs=[1,1368],ms=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],vs=[1,1393],Ss=[10,72,78,118,162,168,169,245,247,306,310,602,764],Ts=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],As=[1,1490],ys=[1,1492],Ns=[2,4,5,77,143,145,152,156,181,290,291,292,293,302,420,424],Cs=[1,1506],Rs=[10,72,74,78,162,168,169,245,247,306,310,602,764],Os=[1,1524],ws=[1,1526],Is=[1,1527],xs=[1,1523],Ds=[1,1522],ks=[1,1521],Ls=[1,1528],$s=[1,1518],Ms=[1,1519],Us=[1,1520],_s=[1,1545],Fs=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],Ps=[1,1556],qs=[1,1564],Gs=[1,1563],Vs=[10,72,78,162,168,169,245,247,306,310,602,764],Bs=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],js=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],Hs=[1,1621],Js=[1,1623],Ys=[1,1620],Ws=[1,1622],Xs=[187,193,368,369,370,373],Ks=[2,515],Qs=[1,1628],zs=[1,1647],Zs=[10,72,78,162,168,169,306,310,602,764],ei=[1,1657],ti=[1,1658],ri=[1,1659],ni=[1,1678],ai=[4,10,243,306,310,343,356,602,764],si=[1,1726],ii=[10,72,74,78,118,162,168,169,239,245,247,306,310,602,764],oi=[2,4,5,77],ui=[1,1820],ci=[1,1832],li=[1,1851],hi=[10,72,78,162,168,169,306,310,415,602,764],di=[10,74,78,230,306,310,602,764],fi={trace:function(){},yy:{},symbols_:{error:2,Literal:3,LITERAL:4,BRALITERAL:5,NonReserved:6,LiteralWithSpaces:7,main:8,Statements:9,EOF:10,Statements_group0:11,AStatement:12,ExplainStatement:13,EXPLAIN:14,QUERY:15,PLAN:16,Statement:17,AlterTable:18,AttachDatabase:19,Call:20,CreateDatabase:21,CreateIndex:22,CreateGraph:23,CreateTable:24,CreateView:25,CreateEdge:26,CreateVertex:27,Declare:28,Delete:29,DetachDatabase:30,DropDatabase:31,DropIndex:32,DropTable:33,DropView:34,If:35,Insert:36,Merge:37,Reindex:38,RenameTable:39,Select:40,ShowCreateTable:41,ShowColumns:42,ShowDatabases:43,ShowIndex:44,ShowTables:45,TruncateTable:46,WithSelect:47,CreateTrigger:48,DropTrigger:49,BeginTransaction:50,CommitTransaction:51,RollbackTransaction:52,EndTransaction:53,UseDatabase:54,Update:55,JavaScript:56,Source:57,Assert:58,While:59,Continue:60,Break:61,BeginEnd:62,Print:63,Require:64,SetVariable:65,ExpressionStatement:66,AddRule:67,Query:68,Echo:69,CreateFunction:70,CreateAggregate:71,WITH:72,WithTablesList:73,COMMA:74,WithTable:75,AS:76,LPAR:77,RPAR:78,SelectClause:79,Select_option0:80,IntoClause:81,FromClause:82,Select_option1:83,WhereClause:84,GroupClause:85,OrderClause:86,LimitClause:87,UnionClause:88,SEARCH:89,Select_repetition0:90,Select_option2:91,PivotClause:92,PIVOT:93,Expression:94,FOR:95,PivotClause_option0:96,PivotClause_option1:97,UNPIVOT:98,IN:99,ColumnsList:100,PivotClause_option2:101,PivotClause2:102,AsList:103,AsLiteral:104,AsPart:105,RemoveClause:106,REMOVE:107,RemoveClause_option0:108,RemoveColumnsList:109,RemoveColumn:110,Column:111,LIKE:112,StringValue:113,ArrowDot:114,ARROW:115,DOT:116,SearchSelector:117,ORDER:118,BY:119,OrderExpressionsList:120,SearchSelector_option0:121,DOTDOT:122,CARET:123,EQ:124,SearchSelector_repetition_plus0:125,SearchSelector_repetition_plus1:126,SearchSelector_option1:127,WHERE:128,OF:129,CLASS:130,NUMBER:131,STRING:132,SLASH:133,VERTEX:134,EDGE:135,EXCLAMATION:136,SHARP:137,MODULO:138,GT:139,LT:140,GTGT:141,LTLT:142,DOLLAR:143,Json:144,AT:145,SET:146,SetColumnsList:147,TO:148,VALUE:149,ROW:150,ExprList:151,COLON:152,PlusStar:153,NOT:154,SearchSelector_repetition2:155,IF:156,SearchSelector_repetition3:157,Aggregator:158,SearchSelector_repetition4:159,SearchSelector_group0:160,SearchSelector_repetition5:161,UNION:162,SearchSelectorList:163,ALL:164,SearchSelector_repetition6:165,ANY:166,SearchSelector_repetition7:167,INTERSECT:168,EXCEPT:169,AND:170,OR:171,PATH:172,RETURN:173,ResultColumns:174,REPEAT:175,SearchSelector_repetition8:176,SearchSelectorList_repetition0:177,SearchSelectorList_repetition1:178,PLUS:179,STAR:180,QUESTION:181,SearchFrom:182,FROM:183,SelectModifier:184,DISTINCT:185,TopClause:186,UNIQUE:187,SelectClause_option0:188,SELECT:189,COLUMN:190,MATRIX:191,TEXTSTRING:192,INDEX:193,RECORDSET:194,TOP:195,NumValue:196,TopClause_option0:197,INTO:198,Table:199,FuncValue:200,ParamValue:201,VarValue:202,FromTablesList:203,JoinTablesList:204,ApplyClause:205,CROSS:206,APPLY:207,OUTER:208,FromTable:209,FromTable_option0:210,FromTable_option1:211,INDEXED:212,INSERTED:213,FromString:214,JoinTable:215,JoinMode:216,JoinTableAs:217,OnClause:218,JoinTableAs_option0:219,JoinTableAs_option1:220,JoinModeMode:221,NATURAL:222,JOIN:223,INNER:224,LEFT:225,RIGHT:226,FULL:227,SEMI:228,ANTI:229,ON:230,USING:231,GROUP:232,GroupExpressionsList:233,HavingClause:234,GroupExpression:235,GROUPING:236,ROLLUP:237,CUBE:238,HAVING:239,CORRESPONDING:240,OrderExpression:241,DIRECTION:242,COLLATE:243,NOCASE:244,LIMIT:245,OffsetClause:246,OFFSET:247,LimitClause_option0:248,FETCH:249,LimitClause_option1:250,LimitClause_option2:251,LimitClause_option3:252,ResultColumn:253,Star:254,AggrValue:255,Op:256,LogicValue:257,NullValue:258,ExistsValue:259,CaseValue:260,CastClause:261,ArrayValue:262,NewClause:263,Expression_group0:264,CURRENT_TIMESTAMP:265,JAVASCRIPT:266,CREATE:267,FUNCTION:268,AGGREGATE:269,NEW:270,CAST:271,ColumnType:272,CONVERT:273,PrimitiveValue:274,OverClause:275,OVER:276,OverPartitionClause:277,OverOrderByClause:278,PARTITION:279,SUM:280,COUNT:281,MIN:282,MAX:283,AVG:284,FIRST:285,LAST:286,AGGR:287,ARRAY:288,FuncValue_option0:289,REPLACE:290,DATEADD:291,DATEDIFF:292,INTERVAL:293,TRUE:294,FALSE:295,NSTRING:296,NULL:297,EXISTS:298,ARRAYLBRA:299,RBRA:300,ParamValue_group0:301,BRAQUESTION:302,CASE:303,WhensList:304,ElseClause:305,END:306,When:307,WHEN:308,THEN:309,ELSE:310,REGEXP:311,TILDA:312,GLOB:313,ESCAPE:314,NOT_LIKE:315,BARBAR:316,MINUS:317,AMPERSAND:318,BAR:319,GE:320,LE:321,EQEQ:322,EQEQEQ:323,NE:324,NEEQEQ:325,NEEQEQEQ:326,CondOp:327,AllSome:328,ColFunc:329,BETWEEN:330,NOT_BETWEEN:331,IS:332,DOUBLECOLON:333,SOME:334,UPDATE:335,SetColumn:336,SetColumn_group0:337,DELETE:338,INSERT:339,Into:340,Values:341,ValuesListsList:342,DEFAULT:343,VALUES:344,ValuesList:345,Value:346,DateValue:347,TemporaryClause:348,TableClass:349,IfNotExists:350,CreateTableDefClause:351,CreateTableOptionsClause:352,TABLE:353,CreateTableOptions:354,CreateTableOption:355,IDENTITY:356,TEMP:357,ColumnDefsList:358,ConstraintsList:359,Constraint:360,ConstraintName:361,PrimaryKey:362,ForeignKey:363,UniqueKey:364,IndexKey:365,Check:366,CONSTRAINT:367,CHECK:368,PRIMARY:369,KEY:370,PrimaryKey_option0:371,ColsList:372,FOREIGN:373,REFERENCES:374,ForeignKey_option0:375,OnForeignKeyClause:376,ParColsList:377,OnDeleteClause:378,OnUpdateClause:379,NO:380,ACTION:381,UniqueKey_option0:382,UniqueKey_option1:383,ColumnDef:384,ColumnConstraintsClause:385,ColumnConstraints:386,SingularColumnType:387,NumberMax:388,ENUM:389,MAXNUM:390,ColumnConstraintsList:391,ColumnConstraint:392,ParLiteral:393,ColumnConstraint_option0:394,ColumnConstraint_option1:395,DROP:396,DropTable_group0:397,IfExists:398,TablesList:399,ALTER:400,RENAME:401,ADD:402,MODIFY:403,ATTACH:404,DATABASE:405,DETACH:406,AsClause:407,USE:408,SHOW:409,VIEW:410,CreateView_option0:411,CreateView_option1:412,SubqueryRestriction:413,READ:414,ONLY:415,OPTION:416,SOURCE:417,ASSERT:418,JsonObject:419,ATLBRA:420,JsonArray:421,JsonValue:422,JsonPrimitiveValue:423,LCUR:424,JsonPropertiesList:425,RCUR:426,JsonElementsList:427,JsonProperty:428,OnOff:429,SetPropsList:430,AtDollar:431,SetProp:432,OFF:433,COMMIT:434,TRANSACTION:435,ROLLBACK:436,BEGIN:437,ElseStatement:438,WHILE:439,CONTINUE:440,BREAK:441,PRINT:442,REQUIRE:443,StringValuesList:444,PluginsList:445,Plugin:446,ECHO:447,DECLARE:448,DeclaresList:449,DeclareItem:450,TRUNCATE:451,MERGE:452,MergeInto:453,MergeUsing:454,MergeOn:455,MergeMatchedList:456,OutputClause:457,MergeMatched:458,MergeNotMatched:459,MATCHED:460,MergeMatchedAction:461,MergeNotMatchedAction:462,TARGET:463,OUTPUT:464,CreateVertex_option0:465,CreateVertex_option1:466,CreateVertex_option2:467,CreateVertexSet:468,SharpValue:469,CONTENT:470,CreateEdge_option0:471,GRAPH:472,GraphList:473,GraphVertexEdge:474,GraphElement:475,GraphVertexEdge_option0:476,GraphVertexEdge_option1:477,GraphElementVar:478,GraphVertexEdge_option2:479,GraphVertexEdge_option3:480,GraphVertexEdge_option4:481,GraphVar:482,GraphAsClause:483,GraphAtClause:484,GraphElement2:485,GraphElement2_option0:486,GraphElement2_option1:487,GraphElement2_option2:488,GraphElement2_option3:489,GraphElement_option0:490,GraphElement_option1:491,GraphElement_option2:492,SharpLiteral:493,GraphElement_option3:494,GraphElement_option4:495,GraphElement_option5:496,ColonLiteral:497,DeleteVertex:498,DeleteVertex_option0:499,DeleteEdge:500,DeleteEdge_option0:501,DeleteEdge_option1:502,DeleteEdge_option2:503,Term:504,COLONDASH:505,TermsList:506,QUESTIONDASH:507,CALL:508,TRIGGER:509,BeforeAfter:510,InsertDeleteUpdate:511,CreateTrigger_option0:512,CreateTrigger_option1:513,BEFORE:514,AFTER:515,INSTEAD:516,REINDEX:517,A:518,ABSENT:519,ABSOLUTE:520,ACCORDING:521,ADA:522,ADMIN:523,ALWAYS:524,ASC:525,ASSERTION:526,ASSIGNMENT:527,ATTRIBUTE:528,ATTRIBUTES:529,BASE64:530,BERNOULLI:531,BLOCKED:532,BOM:533,BREADTH:534,C:535,CASCADE:536,CATALOG:537,CATALOG_NAME:538,CHAIN:539,CHARACTERISTICS:540,CHARACTERS:541,CHARACTER_SET_CATALOG:542,CHARACTER_SET_NAME:543,CHARACTER_SET_SCHEMA:544,CLASS_ORIGIN:545,COBOL:546,COLLATION:547,COLLATION_CATALOG:548,COLLATION_NAME:549,COLLATION_SCHEMA:550,COLUMNS:551,COLUMN_NAME:552,COMMAND_FUNCTION:553,COMMAND_FUNCTION_CODE:554,COMMITTED:555,CONDITION_NUMBER:556,CONNECTION:557,CONNECTION_NAME:558,CONSTRAINTS:559,CONSTRAINT_CATALOG:560,CONSTRAINT_NAME:561,CONSTRAINT_SCHEMA:562,CONSTRUCTOR:563,CONTROL:564,CURSOR_NAME:565,DATA:566,DATETIME_INTERVAL_CODE:567,DATETIME_INTERVAL_PRECISION:568,DB:569,DEFAULTS:570,DEFERRABLE:571,DEFERRED:572,DEFINED:573,DEFINER:574,DEGREE:575,DEPTH:576,DERIVED:577,DESC:578,DESCRIPTOR:579,DIAGNOSTICS:580,DISPATCH:581,DOCUMENT:582,DOMAIN:583,DYNAMIC_FUNCTION:584,DYNAMIC_FUNCTION_CODE:585,EMPTY:586,ENCODING:587,ENFORCED:588,EXCLUDE:589,EXCLUDING:590,EXPRESSION:591,FILE:592,FINAL:593,FLAG:594,FOLLOWING:595,FORTRAN:596,FOUND:597,FS:598,G:599,GENERAL:600,GENERATED:601,GO:602,GOTO:603,GRANTED:604,HEX:605,HIERARCHY:606,ID:607,IGNORE:608,IMMEDIATE:609,IMMEDIATELY:610,IMPLEMENTATION:611,INCLUDING:612,INCREMENT:613,INDENT:614,INITIALLY:615,INPUT:616,INSTANCE:617,INSTANTIABLE:618,INTEGRITY:619,INVOKER:620,ISOLATION:621,K:622,KEY_MEMBER:623,KEY_TYPE:624,LENGTH:625,LEVEL:626,LIBRARY:627,LINK:628,LOCATION:629,LOCATOR:630,M:631,MAP:632,MAPPING:633,MAXVALUE:634,MESSAGE_LENGTH:635,MESSAGE_OCTET_LENGTH:636,MESSAGE_TEXT:637,MINVALUE:638,MORE:639,MUMPS:640,NAME:641,NAMES:642,NAMESPACE:643,NESTING:644,NEXT:645,NFC:646,NFD:647,NFKC:648,NFKD:649,NIL:650,NORMALIZED:651,NULLABLE:652,NULLS:653,OBJECT:654,OCTETS:655,OPTIONS:656,ORDERING:657,ORDINALITY:658,OTHERS:659,OVERRIDING:660,P:661,PAD:662,PARAMETER_MODE:663,PARAMETER_NAME:664,PARAMETER_ORDINAL_POSITION:665,PARAMETER_SPECIFIC_CATALOG:666,PARAMETER_SPECIFIC_NAME:667,PARAMETER_SPECIFIC_SCHEMA:668,PARTIAL:669,PASCAL:670,PASSING:671,PASSTHROUGH:672,PERMISSION:673,PLACING:674,PLI:675,PRECEDING:676,PRESERVE:677,PRIOR:678,PRIVILEGES:679,PUBLIC:680,RECOVERY:681,RELATIVE:682,REPEATABLE:683,REQUIRING:684,RESPECT:685,RESTART:686,RESTORE:687,RESTRICT:688,RETURNED_CARDINALITY:689,RETURNED_LENGTH:690,RETURNED_OCTET_LENGTH:691,RETURNED_SQLSTATE:692,RETURNING:693,ROLE:694,ROUTINE:695,ROUTINE_CATALOG:696,ROUTINE_NAME:697,ROUTINE_SCHEMA:698,ROW_COUNT:699,SCALE:700,SCHEMA:701,SCHEMA_NAME:702,SCOPE_CATALOG:703,SCOPE_NAME:704,SCOPE_SCHEMA:705,SECTION:706,SECURITY:707,SELECTIVE:708,SELF:709,SEQUENCE:710,SERIALIZABLE:711,SERVER:712,SERVER_NAME:713,SESSION:714,SETS:715,SIMPLE:716,SIZE:717,SPACE:718,SPECIFIC_NAME:719,STANDALONE:720,STATE:721,STATEMENT:722,STRIP:723,STRUCTURE:724,STYLE:725,SUBCLASS_ORIGIN:726,T:727,TABLE_NAME:728,TEMPORARY:729,TIES:730,TOKEN:731,TOP_LEVEL_COUNT:732,TRANSACTIONS_COMMITTED:733,TRANSACTIONS_ROLLED_BACK:734,TRANSACTION_ACTIVE:735,TRANSFORM:736,TRANSFORMS:737,TRIGGER_CATALOG:738,TRIGGER_NAME:739,TRIGGER_SCHEMA:740,TYPE:741,UNBOUNDED:742,UNCOMMITTED:743,UNDER:744,UNLINK:745,UNNAMED:746,UNTYPED:747,URI:748,USAGE:749,USER_DEFINED_TYPE_CATALOG:750,USER_DEFINED_TYPE_CODE:751,USER_DEFINED_TYPE_NAME:752,USER_DEFINED_TYPE_SCHEMA:753,VALID:754,VERSION:755,WHITESPACE:756,WORK:757,WRAPPER:758,WRITE:759,XMLDECLARATION:760,XMLSCHEMA:761,YES:762,ZONE:763,SEMICOLON:764,PERCENT:765,ROWS:766,FuncValue_option0_group0:767,$accept:0,$end:1},terminals_:{2:"error",4:"LITERAL",5:"BRALITERAL",10:"EOF",14:"EXPLAIN",15:"QUERY",16:"PLAN",53:"EndTransaction",72:"WITH",74:"COMMA",76:"AS",77:"LPAR",78:"RPAR",89:"SEARCH",93:"PIVOT",95:"FOR",98:"UNPIVOT",99:"IN",107:"REMOVE",112:"LIKE",115:"ARROW",116:"DOT",118:"ORDER",119:"BY",122:"DOTDOT",123:"CARET",124:"EQ",128:"WHERE",129:"OF",130:"CLASS",131:"NUMBER",132:"STRING",133:"SLASH",134:"VERTEX",135:"EDGE",136:"EXCLAMATION",137:"SHARP",138:"MODULO",139:"GT",140:"LT",141:"GTGT",142:"LTLT",143:"DOLLAR",145:"AT",146:"SET",148:"TO",149:"VALUE",150:"ROW",152:"COLON",154:"NOT",156:"IF",162:"UNION",164:"ALL",166:"ANY",168:"INTERSECT",169:"EXCEPT",170:"AND",171:"OR",172:"PATH",173:"RETURN",175:"REPEAT",179:"PLUS",180:"STAR",181:"QUESTION",183:"FROM",185:"DISTINCT",187:"UNIQUE",189:"SELECT",190:"COLUMN",191:"MATRIX",192:"TEXTSTRING",193:"INDEX",194:"RECORDSET",195:"TOP",198:"INTO",206:"CROSS",207:"APPLY",208:"OUTER",212:"INDEXED",213:"INSERTED",222:"NATURAL",223:"JOIN",224:"INNER",225:"LEFT",226:"RIGHT",227:"FULL",228:"SEMI",229:"ANTI",230:"ON",231:"USING",232:"GROUP",236:"GROUPING",237:"ROLLUP",238:"CUBE",239:"HAVING",240:"CORRESPONDING",242:"DIRECTION",243:"COLLATE",244:"NOCASE",245:"LIMIT",247:"OFFSET",249:"FETCH",265:"CURRENT_TIMESTAMP",266:"JAVASCRIPT",267:"CREATE",268:"FUNCTION",269:"AGGREGATE",270:"NEW",271:"CAST",273:"CONVERT",276:"OVER",279:"PARTITION",280:"SUM",281:"COUNT",282:"MIN",283:"MAX",284:"AVG",285:"FIRST",286:"LAST",287:"AGGR",288:"ARRAY",290:"REPLACE",291:"DATEADD",292:"DATEDIFF",293:"INTERVAL",294:"TRUE",295:"FALSE",296:"NSTRING",297:"NULL",298:"EXISTS",299:"ARRAYLBRA",300:"RBRA",302:"BRAQUESTION",303:"CASE",306:"END",308:"WHEN",309:"THEN",310:"ELSE",311:"REGEXP",312:"TILDA",313:"GLOB",314:"ESCAPE",315:"NOT_LIKE",316:"BARBAR",317:"MINUS",318:"AMPERSAND",319:"BAR",320:"GE",321:"LE",322:"EQEQ",323:"EQEQEQ",324:"NE",325:"NEEQEQ",326:"NEEQEQEQ",330:"BETWEEN",331:"NOT_BETWEEN",332:"IS",333:"DOUBLECOLON",334:"SOME",335:"UPDATE",338:"DELETE",339:"INSERT",343:"DEFAULT",344:"VALUES",347:"DateValue",353:"TABLE",356:"IDENTITY",357:"TEMP",367:"CONSTRAINT",368:"CHECK",369:"PRIMARY",370:"KEY",373:"FOREIGN",374:"REFERENCES",380:"NO",381:"ACTION",386:"ColumnConstraints",389:"ENUM",390:"MAXNUM",396:"DROP",400:"ALTER",401:"RENAME",402:"ADD",403:"MODIFY",404:"ATTACH",405:"DATABASE",406:"DETACH",408:"USE",409:"SHOW",410:"VIEW",414:"READ",415:"ONLY",416:"OPTION",417:"SOURCE",418:"ASSERT",420:"ATLBRA",424:"LCUR",426:"RCUR",433:"OFF",434:"COMMIT",435:"TRANSACTION",436:"ROLLBACK",437:"BEGIN",439:"WHILE",440:"CONTINUE",441:"BREAK",442:"PRINT",443:"REQUIRE",447:"ECHO",448:"DECLARE",451:"TRUNCATE",452:"MERGE",460:"MATCHED",463:"TARGET",464:"OUTPUT",470:"CONTENT",472:"GRAPH",505:"COLONDASH",507:"QUESTIONDASH",508:"CALL",509:"TRIGGER",514:"BEFORE",515:"AFTER",516:"INSTEAD",517:"REINDEX",518:"A",519:"ABSENT",520:"ABSOLUTE",521:"ACCORDING",522:"ADA",523:"ADMIN",524:"ALWAYS",525:"ASC",526:"ASSERTION",527:"ASSIGNMENT",528:"ATTRIBUTE",529:"ATTRIBUTES",530:"BASE64",531:"BERNOULLI",532:"BLOCKED",533:"BOM",534:"BREADTH",535:"C",536:"CASCADE",537:"CATALOG",538:"CATALOG_NAME",539:"CHAIN",540:"CHARACTERISTICS",541:"CHARACTERS",542:"CHARACTER_SET_CATALOG",543:"CHARACTER_SET_NAME",544:"CHARACTER_SET_SCHEMA",545:"CLASS_ORIGIN",546:"COBOL",547:"COLLATION",548:"COLLATION_CATALOG",549:"COLLATION_NAME",550:"COLLATION_SCHEMA",551:"COLUMNS",552:"COLUMN_NAME",553:"COMMAND_FUNCTION",554:"COMMAND_FUNCTION_CODE",555:"COMMITTED",556:"CONDITION_NUMBER",557:"CONNECTION",558:"CONNECTION_NAME",559:"CONSTRAINTS",560:"CONSTRAINT_CATALOG",561:"CONSTRAINT_NAME",562:"CONSTRAINT_SCHEMA",563:"CONSTRUCTOR",564:"CONTROL",565:"CURSOR_NAME",566:"DATA",567:"DATETIME_INTERVAL_CODE",568:"DATETIME_INTERVAL_PRECISION",569:"DB",570:"DEFAULTS",571:"DEFERRABLE",572:"DEFERRED",573:"DEFINED",574:"DEFINER",575:"DEGREE",576:"DEPTH",577:"DERIVED",578:"DESC",579:"DESCRIPTOR",580:"DIAGNOSTICS",581:"DISPATCH",582:"DOCUMENT",583:"DOMAIN",584:"DYNAMIC_FUNCTION",585:"DYNAMIC_FUNCTION_CODE",586:"EMPTY",587:"ENCODING",588:"ENFORCED",589:"EXCLUDE",590:"EXCLUDING",591:"EXPRESSION",592:"FILE",593:"FINAL",594:"FLAG",595:"FOLLOWING",596:"FORTRAN",597:"FOUND",598:"FS",599:"G",600:"GENERAL",601:"GENERATED",602:"GO",603:"GOTO",604:"GRANTED",605:"HEX",606:"HIERARCHY",607:"ID",608:"IGNORE",609:"IMMEDIATE",610:"IMMEDIATELY",611:"IMPLEMENTATION",612:"INCLUDING",613:"INCREMENT",614:"INDENT",615:"INITIALLY",616:"INPUT",617:"INSTANCE",618:"INSTANTIABLE",619:"INTEGRITY",620:"INVOKER",621:"ISOLATION",622:"K",623:"KEY_MEMBER",624:"KEY_TYPE",625:"LENGTH",626:"LEVEL",627:"LIBRARY",628:"LINK",629:"LOCATION",630:"LOCATOR",631:"M",632:"MAP",633:"MAPPING",634:"MAXVALUE",635:"MESSAGE_LENGTH",636:"MESSAGE_OCTET_LENGTH",637:"MESSAGE_TEXT",638:"MINVALUE",639:"MORE",640:"MUMPS",641:"NAME",642:"NAMES",643:"NAMESPACE",644:"NESTING",645:"NEXT",646:"NFC",647:"NFD",648:"NFKC",649:"NFKD",650:"NIL",651:"NORMALIZED",652:"NULLABLE",653:"NULLS",654:"OBJECT",655:"OCTETS",656:"OPTIONS",657:"ORDERING",658:"ORDINALITY",659:"OTHERS",660:"OVERRIDING",661:"P",662:"PAD",663:"PARAMETER_MODE",664:"PARAMETER_NAME",665:"PARAMETER_ORDINAL_POSITION",666:"PARAMETER_SPECIFIC_CATALOG",667:"PARAMETER_SPECIFIC_NAME",668:"PARAMETER_SPECIFIC_SCHEMA",669:"PARTIAL",670:"PASCAL",671:"PASSING",672:"PASSTHROUGH",673:"PERMISSION",674:"PLACING",675:"PLI",676:"PRECEDING",677:"PRESERVE",678:"PRIOR",679:"PRIVILEGES",680:"PUBLIC",681:"RECOVERY",682:"RELATIVE",683:"REPEATABLE",684:"REQUIRING",685:"RESPECT",686:"RESTART",687:"RESTORE",688:"RESTRICT",689:"RETURNED_CARDINALITY",690:"RETURNED_LENGTH",691:"RETURNED_OCTET_LENGTH",692:"RETURNED_SQLSTATE",693:"RETURNING",694:"ROLE",695:"ROUTINE",696:"ROUTINE_CATALOG",697:"ROUTINE_NAME",698:"ROUTINE_SCHEMA",699:"ROW_COUNT",700:"SCALE",701:"SCHEMA",702:"SCHEMA_NAME",703:"SCOPE_CATALOG",704:"SCOPE_NAME",705:"SCOPE_SCHEMA",706:"SECTION",707:"SECURITY",708:"SELECTIVE",709:"SELF",710:"SEQUENCE",711:"SERIALIZABLE",712:"SERVER",713:"SERVER_NAME",714:"SESSION",715:"SETS",716:"SIMPLE",717:"SIZE",718:"SPACE",719:"SPECIFIC_NAME",720:"STANDALONE",721:"STATE",722:"STATEMENT",723:"STRIP",724:"STRUCTURE",725:"STYLE",726:"SUBCLASS_ORIGIN",727:"T",728:"TABLE_NAME",729:"TEMPORARY",730:"TIES",731:"TOKEN",732:"TOP_LEVEL_COUNT",733:"TRANSACTIONS_COMMITTED",734:"TRANSACTIONS_ROLLED_BACK",735:"TRANSACTION_ACTIVE",736:"TRANSFORM",737:"TRANSFORMS",738:"TRIGGER_CATALOG",739:"TRIGGER_NAME",740:"TRIGGER_SCHEMA",741:"TYPE",742:"UNBOUNDED",743:"UNCOMMITTED",744:"UNDER",745:"UNLINK",746:"UNNAMED",747:"UNTYPED",748:"URI",749:"USAGE",750:"USER_DEFINED_TYPE_CATALOG",751:"USER_DEFINED_TYPE_CODE",752:"USER_DEFINED_TYPE_NAME",753:"USER_DEFINED_TYPE_SCHEMA",754:"VALID",755:"VERSION",756:"WHITESPACE",757:"WORK",758:"WRAPPER",759:"WRITE",760:"XMLDECLARATION",761:"XMLSCHEMA",762:"YES",763:"ZONE",764:"SEMICOLON",765:"PERCENT",766:"ROWS"},productions_:[0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[241,1],[241,2],[241,3],[241,4],[87,0],[87,3],[87,8],[246,0],[246,2],[174,3],[174,1],[253,3],[253,2],[253,3],[253,2],[253,3],[253,2],[253,1],[254,5],[254,3],[254,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[263,2],[263,2],[261,6],[261,8],[261,6],[261,8],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[255,5],[255,6],[255,6],[275,0],[275,4],[275,4],[275,5],[277,3],[278,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[257,1],[257,1],[113,1],[113,1],[258,1],[202,2],[259,4],[262,3],[201,2],[201,2],[201,1],[201,1],[260,5],[260,4],[304,2],[304,1],[307,4],[305,2],[305,0],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,6],[256,6],[256,3],[256,3],[256,2],[256,2],[256,2],[256,2],[256,2],[256,3],[256,5],[256,6],[256,5],[256,6],[256,4],[256,5],[256,3],[256,4],[256,3],[256,4],[256,3],[256,3],[256,3],[256,3],[256,3],[329,1],[329,1],[329,4],[327,1],[327,1],[327,1],[327,1],[327,1],[327,1],[328,1],[328,1],[328,1],[55,6],[55,4],[147,1],[147,3],[336,3],[336,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[341,1],[341,1],[340,0],[340,1],[342,3],[342,1],[342,1],[342,5],[342,3],[342,3],[345,1],[345,3],[346,1],[346,1],[346,1],[346,1],[346,1],[346,1],[100,1],[100,3],[24,9],[24,5],[349,1],[349,1],[352,0],[352,1],[354,2],[354,1],[355,1],[355,3],[355,3],[355,3],[348,0],[348,1],[350,0],[350,3],[351,3],[351,1],[351,2],[359,1],[359,3],[360,2],[360,2],[360,2],[360,2],[360,2],[361,0],[361,2],[366,4],[362,6],[363,9],[377,3],[376,0],[376,2],[378,4],[379,4],[364,6],[365,5],[365,5],[372,1],[372,1],[372,3],[372,3],[358,1],[358,3],[384,3],[384,2],[384,1],[387,6],[387,4],[387,1],[387,4],[272,2],[272,1],[388,1],[388,1],[385,0],[385,1],[391,2],[391,1],[393,3],[392,2],[392,5],[392,3],[392,6],[392,1],[392,2],[392,4],[392,2],[392,1],[392,2],[392,1],[392,1],[392,3],[392,5],[33,4],[399,3],[399,1],[398,0],[398,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[407,0],[407,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[413,3],[413,3],[413,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[422,1],[422,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,3],[419,3],[419,4],[419,2],[421,2],[421,3],[421,1],[425,3],[425,1],[428,3],[428,3],[428,3],[427,3],[427,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[431,1],[431,1],[430,3],[430,2],[432,1],[432,1],[432,3],[429,1],[429,1],[51,2],[52,2],[50,2],[35,4],[35,3],[438,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[446,1],[446,1],[69,2],[444,3],[444,1],[445,3],[445,1],[28,2],[449,1],[449,3],[450,3],[450,4],[450,5],[450,6],[46,3],[37,6],[453,1],[453,2],[454,2],[455,2],[456,2],[456,2],[456,1],[456,1],[458,4],[458,6],[461,1],[461,3],[459,5],[459,7],[459,7],[459,9],[459,7],[459,9],[462,3],[462,6],[462,3],[462,6],[457,0],[457,2],[457,5],[457,4],[457,7],[27,6],[469,2],[468,0],[468,2],[468,2],[468,1],[26,8],[23,3],[23,4],[473,3],[473,1],[474,3],[474,7],[474,6],[474,3],[474,4],[478,1],[478,1],[482,2],[483,3],[484,2],[485,4],[475,4],[475,3],[475,2],[475,1],[497,2],[493,2],[493,2],[498,4],[500,6],[67,3],[67,2],[506,3],[506,1],[504,1],[504,4],[68,2],[20,2],[48,9],[48,8],[48,9],[510,0],[510,1],[510,1],[510,1],[510,2],[511,1],[511,1],[511,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[248,0],[248,1],[250,0],[250,1],[251,0],[251,1],[252,0],[252,1],[264,1],[264,1],[767,1],[767,1],[289,0],[289,1],[301,1],[301,1],[337,1],[337,1],[371,0],[371,1],[375,0],[375,1],[382,0],[382,1],[383,0],[383,1],[394,0],[394,1],[395,0],[395,1],[397,1],[397,1],[411,0],[411,1],[412,0],[412,1],[465,0],[465,1],[466,0],[466,1],[467,0],[467,1],[471,0],[471,1],[476,0],[476,1],[477,0],[477,1],[479,0],[479,1],[480,0],[480,1],[481,0],[481,1],[486,0],[486,1],[487,0],[487,1],[488,0],[488,1],[489,0],[489,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[499,0],[499,2],[501,0],[501,2],[502,0],[502,2],[503,0],[503,2],[512,0],[512,1],[513,0],[513,1]],performAction:function(e,t,r,n,a,s,i){var o=s.length-1;switch(a){case 1:gi.options.casesensitive?this.$=s[o]:this.$=s[o].toLowerCase();break;case 2:this.$=mi(s[o].substr(1,s[o].length-2));break;case 3:this.$=s[o].toLowerCase();break;case 4:this.$=s[o];break;case 5:this.$=s[o]?s[o-1]+" "+s[o]:s[o-1];break;case 6:return new n.Statements({statements:s[o-1]});case 7:this.$=s[o-2],s[o]&&s[o-2].push(s[o]);break;case 8:case 9:case 70:case 80:case 85:case 143:case 177:case 205:case 206:case 242:case 261:case 273:case 354:case 372:case 451:case 474:case 475:case 479:case 487:case 528:case 529:case 566:case 649:case 659:case 683:case 685:case 687:case 701:case 702:case 732:case 756:this.$=[s[o]];break;case 10:case 11:this.$=s[o],s[o].explain=!0;break;case 12:this.$=s[o],n.exists&&(this.$.exists=n.exists),delete n.exists,n.queries&&(this.$.queries=n.queries),delete n.queries;break;case 13:case 162:case 172:case 237:case 238:case 240:case 248:case 250:case 259:case 267:case 270:case 375:case 491:case 501:case 503:case 515:case 521:case 522:case 567:this.$=void 0;break;case 68:this.$=new n.WithSelect({withs:s[o-1],select:s[o]});break;case 69:case 565:s[o-2].push(s[o]),this.$=s[o-2];break;case 71:this.$={name:s[o-4],select:s[o-1]};break;case 72:n.extend(this.$,s[o-9]),n.extend(this.$,s[o-8]),n.extend(this.$,s[o-7]),n.extend(this.$,s[o-6]),n.extend(this.$,s[o-5]),n.extend(this.$,s[o-4]),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1]),n.extend(this.$,s[o]),this.$=s[o-9];break;case 73:this.$=new n.Search({selectors:s[o-2],from:s[o]}),n.extend(this.$,s[o-1]);break;case 74:this.$={pivot:{expr:s[o-5],columnid:s[o-3],inlist:s[o-2],as:s[o]}};break;case 75:this.$={unpivot:{tocolumnid:s[o-8],forcolumnid:s[o-6],inlist:s[o-3],as:s[o]}};break;case 76:case 520:case 549:case 585:case 619:case 636:case 637:case 640:case 662:this.$=s[o-1];break;case 77:case 78:case 86:case 147:case 185:case 247:case 280:case 288:case 289:case 290:case 291:case 292:case 293:case 294:case 295:case 296:case 297:case 298:case 299:case 300:case 301:case 304:case 305:case 320:case 321:case 322:case 323:case 324:case 325:case 374:case 440:case 441:case 442:case 443:case 444:case 445:case 516:case 542:case 546:case 548:case 623:case 624:case 625:case 626:case 627:case 628:case 632:case 634:case 635:case 644:case 660:case 661:case 723:case 738:case 739:case 741:case 742:case 748:case 749:this.$=s[o];break;case 79:case 84:case 731:case 755:this.$=s[o-2],this.$.push(s[o]);break;case 81:this.$={expr:s[o]};break;case 82:this.$={expr:s[o-2],as:s[o]};break;case 83:this.$={removecolumns:s[o]};break;case 87:this.$={like:s[o]};break;case 90:case 104:this.$={srchid:"PROP",args:[s[o]]};break;case 91:this.$={srchid:"ORDERBY",args:s[o-1]};break;case 92:var u=s[o-1];u||(u="ASC"),this.$={srchid:"ORDERBY",args:[{expression:new n.Column({columnid:"_"}),direction:u}]};break;case 93:this.$={srchid:"PARENT"};break;case 94:this.$={srchid:"APROP",args:[s[o]]};break;case 95:this.$={selid:"ROOT"};break;case 96:this.$={srchid:"EQ",args:[s[o]]};break;case 97:this.$={srchid:"LIKE",args:[s[o]]};break;case 98:case 99:this.$={selid:"WITH",args:s[o-1]};break;case 100:this.$={srchid:s[o-3].toUpperCase(),args:s[o-1]};break;case 101:this.$={srchid:"WHERE",args:[s[o-1]]};break;case 102:this.$={selid:"OF",args:[s[o-1]]};break;case 103:this.$={srchid:"CLASS",args:[s[o-1]]};break;case 105:this.$={srchid:"NAME",args:[s[o].substr(1,s[o].length-2)]};break;case 106:this.$={srchid:"CHILD"};break;case 107:this.$={srchid:"VERTEX"};break;case 108:this.$={srchid:"EDGE"};break;case 109:this.$={srchid:"REF"};break;case 110:this.$={srchid:"SHARP",args:[s[o]]};break;case 111:this.$={srchid:"ATTR",args:void 0===s[o]?void 0:[s[o]]};break;case 112:this.$={srchid:"ATTR"};break;case 113:this.$={srchid:"OUT"};break;case 114:this.$={srchid:"IN"};break;case 115:this.$={srchid:"OUTOUT"};break;case 116:this.$={srchid:"ININ"};break;case 117:this.$={srchid:"CONTENT"};break;case 118:this.$={srchid:"EX",args:[new n.Json({value:s[o]})]};break;case 119:this.$={srchid:"AT",args:[s[o]]};break;case 120:this.$={srchid:"AS",args:[s[o]]};break;case 121:this.$={srchid:"SET",args:s[o-1]};break;case 122:this.$={selid:"TO",args:[s[o]]};break;case 123:this.$={srchid:"VALUE"};break;case 124:this.$={srchid:"ROW",args:s[o-1]};break;case 125:this.$={srchid:"CLASS",args:[s[o]]};break;case 126:this.$={selid:s[o],args:[s[o-1]]};break;case 127:this.$={selid:"NOT",args:s[o-1]};break;case 128:this.$={selid:"IF",args:s[o-1]};break;case 129:this.$={selid:s[o-3],args:s[o-1]};break;case 130:this.$={selid:"DISTINCT",args:s[o-1]};break;case 131:this.$={selid:"UNION",args:s[o-1]};break;case 132:this.$={selid:"UNIONALL",args:s[o-1]};break;case 133:this.$={selid:"ALL",args:[s[o-1]]};break;case 134:this.$={selid:"ANY",args:[s[o-1]]};break;case 135:this.$={selid:"INTERSECT",args:s[o-1]};break;case 136:this.$={selid:"EXCEPT",args:s[o-1]};break;case 137:this.$={selid:"AND",args:s[o-1]};break;case 138:this.$={selid:"OR",args:s[o-1]};break;case 139:this.$={selid:"PATH",args:[s[o-1]]};break;case 140:this.$={srchid:"RETURN",args:s[o-1]};break;case 141:this.$={selid:"REPEAT",sels:s[o-3],args:s[o-1]};break;case 142:this.$=s[o-2],this.$.push(s[o]);break;case 144:this.$="PLUS";break;case 145:this.$="STAR";break;case 146:this.$="QUESTION";break;case 148:case 149:this.$=new n.Select({columns:s[o],distinct:!0}),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-1]);break;case 150:this.$=new n.Select({columns:s[o],all:!0}),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-1]);break;case 151:s[o]?(this.$=new n.Select({columns:s[o]}),n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1])):this.$=new n.Select({columns:[new n.Column({columnid:"_"})],modifier:"COLUMN"});break;case 152:"SELECT"==s[o]?this.$=void 0:this.$={modifier:s[o]};break;case 153:this.$={modifier:"VALUE"};break;case 154:this.$={modifier:"ROW"};break;case 155:this.$={modifier:"COLUMN"};break;case 156:this.$={modifier:"MATRIX"};break;case 157:this.$={modifier:"TEXTSTRING"};break;case 158:this.$={modifier:"INDEX"};break;case 159:this.$={modifier:"RECORDSET"};break;case 160:this.$={top:s[o-1],percent:void 0!==s[o]||void 0};break;case 161:this.$={top:s[o-1]};break;case 163:case 330:case 523:case 524:case 724:this.$=void 0;break;case 164:case 165:case 166:case 167:this.$={into:s[o]};break;case 168:var c=(h=(h=s[o]).substr(1,h.length-2)).substr(-3).toUpperCase(),l=h.substr(-4).toUpperCase();"#"==h[0]?this.$={into:new n.FuncValue({funcid:"HTML",args:[new n.StringValue({value:h}),new n.Json({value:{headers:!0}})]})}:"XLS"==c||"CSV"==c||"TAB"==c?this.$={into:new n.FuncValue({funcid:c,args:[new n.StringValue({value:h}),new n.Json({value:{headers:!0}})]})}:"XLSX"!=l&&"JSON"!=l||(this.$={into:new n.FuncValue({funcid:l,args:[new n.StringValue({value:h}),new n.Json({value:{headers:!0}})]})});break;case 169:this.$={from:s[o]};break;case 170:this.$={from:s[o-1],joins:s[o]};break;case 171:this.$={from:s[o-2],joins:s[o-1]};break;case 173:this.$=new n.Apply({select:s[o-2],applymode:"CROSS",as:s[o]});break;case 174:this.$=new n.Apply({select:s[o-3],applymode:"CROSS",as:s[o]});break;case 175:this.$=new n.Apply({select:s[o-2],applymode:"OUTER",as:s[o]});break;case 176:this.$=new n.Apply({select:s[o-3],applymode:"OUTER",as:s[o]});break;case 178:case 243:case 452:case 530:case 531:this.$=s[o-2],s[o-2].push(s[o]);break;case 179:this.$=s[o-2],this.$.as=s[o];break;case 180:this.$=s[o-3],this.$.as=s[o];break;case 181:this.$=s[o-1],this.$.as="default";break;case 182:this.$=new n.Json({value:s[o-2]}),s[o-2].as=s[o];break;case 183:this.$=s[o-1],s[o-1].as=s[o];break;case 184:this.$=s[o-2],s[o-2].as=s[o];break;case 186:case 638:case 641:this.$=s[o-2];break;case 187:case 191:case 195:case 198:this.$=s[o-1],s[o-1].as=s[o];break;case 188:case 192:case 196:case 199:this.$=s[o-2],s[o-2].as=s[o];break;case 189:case 190:case 194:case 197:this.$=s[o],s[o].as="default";break;case 193:this.$={inserted:!0};break;case 200:var h,d;c=(h=(h=s[o]).substr(1,h.length-2)).substr(-3).toUpperCase(),l=h.substr(-4).toUpperCase();if("#"==h[0])d=new n.FuncValue({funcid:"HTML",args:[new n.StringValue({value:h}),new n.Json({value:{headers:!0}})]});else if("XLS"==c||"CSV"==c||"TAB"==c)d=new n.FuncValue({funcid:c,args:[new n.StringValue({value:h}),new n.Json({value:{headers:!0}})]});else{if("XLSX"!=l&&"JSON"!=l)throw new Error("Unknown string in FROM clause");d=new n.FuncValue({funcid:l,args:[new n.StringValue({value:h}),new n.Json({value:{headers:!0}})]})}this.$=d;break;case 201:"INFORMATION_SCHEMA"==s[o-2]?this.$=new n.FuncValue({funcid:s[o-2],args:[new n.StringValue({value:s[o]})]}):this.$=new n.Table({databaseid:s[o-2],tableid:s[o]});break;case 202:this.$=new n.Table({tableid:s[o]});break;case 203:case 204:this.$=s[o-1],s[o-1].push(s[o]);break;case 207:this.$=new n.Join(s[o-2]),n.extend(this.$,s[o-1]),n.extend(this.$,s[o]);break;case 208:this.$={table:s[o]};break;case 209:this.$={table:s[o-1],as:s[o]};break;case 210:this.$={table:s[o-2],as:s[o]};break;case 211:this.$={json:new n.Json({value:s[o-2],as:s[o]})};break;case 212:this.$={param:s[o-1],as:s[o]};break;case 213:this.$={param:s[o-2],as:s[o]};break;case 214:this.$={select:s[o-2],as:s[o]};break;case 215:this.$={select:s[o-3],as:s[o]};break;case 216:this.$={func:s[o],as:"default"};break;case 217:this.$={func:s[o-1],as:s[o]};break;case 218:this.$={func:s[o-2],as:s[o]};break;case 219:this.$={variable:s[o],as:"default"};break;case 220:this.$={variable:s[o-1],as:s[o]};break;case 221:this.$={variable:s[o-2],as:s[o]};break;case 222:this.$={joinmode:s[o]};break;case 223:this.$={joinmode:s[o-1],natural:!0};break;case 224:case 225:this.$="INNER";break;case 226:case 227:this.$="LEFT";break;case 228:case 229:this.$="RIGHT";break;case 230:case 231:this.$="OUTER";break;case 232:this.$="SEMI";break;case 233:this.$="ANTI";break;case 234:this.$="CROSS";break;case 235:this.$={on:s[o]};break;case 236:case 697:this.$={using:s[o]};break;case 239:this.$={where:new n.Expression({expression:s[o]})};break;case 241:this.$={group:s[o-1]},n.extend(this.$,s[o]);break;case 244:this.$=new n.GroupExpression({type:"GROUPING SETS",group:s[o-1]});break;case 245:this.$=new n.GroupExpression({type:"ROLLUP",group:s[o-1]});break;case 246:this.$=new n.GroupExpression({type:"CUBE",group:s[o-1]});break;case 249:this.$={having:s[o]};break;case 251:this.$={union:s[o]};break;case 252:this.$={unionall:s[o]};break;case 253:this.$={except:s[o]};break;case 254:this.$={intersect:s[o]};break;case 255:this.$={union:s[o],corresponding:!0};break;case 256:this.$={unionall:s[o],corresponding:!0};break;case 257:this.$={except:s[o],corresponding:!0};break;case 258:this.$={intersect:s[o],corresponding:!0};break;case 260:this.$={order:s[o]};break;case 262:this.$=s[o-2],s[o-2].push(s[o]);break;case 263:this.$=new n.Expression({expression:s[o],direction:"ASC"});break;case 264:this.$=new n.Expression({expression:s[o-1],direction:s[o].toUpperCase()});break;case 265:this.$=new n.Expression({expression:s[o-2],direction:"ASC",nocase:!0});break;case 266:this.$=new n.Expression({expression:s[o-3],direction:s[o].toUpperCase(),nocase:!0});break;case 268:this.$={limit:s[o-1]},n.extend(this.$,s[o]);break;case 269:this.$={limit:s[o-2],offset:s[o-6]};break;case 271:this.$={offset:s[o]};break;case 272:case 509:case 533:case 648:case 658:case 682:case 684:case 688:s[o-2].push(s[o]),this.$=s[o-2];break;case 274:case 276:case 278:s[o-2].as=s[o],this.$=s[o-2];break;case 275:case 277:case 279:s[o-1].as=s[o],this.$=s[o-1];break;case 281:this.$=new n.Column({columid:s[o],tableid:s[o-2],databaseid:s[o-4]});break;case 282:this.$=new n.Column({columnid:s[o],tableid:s[o-2]});break;case 283:this.$=new n.Column({columnid:s[o]});break;case 284:this.$=new n.Column({columnid:s[o],tableid:s[o-2],databaseid:s[o-4]});break;case 285:case 286:this.$=new n.Column({columnid:s[o],tableid:s[o-2]});break;case 287:this.$=new n.Column({columnid:s[o]});break;case 302:this.$=new n.DomainValueValue;break;case 303:this.$=new n.Json({value:s[o]});break;case 306:case 307:case 308:n.queries||(n.queries=[]),n.queries.push(s[o-1]),s[o-1].queriesidx=n.queries.length,this.$=s[o-1];break;case 309:this.$=s[o];break;case 310:this.$=new n.FuncValue({funcid:"CURRENT_TIMESTAMP"});break;case 311:this.$=new n.JavaScript({value:s[o].substr(2,s[o].length-4)});break;case 312:this.$=new n.JavaScript({value:'alasql.fn["'+s[o-2]+'"] = '+s[o].substr(2,s[o].length-4)});break;case 313:this.$=new n.JavaScript({value:'alasql.aggr["'+s[o-2]+'"] = '+s[o].substr(2,s[o].length-4)});break;case 314:this.$=new n.FuncValue({funcid:s[o],newid:!0});break;case 315:this.$=s[o],n.extend(this.$,{newid:!0});break;case 316:this.$=new n.Convert({expression:s[o-3]}),n.extend(this.$,s[o-1]);break;case 317:this.$=new n.Convert({expression:s[o-5],style:s[o-1]}),n.extend(this.$,s[o-3]);break;case 318:this.$=new n.Convert({expression:s[o-1]}),n.extend(this.$,s[o-3]);break;case 319:this.$=new n.Convert({expression:s[o-3],style:s[o-1]}),n.extend(this.$,s[o-5]);break;case 326:this.$=new n.FuncValue({funcid:"CURRENT_TIMESTAMP"});break;case 327:1>",right:s[o]});break;case 391:this.$=new n.Op({left:s[o-2],op:"<<",right:s[o]});break;case 392:this.$=new n.Op({left:s[o-2],op:"&",right:s[o]});break;case 393:this.$=new n.Op({left:s[o-2],op:"|",right:s[o]});break;case 394:case 395:case 397:this.$=new n.Op({left:s[o-2],op:"->",right:s[o]});break;case 396:this.$=new n.Op({left:s[o-4],op:"->",right:s[o-1]});break;case 398:case 399:case 401:this.$=new n.Op({left:s[o-2],op:"!",right:s[o]});break;case 400:this.$=new n.Op({left:s[o-4],op:"!",right:s[o-1]});break;case 402:this.$=new n.Op({left:s[o-2],op:">",right:s[o]});break;case 403:this.$=new n.Op({left:s[o-2],op:">=",right:s[o]});break;case 404:this.$=new n.Op({left:s[o-2],op:"<",right:s[o]});break;case 405:this.$=new n.Op({left:s[o-2],op:"<=",right:s[o]});break;case 406:this.$=new n.Op({left:s[o-2],op:"=",right:s[o]});break;case 407:this.$=new n.Op({left:s[o-2],op:"==",right:s[o]});break;case 408:this.$=new n.Op({left:s[o-2],op:"===",right:s[o]});break;case 409:this.$=new n.Op({left:s[o-2],op:"!=",right:s[o]});break;case 410:this.$=new n.Op({left:s[o-2],op:"!==",right:s[o]});break;case 411:this.$=new n.Op({left:s[o-2],op:"!===",right:s[o]});break;case 412:n.queries||(n.queries=[]),this.$=new n.Op({left:s[o-5],op:s[o-4],allsome:s[o-3],right:s[o-1],queriesidx:n.queries.length}),n.queries.push(s[o-1]);break;case 413:this.$=new n.Op({left:s[o-5],op:s[o-4],allsome:s[o-3],right:s[o-1]});break;case 414:"BETWEEN1"==s[o-2].op?"AND"==s[o-2].left.op?this.$=new n.Op({left:s[o-2].left.left,op:"AND",right:new n.Op({left:s[o-2].left.right,op:"BETWEEN",right1:s[o-2].right,right2:s[o]})}):this.$=new n.Op({left:s[o-2].left,op:"BETWEEN",right1:s[o-2].right,right2:s[o]}):"NOT BETWEEN1"==s[o-2].op?"AND"==s[o-2].left.op?this.$=new n.Op({left:s[o-2].left.left,op:"AND",right:new n.Op({left:s[o-2].left.right,op:"NOT BETWEEN",right1:s[o-2].right,right2:s[o]})}):this.$=new n.Op({left:s[o-2].left,op:"NOT BETWEEN",right1:s[o-2].right,right2:s[o]}):this.$=new n.Op({left:s[o-2],op:"AND",right:s[o]});break;case 415:this.$=new n.Op({left:s[o-2],op:"OR",right:s[o]});break;case 416:this.$=new n.UniOp({op:"NOT",right:s[o]});break;case 417:this.$=new n.UniOp({op:"-",right:s[o]});break;case 418:this.$=new n.UniOp({op:"+",right:s[o]});break;case 419:this.$=new n.UniOp({op:"~",right:s[o]});break;case 420:this.$=new n.UniOp({op:"#",right:s[o]});break;case 421:this.$=new n.UniOp({right:s[o-1]});break;case 422:n.queries||(n.queries=[]),this.$=new n.Op({left:s[o-4],op:"IN",right:s[o-1],queriesidx:n.queries.length}),n.queries.push(s[o-1]);break;case 423:n.queries||(n.queries=[]),this.$=new n.Op({left:s[o-5],op:"NOT IN",right:s[o-1],queriesidx:n.queries.length}),n.queries.push(s[o-1]);break;case 424:this.$=new n.Op({left:s[o-4],op:"IN",right:s[o-1]});break;case 425:this.$=new n.Op({left:s[o-5],op:"NOT IN",right:s[o-1]});break;case 426:this.$=new n.Op({left:s[o-3],op:"IN",right:[]});break;case 427:this.$=new n.Op({left:s[o-4],op:"NOT IN",right:[]});break;case 428:case 430:this.$=new n.Op({left:s[o-2],op:"IN",right:s[o]});break;case 429:case 431:this.$=new n.Op({left:s[o-3],op:"NOT IN",right:s[o]});break;case 432:this.$=new n.Op({left:s[o-2],op:"BETWEEN1",right:s[o]});break;case 433:this.$=new n.Op({left:s[o-2],op:"NOT BETWEEN1",right:s[o]});break;case 434:this.$=new n.Op({op:"IS",left:s[o-2],right:s[o]});break;case 435:this.$=new n.Op({op:"IS",left:s[o-2],right:new n.UniOp({op:"NOT",right:new n.NullValue({value:void 0})})});break;case 436:this.$=new n.Convert({expression:s[o-2]}),n.extend(this.$,s[o]);break;case 437:case 438:this.$=s[o];break;case 439:this.$=s[o-1];break;case 446:this.$="ALL";break;case 447:this.$="SOME";break;case 448:this.$="ANY";break;case 449:this.$=new n.Update({table:s[o-4],columns:s[o-2],where:s[o]});break;case 450:this.$=new n.Update({table:s[o-2],columns:s[o]});break;case 453:this.$=new n.SetColumn({column:s[o-2],expression:s[o]});break;case 454:this.$=new n.SetColumn({variable:s[o-2],expression:s[o],method:s[o-3]});break;case 455:this.$=new n.Delete({table:s[o-2],where:s[o]});break;case 456:this.$=new n.Delete({table:s[o]});break;case 457:this.$=new n.Insert({into:s[o-2],values:s[o]});break;case 458:this.$=new n.Insert({into:s[o-1],values:s[o]});break;case 459:case 461:this.$=new n.Insert({into:s[o-2],values:s[o],orreplace:!0});break;case 460:case 462:this.$=new n.Insert({into:s[o-1],values:s[o],orreplace:!0});break;case 463:this.$=new n.Insert({into:s[o-2],default:!0});break;case 464:this.$=new n.Insert({into:s[o-5],columns:s[o-3],values:s[o]});break;case 465:this.$=new n.Insert({into:s[o-4],columns:s[o-2],values:s[o]});break;case 466:this.$=new n.Insert({into:s[o-1],select:s[o]});break;case 467:this.$=new n.Insert({into:s[o-1],select:s[o],orreplace:!0});break;case 468:this.$=new n.Insert({into:s[o-4],columns:s[o-2],select:s[o]});break;case 473:this.$=[s[o-1]];break;case 476:this.$=s[o-4],s[o-4].push(s[o-1]);break;case 477:case 478:case 480:case 488:this.$=s[o-2],s[o-2].push(s[o]);break;case 489:this.$=new n.CreateTable({table:s[o-4]}),n.extend(this.$,s[o-7]),n.extend(this.$,s[o-6]),n.extend(this.$,s[o-5]),n.extend(this.$,s[o-2]),n.extend(this.$,s[o]);break;case 490:this.$=new n.CreateTable({table:s[o]}),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1]);break;case 492:this.$={class:!0};break;case 502:this.$={temporary:!0};break;case 504:this.$={ifnotexists:!0};break;case 505:this.$={columns:s[o-2],constraints:s[o]};break;case 506:this.$={columns:s[o]};break;case 507:this.$={as:s[o]};break;case 508:case 532:this.$=[s[o]];break;case 510:case 511:case 512:case 513:case 514:s[o].constraintid=s[o-1],this.$=s[o];break;case 517:this.$={type:"CHECK",expression:s[o-1]};break;case 518:this.$={type:"PRIMARY KEY",columns:s[o-1],clustered:(s[o-3]+"").toUpperCase()};break;case 519:this.$={type:"FOREIGN KEY",columns:s[o-5],fktable:s[o-2],fkcolumns:s[o-1]};break;case 525:this.$={type:"UNIQUE",columns:s[o-1],clustered:(s[o-3]+"").toUpperCase()};break;case 534:this.$=new n.ColumnDef({columnid:s[o-2]}),n.extend(this.$,s[o-1]),n.extend(this.$,s[o]);break;case 535:this.$=new n.ColumnDef({columnid:s[o-1]}),n.extend(this.$,s[o]);break;case 536:this.$=new n.ColumnDef({columnid:s[o],dbtypeid:""});break;case 537:this.$={dbtypeid:s[o-5],dbsize:s[o-3],dbprecision:+s[o-1]};break;case 538:this.$={dbtypeid:s[o-3],dbsize:s[o-1]};break;case 539:this.$={dbtypeid:s[o]};break;case 540:this.$={dbtypeid:"ENUM",enumvalues:s[o-1]};break;case 541:this.$=s[o-1],s[o-1].dbtypeid+="["+s[o]+"]";break;case 543:case 750:this.$=+s[o];break;case 545:this.$=void 0;break;case 547:n.extend(s[o-1],s[o]),this.$=s[o-1];break;case 550:this.$={primarykey:!0};break;case 551:case 552:this.$={foreignkey:{table:s[o-1],columnid:s[o]}};break;case 553:this.$={identity:{value:s[o-3],step:s[o-1]}};break;case 554:this.$={identity:{value:1,step:1}};break;case 555:case 557:this.$={default:s[o]};break;case 556:this.$={default:s[o-1]};break;case 558:this.$={null:!0};break;case 559:this.$={notnull:!0};break;case 560:this.$={check:s[o]};break;case 561:this.$={unique:!0};break;case 562:this.$={onupdate:s[o]};break;case 563:this.$={onupdate:s[o-1]};break;case 564:this.$=new n.DropTable({tables:s[o],type:s[o-2]}),n.extend(this.$,s[o-1]);break;case 568:this.$={ifexists:!0};break;case 569:this.$=new n.AlterTable({table:s[o-3],renameto:s[o]});break;case 570:this.$=new n.AlterTable({table:s[o-3],addcolumn:s[o]});break;case 571:this.$=new n.AlterTable({table:s[o-3],modifycolumn:s[o]});break;case 572:this.$=new n.AlterTable({table:s[o-5],renamecolumn:s[o-2],to:s[o]});break;case 573:this.$=new n.AlterTable({table:s[o-3],dropcolumn:s[o]});break;case 574:this.$=new n.AlterTable({table:s[o-2],renameto:s[o]});break;case 575:this.$=new n.AttachDatabase({databaseid:s[o],engineid:s[o-2].toUpperCase()});break;case 576:this.$=new n.AttachDatabase({databaseid:s[o-3],engineid:s[o-5].toUpperCase(),args:s[o-1]});break;case 577:this.$=new n.AttachDatabase({databaseid:s[o-2],engineid:s[o-4].toUpperCase(),as:s[o]});break;case 578:this.$=new n.AttachDatabase({databaseid:s[o-5],engineid:s[o-7].toUpperCase(),as:s[o],args:s[o-3]});break;case 579:this.$=new n.DetachDatabase({databaseid:s[o]});break;case 580:this.$=new n.CreateDatabase({databaseid:s[o]}),n.extend(this.$,s[o]);break;case 581:this.$=new n.CreateDatabase({engineid:s[o-4].toUpperCase(),databaseid:s[o-1],as:s[o]}),n.extend(this.$,s[o-2]);break;case 582:this.$=new n.CreateDatabase({engineid:s[o-7].toUpperCase(),databaseid:s[o-4],args:s[o-2],as:s[o]}),n.extend(this.$,s[o-5]);break;case 583:this.$=new n.CreateDatabase({engineid:s[o-4].toUpperCase(),as:s[o],args:[s[o-1]]}),n.extend(this.$,s[o-2]);break;case 584:this.$=void 0;break;case 586:case 587:this.$=new n.UseDatabase({databaseid:s[o]});break;case 588:this.$=new n.DropDatabase({databaseid:s[o]}),n.extend(this.$,s[o-1]);break;case 589:case 590:this.$=new n.DropDatabase({databaseid:s[o],engineid:s[o-3].toUpperCase()}),n.extend(this.$,s[o-1]);break;case 591:this.$=new n.CreateIndex({indexid:s[o-5],table:s[o-3],columns:s[o-1]});break;case 592:this.$=new n.CreateIndex({indexid:s[o-5],table:s[o-3],columns:s[o-1],unique:!0});break;case 593:this.$=new n.DropIndex({indexid:s[o]});break;case 594:this.$=new n.ShowDatabases;break;case 595:this.$=new n.ShowDatabases({like:s[o]});break;case 596:this.$=new n.ShowDatabases({engineid:s[o-1].toUpperCase()});break;case 597:this.$=new n.ShowDatabases({engineid:s[o-3].toUpperCase(),like:s[o]});break;case 598:this.$=new n.ShowTables;break;case 599:this.$=new n.ShowTables({like:s[o]});break;case 600:this.$=new n.ShowTables({databaseid:s[o]});break;case 601:this.$=new n.ShowTables({like:s[o],databaseid:s[o-2]});break;case 602:this.$=new n.ShowColumns({table:s[o]});break;case 603:this.$=new n.ShowColumns({table:s[o-2],databaseid:s[o]});break;case 604:this.$=new n.ShowIndex({table:s[o]});break;case 605:this.$=new n.ShowIndex({table:s[o-2],databaseid:s[o]});break;case 606:this.$=new n.ShowCreateTable({table:s[o]});break;case 607:this.$=new n.ShowCreateTable({table:s[o-2],databaseid:s[o]});break;case 608:this.$=new n.CreateTable({table:s[o-6],view:!0,select:s[o-1],viewcolumns:s[o-4]}),n.extend(this.$,s[o-9]),n.extend(this.$,s[o-7]);break;case 609:this.$=new n.CreateTable({table:s[o-3],view:!0,select:s[o-1]}),n.extend(this.$,s[o-6]),n.extend(this.$,s[o-4]);break;case 613:this.$=new n.DropTable({tables:s[o],view:!0}),n.extend(this.$,s[o-1]);break;case 614:case 760:this.$=new n.ExpressionStatement({expression:s[o]});break;case 615:this.$=new n.Source({url:s[o].value});break;case 616:this.$=new n.Assert({value:s[o]});break;case 617:this.$=new n.Assert({value:s[o].value});break;case 618:this.$=new n.Assert({value:s[o],message:s[o-2]});break;case 620:case 631:case 633:this.$=s[o].value;break;case 621:case 629:this.$=+s[o].value;break;case 622:this.$=!!s[o].value;break;case 630:this.$=""+s[o].value;break;case 639:this.$={};break;case 642:this.$=[];break;case 643:n.extend(s[o-2],s[o]),this.$=s[o-2];break;case 645:this.$={},this.$[s[o-2].substr(1,s[o-2].length-2)]=s[o];break;case 646:case 647:this.$={},this.$[s[o-2]]=s[o];break;case 650:this.$=new n.SetVariable({variable:s[o-2].toLowerCase(),value:s[o]});break;case 651:this.$=new n.SetVariable({variable:s[o-1].toLowerCase(),value:s[o]});break;case 652:this.$=new n.SetVariable({variable:s[o-2],expression:s[o]});break;case 653:this.$=new n.SetVariable({variable:s[o-3],props:s[o-2],expression:s[o]});break;case 654:this.$=new n.SetVariable({variable:s[o-2],expression:s[o],method:s[o-3]});break;case 655:this.$=new n.SetVariable({variable:s[o-3],props:s[o-2],expression:s[o],method:s[o-4]});break;case 656:this.$="@";break;case 657:this.$="$";break;case 663:this.$=!0;break;case 664:this.$=!1;break;case 665:this.$=new n.CommitTransaction;break;case 666:this.$=new n.RollbackTransaction;break;case 667:this.$=new n.BeginTransaction;break;case 668:this.$=new n.If({expression:s[o-2],thenstat:s[o-1],elsestat:s[o]}),s[o-1].exists&&(this.$.exists=s[o-1].exists),s[o-1].queries&&(this.$.queries=s[o-1].queries);break;case 669:this.$=new n.If({expression:s[o-1],thenstat:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 670:this.$=s[o];break;case 671:this.$=new n.While({expression:s[o-1],loopstat:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 672:this.$=new n.Continue;break;case 673:this.$=new n.Break;break;case 674:this.$=new n.BeginEnd({statements:s[o-1]});break;case 675:this.$=new n.Print({exprs:s[o]});break;case 676:this.$=new n.Print({select:s[o]});break;case 677:this.$=new n.Require({paths:s[o]});break;case 678:this.$=new n.Require({plugins:s[o]});break;case 679:case 680:this.$=s[o].toUpperCase();break;case 681:this.$=new n.Echo({expr:s[o]});break;case 686:this.$=new n.Declare({declares:s[o]});break;case 689:this.$={variable:s[o-1]},n.extend(this.$,s[o]);break;case 690:this.$={variable:s[o-2]},n.extend(this.$,s[o]);break;case 691:this.$={variable:s[o-3],expression:s[o]},n.extend(this.$,s[o-2]);break;case 692:this.$={variable:s[o-4],expression:s[o]},n.extend(this.$,s[o-2]);break;case 693:this.$=new n.TruncateTable({table:s[o]});break;case 694:this.$=new n.Merge,n.extend(this.$,s[o-4]),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-2]),n.extend(this.$,{matches:s[o-1]}),n.extend(this.$,s[o]);break;case 695:case 696:this.$={into:s[o]};break;case 698:this.$={on:s[o]};break;case 703:this.$={matched:!0,action:s[o]};break;case 704:this.$={matched:!0,expr:s[o-2],action:s[o]};break;case 705:this.$={delete:!0};break;case 706:this.$={update:s[o]};break;case 707:case 708:this.$={matched:!1,bytarget:!0,action:s[o]};break;case 709:case 710:this.$={matched:!1,bytarget:!0,expr:s[o-2],action:s[o]};break;case 711:this.$={matched:!1,bysource:!0,action:s[o]};break;case 712:this.$={matched:!1,bysource:!0,expr:s[o-2],action:s[o]};break;case 713:this.$={insert:!0,values:s[o]};break;case 714:this.$={insert:!0,values:s[o],columns:s[o-3]};break;case 715:this.$={insert:!0,defaultvalues:!0};break;case 716:this.$={insert:!0,defaultvalues:!0,columns:s[o-3]};break;case 718:this.$={output:{columns:s[o]}};break;case 719:this.$={output:{columns:s[o-3],intovar:s[o],method:s[o-1]}};break;case 720:this.$={output:{columns:s[o-2],intotable:s[o]}};break;case 721:this.$={output:{columns:s[o-5],intotable:s[o-3],intocolumns:s[o-1]}};break;case 722:this.$=new n.CreateVertex({class:s[o-3],sharp:s[o-2],name:s[o-1]}),n.extend(this.$,s[o]);break;case 725:this.$={sets:s[o]};break;case 726:this.$={content:s[o]};break;case 727:this.$={select:s[o]};break;case 728:this.$=new n.CreateEdge({from:s[o-3],to:s[o-1],name:s[o-5]}),n.extend(this.$,s[o]);break;case 729:this.$=new n.CreateGraph({graph:s[o]});break;case 730:this.$=new n.CreateGraph({from:s[o]});break;case 733:this.$=s[o-2],s[o-1]&&(this.$.json=new n.Json({value:s[o-1]})),s[o]&&(this.$.as=s[o]);break;case 734:this.$={source:s[o-6],target:s[o]},s[o-3]&&(this.$.json=new n.Json({value:s[o-3]})),s[o-2]&&(this.$.as=s[o-2]),n.extend(this.$,s[o-4]);break;case 735:this.$={source:s[o-5],target:s[o]},s[o-2]&&(this.$.json=new n.Json({value:s[o-3]})),s[o-1]&&(this.$.as=s[o-2]);break;case 736:this.$={source:s[o-2],target:s[o]};break;case 740:this.$={vars:s[o],method:s[o-1]};break;case 743:case 744:var b=s[o-1];this.$={prop:s[o-3],sharp:s[o-2],name:void 0===b?void 0:b.substr(1,b.length-2),class:s[o]};break;case 745:var E=s[o-1];this.$={sharp:s[o-2],name:void 0===E?void 0:E.substr(1,E.length-2),class:s[o]};break;case 746:var g=s[o-1];this.$={name:void 0===g?void 0:g.substr(1,g.length-2),class:s[o]};break;case 747:this.$={class:s[o]};break;case 753:this.$=new n.AddRule({left:s[o-2],right:s[o]});break;case 754:this.$=new n.AddRule({right:s[o]});break;case 757:this.$=new n.Term({termid:s[o]});break;case 758:this.$=new n.Term({termid:s[o-3],args:s[o-1]});break;case 761:this.$=new n.CreateTrigger({trigger:s[o-6],when:s[o-5],action:s[o-4],table:s[o-2],statement:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 762:this.$=new n.CreateTrigger({trigger:s[o-5],when:s[o-4],action:s[o-3],table:s[o-1],funcid:s[o]});break;case 763:this.$=new n.CreateTrigger({trigger:s[o-6],when:s[o-4],action:s[o-3],table:s[o-5],statement:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 764:case 765:case 767:this.$="AFTER";break;case 766:this.$="BEFORE";break;case 768:this.$="INSTEADOF";break;case 769:this.$="INSERT";break;case 770:this.$="DELETE";break;case 771:this.$="UPDATE";break;case 772:this.$=new n.DropTrigger({trigger:s[o]});break;case 773:this.$=new n.Reindex({indexid:s[o]});break;case 1047:case 1067:case 1069:case 1071:case 1075:case 1077:case 1079:case 1081:case 1083:case 1085:this.$=[];break;case 1048:case 1062:case 1064:case 1068:case 1070:case 1072:case 1076:case 1078:case 1080:case 1082:case 1084:case 1086:s[o-1].push(s[o]);break;case 1061:case 1063:this.$=[s[o]]}},table:[e([10,602,764],t,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,2:r,4:n,5:a,14:s,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),{1:[3]},{10:[1,105],11:106,602:j,764:H},e(J,[2,8]),e(J,[2,9]),e(Y,[2,12]),e(J,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:109,2:r,4:n,5:a,15:[1,110],53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(Y,[2,14]),e(Y,[2,15]),e(Y,[2,16]),e(Y,[2,17]),e(Y,[2,18]),e(Y,[2,19]),e(Y,[2,20]),e(Y,[2,21]),e(Y,[2,22]),e(Y,[2,23]),e(Y,[2,24]),e(Y,[2,25]),e(Y,[2,26]),e(Y,[2,27]),e(Y,[2,28]),e(Y,[2,29]),e(Y,[2,30]),e(Y,[2,31]),e(Y,[2,32]),e(Y,[2,33]),e(Y,[2,34]),e(Y,[2,35]),e(Y,[2,36]),e(Y,[2,37]),e(Y,[2,38]),e(Y,[2,39]),e(Y,[2,40]),e(Y,[2,41]),e(Y,[2,42]),e(Y,[2,43]),e(Y,[2,44]),e(Y,[2,45]),e(Y,[2,46]),e(Y,[2,47]),e(Y,[2,48]),e(Y,[2,49]),e(Y,[2,50]),e(Y,[2,51]),e(Y,[2,52]),e(Y,[2,53]),e(Y,[2,54]),e(Y,[2,55]),e(Y,[2,56]),e(Y,[2,57]),e(Y,[2,58]),e(Y,[2,59]),e(Y,[2,60]),e(Y,[2,61]),e(Y,[2,62]),e(Y,[2,63]),e(Y,[2,64]),e(Y,[2,65]),e(Y,[2,66]),e(Y,[2,67]),{353:[1,111]},{2:r,3:112,4:n,5:a},{2:r,3:114,4:n,5:a,156:W,200:113,290:X,291:K,292:Q,293:z},e(Z,[2,501],{3:121,348:125,2:r,4:n,5:a,134:ee,135:te,187:[1,123],193:[1,122],268:[1,129],269:[1,130],357:[1,131],405:[1,120],472:[1,124],509:[1,128]}),{145:re,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:r,3:138,4:n,5:a,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:145,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(qe,Ge,{340:204,171:[1,205],198:Ve}),e(qe,Ge,{340:207,198:Ve}),{2:r,3:219,4:n,5:a,77:Be,132:je,143:oe,144:212,145:ue,152:le,156:W,181:pe,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:He,214:218,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe,453:208},{2:r,3:221,4:n,5:a},{353:[1,222]},e(Je,[2,1043],{80:223,106:224,107:[1,225]}),e(Ye,[2,1047],{90:226}),{2:r,3:230,4:n,5:a,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:r,3:236,4:n,5:a,73:234,75:235},e([306,602,764],t,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,9:238,2:r,4:n,5:a,14:s,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,435:[1,237],436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),{435:[1,239]},{435:[1,240]},{2:r,3:242,4:n,5:a,405:[1,241]},{2:r,3:244,4:n,5:a,199:243},e(We,[2,311]),{113:245,132:se,296:xe},{2:r,3:114,4:n,5:a,113:251,131:ae,132:[1,248],143:oe,144:246,145:Xe,152:le,156:W,181:pe,196:250,200:255,201:254,257:252,258:253,265:Ke,274:247,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,302:$e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:257,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Y,[2,672]),e(Y,[2,673]),{2:r,3:168,4:n,5:a,40:259,56:165,77:ne,79:75,89:u,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:258,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,184:99,189:d,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:266,4:n,5:a,113:263,132:se,296:xe,444:261,445:262,446:264,447:Qe},{2:r,3:267,4:n,5:a,143:ze,145:Ze,431:268},{2:r,3:168,4:n,5:a,56:165,77:ne,94:271,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{505:[1,272]},{2:r,3:100,4:n,5:a,504:274,506:273},{2:r,3:114,4:n,5:a,156:W,200:275,290:X,291:K,292:Q,293:z},{2:r,3:168,4:n,5:a,56:165,77:ne,94:276,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(et,tt,{186:280,164:[1,279],185:[1,277],187:[1,278],195:rt}),e(nt,[2,757],{77:[1,282]}),e([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],[2,152],{149:[1,283],150:[1,284],190:[1,285],191:[1,286],192:[1,287],193:[1,288],194:[1,289]}),e(at,[2,1]),e(at,[2,2]),{6:290,131:[1,439],172:[1,462],245:[1,411],285:[1,373],286:[1,407],370:[1,404],381:[1,295],402:[1,297],410:[1,549],414:[1,471],416:[1,443],417:[1,509],433:[1,442],435:[1,525],440:[1,342],460:[1,418],464:[1,448],470:[1,341],514:[1,307],515:[1,299],516:[1,399],518:[1,291],519:[1,292],520:[1,293],521:[1,294],522:[1,296],523:[1,298],524:[1,300],525:[1,301],526:[1,302],527:[1,303],528:[1,304],529:[1,305],530:[1,306],531:[1,308],532:[1,309],533:[1,310],534:[1,311],535:[1,312],536:[1,313],537:[1,314],538:[1,315],539:[1,316],540:[1,317],541:[1,318],542:[1,319],543:[1,320],544:[1,321],545:[1,322],546:[1,323],547:[1,324],548:[1,325],549:[1,326],550:[1,327],551:[1,328],552:[1,329],553:[1,330],554:[1,331],555:[1,332],556:[1,333],557:[1,334],558:[1,335],559:[1,336],560:[1,337],561:[1,338],562:[1,339],563:[1,340],564:[1,343],565:[1,344],566:[1,345],567:[1,346],568:[1,347],569:[1,348],570:[1,349],571:[1,350],572:[1,351],573:[1,352],574:[1,353],575:[1,354],576:[1,355],577:[1,356],578:[1,357],579:[1,358],580:[1,359],581:[1,360],582:[1,361],583:[1,362],584:[1,363],585:[1,364],586:[1,365],587:[1,366],588:[1,367],589:[1,368],590:[1,369],591:[1,370],592:[1,371],593:[1,372],594:[1,374],595:[1,375],596:[1,376],597:[1,377],598:[1,378],599:[1,379],600:[1,380],601:[1,381],602:[1,382],603:[1,383],604:[1,384],605:[1,385],606:[1,386],607:[1,387],608:[1,388],609:[1,389],610:[1,390],611:[1,391],612:[1,392],613:[1,393],614:[1,394],615:[1,395],616:[1,396],617:[1,397],618:[1,398],619:[1,400],620:[1,401],621:[1,402],622:[1,403],623:[1,405],624:[1,406],625:[1,408],626:[1,409],627:[1,410],628:[1,412],629:[1,413],630:[1,414],631:[1,415],632:[1,416],633:[1,417],634:[1,419],635:[1,420],636:[1,421],637:[1,422],638:[1,423],639:[1,424],640:[1,425],641:[1,426],642:[1,427],643:[1,428],644:[1,429],645:[1,430],646:[1,431],647:[1,432],648:[1,433],649:[1,434],650:[1,435],651:[1,436],652:[1,437],653:[1,438],654:[1,440],655:[1,441],656:[1,444],657:[1,445],658:[1,446],659:[1,447],660:[1,449],661:[1,450],662:[1,451],663:[1,452],664:[1,453],665:[1,454],666:[1,455],667:[1,456],668:[1,457],669:[1,458],670:[1,459],671:[1,460],672:[1,461],673:[1,463],674:[1,464],675:[1,465],676:[1,466],677:[1,467],678:[1,468],679:[1,469],680:[1,470],681:[1,472],682:[1,473],683:[1,474],684:[1,475],685:[1,476],686:[1,477],687:[1,478],688:[1,479],689:[1,480],690:[1,481],691:[1,482],692:[1,483],693:[1,484],694:[1,485],695:[1,486],696:[1,487],697:[1,488],698:[1,489],699:[1,490],700:[1,491],701:[1,492],702:[1,493],703:[1,494],704:[1,495],705:[1,496],706:[1,497],707:[1,498],708:[1,499],709:[1,500],710:[1,501],711:[1,502],712:[1,503],713:[1,504],714:[1,505],715:[1,506],716:[1,507],717:[1,508],718:[1,510],719:[1,511],720:[1,512],721:[1,513],722:[1,514],723:[1,515],724:[1,516],725:[1,517],726:[1,518],727:[1,519],728:[1,520],729:[1,521],730:[1,522],731:[1,523],732:[1,524],733:[1,526],734:[1,527],735:[1,528],736:[1,529],737:[1,530],738:[1,531],739:[1,532],740:[1,533],741:[1,534],742:[1,535],743:[1,536],744:[1,537],745:[1,538],746:[1,539],747:[1,540],748:[1,541],749:[1,542],750:[1,543],751:[1,544],752:[1,545],753:[1,546],754:[1,547],755:[1,548],756:[1,550],757:[1,551],758:[1,552],759:[1,553],760:[1,554],761:[1,555],762:[1,556],763:[1,557]},{1:[2,6]},e(J,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:558,2:r,4:n,5:a,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(st,[2,1041]),e(st,[2,1042]),e(J,[2,10]),{16:[1,559]},{2:r,3:244,4:n,5:a,199:560},{405:[1,561]},e(Y,[2,760]),{77:it},{77:[1,563]},{77:ot},{77:[1,565]},{77:[1,566]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:567,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(qe,ut,{350:568,156:ct}),{405:[1,570]},{2:r,3:571,4:n,5:a},{193:[1,572]},{2:r,3:578,4:n,5:a,132:lt,137:ht,143:ze,145:Ze,152:dt,183:[1,574],431:585,473:573,474:575,475:576,478:577,482:582,493:579,497:581},{130:[1,589],349:586,353:[1,588],410:[1,587]},{113:591,132:se,183:[2,1141],296:xe,471:590},e(ft,[2,1135],{465:592,3:593,2:r,4:n,5:a}),{2:r,3:594,4:n,5:a},{4:[1,595]},{4:[1,596]},e(Z,[2,502]),e(Y,[2,686],{74:[1,597]}),e(pt,[2,687]),{2:r,3:598,4:n,5:a},{2:r,3:244,4:n,5:a,199:599},{2:r,3:600,4:n,5:a},e(qe,bt,{398:601,156:Et}),{405:[1,603]},{2:r,3:604,4:n,5:a},e(qe,bt,{398:605,156:Et}),e(qe,bt,{398:606,156:Et}),{2:r,3:607,4:n,5:a},e(gt,[2,1129]),e(gt,[2,1130]),e(Y,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:608,114:625,327:637,2:r,4:n,5:a,53:i,72:o,89:u,99:mt,112:vt,115:St,116:Tt,123:At,124:yt,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,146:l,154:Dt,156:h,170:kt,171:Lt,179:$t,180:Mt,189:d,266:f,267:p,290:b,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(We,[2,288]),e(We,[2,289]),e(We,[2,290]),e(We,[2,291]),e(We,[2,292]),e(We,[2,293]),e(We,[2,294]),e(We,[2,295]),e(We,[2,296]),e(We,[2,297]),e(We,[2,298]),e(We,[2,299]),e(We,[2,300]),e(We,[2,301]),e(We,[2,302]),e(We,[2,303]),e(We,[2,304]),e(We,[2,305]),{2:r,3:168,4:n,5:a,26:654,27:653,36:649,40:648,56:165,77:ne,79:75,89:u,94:651,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,184:99,189:d,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,264:650,265:be,266:f,267:[1,655],270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:[1,652],291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,339:m,419:190,420:Fe,424:Pe},e(We,[2,309]),e(We,[2,310]),{77:[1,656]},e([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],tr,{77:it,116:[1,657]}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:658,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:659,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:661,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:662,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,[2,283]),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,249,265,266,267,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,300,302,303,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,415,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764,765,766],[2,356]),e(rr,[2,357]),e(rr,[2,358]),e(rr,nr),e(rr,[2,360]),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,361]),{2:r,3:664,4:n,5:a,131:[1,665],301:663},{2:r,3:666,4:n,5:a},e(rr,[2,367]),e(rr,[2,368]),{2:r,3:667,4:n,5:a,77:ar,113:669,131:ae,132:se,143:oe,152:le,181:pe,196:670,201:672,257:671,294:we,295:Ie,296:xe,302:$e,419:673,424:Pe},{77:[1,674]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:675,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,304:676,307:677,308:sr,312:Ue,317:_e,419:190,420:Fe,424:Pe},{77:[1,679]},{77:[1,680]},e(ir,[2,624]),{2:r,3:695,4:n,5:a,77:or,111:690,113:688,131:ae,132:se,143:oe,144:685,145:Xe,152:le,156:W,181:pe,196:687,200:693,201:692,257:689,258:691,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,300:[1,683],302:$e,419:190,420:Fe,421:681,422:684,423:686,424:Pe,427:682},{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:696,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:697,4:n,5:a,156:W,200:698,290:X,291:K,292:Q,293:z},{77:[2,336]},{77:[2,337]},{77:[2,338]},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{2:r,3:704,4:n,5:a,131:ur,132:cr,425:699,426:[1,700],428:701},{2:r,3:244,4:n,5:a,199:705},{290:[1,706]},e(qe,[2,472]),{2:r,3:244,4:n,5:a,199:707},{231:[1,709],454:708},{231:[2,695]},{2:r,3:219,4:n,5:a,77:Be,132:je,143:oe,144:212,145:ue,152:le,156:W,181:pe,199:213,200:215,201:214,202:217,209:710,213:He,214:218,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe},{40:711,79:75,89:u,184:99,189:d},e(lr,[2,1091],{210:712,76:[1,713]}),e(hr,[2,185],{3:714,2:r,4:n,5:a,76:[1,715],154:[1,716]}),e(hr,[2,189],{3:717,2:r,4:n,5:a,76:[1,718]}),e(hr,[2,190],{3:719,2:r,4:n,5:a,76:[1,720]}),e(hr,[2,193]),e(hr,[2,194],{3:721,2:r,4:n,5:a,76:[1,722]}),e(hr,[2,197],{3:723,2:r,4:n,5:a,76:[1,724]}),e([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],dr,{77:it,116:fr}),e([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],[2,200]),e(Y,[2,773]),{2:r,3:244,4:n,5:a,199:726},e(pr,br,{81:727,198:Er}),e(Je,[2,1044]),e(gr,[2,1057],{108:729,190:[1,730]}),e([10,78,183,306,310,602,764],br,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:r,4:n,5:a,72:mr,76:vr,77:Sr,112:Tr,115:St,116:Tt,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,198:Er,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,420:Fe,424:Pe}),{353:[1,782]},{183:[1,783]},e(Y,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},e(Y,[2,598],{112:[1,787],183:[1,788]}),{2:r,3:244,4:n,5:a,199:789},{40:790,74:[1,791],79:75,89:u,184:99,189:d},e(cn,[2,70]),{76:[1,792]},e(Y,[2,667]),{11:106,306:[1,793],602:j,764:H},e(Y,[2,665]),e(Y,[2,666]),{2:r,3:794,4:n,5:a},e(Y,[2,587]),{146:[1,795]},e([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],dr,{116:fr}),e(Y,[2,615]),e(Y,[2,616]),e(Y,[2,617]),e(Y,nr,{74:[1,796]}),{77:ar,113:669,131:ae,132:se,143:oe,152:le,181:pe,196:670,201:672,257:671,294:we,295:Ie,296:xe,302:$e,419:673,424:Pe},e(ln,[2,320]),e(ln,[2,321]),e(ln,[2,322]),e(ln,[2,323]),e(ln,[2,324]),e(ln,[2,325]),e(ln,[2,326]),e(Y,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,114:625,327:637,12:797,2:r,4:n,5:a,53:i,72:o,89:u,99:mt,112:vt,115:St,116:Tt,123:At,124:yt,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,146:l,154:Dt,156:h,170:kt,171:Lt,179:$t,180:Mt,189:d,266:f,267:p,290:b,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(Y,[2,675],{74:hn}),e(Y,[2,676]),e(dn,[2,354],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(Y,[2,677],{74:[1,800]}),e(Y,[2,678],{74:[1,801]}),e(pt,[2,683]),e(pt,[2,685]),e(pt,[2,679]),e(pt,[2,680]),{114:807,115:St,116:Tt,124:[1,802],230:pn,429:803,430:804,433:bn},{2:r,3:808,4:n,5:a},e(qe,[2,656]),e(qe,[2,657]),e(Y,[2,614],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:100,4:n,5:a,504:274,506:809},e(Y,[2,754],{74:En}),e(gn,[2,756]),e(Y,[2,759]),e(Y,[2,681],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(mn,tt,{186:811,195:rt}),e(mn,tt,{186:812,195:rt}),e(mn,tt,{186:813,195:rt}),e(vn,[2,1087],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,188:814,174:815,253:816,94:817,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),{77:[1,819],131:ae,196:818},{2:r,3:100,4:n,5:a,504:274,506:820},e(Sn,[2,153]),e(Sn,[2,154]),e(Sn,[2,155]),e(Sn,[2,156]),e(Sn,[2,157]),e(Sn,[2,158]),e(Sn,[2,159]),e(at,[2,3]),e(at,[2,774]),e(at,[2,775]),e(at,[2,776]),e(at,[2,777]),e(at,[2,778]),e(at,[2,779]),e(at,[2,780]),e(at,[2,781]),e(at,[2,782]),e(at,[2,783]),e(at,[2,784]),e(at,[2,785]),e(at,[2,786]),e(at,[2,787]),e(at,[2,788]),e(at,[2,789]),e(at,[2,790]),e(at,[2,791]),e(at,[2,792]),e(at,[2,793]),e(at,[2,794]),e(at,[2,795]),e(at,[2,796]),e(at,[2,797]),e(at,[2,798]),e(at,[2,799]),e(at,[2,800]),e(at,[2,801]),e(at,[2,802]),e(at,[2,803]),e(at,[2,804]),e(at,[2,805]),e(at,[2,806]),e(at,[2,807]),e(at,[2,808]),e(at,[2,809]),e(at,[2,810]),e(at,[2,811]),e(at,[2,812]),e(at,[2,813]),e(at,[2,814]),e(at,[2,815]),e(at,[2,816]),e(at,[2,817]),e(at,[2,818]),e(at,[2,819]),e(at,[2,820]),e(at,[2,821]),e(at,[2,822]),e(at,[2,823]),e(at,[2,824]),e(at,[2,825]),e(at,[2,826]),e(at,[2,827]),e(at,[2,828]),e(at,[2,829]),e(at,[2,830]),e(at,[2,831]),e(at,[2,832]),e(at,[2,833]),e(at,[2,834]),e(at,[2,835]),e(at,[2,836]),e(at,[2,837]),e(at,[2,838]),e(at,[2,839]),e(at,[2,840]),e(at,[2,841]),e(at,[2,842]),e(at,[2,843]),e(at,[2,844]),e(at,[2,845]),e(at,[2,846]),e(at,[2,847]),e(at,[2,848]),e(at,[2,849]),e(at,[2,850]),e(at,[2,851]),e(at,[2,852]),e(at,[2,853]),e(at,[2,854]),e(at,[2,855]),e(at,[2,856]),e(at,[2,857]),e(at,[2,858]),e(at,[2,859]),e(at,[2,860]),e(at,[2,861]),e(at,[2,862]),e(at,[2,863]),e(at,[2,864]),e(at,[2,865]),e(at,[2,866]),e(at,[2,867]),e(at,[2,868]),e(at,[2,869]),e(at,[2,870]),e(at,[2,871]),e(at,[2,872]),e(at,[2,873]),e(at,[2,874]),e(at,[2,875]),e(at,[2,876]),e(at,[2,877]),e(at,[2,878]),e(at,[2,879]),e(at,[2,880]),e(at,[2,881]),e(at,[2,882]),e(at,[2,883]),e(at,[2,884]),e(at,[2,885]),e(at,[2,886]),e(at,[2,887]),e(at,[2,888]),e(at,[2,889]),e(at,[2,890]),e(at,[2,891]),e(at,[2,892]),e(at,[2,893]),e(at,[2,894]),e(at,[2,895]),e(at,[2,896]),e(at,[2,897]),e(at,[2,898]),e(at,[2,899]),e(at,[2,900]),e(at,[2,901]),e(at,[2,902]),e(at,[2,903]),e(at,[2,904]),e(at,[2,905]),e(at,[2,906]),e(at,[2,907]),e(at,[2,908]),e(at,[2,909]),e(at,[2,910]),e(at,[2,911]),e(at,[2,912]),e(at,[2,913]),e(at,[2,914]),e(at,[2,915]),e(at,[2,916]),e(at,[2,917]),e(at,[2,918]),e(at,[2,919]),e(at,[2,920]),e(at,[2,921]),e(at,[2,922]),e(at,[2,923]),e(at,[2,924]),e(at,[2,925]),e(at,[2,926]),e(at,[2,927]),e(at,[2,928]),e(at,[2,929]),e(at,[2,930]),e(at,[2,931]),e(at,[2,932]),e(at,[2,933]),e(at,[2,934]),e(at,[2,935]),e(at,[2,936]),e(at,[2,937]),e(at,[2,938]),e(at,[2,939]),e(at,[2,940]),e(at,[2,941]),e(at,[2,942]),e(at,[2,943]),e(at,[2,944]),e(at,[2,945]),e(at,[2,946]),e(at,[2,947]),e(at,[2,948]),e(at,[2,949]),e(at,[2,950]),e(at,[2,951]),e(at,[2,952]),e(at,[2,953]),e(at,[2,954]),e(at,[2,955]),e(at,[2,956]),e(at,[2,957]),e(at,[2,958]),e(at,[2,959]),e(at,[2,960]),e(at,[2,961]),e(at,[2,962]),e(at,[2,963]),e(at,[2,964]),e(at,[2,965]),e(at,[2,966]),e(at,[2,967]),e(at,[2,968]),e(at,[2,969]),e(at,[2,970]),e(at,[2,971]),e(at,[2,972]),e(at,[2,973]),e(at,[2,974]),e(at,[2,975]),e(at,[2,976]),e(at,[2,977]),e(at,[2,978]),e(at,[2,979]),e(at,[2,980]),e(at,[2,981]),e(at,[2,982]),e(at,[2,983]),e(at,[2,984]),e(at,[2,985]),e(at,[2,986]),e(at,[2,987]),e(at,[2,988]),e(at,[2,989]),e(at,[2,990]),e(at,[2,991]),e(at,[2,992]),e(at,[2,993]),e(at,[2,994]),e(at,[2,995]),e(at,[2,996]),e(at,[2,997]),e(at,[2,998]),e(at,[2,999]),e(at,[2,1e3]),e(at,[2,1001]),e(at,[2,1002]),e(at,[2,1003]),e(at,[2,1004]),e(at,[2,1005]),e(at,[2,1006]),e(at,[2,1007]),e(at,[2,1008]),e(at,[2,1009]),e(at,[2,1010]),e(at,[2,1011]),e(at,[2,1012]),e(at,[2,1013]),e(at,[2,1014]),e(at,[2,1015]),e(at,[2,1016]),e(at,[2,1017]),e(at,[2,1018]),e(at,[2,1019]),e(at,[2,1020]),e(at,[2,1021]),e(at,[2,1022]),e(at,[2,1023]),e(at,[2,1024]),e(at,[2,1025]),e(at,[2,1026]),e(at,[2,1027]),e(at,[2,1028]),e(at,[2,1029]),e(at,[2,1030]),e(at,[2,1031]),e(at,[2,1032]),e(at,[2,1033]),e(at,[2,1034]),e(at,[2,1035]),e(at,[2,1036]),e(at,[2,1037]),e(at,[2,1038]),e(at,[2,1039]),e(at,[2,1040]),e(J,[2,7]),e(J,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:821,2:r,4:n,5:a,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:r,3:826,4:n,5:a},e(mn,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:832,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:833,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:834,4:n,5:a,132:[1,835]},{2:r,3:836,4:n,5:a,132:[1,837]},{2:r,3:838,4:n,5:a,99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{2:r,3:839,4:n,5:a},{154:[1,840]},e(Tn,ut,{350:841,156:ct}),{230:[1,842]},{2:r,3:843,4:n,5:a},e(Y,[2,729],{74:An}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:845,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(gn,[2,732]),e(yn,[2,1143],{419:190,476:846,144:847,139:Nn,141:Nn,145:Xe,420:Fe,424:Pe}),{139:[1,848],141:[1,849]},e(Cn,Rn,{490:851,493:852,77:[1,850],137:ht}),e(On,[2,1167],{494:853,132:[1,854]}),e(wn,[2,1171],{496:855,497:856,152:dt}),e(wn,[2,747]),e(In,[2,739]),{2:r,3:857,4:n,5:a,131:[1,858]},{2:r,3:859,4:n,5:a},{2:r,3:860,4:n,5:a},e(qe,ut,{350:861,156:ct}),e(qe,ut,{350:862,156:ct}),e(gt,[2,491]),e(gt,[2,492]),{183:[1,863]},{183:[2,1142]},e(xn,[2,1137],{466:864,469:865,137:[1,866]}),e(ft,[2,1136]),e(Dn,kn,{510:867,95:Ln,230:[1,868],514:$n,515:Mn,516:Un}),{76:[1,873]},{76:[1,874]},{145:re,450:875},{4:_n,7:879,76:[1,877],272:876,387:878,389:Fn},e(Y,[2,456],{128:[1,882]}),e(Y,[2,579]),{2:r,3:883,4:n,5:a},{298:[1,884]},e(Tn,bt,{398:885,156:Et}),e(Y,[2,593]),{2:r,3:244,4:n,5:a,199:887,399:886},{2:r,3:244,4:n,5:a,199:887,399:888},e(Y,[2,772]),e(J,[2,669],{438:889,310:[1,890]}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:891,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:892,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:893,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:894,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:895,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:896,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:897,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:898,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:899,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:900,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:901,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:902,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:903,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:904,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:905,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:906,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:907,4:n,5:a,77:[1,909],131:ae,156:W,196:908,200:910,290:X,291:K,292:Q,293:z},{2:r,3:911,4:n,5:a,77:[1,913],131:ae,156:W,196:912,200:914,290:X,291:K,292:Q,293:z},e(Pn,[2,440],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:915,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),e(Pn,[2,441],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:916,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),e(Pn,[2,442],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:917,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),e(Pn,[2,443],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:918,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),e(Pn,qn,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:919,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:920,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:921,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Pn,[2,445],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:922,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:923,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:924,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:929,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:930,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:695,4:n,5:a,77:[1,931],111:934,145:Gn,156:W,200:935,202:933,290:X,291:K,292:Q,293:z,329:932},{99:[1,937],297:[1,938]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:939,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:940,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:941,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{4:_n,7:879,272:942,387:878,389:Fn},e(Vn,[2,88]),e(Vn,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(qe,Ge,{340:207,77:ot,198:Ve}),{78:[2,1107]},{78:[2,1108]},{134:ee,135:te},{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:947,152:le,154:he,156:W,158:167,164:[1,949],179:de,180:fe,181:pe,185:[1,948],196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:950,4:n,5:a,149:Bn,180:[1,952]},e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,416],{114:625,327:637,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,332:Zt}),e(jn,[2,417],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,180:Mt,312:_t,316:qt}),e(jn,[2,418],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,180:Mt,312:_t,316:qt}),e(Hn,[2,419],{114:625,327:637,316:qt}),e(Hn,[2,420],{114:625,327:637,316:qt}),e(rr,[2,365]),e(rr,[2,1113]),e(rr,[2,1114]),e(rr,[2,366]),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,362]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:953,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ir,[2,620]),e(ir,[2,621]),e(ir,[2,622]),e(ir,[2,623]),e(ir,[2,625]),{40:954,79:75,89:u,184:99,189:d},{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,304:955,307:677,308:sr,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{305:956,306:Jn,307:957,308:sr,310:Yn},e(Wn,[2,372]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:959,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:960,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{4:_n,7:879,272:961,387:878,389:Fn},e(ir,[2,626]),{74:[1,963],300:[1,962]},e(ir,[2,642]),e(Xn,[2,649]),e(Kn,[2,627]),e(Kn,[2,628]),e(Kn,[2,629]),e(Kn,[2,630]),e(Kn,[2,631]),e(Kn,[2,632]),e(Kn,[2,633]),e(Kn,[2,634]),e(Kn,[2,635]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:964,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],tr,{77:it,116:Qn}),{74:hn,300:[1,966]},e(zn,[2,314],{77:it}),e(We,[2,315]),{74:[1,968],426:[1,967]},e(ir,[2,639]),e(Zn,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:u,143:oe,144:979,145:Xe,149:ea,152:le,181:pe,184:99,189:d,201:980,302:$e,341:972,342:973,343:[1,974],344:ta,419:190,420:Fe,424:Pe},e(qe,Ge,{340:981,198:Ve}),{77:ra,143:oe,144:979,145:Xe,149:ea,152:le,181:pe,201:980,302:$e,341:982,342:983,344:ta,419:190,420:Fe,424:Pe},{230:[1,986],455:985},{2:r,3:219,4:n,5:a,77:Be,132:je,143:oe,144:212,145:ue,152:le,156:W,181:pe,199:213,200:215,201:214,202:217,209:987,213:He,214:218,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe},{231:[2,696]},{78:[1,988]},e(hr,[2,1093],{211:989,3:990,2:r,4:n,5:a}),e(lr,[2,1092]),e(hr,[2,183]),{2:r,3:991,4:n,5:a},{212:[1,992]},e(hr,[2,187]),{2:r,3:993,4:n,5:a},e(hr,[2,191]),{2:r,3:994,4:n,5:a},e(hr,[2,195]),{2:r,3:995,4:n,5:a},e(hr,[2,198]),{2:r,3:996,4:n,5:a},{2:r,3:997,4:n,5:a},{148:[1,998]},e(na,[2,172],{82:999,183:[1,1e3]}),{2:r,3:219,4:n,5:a,132:[1,1005],143:oe,145:[1,1006],152:le,156:W,181:pe,199:1001,200:1002,201:1003,202:1004,290:X,291:K,292:Q,293:z,302:$e},{2:r,3:1011,4:n,5:a,109:1007,110:1008,111:1009,112:aa},e(gr,[2,1058]),e(sa,[2,1049],{91:1012,182:1013,183:[1,1014]}),e(Ye,[2,1048],{153:1015,179:ia,180:oa,181:ua}),e([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,90],{77:[1,1019]}),{119:[1,1020]},e(ca,[2,93]),{2:r,3:1021,4:n,5:a},e(ca,[2,95]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1022,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1023,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,112:Tr,114:736,115:St,116:Tt,117:1025,118:Ar,122:yr,123:Nr,124:Cr,125:1024,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},e(ca,[2,104]),e(ca,[2,105]),e(ca,[2,106]),e(ca,[2,107]),e(ca,[2,108]),e(ca,[2,109]),{2:r,3:1030,4:n,5:a},{2:r,3:1031,4:n,5:a,133:[1,1032]},e(ca,[2,113]),e(ca,[2,114]),e(ca,[2,115]),e(ca,[2,116]),e(ca,[2,117]),e(ca,[2,118]),{2:r,3:1033,4:n,5:a,77:ar,113:669,131:ae,132:se,143:oe,152:le,181:pe,196:670,201:672,257:671,294:we,295:Ie,296:xe,302:$e,419:673,424:Pe},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},e(ca,[2,123]),{77:[1,1037]},{2:r,3:1038,4:n,5:a},{77:[1,1039]},{77:[1,1040]},{77:[1,1041]},{77:[1,1042]},{77:[1,1043],164:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047]},{77:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[2,1073]},{77:[2,1074]},{2:r,3:244,4:n,5:a,199:1054},{2:r,3:244,4:n,5:a,199:1055},{113:1056,132:se,296:xe},e(Y,[2,596],{112:[1,1057]}),{2:r,3:244,4:n,5:a,199:1058},{113:1059,132:se,296:xe},{2:r,3:1060,4:n,5:a},e(Y,[2,693]),e(Y,[2,68]),{2:r,3:236,4:n,5:a,75:1061},{77:[1,1062]},e(Y,[2,674]),e(Y,[2,586]),{2:r,3:1011,4:n,5:a,111:1065,143:la,145:ha,147:1063,336:1064,337:1066},{144:1069,145:Xe,419:190,420:Fe,424:Pe},e(Y,[2,671]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1070,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Pn,qn,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:1071,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),{113:1072,132:se,296:xe},{2:r,3:266,4:n,5:a,446:1073,447:Qe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1075,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,230:pn,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe,429:1074,433:bn},e(Y,[2,651]),{114:1077,115:St,116:Tt,124:[1,1076]},e(Y,[2,663]),e(Y,[2,664]),{2:r,3:1079,4:n,5:a,77:da,131:fa,432:1078},{114:807,115:St,116:Tt,124:[1,1082],430:1083},e(Y,[2,753],{74:En}),{2:r,3:100,4:n,5:a,504:1084},{2:r,3:168,4:n,5:a,56:165,77:ne,94:817,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,174:1085,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:817,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,174:1086,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:817,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,174:1087,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(vn,[2,151]),e(vn,[2,1088],{74:pa}),e(ba,[2,273]),e(ba,[2,280],{114:625,327:637,3:1090,113:1092,2:r,4:n,5:a,76:[1,1089],99:mt,112:vt,115:St,116:Tt,123:At,124:fn,131:[1,1091],132:se,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,296:xe,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(et,[2,1089],{197:1093,765:[1,1094]}),{131:ae,196:1095},{74:En,78:[1,1096]},e(J,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},e(Y,[2,575],{76:[1,1103],77:[1,1102]}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1104,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(rr,[2,346]),e(mn,[2,1112]),e(mn,[2,1109]),e(mn,[2,1110]),{74:hn,78:[1,1105]},{74:hn,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},e(rr,[2,353]),e(Y,[2,580]),{298:[1,1111]},{2:r,3:1112,4:n,5:a,113:1113,132:se,296:xe},{2:r,3:244,4:n,5:a,199:1114},{230:[1,1115]},{2:r,3:578,4:n,5:a,132:lt,137:ht,143:ze,145:Ze,152:dt,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},e(Y,[2,730],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(gn,[2,1145],{477:1117,483:1118,76:Ea}),e(yn,[2,1144]),{2:r,3:1122,4:n,5:a,132:lt,137:ht,144:1121,145:Xe,152:dt,419:190,420:Fe,424:Pe,475:1120,493:579,497:581},{2:r,3:1122,4:n,5:a,132:lt,137:ht,143:ze,145:Ze,152:dt,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:r,3:578,4:n,5:a,132:lt,137:ht,143:ze,145:Ze,152:dt,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},e(On,[2,1163],{491:1126,132:[1,1127]}),e(Cn,[2,1162]),e(wn,[2,1169],{495:1128,497:1129,152:dt}),e(On,[2,1168]),e(wn,[2,746]),e(wn,[2,1172]),e(Cn,[2,749]),e(Cn,[2,750]),e(wn,[2,748]),e(In,[2,740]),{2:r,3:244,4:n,5:a,199:1130},{2:r,3:244,4:n,5:a,199:1131},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1132,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ga,[2,1139],{467:1133,113:1134,132:se,296:xe}),e(xn,[2,1138]),{2:r,3:1135,4:n,5:a},{335:ma,338:va,339:Sa,511:1136},{2:r,3:244,4:n,5:a,199:1140},e(Dn,[2,765]),e(Dn,[2,766]),e(Dn,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},e(pt,[2,688]),e(pt,[2,689],{124:[1,1144]}),{4:_n,7:879,272:1145,387:878,389:Fn},e([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,542],{5:[1,1146]}),e([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,539],{4:[1,1148],77:[1,1147]}),{77:[1,1149]},e(Ta,[2,4]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1150,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Y,[2,588]),e(Tn,[2,568]),{2:r,3:1151,4:n,5:a,113:1152,132:se,296:xe},e(Y,[2,564],{74:Aa}),e(pt,[2,566]),e(Y,[2,613],{74:Aa}),e(Y,[2,668]),e(Y,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1154,2:r,4:n,5:a,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(ya,[2,376],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,312:_t,316:qt,317:Gt,318:Vt,319:Bt}),e(Hn,[2,377],{114:625,327:637,316:qt}),e(ya,[2,378],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,312:_t,316:qt,317:Gt,318:Vt,319:Bt}),e(Na,[2,379],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,312:_t,314:[1,1155],316:qt,317:Gt,318:Vt,319:Bt}),e(Na,[2,381],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,312:_t,314:[1,1156],316:qt,317:Gt,318:Vt,319:Bt}),e(We,[2,383],{114:625,327:637}),e(jn,[2,384],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,180:Mt,312:_t,316:qt}),e(jn,[2,385],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,180:Mt,312:_t,316:qt}),e(Ca,[2,386],{114:625,327:637,115:St,116:Tt,123:At,136:Ct,312:_t,316:qt}),e(Ca,[2,387],{114:625,327:637,115:St,116:Tt,123:At,136:Ct,312:_t,316:qt}),e(Ca,[2,388],{114:625,327:637,115:St,116:Tt,123:At,136:Ct,312:_t,316:qt}),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,389],{114:625,327:637,115:St,116:Tt,136:Ct,312:_t,316:qt}),e(Ra,[2,390],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,179:$t,180:Mt,312:_t,316:qt,317:Gt}),e(Ra,[2,391],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,179:$t,180:Mt,312:_t,316:qt,317:Gt}),e(Ra,[2,392],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,179:$t,180:Mt,312:_t,316:qt,317:Gt}),e(Ra,[2,393],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,179:$t,180:Mt,312:_t,316:qt,317:Gt}),e(zn,[2,394],{77:it}),e(We,[2,395]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1157,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,[2,397]),e(zn,[2,398],{77:it}),e(We,[2,399]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1158,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,[2,401]),e(Oa,[2,402],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,403],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,404],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,405],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,266,267,290,306,310,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],wa,{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,407],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,408],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,409],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,410],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,411],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},e(Ia,[2,414],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,332:Zt}),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,415],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt}),{2:r,3:168,4:n,5:a,40:1160,56:165,77:ne,78:[1,1162],79:75,89:u,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1161,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,184:99,189:d,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,[2,428]),e(We,[2,430]),e(We,[2,437]),e(We,[2,438]),{2:r,3:667,4:n,5:a,77:[1,1163]},{2:r,3:695,4:n,5:a,77:[1,1164],111:934,145:Gn,156:W,200:935,202:1166,290:X,291:K,292:Q,293:z,329:1165},e(We,[2,435]),e(Ia,[2,432],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,332:Zt}),e(Ia,[2,433],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,332:Zt}),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,434],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt}),e(We,[2,436]),e(We,[2,306]),e(We,[2,307]),e(We,[2,308]),e(We,[2,421]),{74:hn,78:[1,1167]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1168,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1169,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,xa),e(Da,[2,286]),e(We,[2,282]),{78:[1,1171],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1172]},{305:1173,306:Jn,307:957,308:sr,310:Yn},{306:[1,1174]},e(Wn,[2,371]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1175,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,309:[1,1176],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{76:[1,1177],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{74:[1,1178]},e(ir,[2,640]),{2:r,3:695,4:n,5:a,77:or,111:690,113:688,131:ae,132:se,143:oe,144:685,145:Xe,152:le,156:W,181:pe,196:687,200:693,201:692,257:689,258:691,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,300:[1,1179],302:$e,419:190,420:Fe,422:1180,423:686,424:Pe},{78:[1,1181],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{2:r,3:1182,4:n,5:a,149:Bn},e(We,[2,364]),e(ir,[2,637]),{2:r,3:704,4:n,5:a,131:ur,132:cr,426:[1,1183],428:1184},{2:r,3:695,4:n,5:a,77:or,111:690,113:688,131:ae,132:se,143:oe,144:685,145:Xe,152:le,156:W,181:pe,196:687,200:693,201:692,257:689,258:691,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,302:$e,419:190,420:Fe,422:1185,423:686,424:Pe},{2:r,3:695,4:n,5:a,77:or,111:690,113:688,131:ae,132:se,143:oe,144:685,145:Xe,152:le,156:W,181:pe,196:687,200:693,201:692,257:689,258:691,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,302:$e,419:190,420:Fe,422:1186,423:686,424:Pe},{2:r,3:695,4:n,5:a,77:or,111:690,113:688,131:ae,132:se,143:oe,144:685,145:Xe,152:le,156:W,181:pe,196:687,200:693,201:692,257:689,258:691,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,302:$e,419:190,420:Fe,422:1187,423:686,424:Pe},{77:ra,143:oe,144:979,145:Xe,152:le,181:pe,201:980,302:$e,342:1188,419:190,420:Fe,424:Pe},e(ka,[2,458],{74:La}),{149:ea,341:1190,344:ta},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1194,100:1191,111:1193,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,345:1192,419:190,420:Fe,424:Pe},e(ka,[2,466]),e($a,[2,469]),e($a,[2,470]),e(Ma,[2,474]),e(Ma,[2,475]),{2:r,3:244,4:n,5:a,199:1195},{77:ra,143:oe,144:979,145:Xe,152:le,181:pe,201:980,302:$e,342:1196,419:190,420:Fe,424:Pe},e(ka,[2,462],{74:La}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1194,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,345:1192,419:190,420:Fe,424:Pe},{308:Ua,456:1197,458:1198,459:1199},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1201,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{230:[2,697]},e(hr,[2,181],{3:1202,2:r,4:n,5:a,76:[1,1203]}),e(hr,[2,182]),e(hr,[2,1094]),e(hr,[2,184]),e(hr,[2,186]),e(hr,[2,188]),e(hr,[2,192]),e(hr,[2,196]),e(hr,[2,199]),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],[2,201]),{2:r,3:1204,4:n,5:a},e(_a,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:r,3:219,4:n,5:a,77:[1,1210],132:je,143:oe,144:212,145:ue,152:le,156:W,181:pe,199:213,200:215,201:214,202:217,203:1209,209:1211,213:He,214:218,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe},e(pr,[2,164]),e(pr,[2,165]),e(pr,[2,166]),e(pr,[2,167]),e(pr,[2,168]),{2:r,3:667,4:n,5:a},e(Je,[2,83],{74:[1,1212]}),e(Fa,[2,85]),e(Fa,[2,86]),{113:1213,132:se,296:xe},e([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],tr,{116:Qn}),e(sa,[2,73]),e(sa,[2,1050]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1214,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ca,[2,126]),e(ca,[2,144]),e(ca,[2,145]),e(ca,[2,146]),{2:r,3:168,4:n,5:a,56:165,77:ne,78:[2,1065],94:260,111:149,113:153,127:1215,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1216,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{77:[1,1217]},e(ca,[2,94]),e([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,96],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,97],{114:625,327:637,99:mt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1218],112:Tr,114:736,115:St,116:Tt,117:1219,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},e(Pa,[2,1061],{153:1015,179:ia,180:oa,181:ua}),{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,112:Tr,114:736,115:St,116:Tt,117:1221,118:Ar,122:yr,123:Nr,124:Cr,126:1220,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1222,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1223,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1224,4:n,5:a},e(ca,[2,110]),e(ca,[2,111]),e(ca,[2,112]),e(ca,[2,119]),{2:r,3:1225,4:n,5:a},{2:r,3:1011,4:n,5:a,111:1065,143:la,145:ha,147:1226,336:1064,337:1066},{2:r,3:1227,4:n,5:a},{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1228,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ca,[2,125]),e(Pa,[2,1067],{155:1229}),e(Pa,[2,1069],{157:1230}),e(Pa,[2,1071],{159:1231}),e(Pa,[2,1075],{161:1232}),e(qa,Ga,{163:1233,178:1234}),{77:[1,1235]},e(Pa,[2,1077],{165:1236}),e(Pa,[2,1079],{167:1237}),e(qa,Ga,{178:1234,163:1238}),e(qa,Ga,{178:1234,163:1239}),e(qa,Ga,{178:1234,163:1240}),e(qa,Ga,{178:1234,163:1241}),{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,112:Tr,114:736,115:St,116:Tt,117:1242,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:817,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,174:1243,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Va,[2,1081],{176:1244}),e(Y,[2,606],{183:[1,1245]}),e(Y,[2,602],{183:[1,1246]}),e(Y,[2,595]),{113:1247,132:se,296:xe},e(Y,[2,604],{183:[1,1248]}),e(Y,[2,599]),e(Y,[2,600],{112:[1,1249]}),e(cn,[2,69]),{40:1250,79:75,89:u,184:99,189:d},e(Y,[2,450],{74:Ba,128:[1,1251]}),e(ja,[2,451]),{124:[1,1253]},{2:r,3:1254,4:n,5:a},e(qe,[2,1115]),e(qe,[2,1116]),e(Y,[2,618]),e(dn,[2,355],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(Oa,wa,{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(pt,[2,682]),e(pt,[2,684]),e(Y,[2,650]),e(Y,[2,652],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1255,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1079,4:n,5:a,77:da,131:fa,432:1256},e(Ha,[2,659]),e(Ha,[2,660]),e(Ha,[2,661]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1257,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1258,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{114:1077,115:St,116:Tt,124:[1,1259]},e(gn,[2,755]),e(vn,[2,148],{74:pa}),e(vn,[2,149],{74:pa}),e(vn,[2,150],{74:pa}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:817,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,253:1260,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1261,4:n,5:a,113:1263,131:[1,1262],132:se,296:xe},e(ba,[2,275]),e(ba,[2,277]),e(ba,[2,279]),e(et,[2,160]),e(et,[2,1090]),{78:[1,1264]},e(nt,[2,758]),{2:r,3:1265,4:n,5:a},{2:r,3:1266,4:n,5:a},{2:r,3:1268,4:n,5:a,384:1267},{2:r,3:1268,4:n,5:a,384:1269},{2:r,3:1270,4:n,5:a},{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1271,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1272,4:n,5:a},{74:hn,78:[1,1273]},e(rr,[2,347]),e(rr,[2,348]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1274,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1275,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1276,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1277,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Tn,[2,504]),e(Y,Ja,{407:1278,76:Ya,77:[1,1279]}),e(Y,Ja,{407:1281,76:Ya}),{77:[1,1282]},{2:r,3:244,4:n,5:a,199:1283},e(gn,[2,731]),e(gn,[2,733]),e(gn,[2,1146]),{143:ze,145:Ze,431:1284},e(Wa,[2,1147],{419:190,479:1285,144:1286,145:Xe,420:Fe,424:Pe}),{76:Ea,139:[2,1151],481:1287,483:1288},e([10,74,76,78,132,139,145,152,306,310,420,424,602,764],Rn,{490:851,493:852,137:ht}),e(gn,[2,736]),e(gn,Nn),{74:An,78:[1,1289]},e(wn,[2,1165],{492:1290,497:1291,152:dt}),e(On,[2,1164]),e(wn,[2,745]),e(wn,[2,1170]),e(Y,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,148:[1,1295],154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(ka,Xa,{79:75,184:99,468:1296,40:1299,89:u,146:Ka,189:d,470:Qa}),e(ga,[2,1140]),e(xn,[2,723]),{230:[1,1300]},e(za,[2,769]),e(za,[2,770]),e(za,[2,771]),e(Dn,kn,{510:1301,95:Ln,514:$n,515:Mn,516:Un}),e(Dn,[2,768]),e(Y,[2,312]),e(Y,[2,313]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1302,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(pt,[2,690],{124:[1,1303]}),e(Ta,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},e(Ta,[2,5]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1194,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,345:1307,419:190,420:Fe,424:Pe},e(Y,[2,455],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(Y,[2,589]),e(Y,[2,590]),{2:r,3:244,4:n,5:a,199:1308},e(Y,[2,670]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1309,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1310,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{78:[1,1311],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1312],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{2:r,3:168,4:n,5:a,40:1313,56:165,77:ne,79:75,89:u,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1314,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,184:99,189:d,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{78:[1,1315]},{74:hn,78:[1,1316]},e(We,[2,426]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1317,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,40:1318,56:165,77:ne,78:[1,1320],79:75,89:u,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1319,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,184:99,189:d,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,[2,429]),e(We,[2,431]),e(We,Za,{275:1321,276:es}),{78:[1,1323],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1324],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{2:r,3:1325,4:n,5:a,180:[1,1326]},e(ir,[2,619]),e(We,[2,363]),{306:[1,1327]},e(We,[2,370]),{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,306:[2,374],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1328,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{4:_n,7:879,272:1329,387:878,389:Fn},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1330,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ir,[2,641]),e(Xn,[2,648]),e(Kn,[2,636]),e(Da,xa),e(ir,[2,638]),e(Zn,[2,643]),e(Zn,[2,645]),e(Zn,[2,646]),e(Zn,[2,647]),e(ka,[2,457],{74:La}),{77:[1,1332],143:oe,144:1333,145:Xe,152:le,181:pe,201:1334,302:$e,419:190,420:Fe,424:Pe},e(ka,[2,463]),{74:ts,78:[1,1335]},{74:rs,78:[1,1337]},e([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,311,312,313,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333],ns),e(as,[2,479],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{40:1341,77:ra,79:75,89:u,143:oe,144:979,145:Xe,149:ea,152:le,181:pe,184:99,189:d,201:980,302:$e,341:1339,342:1340,344:ta,419:190,420:Fe,424:Pe},e(ka,[2,461],{74:La}),e(Y,[2,717],{457:1342,458:1343,459:1344,308:Ua,464:[1,1345]}),e(ss,[2,701]),e(ss,[2,702]),{154:[1,1347],460:[1,1346]},{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,308:[2,698],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(hr,[2,179]),{2:r,3:1348,4:n,5:a},e(Y,[2,574]),e(is,[2,238],{84:1349,128:[1,1350]}),e(_a,[2,1046]),{77:[1,1351]},{77:[1,1352]},e(na,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:os,206:us,208:cs,222:ls,223:hs,224:ds,225:fs,226:ps,227:bs,228:Es,229:gs}),{2:r,3:219,4:n,5:a,40:711,77:Be,79:75,89:u,132:je,143:oe,144:212,145:ue,152:le,156:W,181:pe,184:99,189:d,199:213,200:215,201:214,202:217,203:1369,209:1211,213:He,214:218,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe},e(ms,[2,177]),{2:r,3:1011,4:n,5:a,110:1370,111:1009,112:aa},e(Fa,[2,87]),e(sa,[2,147],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{78:[1,1371]},{74:hn,78:[2,1066]},{2:r,3:168,4:n,5:a,56:165,77:ne,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,241:1374,242:[1,1375],254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ca,[2,98]),e(Pa,[2,1062],{153:1015,179:ia,180:oa,181:ua}),{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1377],112:Tr,114:736,115:St,116:Tt,117:1378,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},e(Pa,[2,1063],{153:1015,179:ia,180:oa,181:ua}),{78:[1,1379],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1380],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1381]},e(ca,[2,120]),{74:Ba,78:[1,1382]},e(ca,[2,122]),{74:hn,78:[1,1383]},{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1384],112:Tr,114:736,115:St,116:Tt,117:1385,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1386],112:Tr,114:736,115:St,116:Tt,117:1387,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1388],112:Tr,114:736,115:St,116:Tt,117:1389,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1390],112:Tr,114:736,115:St,116:Tt,117:1391,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{74:vs,78:[1,1392]},e(as,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:r,4:n,5:a,72:mr,76:vr,77:Sr,112:Tr,115:St,116:Tt,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,420:Fe,424:Pe}),e(qa,Ga,{178:1234,163:1395}),{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1396],112:Tr,114:736,115:St,116:Tt,117:1397,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1398],112:Tr,114:736,115:St,116:Tt,117:1399,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{74:vs,78:[1,1400]},{74:vs,78:[1,1401]},{74:vs,78:[1,1402]},{74:vs,78:[1,1403]},{78:[1,1404],153:1015,179:ia,180:oa,181:ua},{74:pa,78:[1,1405]},{2:r,3:733,4:n,5:a,72:mr,74:[1,1406],76:vr,77:Sr,112:Tr,114:736,115:St,116:Tt,117:1407,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:1408,4:n,5:a},{2:r,3:1409,4:n,5:a},e(Y,[2,597]),{2:r,3:1410,4:n,5:a},{113:1411,132:se,296:xe},{78:[1,1412]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1413,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1011,4:n,5:a,111:1065,143:la,145:ha,336:1414,337:1066},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1415,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{124:[1,1416]},e(Y,[2,653],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(Ha,[2,658]),{78:[1,1417],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(Y,[2,654],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1418,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ba,[2,272]),e(ba,[2,274]),e(ba,[2,276]),e(ba,[2,278]),e(et,[2,161]),e(Y,[2,569]),{148:[1,1419]},e(Y,[2,570]),e(gn,[2,536],{387:878,7:879,272:1420,4:_n,386:[1,1421],389:Fn}),e(Y,[2,571]),e(Y,[2,573]),{74:hn,78:[1,1422]},e(Y,[2,577]),e(rr,[2,345]),{74:[1,1423],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{74:[1,1424],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{74:[1,1425],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{74:[1,1426],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(Y,[2,581]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1427,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1428,4:n,5:a},e(Y,[2,583]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1376,111:149,113:153,120:1429,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{77:[1,1430]},{2:r,3:1431,4:n,5:a},{76:Ea,139:[2,1149],480:1432,483:1433},e(Wa,[2,1148]),{139:[1,1434]},{139:[2,1152]},e(gn,[2,737]),e(wn,[2,744]),e(wn,[2,1166]),{2:r,3:1268,4:n,5:a,76:[1,1437],351:1435,358:1436,384:1438},{2:r,3:1011,4:n,5:a,100:1439,111:1440},{40:1441,79:75,89:u,184:99,189:d},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1442,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ka,[2,722]),{2:r,3:1011,4:n,5:a,111:1065,143:la,145:ha,147:1443,336:1064,337:1066},{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1444,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ka,[2,727]),{2:r,3:244,4:n,5:a,199:1445},{335:ma,338:va,339:Sa,511:1446},e(pt,[2,691],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1447,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{74:[1,1448],78:[1,1449]},e(as,[2,543]),e(as,[2,544]),{74:rs,78:[1,1450]},e(pt,[2,565]),e(ya,[2,380],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,312:_t,316:qt,317:Gt,318:Vt,319:Bt}),e(ya,[2,382],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,312:_t,316:qt,317:Gt,318:Vt,319:Bt}),e(We,[2,396]),e(We,[2,400]),{78:[1,1451]},{74:hn,78:[1,1452]},e(We,[2,422]),e(We,[2,424]),{78:[1,1453],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1454]},{74:hn,78:[1,1455]},e(We,[2,427]),e(We,[2,327]),{77:[1,1456]},e(We,Za,{275:1457,276:es}),e(We,Za,{275:1458,276:es}),e(Da,[2,284]),e(We,[2,281]),e(We,[2,369]),e(Wn,[2,373],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{2:r,3:1325,4:n,5:a},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1194,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,345:1463,419:190,420:Fe,424:Pe},e(Ma,[2,477]),e(Ma,[2,478]),{40:1466,77:ra,79:75,89:u,143:oe,144:979,145:Xe,149:ea,152:le,181:pe,184:99,189:d,201:980,302:$e,341:1464,342:1465,344:ta,419:190,420:Fe,424:Pe},{2:r,3:1011,4:n,5:a,111:1467},e(Ma,[2,473]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1468,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{77:ra,143:oe,144:979,145:Xe,152:le,181:pe,201:980,302:$e,342:1469,419:190,420:Fe,424:Pe},e(ka,[2,460],{74:La}),e(ka,[2,467]),e(Y,[2,694]),e(ss,[2,699]),e(ss,[2,700]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:817,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,174:1470,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{170:[1,1472],309:[1,1471]},{460:[1,1473]},e(hr,[2,180]),e(Ss,[2,240],{85:1474,232:[1,1475]}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1476,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1477,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1478,4:n,5:a},e(na,[2,170],{216:1357,221:1360,215:1479,205:1480,206:us,208:cs,222:ls,223:hs,224:ds,225:fs,226:ps,227:bs,228:Es,229:gs}),{2:r,3:219,4:n,5:a,77:Be,132:je,143:oe,144:212,145:ue,152:le,156:W,181:pe,199:213,200:215,201:214,202:217,209:1481,213:He,214:218,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe},e(Ts,[2,205]),e(Ts,[2,206]),{2:r,3:219,4:n,5:a,77:[1,1486],143:oe,144:1484,145:ue,152:le,156:W,181:pe,199:1483,200:1487,201:1485,202:1488,217:1482,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe},{207:[1,1489],223:As},{207:[1,1491],223:ys},e(Ns,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:hs,224:ds,225:fs,226:ps,227:bs,228:Es,229:gs},e(Ns,[2,224]),{223:[1,1496]},{208:[1,1498],223:[1,1497]},{208:[1,1500],223:[1,1499]},{208:[1,1501]},{223:[1,1502]},{223:[1,1503]},{74:os,204:1504,205:1356,206:us,208:cs,215:1355,216:1357,221:1360,222:ls,223:hs,224:ds,225:fs,226:ps,227:bs,228:Es,229:gs},e(Fa,[2,84]),e(ca,[2,100]),{74:Cs,78:[1,1505]},{78:[1,1507]},e(Rs,[2,261]),{78:[2,1060]},e(Rs,[2,263],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,242:[1,1508],243:[1,1509],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(ca,[2,99]),e(Pa,[2,1064],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,101]),e(ca,[2,102]),e(ca,[2,103]),e(ca,[2,121]),e(ca,[2,124]),e(ca,[2,127]),e(Pa,[2,1068],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,128]),e(Pa,[2,1070],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,129]),e(Pa,[2,1072],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,130]),e(Pa,[2,1076],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,131]),e(qa,[2,1083],{177:1510}),e(qa,[2,1086],{153:1015,179:ia,180:oa,181:ua}),{74:vs,78:[1,1511]},e(ca,[2,133]),e(Pa,[2,1078],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,134]),e(Pa,[2,1080],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,135]),e(ca,[2,136]),e(ca,[2,137]),e(ca,[2,138]),e(ca,[2,139]),e(ca,[2,140]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1512,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Va,[2,1082],{153:1015,179:ia,180:oa,181:ua}),e(Y,[2,607]),e(Y,[2,603]),e(Y,[2,605]),e(Y,[2,601]),e(cn,[2,71]),e(Y,[2,449],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(ja,[2,452]),e(ja,[2,453],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1513,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Ha,[2,662]),e(Y,[2,655],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:1514,4:n,5:a},e(gn,[2,545],{385:1515,391:1516,392:1517,366:1525,154:Os,187:ws,230:Is,297:xs,343:Ds,356:ks,368:Ls,369:$s,373:Ms,374:Us}),e(gn,[2,535]),e(Y,[2,576],{76:[1,1529]}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1530,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1531,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1532,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1533,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{74:hn,78:[1,1534]},e(Y,[2,585]),{74:Cs,78:[1,1535]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1376,111:149,113:153,120:1536,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:r,3:1122,4:n,5:a,132:lt,137:ht,143:ze,145:Ze,152:dt,431:585,475:1124,478:1538,482:582,493:579,497:581},{78:[1,1539]},{74:[1,1540],78:[2,506]},{40:1541,79:75,89:u,184:99,189:d},e(as,[2,532]),{74:ts,78:[1,1542]},e(ms,ns),e(Y,[2,1133],{412:1543,413:1544,72:_s}),e(ka,Xa,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:u,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,146:Ka,154:Dt,170:kt,171:Lt,179:$t,180:Mt,189:d,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er,470:Qa}),e(ka,[2,725],{74:Ba}),e(ka,[2,726],{74:hn}),e([10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],[2,1181],{512:1547,3:1548,2:r,4:n,5:a,76:[1,1549]}),e(Fs,[2,1183],{513:1550,76:[1,1551]}),e(pt,[2,692],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{131:[1,1552]},e(Ta,[2,538]),e(Ta,[2,540]),e(We,[2,412]),e(We,[2,413]),e(We,[2,439]),e(We,[2,423]),e(We,[2,425]),{118:Ps,277:1553,278:1554,279:[1,1555]},e(We,[2,328]),e(We,[2,329]),e(We,[2,316]),{131:[1,1557]},e(We,[2,318]),{131:[1,1558]},{74:rs,78:[1,1559]},{77:ra,143:oe,144:979,145:Xe,152:le,181:pe,201:980,302:$e,342:1560,419:190,420:Fe,424:Pe},e(ka,[2,465],{74:La}),e(ka,[2,468]),e(ms,[2,488]),e(as,[2,480],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(ka,[2,459],{74:La}),e(Y,[2,718],{74:pa,198:[1,1561]}),{335:qs,338:Gs,461:1562},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1565,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{119:[1,1567],170:[1,1568],309:[1,1566]},e(Vs,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},e(is,[2,239],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{95:[1,1572],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{95:[1,1573]},e(Ts,[2,203]),e(Ts,[2,204]),e(ms,[2,178]),e(Ts,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),e(Bs,[2,208],{3:1577,2:r,4:n,5:a,76:[1,1578]}),e(js,[2,1095],{219:1579,76:[1,1580]}),{2:r,3:1581,4:n,5:a,76:[1,1582]},{40:1583,79:75,89:u,184:99,189:d},e(Bs,[2,216],{3:1584,2:r,4:n,5:a,76:[1,1585]}),e(Bs,[2,219],{3:1586,2:r,4:n,5:a,76:[1,1587]}),{77:[1,1588]},e(Ns,[2,234]),{77:[1,1589]},e(Ns,[2,230]),e(Ns,[2,223]),{223:ys},{223:As},e(Ns,[2,225]),e(Ns,[2,226]),{223:[1,1590]},e(Ns,[2,228]),{223:[1,1591]},{223:[1,1592]},e(Ns,[2,232]),e(Ns,[2,233]),{78:[1,1593],205:1480,206:us,208:cs,215:1479,216:1357,221:1360,222:ls,223:hs,224:ds,225:fs,226:ps,227:bs,228:Es,229:gs},e(ca,[2,91]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1376,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,241:1594,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ca,[2,92]),e(Rs,[2,264]),{244:[1,1595]},e(as,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:r,4:n,5:a,72:mr,76:vr,77:Sr,112:Tr,115:St,116:Tt,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,420:Fe,424:Pe}),e(ca,[2,132]),{74:hn,78:[1,1597]},e(ja,[2,454],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(Y,[2,572]),e(gn,[2,534]),e(gn,[2,546],{366:1525,392:1598,154:Os,187:ws,230:Is,297:xs,343:Ds,356:ks,368:Ls,369:$s,373:Ms,374:Us}),e(ln,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:r,3:244,4:n,5:a,199:1601},e(ln,[2,554],{77:[1,1602]}),{2:r,3:114,4:n,5:a,77:[1,1604],113:251,131:ae,132:se,143:oe,152:le,156:W,181:pe,196:250,200:1605,201:254,257:252,258:253,265:Ke,274:1603,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,302:$e},e(ln,[2,558]),{297:[1,1606]},e(ln,[2,560]),e(ln,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:r,3:1609,4:n,5:a},{78:[1,1610],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1611],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1612],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1613],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(Y,Ja,{407:1614,76:Ya}),e(Y,[2,591]),{74:Cs,78:[1,1615]},{2:r,3:1122,4:n,5:a,132:lt,137:ht,143:ze,145:Ze,152:dt,431:585,475:1124,478:1616,482:582,493:579,497:581},e(gn,[2,735]),e(Y,[2,493],{352:1617,354:1618,355:1619,4:Hs,243:Js,343:Ys,356:Ws}),e(Xs,Ks,{3:1268,359:1624,384:1625,360:1626,361:1627,2:r,4:n,5:a,367:Qs}),{78:[2,507]},{76:[1,1629]},e(Y,[2,609]),e(Y,[2,1134]),{368:[1,1631],414:[1,1630]},e(ka,[2,728]),e(Y,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1632,2:r,4:n,5:a,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(Y,[2,762]),e(Fs,[2,1182]),e(Y,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1633,2:r,4:n,5:a,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(Fs,[2,1184]),{78:[1,1634]},{78:[1,1635],118:Ps,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},e(Ma,[2,476]),e(ka,[2,464],{74:La}),{2:r,3:244,4:n,5:a,143:ze,145:Ze,199:1643,431:1642},e(ss,[2,703]),e(ss,[2,705]),{146:[1,1644]},{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,309:[1,1645],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{339:zs,462:1646},{417:[1,1649],463:[1,1648]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1650,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Zs,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,233:1655,235:1656,236:ei,237:ti,238:ri,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1661,4:n,5:a},{2:r,3:1662,4:n,5:a},e(Ts,[2,207]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1663,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1011,4:n,5:a,100:1664,111:1440},e(Bs,[2,209]),{2:r,3:1665,4:n,5:a},e(Bs,[2,1097],{220:1666,3:1667,2:r,4:n,5:a}),e(js,[2,1096]),e(Bs,[2,212]),{2:r,3:1668,4:n,5:a},{78:[1,1669]},e(Bs,[2,217]),{2:r,3:1670,4:n,5:a},e(Bs,[2,220]),{2:r,3:1671,4:n,5:a},{40:1672,79:75,89:u,184:99,189:d},{40:1673,79:75,89:u,184:99,189:d},e(Ns,[2,227]),e(Ns,[2,229]),e(Ns,[2,231]),e(na,[2,171]),e(Rs,[2,262]),e(Rs,[2,265],{242:[1,1674]}),e(qa,[2,1084],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,141]),e(ln,[2,547]),e(ln,[2,550]),{374:[1,1675]},e(ln,[2,1127],{395:1676,393:1677,77:ni}),{131:ae,196:1679},e(ln,[2,555]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1680,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ln,[2,557]),e(ln,[2,559]),{2:r,3:114,4:n,5:a,77:[1,1682],113:251,131:ae,132:se,143:oe,152:le,156:W,181:pe,196:250,200:255,201:254,257:252,258:253,265:Ke,274:1681,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,302:$e},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1683,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Y,[2,578]),e(rr,[2,349]),e(rr,[2,350]),e(rr,[2,351]),e(rr,[2,352]),e(Y,[2,582]),e(Y,[2,592]),e(gn,[2,734]),e(Y,[2,489]),e(Y,[2,494],{355:1684,4:Hs,243:Js,343:Ys,356:Ws}),e(ai,[2,496]),e(ai,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},e(as,[2,533]),e(as,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:Ls,369:[1,1694],370:[1,1698],373:[1,1695]},{2:r,3:1699,4:n,5:a},{40:1700,79:75,89:u,184:99,189:d},{415:[1,1701]},{416:[1,1702]},e(Y,[2,761]),e(Y,[2,763]),e(Ta,[2,537]),e(We,[2,331]),{78:[1,1703]},e(We,[2,332]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,233:1704,235:1656,236:ei,237:ti,238:ri,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1376,111:149,113:153,120:1705,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,[2,317]),e(We,[2,319]),{2:r,3:1706,4:n,5:a},e(Y,[2,720],{77:[1,1707]}),{2:r,3:1011,4:n,5:a,111:1065,143:la,145:ha,147:1708,336:1064,337:1066},{335:qs,338:Gs,461:1709},e(ss,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,309:[1,1717],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(sa,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:ae,196:1722},{131:ae,196:1723},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1376,111:149,113:153,120:1724,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Ss,[2,248],{234:1725,74:si,239:[1,1727]}),e(ii,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},e(ii,[2,247],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},e(Ts,[2,235],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(Ts,[2,236],{74:ts}),e(Bs,[2,210]),e(Bs,[2,211]),e(Bs,[2,1098]),e(Bs,[2,213]),{2:r,3:1735,4:n,5:a,76:[1,1736]},e(Bs,[2,218]),e(Bs,[2,221]),{78:[1,1737]},{78:[1,1738]},e(Rs,[2,266]),{2:r,3:244,4:n,5:a,199:1739},e(ln,[2,552]),e(ln,[2,1128]),{2:r,3:1740,4:n,5:a},{74:[1,1741]},{78:[1,1742],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(ln,[2,562]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1743,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{78:[1,1744],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(ai,[2,495]),{2:r,3:1745,4:n,5:a},{131:ae,196:1746},{2:r,3:1747,4:n,5:a},e(Xs,Ks,{361:1627,360:1748,367:Qs}),e(gn,[2,510]),e(gn,[2,511]),e(gn,[2,512]),e(gn,[2,513]),e(gn,[2,514]),{370:[1,1749]},{370:[1,1750]},e(oi,[2,1121],{382:1751,370:[1,1752]}),{2:r,3:1753,4:n,5:a},{2:r,3:1754,4:n,5:a},e(Xs,[2,516]),e(Y,[2,1131],{411:1755,413:1756,72:_s}),e(Y,[2,610]),e(Y,[2,611],{367:[1,1757]}),e(We,[2,333]),e([78,118],[2,334],{74:si}),{74:Cs,78:[2,335]},e(Y,[2,719]),{2:r,3:1011,4:n,5:a,100:1758,111:1440},e(ss,[2,706],{74:Ba}),e(ss,[2,704]),{77:ra,143:oe,144:979,145:Xe,152:le,181:pe,201:980,302:$e,342:1759,419:190,420:Fe,424:Pe},{2:r,3:1011,4:n,5:a,100:1760,111:1440},{344:[1,1761]},{339:zs,462:1762},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1763,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{339:zs,462:1764},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1765,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{339:zs,462:1766},e(sa,[2,72]),{40:1767,79:75,89:u,164:[1,1768],184:99,189:d,240:[1,1769]},{40:1770,79:75,89:u,184:99,189:d,240:[1,1771]},{40:1772,79:75,89:u,184:99,189:d,240:[1,1773]},e(Zs,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},e(Vs,[2,260],{74:Cs}),e(Ss,[2,241]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,235:1778,236:ei,237:ti,238:ri,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1779,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{77:[1,1780]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,233:1781,235:1656,236:ei,237:ti,238:ri,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,233:1782,235:1656,236:ei,237:ti,238:ri,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},e(Bs,[2,214]),{2:r,3:1786,4:n,5:a},{2:r,3:1787,4:n,5:a,76:[1,1788]},{2:r,3:1789,4:n,5:a,76:[1,1790]},e(ln,[2,1125],{394:1791,393:1792,77:ni}),{78:[1,1793]},{131:ae,196:1794},e(ln,[2,556]),{78:[1,1795],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(ln,[2,517]),e(ai,[2,498]),e(ai,[2,499]),e(ai,[2,500]),e(as,[2,509]),{2:r,3:1797,4:n,5:a,77:[2,1117],371:1796},{77:[1,1798]},{2:r,3:1800,4:n,5:a,77:[2,1123],383:1799},e(oi,[2,1122]),{77:[1,1801]},{77:[1,1802]},e(Y,[2,608]),e(Y,[2,1132]),e(Xs,Ks,{361:1627,360:1803,367:Qs}),{74:ts,78:[1,1804]},e(ss,[2,713],{74:La}),{74:ts,78:[1,1805]},e(ss,[2,715]),e(ss,[2,708]),{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,309:[1,1806],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(ss,[2,711]),{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,309:[1,1807],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(ss,[2,709]),e(sa,[2,251]),{40:1808,79:75,89:u,184:99,189:d,240:[1,1809]},{40:1810,79:75,89:u,184:99,189:d},e(sa,[2,253]),{40:1811,79:75,89:u,184:99,189:d},e(sa,[2,254]),{40:1812,79:75,89:u,184:99,189:d},e(Zs,[2,268]),{131:ae,196:1813},{249:[1,1814]},{249:[2,1100]},e(ii,[2,243]),e(Ss,[2,249],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,233:1815,235:1656,236:ei,237:ti,238:ri,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{74:si,78:[1,1816]},{74:si,78:[1,1817]},e(_a,[2,1053],{97:1818,104:1819,3:1821,2:r,4:n,5:a,76:ui}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1824,103:1822,105:1823,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1011,4:n,5:a,100:1825,111:1440},e(Bs,[2,215]),e(Ts,[2,173]),{2:r,3:1826,4:n,5:a},e(Ts,[2,175]),{2:r,3:1827,4:n,5:a},e(ln,[2,551]),e(ln,[2,1126]),e(ln,[2,549]),{78:[1,1828]},e(ln,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:r,3:1831,4:n,5:a,132:ci,372:1830},{77:[1,1833]},{77:[2,1124]},{2:r,3:1011,4:n,5:a,100:1834,111:1440},{2:r,3:1011,4:n,5:a,100:1835,111:1440},e(Y,[2,612]),e(Y,[2,721]),{343:[1,1837],344:[1,1836]},{339:zs,462:1838},{335:qs,338:Gs,461:1839},e(sa,[2,252]),{40:1840,79:75,89:u,184:99,189:d},e(sa,[2,255]),e(sa,[2,257]),e(sa,[2,258]),e(Zs,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:si,78:[1,1843]},e(ii,[2,245]),e(ii,[2,246]),e(_a,[2,74]),e(_a,[2,1054]),{2:r,3:1844,4:n,5:a},e(_a,[2,78]),{74:[1,1846],78:[1,1845]},e(as,[2,80]),e(as,[2,81],{114:625,327:637,76:[1,1847],99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{74:ts,78:[1,1848]},e(Ts,[2,174]),e(Ts,[2,176]),e(ln,[2,553]),{2:r,3:1831,4:n,5:a,132:ci,372:1849},{74:li,78:[1,1850]},e(as,[2,528]),e(as,[2,529]),{2:r,3:1011,4:n,5:a,100:1852,111:1440},{74:ts,78:[1,1853]},{74:ts,78:[1,1854]},{77:ra,143:oe,144:979,145:Xe,152:le,181:pe,201:980,302:$e,342:1855,419:190,420:Fe,424:Pe},{344:[1,1856]},e(ss,[2,710]),e(ss,[2,712]),e(sa,[2,256]),{131:ae,196:1857},{131:[2,1102]},e(ii,[2,244]),e(_a,[2,77]),{78:[2,76]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1824,105:1858,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1859,4:n,5:a},{78:[1,1860]},{74:li,78:[1,1861]},{374:[1,1862]},{2:r,3:1863,4:n,5:a,132:[1,1864]},{74:ts,78:[1,1865]},e(gn,[2,526]),e(gn,[2,527]),e(ss,[2,714],{74:La}),e(ss,[2,716]),e(hi,[2,1103],{251:1866,766:[1,1867]}),e(as,[2,79]),e(as,[2,82]),e(_a,[2,1055],{3:1821,101:1868,104:1869,2:r,4:n,5:a,76:ui}),e(gn,[2,518]),{2:r,3:244,4:n,5:a,199:1870},e(as,[2,530]),e(as,[2,531]),e(gn,[2,525]),e(Zs,[2,1105],{252:1871,415:[1,1872]}),e(hi,[2,1104]),e(_a,[2,75]),e(_a,[2,1056]),e(di,[2,1119],{375:1873,377:1874,77:[1,1875]}),e(Zs,[2,269]),e(Zs,[2,1106]),e(gn,[2,521],{376:1876,378:1877,230:[1,1878]}),e(di,[2,1120]),{2:r,3:1831,4:n,5:a,132:ci,372:1879},e(gn,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:li,78:[1,1883]},e(gn,[2,522]),{335:[1,1884]},{380:[1,1885]},e(di,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},e(gn,[2,524])],defaultActions:{105:[2,6],194:[2,336],195:[2,337],196:[2,338],197:[2,339],198:[2,340],199:[2,341],200:[2,342],201:[2,343],202:[2,344],209:[2,695],591:[2,1142],653:[2,1107],654:[2,1108],710:[2,696],780:[2,1073],781:[2,1074],926:[2,446],927:[2,447],928:[2,448],987:[2,697],1288:[2,1152],1375:[2,1060],1433:[2,1150],1541:[2,507],1732:[2,1052],1777:[2,1100],1797:[2,1118],1800:[2,1124],1842:[2,1102],1845:[2,76],1887:[2,523]},parseError:function(e,t){if(!t.recoverable){var r=new Error(e);throw r.hash=t,r}this.trace(e)},parse:function(e){var t=this,n=[0],r=[null],a=[],s=this.table,i="",o=0,u=0,c=0,l=a.slice.call(arguments,1),h=Object.create(this.lexer),d={yy:{}};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(d.yy[f]=this.yy[f]);h.setInput(e,d.yy),d.yy.lexer=h,d.yy.parser=this,void 0===h.yylloc&&(h.yylloc={});var p=h.yylloc;a.push(p);var b=h.options&&h.options.ranges;"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var E,g,m,v,S,T,A,y,N,C,R=function(){var e;return"number"!=typeof(e=h.lex()||1)&&(e=t.symbols_[e]||e),e},O={};;){if(m=n[n.length-1],void 0===(v=this.defaultActions[m]?this.defaultActions[m]:(null==E&&(E=R()),s[m]&&s[m][E]))||!v.length||!v[0]){var w,I="",x=function(e){for(var t=n.length-1,r=0;;){if(2..toString()in s[e])return r;if(0===e||t<2)return!1;e=n[t-=2],++r}};if(c)1!==g&&(w=x(m));else{for(T in w=x(m),N=[],s[m])this.terminals_[T]&&2t[0].length)){if(t=r,n=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(r,a[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,a[n]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return 0)/i,/^(?:#)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?::-)/i,/^(?:\?-)/i,/^(?:\.\.)/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:!)/i,/^(?:\^)/i,/^(?:~)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274],inclusive:!0}}};function Ei(){this.yy={}}return fi.lexer=bi,new((Ei.prototype=fi).Parser=Ei)}();void 0!==e&&"undefined"!=typeof exports&&(exports.parser=t,exports.Parser=t.Parser,exports.parse=function(){return t.parse.apply(t,arguments)},exports.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var t=null.readFileSync(null.normalize(e[1]),"utf8");return exports.parser.parse(t)},"undefined"!=typeof module&&e.main===module&&exports.main(process.argv.slice(1))),gi.prettyflag=!1,gi.pretty=function(e,t){var r=gi.prettyflag;gi.prettyflag=!t;var n=gi.parse(e).toString();return gi.prettyflag=r,n};var c=gi.utils={};function f(e){return"(y="+e+",y===y?y:undefined)"}function n(e,t){return"(y="+e+',typeof y=="undefined"?undefined:'+t+")"}function S(){return!0}function r(){}function u(e){return e[0]===String.fromCharCode(65279)&&(e=e.substr(1)),e}var p=c.escapeq=function(e){return(""+e).replace(/["'\\\n\r\u2028\u2029]/g,function(e){switch(e){case'"':case"'":case"\\":return"\\"+e;case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029"}})},l=c.undoubleq=function(e){return e.replace(/(\')/g,"''")},mi=c.doubleq=function(e){return e.replace(/(\'\')/g,"\\'")};c.doubleqq=function(e){return e.replace(/\'/g,"'")};c.global="undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:Function("return this")();c.isNativeFunction=function(e){return"function"==typeof e&&!!~e.toString().indexOf("[native code]")};c.isWebWorker=function(){try{var e=c.global.importScripts;return c.isNativeFunction(e)}catch(e){return!1}}(),c.isNode=function(){try{return c.isNativeFunction(c.global.process.reallyExit)}catch(e){return!1}}(),c.isBrowser=function(){try{return c.isNativeFunction(c.global.location.reload)}catch(e){return!1}}(),c.isBrowserify=c.isBrowser&&"undefined"!=typeof process&&process.browser,c.isRequireJS=c.isBrowser&&"function"==typeof e.specified,c.isMeteor="undefined"!=typeof Meteor&&Meteor.release,c.isMeteorClient=c.isMeteorClient=c.isMeteor&&Meteor.isClient,c.isMeteorServer=c.isMeteor&&Meteor.isServer,c.isCordova="object"==typeof cordova,c.isReactNative=!1,c.hasIndexedDB=!!c.global.indexedDB,c.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var o=c.loadFile=function(t,e,r,n){var a;if(c.isNode||c.isMeteorServer);else if(c.isCordova)c.global.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(e){e.root.getFile(t,{create:!1},function(e){e.file(function(e){var t=new FileReader;t.onloadend=function(e){r(u(this.result))},t.readAsText(e)})})});else if("string"==typeof t)if("#"===t.substr(0,1)&&"undefined"!=typeof document)a=document.querySelector(t).textContent,r(a);else{var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState)if(200===s.status)r&&r(u(s.responseText));else if(n)return n(s)},s.open("GET",t,e),s.responseType="text",s.send()}else if(t instanceof Event){var i=t.target.files,o=new FileReader;i[0].name;o.onload=function(e){var t=e.target.result;r(u(t))},o.readAsText(i[0])}};c.loadBinaryFile=function(e,t,n,r){if(c.isNode||c.isMeteorServer);else if("string"==typeof e){var a=new XMLHttpRequest;a.open("GET",e,t),a.responseType="arraybuffer",a.onload=function(){for(var e=new Uint8Array(a.response),t=[],r=0;rgi.MAXSQLCACHESIZE&&i.resetSqlCache(),i.sqlCacheSize++,i.sqlCache[s]=u),gi.res=u(r,n,a)}return gi.precompile(o.statements[0],gi.useid,r),gi.res=o.statements[0].execute(e,r,n,a)}if(!n)return gi.drun(e,o,r,n,a);gi.adrun(e,o,r,n,a)}},gi.drun=function(e,t,r,n,a){var s=gi.useid;s!==e&&gi.use(e);for(var i=[],o=0,u=t.statements.length;on.length)return l;var h=[];return l&&0n.length?[t]:r(n,a+1,t);if("DISTINCT"===s.selid){if(0===(f=void 0===s.args||0===s.args.length?x(t):r(s.args,0,t)).length)return[];var d=x(f);return a+1+1>n.length?d:r(n,a+1,d)}if("AND"===s.selid)return d=!0,s.args.forEach(function(e){d=d&&0n.length?[t]:r(n,a+1,t):[];if("OR"===s.selid)return d=!1,s.args.forEach(function(e){d=d||0n.length?[t]:r(n,a+1,t):[];if("ALL"===s.selid)return 0===(f=r(s.args[0],0,t)).length?[]:a+1+1>n.length?f:r(n,a+1,f);if("ANY"===s.selid)return 0===(f=r(s.args[0],0,t)).length?[]:a+1+1>n.length?[f[0]]:r(n,a+1,[f[0]]);if("UNIONALL"===s.selid){var f=[];return s.args.forEach(function(e){f=f.concat(r(e,0,t))}),0===f.length?[]:a+1+1>n.length?f:r(n,a+1,f)}if("UNION"===s.selid){var f=[];return s.args.forEach(function(e){f=f.concat(r(e,0,t))}),0===(f=x(f)).length?[]:a+1+1>n.length?f:r(n,a+1,f)}if("IF"===s.selid)return 0===(f=r(s.args,0,t)).length?[]:a+1+1>n.length?[t]:r(n,a+1,t);if("REPEAT"===s.selid){var p,b,E=s.args[0].value;b=s.args[1]?s.args[1].value:E,s.args[2]&&(p=s.args[2].variable);var g=[];if(0===E&&(g=a+1+1>n.length?[t]:(p&&(gi.vars[p]=0),g.concat(r(n,a+1,t)))),0=E&&(a+1+1>n.length?g=g.concat(S):S.forEach(function(e){g=g.concat(r(n,a+1,e))}))}if(1e5<++v)throw new Error("Security brake. Number of iterations = "+v)}return g}if("OF"===s.selid){if(a+1+1>n.length)return[t];var T=[];return Object.keys(t).forEach(function(e){gi.vars[s.args[0].variable]=e,T=T.concat(r(n,a+1,t[e]))}),T}if("TO"===s.selid){var A=gi.vars[s.args[0]],y=[];return(y=void 0!==A?A.slice(0):[]).push(t),a+1+1>n.length?[t]:(gi.vars[s.args[0]]=y,T=r(n,a+1,t),gi.vars[s.args[0]]=A,T)}if("ARRAY"===s.selid)return 0<(f=r(s.args,0,t)).length?(N=f,a+1+1>n.length?[N]:r(n,a+1,N)):[];if("SUM"===s.selid){if(!(0<(f=r(s.args,0,t)).length))return[];var N=f.reduce(function(e,t){return e+t},0);return a+1+1>n.length?[N]:r(n,a+1,N)}if("AVG"===s.selid)return 0<(f=r(s.args,0,t)).length?(N=f.reduce(function(e,t){return e+t},0)/f.length,a+1+1>n.length?[N]:r(n,a+1,N)):[];if("COUNT"===s.selid)return 0<(f=r(s.args,0,t)).length?(N=f.length,a+1+1>n.length?[N]:r(n,a+1,N)):[];if("FIRST"===s.selid)return 0<(f=r(s.args,0,t)).length?(N=f[0],a+1+1>n.length?[N]:r(n,a+1,N)):[];if("LAST"===s.selid)return 0<(f=r(s.args,0,t)).length?(N=f[f.length-1],a+1+1>n.length?[N]:r(n,a+1,N)):[];if("MIN"===s.selid)return 0===(f=r(s.args,0,t)).length?[]:(N=f.reduce(function(e,t){return Math.min(e,t)},1/0),a+1+1>n.length?[N]:r(n,a+1,N));if("MAX"===s.selid)return 0===(f=r(s.args,0,t)).length?[]:(N=f.reduce(function(e,t){return Math.max(e,t)},-1/0),a+1+1>n.length?[N]:r(n,a+1,N));if("PLUS"===s.selid){for(g=[],m=r(s.args,0,t).slice(),a+1+1>n.length?g=g.concat(m):m.forEach(function(e){g=g.concat(r(n,a+1,e))}),v=0;0n.length?g=g.concat(f):f.forEach(function(e){var t=r(n,a+1,e);g=g.concat(t)}),1e5<++v)throw new Error("Security brake. Number of iterations = "+v);return g}if("STAR"===s.selid){for(g=[],g=r(n,a+1,t),m=r(s.args,0,t).slice(),a+1+1>n.length?g=g.concat(m):m.forEach(function(e){g=g.concat(r(n,a+1,e))}),v=0;0n.length?[t]:r(n,a+1,w);throw new Error("Wrong selector "+s.selid)}if(0===(f=r(s.args,0,t)).length)return[];var C={status:1,values:f}}else{if(!s.srchid)throw new Error("Selector not found");C=gi.srch[s.srchid.toUpperCase()](t,s.args,I,O)}if(void 0===C&&(C={status:1,values:[t]}),d=[],1===C.status){var R=C.values;if(a+1+1>n.length)d=R;else for(v=0;v=n.sources.length)n.wherefn(a,n.params,gi)&&(n.groupfn?n.groupfn(a,n.params,gi):n.data.push(n.selectfn(a,n.params,gi)));else if(n.sources[s].applyselect){var i=n.sources[s];i.applyselect(n.params,function(e){if(0":"<")+"b"+t+")return 1;",n+="if(a"+t+"==b"+t+"){"):(n+="if((a['"+r+"']||'')"+t+("ASC"===e.direction?">":"<")+"(b['"+r+"']||'')"+t+")return 1;",n+="if((a['"+r+"']||'')"+t+"==(b['"+r+"']||'')"+t+"){")}else t=".valueOf()",e.nocase&&(t+=".toUpperCase()"),n+="if(("+e.toJS("a","")+"||'')"+t+("ASC"===e.direction?">(":"<(")+e.toJS("b","")+"||'')"+t+")return 1;",n+="if(("+e.toJS("a","")+"||'')"+t+"==("+e.toJS("b","")+"||'')"+t+"){";s+="}"}),n+="return 0;",n+=s+"return -1",new Function("a,b",n)}}(t))}};var M=function(t){for(var e=0,r=t.sources.length;e":"<")+"(b['"+n+"']||'')"+a+")return 1;",c+="if((a['"+n+"']||'')"+a+"==(b['"+n+"']||'')"+a+"){",l+="}"}),c+="return 0;",c+=l+"return -1",o.orderfns=c,new Function("a,b","var y;"+c)}},D.Select.prototype.compilePivot=function(e){var h=this.pivot.columnid,d=this.pivot.expr.expression.columnid,f=this.pivot.expr.aggregatorid,p=this.pivot.inlist;return p&&(p=p.map(function(e){return e.expr.columnid})),function(){var r=this,n=r.columns.filter(function(e){return e.columnid!=h&&e.columnid!=d}).map(function(e){return e.columnid}),a=[],s={},i={},o={},u=[];if(r.data.forEach(function(t){if(!p||-1r[t[h]]&&(r[t[h]]=t[d]);else if("FIRST"==f)void 0===r[t[h]]&&(r[t[h]]=t[d]);else if("LAST"==f)r[t[h]]=t[d];else{if(!gi.aggr[f])throw new Error("Wrong aggregator in PIVOT clause");gi.aggr[f](r[t[h]],t[d])}}}),"AVG"==f)for(var e in i){var t=i[e];for(var c in t)-1==n.indexOf(c)&&c!=d&&(t[c]=t[c]/o[e][c])}r.data=u,p&&(a=p);var l=r.columns.filter(function(e){return e.columnid==d})[0];r.columns=r.columns.filter(function(e){return!(e.columnid==h||e.columnid==d)}),a.forEach(function(e){var t=b(l);t.columnid=e,r.columns.push(t)})}},D.Select.prototype.compileUnpivot=function(e){var s=this.unpivot.tocolumnid,i=this.unpivot.forcolumnid,t=this.unpivot.inlist.map(function(e){return e.columnid});return function(){var n=[],a=e.columns.map(function(e){return e.columnid}).filter(function(e){return-1==t.indexOf(e)&&e!=i&&e!=s});e.data.forEach(function(r){t.forEach(function(e){var t={};a.forEach(function(e){t[e]=r[e]}),t[i]=e,t[s]=r[e],n.push(t)})}),e.data=n}};var F=function(e,t){for(var r=[],n=0,a=e.length,s=0;s"!==this.op&&"!"!==this.op)return this.left.toString()+" "+this.op+" "+(this.allsome?this.allsome+" ":"")+this.right.toString();var e=this.left.toString()+this.op;return"string"!=typeof this.right&&"number"!=typeof this.right&&(e+="("),e+=this.right.toString(),"string"!=typeof this.right&&"number"!=typeof this.right&&(e+=")"),e},D.Op.prototype.findAggregator=function(e){this.left&&this.left.findAggregator&&this.left.findAggregator(e),this.right&&this.right.findAggregator&&!this.allsome&&this.right.findAggregator(e)},D.Op.prototype.toType=function(e){if(-1<["-","*","/","%","^"].indexOf(this.op))return"number";if(-1<["||"].indexOf(this.op))return"string";if("+"===this.op){if("string"===this.left.toType(e)||"string"===this.right.toType(e))return"string";if("number"===this.left.toType(e)||"number"===this.right.toType(e))return"number"}return-1<["AND","OR","NOT","=","==","===","!=","!==","!===",">",">=","<","<=","IN","NOT IN","LIKE","NOT LIKE","REGEXP","GLOB"].indexOf(this.op)?"boolean":"BETWEEN"===this.op||"NOT BETWEEN"===this.op||"IS NULL"===this.op||"IS NOT NULL"===this.op?"boolean":this.allsome?"boolean":this.op?"unknown":this.left.toType()},D.Op.prototype.toJS=function(t,r,n){function e(e){return e.toJS&&(e=e.toJS(t,r,n)),"y["+(i.push(e)-1)+"]"}function a(){return e(u.left)}function s(){return e(u.right)}var i=[],o=this.op,u=this;if("="===this.op?o="===":"<>"===this.op?o="!=":"OR"===this.op&&(o="||"),"->"===this.op){var c="("+a()+"||{})";if("string"==typeof this.right)h=c+'["'+this.right+'"]';else if("number"==typeof this.right)h=c+"["+this.right+"]";else if(this.right instanceof D.FuncValue){var l=[];if(this.right.args&&0!==this.right.args.length)l=this.right.args.map(e);h=c+"['"+this.right.funcid+"']("+l.join(",")+")"}else h=c+"["+s()+"]"}if("!"===this.op&&"string"==typeof this.right&&(h="alasql.databases[alasql.useid].objects["+a()+']["'+this.right+'"]'),"IS"===this.op&&(h="(("+a()+"==null) === ("+s()+"==null))"),"=="===this.op&&(h="alasql.utils.deepEqual("+a()+","+s()+")"),"==="!==this.op&&"!==="!==this.op||(h="("+("!==="===this.op?"!":"")+"(("+a()+").valueOf()===("+s()+").valueOf()))"),"!=="===this.op&&(h="(!alasql.utils.deepEqual("+a()+","+s()+"))"),"||"===this.op&&(h="(''+("+a()+"||'')+("+s()+'||""))'),"LIKE"===this.op||"NOT LIKE"===this.op){var h="("+("NOT LIKE"===this.op?"!":"")+"alasql.utils.like("+s()+","+a();this.escape&&(h+=","+e(this.escape)),h+="))"}if("REGEXP"===this.op&&(h="alasql.stdfn.REGEXP_LIKE("+a()+","+s()+")"),"GLOB"===this.op&&(h="alasql.utils.glob("+a()+","+s()+")"),"BETWEEN"===this.op||"NOT BETWEEN"===this.op){var d=a();h="("+("NOT BETWEEN"===this.op?"!":"")+"(("+e(this.right1)+"<="+d+") && ("+d+"<="+e(this.right2)+")))"}if("IN"===this.op&&(this.right instanceof D.Select?(h="(",h+="alasql.utils.flatArray(this.queriesfn["+this.queriesidx+"](params,null,"+t+"))",h+=".indexOf(",h+=a()+")>-1)"):h=Array.isArray(this.right)?"(["+this.right.map(e).join(",")+"].indexOf("+a()+")>-1)":"("+s()+".indexOf("+a()+")>-1)"),"NOT IN"===this.op&&(this.right instanceof D.Select?(h="(",h+="alasql.utils.flatArray(this.queriesfn["+this.queriesidx+"](params,null,p))",h+=".indexOf(",h+=a()+")<0)"):Array.isArray(this.right)?(h="(["+this.right.map(e).join(",")+"].indexOf(",h+=a()+")<0)"):(h="("+s()+".indexOf(",h+=a()+")==-1)")),"ALL"===this.allsome)if(this.right instanceof D.Select)h="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))",h+=".every(function(b){return (",h+=a()+")"+o+"b})";else{if(!Array.isArray(this.right))throw new Error("NOT IN operator without SELECT");h=""+(1==this.right.length?e(this.right[0]):"["+this.right.map(e).join(",")+"]"),h+=".every(function(b){return (",h+=a()+")"+o+"b})"}if("SOME"===this.allsome||"ANY"===this.allsome)if(this.right instanceof D.Select)h="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))",h+=".some(function(b){return (",h+=a()+")"+o+"b})";else{if(!Array.isArray(this.right))throw new Error("SOME/ANY operator without SELECT");h=""+(1==this.right.length?e(this.right[0]):"["+this.right.map(e).join(",")+"]"),h+=".some(function(b){return (",h+=a()+")"+o+"b})"}if("AND"===this.op){if(this.left.reduced){if(this.right.reduced)return"true";h=s()}else this.right.reduced&&(h=a());o="&&"}var f=h||"("+a()+o+s()+")",p="y=[("+i.join("), (")+")]";return"&&"===o||"||"===o||"IS"===o||"IS NULL"===o||"IS NOT NULL"===o?"("+p+", "+f+")":"("+p+", y.some(function(e){return e == null}) ? void 0 : "+f+")"},D.VarValue=function(e){return D.extend(this,e)},D.VarValue.prototype.toString=function(){return"@"+this.variable},D.VarValue.prototype.toType=function(){return"unknown"},D.VarValue.prototype.toJS=function(){return"alasql.vars['"+this.variable+"']"},D.NumValue=function(e){return D.extend(this,e)},D.NumValue.prototype.toString=function(){return this.value.toString()},D.NumValue.prototype.toType=function(){return"number"},D.NumValue.prototype.toJS=function(){return""+this.value},D.StringValue=function(e){return D.extend(this,e)},D.StringValue.prototype.toString=function(){return"'"+this.value.toString()+"'"},D.StringValue.prototype.toType=function(){return"string"},D.StringValue.prototype.toJS=function(){return"'"+p(this.value)+"'"},D.DomainValueValue=function(e){return D.extend(this,e)},D.DomainValueValue.prototype.toString=function(){return"VALUE"},D.DomainValueValue.prototype.toType=function(){return"object"},D.DomainValueValue.prototype.toJS=function(e,t,r){return e},D.ArrayValue=function(e){return D.extend(this,e)},D.ArrayValue.prototype.toString=function(){return"ARRAY[]"},D.ArrayValue.prototype.toType=function(){return"object"},D.ArrayValue.prototype.toJS=function(t,r,n){return"[("+this.value.map(function(e){return e.toJS(t,r,n)}).join("), (")+")]"},D.LogicValue=function(e){return D.extend(this,e)},D.LogicValue.prototype.toString=function(){return this.value?"TRUE":"FALSE"},D.LogicValue.prototype.toType=function(){return"boolean"},D.LogicValue.prototype.toJS=function(){return this.value?"true":"false"},D.NullValue=function(e){return D.extend(this,e)},D.NullValue.prototype.toString=function(){return"NULL"},D.NullValue.prototype.toJS=function(){return"undefined"},D.ParamValue=function(e){return D.extend(this,e)},D.ParamValue.prototype.toString=function(){return"$"+this.param},D.ParamValue.prototype.toJS=function(){return"string"==typeof this.param?"params['"+this.param+"']":"params["+this.param+"]"},D.UniOp=function(e){return D.extend(this,e)},D.UniOp.prototype.toString=function(){var e;return e=void 0,"~"===this.op&&(e=this.op+this.right.toString()),"-"===this.op&&(e=this.op+this.right.toString()),"+"===this.op&&(e=this.op+this.right.toString()),"#"===this.op&&(e=this.op+this.right.toString()),"NOT"===this.op&&(e=this.op+"("+this.right.toString()+")"),null===this.op&&(e="("+this.right.toString()+")"),e||(e="("+this.right.toString()+")"),e},D.UniOp.prototype.findAggregator=function(e){this.right.findAggregator&&this.right.findAggregator(e)},D.UniOp.prototype.toType=function(){return"-"===this.op?"number":"+"===this.op?"number":"NOT"===this.op?"boolean":void 0},D.UniOp.prototype.toJS=function(e,t,r){return"~"===this.op?"(~("+this.right.toJS(e,t,r)+"))":"-"===this.op?"(-("+this.right.toJS(e,t,r)+"))":"+"===this.op?"("+this.right.toJS(e,t,r)+")":"NOT"===this.op?"!("+this.right.toJS(e,t,r)+")":"#"===this.op?this.right instanceof D.Column?"(alasql.databases[alasql.useid].objects['"+this.right.columnid+"'])":"(alasql.databases[alasql.useid].objects["+this.right.toJS(e,t,r)+"])":null==this.op?"("+this.right.toJS(e,t,r)+")":void 0},D.Column=function(e){return D.extend(this,e)},D.Column.prototype.toString=function(e){var t;return t=this.columnid==+this.columnid?"["+this.columnid+"]":this.columnid,this.tableid&&(t=+this.columnid===this.columnid?this.tableid+t:this.tableid+"."+t,this.databaseid&&(t=this.databaseid+"."+t)),this.alias&&!e&&(t+=" AS "+this.alias),t},D.Column.prototype.toJS=function(e,t,r){var n="";if(this.tableid||""!==t||r)if("g"===e)n="g['"+this.nick+"']";else if(this.tableid)n="_"!==this.columnid?e+"['"+this.tableid+"']['"+this.columnid+"']":"g"===e?"g['_']":e+"['"+this.tableid+"']";else if(r){var a=r[this.columnid];if("-"===a)throw new Error('Cannot resolve column "'+this.columnid+'" because it exists in two source tables');n=a?"_"!==this.columnid?e+"['"+a+"']['"+this.columnid+"']":e+"['"+a+"']":"_"!==this.columnid?e+"['"+(this.tableid||t)+"']['"+this.columnid+"']":e+"['"+(this.tableid||t)+"']"}else n=-1===t?e+"['"+this.columnid+"']":"_"!==this.columnid?e+"['"+(this.tableid||t)+"']['"+this.columnid+"']":e+"['"+(this.tableid||t)+"']";else n="_"!==this.columnid?e+"['"+this.columnid+"']":"g"===e?"g['_']":e;return n},D.AggrValue=function(e){return D.extend(this,e)},D.AggrValue.prototype.toString=function(e){var t="";return"REDUCE"===this.aggregatorid?t+=this.funcid+"(":t+=this.aggregatorid+"(",this.distinct&&(t+="DISTINCT "),this.expression&&(t+=this.expression.toString()),t+=")",this.over&&(t+=" "+this.over.toString()),this.alias&&!e&&(t+=" AS "+this.alias),t},D.AggrValue.prototype.findAggregator=function(e){var t=p(this.toString())+":"+e.selectGroup.length;if(!(r=!1)){if(!this.nick){this.nick=t;for(var r=!1,n=0;ngi.MAXSQLCACHESIZE&&db.resetSqlCache(),db.sqlCacheSize++,db.sqlCache[a]=s,gi.res=s(e,t)},D.Select.prototype.Select=function(){var r=this;if(1>8&255]+H[e>>16&255]+H[e>>24&255]+"-"+H[255&t]+H[t>>8&255]+"-"+H[t>>16&15|64]+H[t>>24&255]+"-"+H[63&r|128]+H[r>>8&255]+"-"+H[r>>16&255]+H[r>>24&255]+H[255&n]+H[n>>8&255]+H[n>>16&255]+H[n>>24&255]},D.CaseValue=function(e){return D.extend(this,e)},D.CaseValue.prototype.toString=function(){var e="CASE ";return this.expression&&(e+=this.expression.toString()),this.whens&&(e+=this.whens.map(function(e){return" WHEN "+e.when.toString()+" THEN "+e.then.toString()}).join()),e+=" END"},D.CaseValue.prototype.findAggregator=function(t){this.expression&&this.expression.findAggregator&&this.expression.findAggregator(t),this.whens&&0"+(a+1),e.forEach(function(e){r+=" ",t[a][e]==+t[a][e]?(r+='

',void 0===t[a][e]?r+="NULL":r+=t[a][e],r+="
"):void 0===t[a][e]?r+="NULL":"string"==typeof t[a][e]?r+=t[a][e]:r+=Y(t[a][e])});r+=""}else r+="

"+Y(t)+"

";return r}function Q(e,t,r){if(!(r<=0)){var n=(t-e.scrollTop)/r*10;setTimeout(function(){e.scrollTop!==t&&(e.scrollTop=e.scrollTop+n,Q(e,t,r-10))},10)}}function z(m,e,t,v,S,T){var A={};function y(e){return e&&!1===gi.options.casesensitive?e.toLowerCase():e}t=t||{},gi.utils.extend(A,t),void 0===A.headers&&(A.headers=!0),e=gi.utils.autoExtFilename(e,"xls",t),gi.utils.loadBinaryFile(e,!!v,function(e){if(e instanceof ArrayBuffer)var t=function(e){for(var t="",r=0,n=10240;r",e),Array.isArray(r)&&console.table?console.table(r):console.log(Y(r));else{var s;s="output"===a?document.getElementsByTagName("output")[0]:"string"==typeof a?document.getElementById(a):a;var i="";if("string"==typeof e&&gi.options.logprompt&&(i+="
"+gi.pretty(e)+"
"),Array.isArray(r))if(0===r.length)i+="

[ ]

";else if("object"!=typeof r[0]||Array.isArray(r[0]))for(var o=0,u=r.length;o"+K(r[o])+"

";else i+=K(r);else i+=K(r);s.innerHTML+=i}},gi.clear=function(){var e=gi.options.logtarget;c.isNode||c.isMeteorServer?console.clear&&console.clear():("output"===e?document.getElementsByTagName("output")[0]:"string"==typeof e?document.getElementById(e):e).innerHTML=""},gi.write=function(e){var t=gi.options.logtarget;c.isNode||c.isMeteorServer?console.log&&console.log(e):("output"===t?document.getElementsByTagName("output")[0]:"string"==typeof t?document.getElementById(t):t).innerHTML+=e},gi.prompt=function(s,i,e){if(c.isNode)throw new Error("The prompt not realized for Node.js");var o=0;if("string"==typeof s&&(s=document.getElementById(s)),"string"==typeof i&&(i=document.getElementById(i)),i.textContent=gi.useid,e){gi.prompthistory.push(e),o=gi.prompthistory.length;try{var t=Date.now();gi.log(e),gi.write('

'+(Date.now()-t)+" ms

")}catch(e){gi.write("

"+olduseid+"> "+sql+"

"),gi.write('

'+e+"

")}}var r=s.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;Q(document.getElementsByTagName("body")[0],r,500),s.onkeydown=function(e){if(13===e.which){var t=s.value,r=gi.useid;s.value="",gi.prompthistory.push(t),o=gi.prompthistory.length;try{var n=Date.now();gi.log(t),gi.write('

'+(Date.now()-n)+" ms

")}catch(e){gi.write("

"+r+"> "+gi.pretty(t,!1)+"

"),gi.write('

'+e+"

")}s.focus(),i.textContent=gi.useid;var a=s.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;Q(document.getElementsByTagName("body")[0],a,500)}else 38===e.which?(--o<0&&(o=0),gi.prompthistory[o]&&(s.value=gi.prompthistory[o],e.preventDefault())):40===e.which&&(++o>=gi.prompthistory.length?(o=gi.prompthistory.length,s.value=""):gi.prompthistory[o]&&(s.value=gi.prompthistory[o],e.preventDefault()))}},D.BeginTransaction=function(e){return D.extend(this,e)},D.BeginTransaction.prototype.toString=function(){return"BEGIN TRANSACTION"},D.BeginTransaction.prototype.execute=function(e,t,r){return gi.databases[e].engineid?gi.engines[gi.databases[gi.useid].engineid].begin(e,r):(r&&r(1),1)},D.CommitTransaction=function(e){return D.extend(this,e)},D.CommitTransaction.prototype.toString=function(){return"COMMIT TRANSACTION"},D.CommitTransaction.prototype.execute=function(e,t,r){return gi.databases[e].engineid?gi.engines[gi.databases[gi.useid].engineid].commit(e,r):(r&&r(1),1)},D.RollbackTransaction=function(e){return D.extend(this,e)},D.RollbackTransaction.prototype.toString=function(){return"ROLLBACK TRANSACTION"},D.RollbackTransaction.prototype.execute=function(e,t,r){return gi.databases[e].engineid?gi.engines[gi.databases[e].engineid].rollback(e,r):(r&&r(1),1)},gi.options.tsql&&(gi.stdfn.OBJECT_ID=function(e,t){void 0===t&&(t="T"),t=t.toUpperCase();var r=e.split("."),n=gi.useid,a=r[0];2==r.length&&(n=r[0],a=r[1]);var s=gi.databases[n].tables;for(var i in n=gi.databases[n].databaseid,s)if(i==a)return s[i].view&&"V"==t?n+"."+i:s[i].view||"T"!=t?void 0:n+"."+i}),gi.options.mysql,(gi.options.mysql||gi.options.sqlite)&&(gi.from.INFORMATION_SCHEMA=function(e,t,r,n,a){if("VIEWS"!=e&&"TABLES"!=e)throw new Error("Unknown INFORMATION_SCHEMA table");var s=[];for(var i in gi.databases){var o=gi.databases[i].tables;for(var u in o)(o[u].view&&"VIEWS"==e||!o[u].view&&"TABLES"==e)&&s.push({TABLE_CATALOG:i,TABLE_NAME:u})}return r&&(s=r(s,n,a)),s}),gi.options.postgres,gi.options.oracle,gi.options.sqlite,gi.into.SQL=function(e,t,r,n,a){var s;"object"==typeof e&&(t=e,e=void 0);var i={};if(gi.utils.extend(i,t),void 0===i.tableid)throw new Error("Table for INSERT TO is not defined.");var o="";0===n.length&&"object"==typeof r[0]&&(n=Object.keys(r[0]).map(function(e){return{columnid:e}}));for(var u=0,c=r.length;u \t\t",l+="",l+="",l+="",void 0!==d.caption){var e=d.caption;"string"==typeof e&&(e={title:e}),l+=""}void 0!==d.columns?r=d.columns:0==r.length&&0",r.forEach(function(e){l+=''}),l+="",d.headers&&(l+="",l+="",r.forEach(function(e,t){l+="",l+="");l+="",t&&0d.limit)){l+=""}),l+=""}});return l+="",l+="
"}),l+="
",l+="",l+=""}();e=gi.utils.autoExtFilename(e,"xls",h);var i=gi.utils.saveFile(e,s);return n&&(i=n(i)),i},gi.into.XLSXML=function(e,b,t,r,n){b=b||{},"object"==typeof e&&(b=e,e=void 0);var c,l,h={};l=b&&b.sheets?(h=b.sheets,c=t,r):(h.Sheet1=b,c=[t],[r]),e=gi.utils.autoExtFilename(e,"xls",b);var a=gi.utils.saveFile(e,function(){var s="",d=" ",i={},o=62;function f(e){var t="";for(var r in e){for(var n in t+="<"+r,e[r])t+=" ","x:"==n.substr(0,2)?t+=n:t+="ss:",t+=n+'="'+e[r][n]+'"';t+="/>"}var a=E(t);return i[a]||(i[a]={styleid:o},s+='",o++),"s"+i[a].styleid}function e(t){try{return Object.values(t)}catch(e){return Object.keys(t).map(function(e){return t[e]})}}var t=0;for(var r in h){var p=h[r],n=void 0!==p.dataidx?p.dataidx:t++,a=e(c[n]),u=void 0;void 0!==p.columns?u=p.columns:(void 0===(u=l[n])||0==u.length&&0 \t \t\t\t',u.forEach(function(e,t){d+=''}),p.headers&&(d+='',u.forEach(function(e,t){if(d+=""}),d+=""),a&&0p.limit)){var h={};if(g(h,p.row),p.rows&&p.rows[l]&&g(h,p.rows[l]),d+="';var u=r.format;if(void 0===n)d+="";else if(void 0!==u)if("function"==typeof u)d+=u(n);else{if("string"!=typeof u)throw new Error("Unknown format type. Should be function or string");d+=n}else d+="number"==a||"date"==a?n.toString():"money"==a?(+n).toFixed(2):n;d+=""}),d+=""}}),d+="
"}return' \t\t \t\t \t\t \t\t \t\t \t\t \t\t \t\t 0 \t\t \t\t \t\t '+s+(d+="")}());return n&&(a=n(a)),a},gi.into.XLSX=function(n,r,e,t,a){var s=1;N(t,[{columnid:"_"}])&&(e=e.map(function(e){return e._}),t=void 0),n=gi.utils.autoExtFilename(n,"xlsx",r);var i=C();"object"==typeof n&&(r=n,n=void 0);var g={SheetNames:[],Sheets:{}};return r.sourcefilename?gi.utils.loadBinaryFile(r.sourcefilename,!!a,function(e){g=i.read(e,{type:"binary"}),o()}):o(),a&&(s=a(s)),s;function o(){"object"==typeof r&&Array.isArray(r)?e&&0/g,""),{declaration:function(){if(o(/^<\?xml\s*/)){for(var e={attributes:{}};!u()&&!c("?>");){var t=i();if(!t)return e;e.attributes[t.name]=t.value}return o(/\?>\s*/),e}}(),root:function e(){var t=o(/^<([\w-:.]+)\s*/);if(t){for(var r,n={name:t[1],attributes:{},children:[]};!(u()||c(">")||c("?>")||c("/>"));){var a=i();if(!a)return n;n.attributes[a.name]=a.value}if(o(/^\s*\/>\s*/))return n;for(o(/\??>\s*/),n.content=s();r=e();)n.children.push(r);return o(/^<\/[\w-:.]+>\s*/),n}}()};function s(){var e=o(/^([^<]*)/);return e?e[1]:""}function i(){var e=o(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);if(e)return{name:e[1],value:function(e){return e.replace(/^['"]|['"]$/g,"")}(e[2])}}function o(e){var t=r.match(e);if(t)return r=r.slice(t[0].length),t}function u(){return 0==r.length}function c(e){return 0==r.indexOf(e)}}(e).root,r&&(s=r(s,n,a))}),s},gi.from.GEXF=function(e,t,r,n,a){var s;return gi("SEARCH FROM XML("+e+")",[],function(e){s=e,r&&(s=r(s))}),s},D.Print=function(e){return D.extend(this,e)},D.Print.prototype.toString=function(){var e="PRINT";return this.statement&&(e+=" "+this.statement.toString()),e},D.Print.prototype.execute=function(e,r,t){var n=this,a=1;if(gi.precompile(this,e,r),this.exprs&&0=0.0.4" } } } }, + "es5-ext": { + "version": "0.10.50", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", + "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "^1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, "es6-promise": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.2.tgz", - "integrity": "sha512-LSas5vsuA6Q4nEdf9wokY5/AJYXry98i0IzXsv49rYsgDGDNDPbqAYR1Pe23iFxygfbGZNR/5VrHXBCh2BhvUQ==" + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", + "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==" + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } }, "escape-string-regexp": { "version": "1.0.5", @@ -1597,10 +2151,10 @@ "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=", "dev": true, "requires": { - "esprima": "1.1.1", - "estraverse": "1.5.1", - "esutils": "1.0.0", - "source-map": "0.1.43" + "esprima": "~1.1.1", + "estraverse": "~1.5.0", + "esutils": "~1.0.0", + "source-map": "~0.1.33" }, "dependencies": { "esprima": { @@ -1616,63 +2170,55 @@ "dev": true, "optional": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", - "dev": true, - "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.5.0", - "ignore": "3.3.8", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.10.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.4.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.2", - "text-table": "0.2.0" + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.9.1", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^4.0.3", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.1", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.2.2", + "js-yaml": "^3.13.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0" }, "dependencies": { - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", @@ -1685,46 +2231,25 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "2.0.0" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "2.0.2" - } + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true }, "esutils": { "version": "2.0.2", @@ -1732,126 +2257,29 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.3.3", - "path-is-absolute": "1.0.1" - } - }, - "globals": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz", - "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.4", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "1.1.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "2.1.0" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "brace-expansion": "^1.1.7" } }, "strip-ansi": { @@ -1860,39 +2288,35 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } }, "eslint-config-airbnb-base": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz", - "integrity": "sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz", + "integrity": "sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw==", "dev": true, "requires": { - "eslint-restricted-globals": "0.1.1" + "eslint-restricted-globals": "^0.1.1", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4" } }, "eslint-config-standard": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", - "integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz", + "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==", "dev": true }, "eslint-import-resolver-node": { @@ -1901,8 +2325,8 @@ "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "dev": true, "requires": { - "debug": "2.6.9", - "resolve": "1.7.1" + "debug": "^2.6.9", + "resolve": "^1.5.0" }, "dependencies": { "debug": { @@ -1914,155 +2338,159 @@ "ms": "2.0.0" } }, - "resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", - "dev": true, - "requires": { - "path-parse": "1.0.5" - } + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, "eslint-module-utils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", - "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", - "dev": true, - "requires": { - "debug": "2.6.8", - "pkg-dir": "1.0.0" - } - }, - "eslint-plugin-import": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.12.0.tgz", - "integrity": "sha1-2tMXgSktZmSyUxf9BJ0uKy8CIF0=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz", + "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==", "dev": true, "requires": { - "contains-path": "0.1.0", - "debug": "2.6.8", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.3", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0", - "resolve": "1.7.1" + "debug": "^2.6.8", + "pkg-dir": "^2.0.0" }, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "ms": "2.0.0" } }, - "path-type": { + "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-es": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz", + "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==", + "dev": true, + "requires": { + "eslint-utils": "^1.3.0", + "regexpp": "^2.0.1" + } + }, + "eslint-plugin-import": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.17.2.tgz", + "integrity": "sha512-m+cSVxM7oLsIpmwNn2WXTJoReOF9f/CtLMo7qOVmKd1KntBy0hEcuNZ3erTmWjx+DxRO0Zcrm5KwAvI9wHcV5g==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.0", + "has": "^1.0.3", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "read-pkg-up": "^2.0.0", + "resolve": "^1.10.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "pify": "2.3.0" + "ms": "2.0.0" } }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true }, - "resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "brace-expansion": "^1.1.7" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "eslint-plugin-node": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", - "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz", + "integrity": "sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w==", "dev": true, "requires": { - "ignore": "3.3.8", - "minimatch": "3.0.4", - "resolve": "1.4.0", - "semver": "5.4.1" + "eslint-plugin-es": "^1.3.1", + "eslint-utils": "^1.3.1", + "ignore": "^5.0.2", + "minimatch": "^3.0.4", + "resolve": "^1.8.1", + "semver": "^5.5.0" }, "dependencies": { + "ignore": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.1.tgz", + "integrity": "sha512-DWjnQIFLenVrwyRCKZT+7a7/U4Cqgar4WG8V++K3hw+lrW1hc/SIwdiGmtxKCVACmHULTuGeBbHJmbwW7/sAvA==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } } } }, "eslint-plugin-promise": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.8.0.tgz", - "integrity": "sha512-JiFL9UFR15NKpHyGii1ZcvmtIqa3UTwiDAGb8atSffe43qJ3+1czVGN6UtkklpcJ2DVnqvTMzEKRaJdBkAL2aQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.1.1.tgz", + "integrity": "sha512-faAHw7uzlNPy7b45J1guyjazw28M+7gJokKUjC5JSFoYfUEyy6Gw/i7YQvmv2Yk00sUjWcmzXQLpU1Ki/C2IZQ==", "dev": true }, "eslint-plugin-standard": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.1.0.tgz", - "integrity": "sha512-fVcdyuKRr0EZ4fjWl3c+gp1BANFJD1+RaWa2UPYfMZ6jCtp5RG00kSaXnK/dE5sYzt4kaWJ9qdxqUfc0d9kX0w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz", + "integrity": "sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA==", "dev": true }, "eslint-restricted-globals": { @@ -2072,13 +2500,13 @@ "dev": true }, "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" }, "dependencies": { "estraverse": { @@ -2089,6 +2517,12 @@ } } }, + "eslint-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", + "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", + "dev": true + }, "eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", @@ -2096,13 +2530,14 @@ "dev": true }, "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", "dev": true, "requires": { - "acorn": "5.6.2", - "acorn-jsx": "3.0.1" + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" } }, "esprima-fb": { @@ -2117,7 +2552,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" }, "dependencies": { "estraverse": { @@ -2134,7 +2569,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" }, "dependencies": { "estraverse": { @@ -2158,38 +2593,30 @@ "dev": true }, "execa": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.2.2.tgz", - "integrity": "sha1-4urUcsLDGq1vc/GslW7vReEjIMs=", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn-async": "2.2.5", - "npm-run-path": "1.0.0", - "object-assign": "4.1.1", - "path-key": "1.0.0", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { - "npm-run-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-1.0.0.tgz", - "integrity": "sha1-9cMr9ZX+ga6Sfa7FLoL4sACsPI8=", + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "path-key": "1.0.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "path-key": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-1.0.0.tgz", - "integrity": "sha1-XVPVeAGWRsDWiADbThRua9wqx68=", - "dev": true } } }, @@ -2202,58 +2629,173 @@ "exit-on-epipe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha1-C92S6H1ShdJn2qgXHQ6wYVlolpI=" + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" }, "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "dev": true, "requires": { - "fill-range": "2.2.3" + "homedir-polyfill": "^1.0.1" } }, - "expand-tilde": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", - "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "os-homedir": "1.0.2" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "extsprintf": { @@ -2267,14 +2809,14 @@ "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", "dev": true, "requires": { - "chalk": "1.1.3", - "time-stamp": "1.1.0" + "chalk": "^1.1.1", + "time-stamp": "^1.0.0" } }, "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-json-stable-stringify": { "version": "2.0.0", @@ -2288,148 +2830,212 @@ "dev": true }, "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } + "flat-cache": "^2.0.1" } }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", - "dev": true - }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "locate-path": "^3.0.0" + }, + "dependencies": { + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + } } }, "findup-sync": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", - "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "dev": true, "requires": { - "detect-file": "0.1.0", - "is-glob": "2.0.1", - "micromatch": "2.3.11", - "resolve-dir": "0.1.1" + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" } }, "fined": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", "dev": true, "requires": { - "expand-tilde": "2.0.2", - "is-plain-object": "2.0.4", - "object.defaults": "1.1.0", - "object.pick": "1.3.0", - "parse-filepath": "1.0.1" - }, - "dependencies": { - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "1.0.1" - } - } + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" } }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true - }, "flagged-respawn": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", - "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", "dev": true }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "is-buffer": "~2.0.3" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "dev": true + } } }, - "for-in": { - "version": "1.0.2", + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", + "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -2438,27 +3044,593 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "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" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } } }, - "fs-exists-sync": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", - "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2471,19 +3643,10 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", - "dev": true, - "requires": { - "globule": "0.1.0" - } - }, "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-stdin": { "version": "4.0.1", @@ -2497,105 +3660,140 @@ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "giturl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/giturl/-/giturl-1.0.0.tgz", - "integrity": "sha1-lzKoHp4lxFeiLw4socnFHbu1Ml8=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/giturl/-/giturl-1.0.1.tgz", + "integrity": "sha512-wQourBdI13n8tbjcZTDl6k+ZrCRMU6p9vfp9jknZq+zfWc8xXNztpZFM4XkPHVzHcMSUZxEMYYKZjIGkPlei6Q==", "dev": true }, "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "2.0.10", - "once": "1.3.3" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", - "dev": true, - "requires": { - "glob": "4.5.3", - "glob2base": "0.0.12", - "minimatch": "2.0.10", - "ordered-read-streams": "0.1.0", - "through2": "0.6.5", - "unique-stream": "1.0.0" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "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" } }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "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==", "dev": true, "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" + "safe-buffer": "~5.1.0" } } } }, "glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", - "dev": true, - "requires": { - "gaze": "0.5.2" - } - }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", + "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", "dev": true, "requires": { - "find-index": "0.1.1" + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "object.defaults": "^1.1.0" } }, "global-dirs": { @@ -2604,35 +3802,37 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "1.3.4" + "ini": "^1.3.4" } }, "global-modules": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", - "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, "requires": { - "global-prefix": "0.1.5", - "is-windows": "0.2.0" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" } }, "global-prefix": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", - "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "dev": true, "requires": { - "homedir-polyfill": "1.0.1", - "ini": "1.3.4", - "is-windows": "0.2.0", - "which": "1.3.0" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" } }, "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "globby": { @@ -2641,12 +3841,12 @@ "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "6.0.4", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^6.0.1", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "glob": { @@ -2655,155 +3855,310 @@ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "2.0.10", - "once": "1.3.3", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "glogg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", + "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "gulp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.1.tgz", + "integrity": "sha512-yDVtVunxrAdsk7rIV/b7lVSBifPN1Eqe6wTjsESGrFcL+MEVzaaeNTkpUuGTUptloSOU+8oJm/lBJbgPV+tMAw==", + "dev": true, + "requires": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "gulp-cli": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", + "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.1.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.0.1", + "yargs": "^7.1.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } - } - }, - "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", - "dev": true, - "requires": { - "glob": "3.1.21", - "lodash": "1.0.2", - "minimatch": "0.2.14" - }, - "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "graceful-fs": "1.2.3", - "inherits": "1.0.2", - "minimatch": "0.2.14" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, - "inherits": { + "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", "dev": true }, - "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "dev": true, "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "camelcase": "^3.0.0" } } } }, - "glogg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", - "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", - "dev": true, - "requires": { - "sparkles": "1.0.0" - } - }, - "got": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz", - "integrity": "sha1-5dDtSvVfw+701WAHdp2YGSvLLso=", - "dev": true, - "requires": { - "duplexify": "3.5.1", - "infinity-agent": "2.0.3", - "is-redirect": "1.0.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.0", - "nested-error-stacks": "1.0.2", - "object-assign": "3.0.0", - "prepend-http": "1.0.4", - "read-all-stream": "3.1.0", - "timed-out": "2.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, - "growl": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", - "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", - "dev": true - }, - "gulp": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", - "dev": true, - "requires": { - "archy": "1.0.0", - "chalk": "1.1.3", - "deprecated": "0.0.1", - "gulp-util": "3.0.8", - "interpret": "1.0.4", - "liftoff": "2.3.0", - "minimist": "1.2.0", - "orchestrator": "0.3.8", - "pretty-hrtime": "1.0.3", - "semver": "4.3.6", - "tildify": "1.2.0", - "v8flags": "2.1.1", - "vinyl-fs": "0.3.14" - }, - "dependencies": { - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true - } - } - }, "gulp-concat": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", "dev": true, "requires": { - "concat-with-sourcemaps": "1.0.4", - "through2": "2.0.3", - "vinyl": "2.1.0" + "concat-with-sourcemaps": "^1.0.0", + "through2": "^2.0.0", + "vinyl": "^2.0.0" }, "dependencies": { "clone": { @@ -2830,12 +4185,12 @@ "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", "dev": true, "requires": { - "clone": "2.1.1", - "clone-buffer": "1.0.0", - "clone-stats": "1.0.0", - "cloneable-readable": "1.0.0", - "remove-trailing-separator": "1.1.0", - "replace-ext": "1.0.0" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" } } } @@ -2846,23 +4201,44 @@ "integrity": "sha1-fl6Zd4R2h4NFNggDyo+LEniwxT4=", "dev": true, "requires": { - "bufferstreams": "1.1.3", - "es3-safe-recast": "2.0.2", - "gulp-util": "3.0.8", - "recast": "0.10.43", - "through2": "2.0.3", - "vinyl-sourcemaps-apply": "0.1.4" + "bufferstreams": "^1.0.2", + "es3-safe-recast": "^2.0.1", + "gulp-util": "^3.0.1", + "recast": "^0.10.12", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.1.4" } }, "gulp-exec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/gulp-exec/-/gulp-exec-2.1.3.tgz", - "integrity": "sha1-RgpOyN+GhB0XOLx0lYxo5XaTQtk=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gulp-exec/-/gulp-exec-3.0.2.tgz", + "integrity": "sha512-74sde0n+pQo/Jbe5qsk0sPC4afjnB7VHDUZd4BrRTLt6lsNU451N+kSvCOoSn6q0iqS9ztT1uy8ZE/FRqmXKeQ==", "dev": true, "requires": { - "gulp-util": "3.0.8", - "gulplog": "1.0.0", - "through2": "2.0.3" + "lodash.template": "^4.4.0", + "plugin-error": "^0.1.2", + "through2": "^2.0.3" + }, + "dependencies": { + "lodash.template": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", + "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", + "dev": true, + "requires": { + "lodash._reinterpolate": "~3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", + "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", + "dev": true, + "requires": { + "lodash._reinterpolate": "~3.0.0" + } + } } }, "gulp-jison": { @@ -2871,9 +4247,9 @@ "integrity": "sha1-OoH9tcWNQHCVeNwIGD+jikESqkk=", "dev": true, "requires": { - "gulp-util": "3.0.8", - "jison": "0.4.18", - "through2": "0.6.5" + "gulp-util": "~3.0.4", + "jison": "~0.4.15", + "through2": "~0.6.3" }, "dependencies": { "readable-stream": { @@ -2882,10 +4258,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "through2": { @@ -2894,27 +4270,27 @@ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" } } } }, "gulp-rename": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", - "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz", + "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==", "dev": true }, "gulp-replace": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-0.6.1.tgz", - "integrity": "sha1-Eb+Mj85TPjPi9qjy9DC5VboL4GY=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.0.0.tgz", + "integrity": "sha512-lgdmrFSI1SdhNMXZQbrC75MOl1UjYWlOWNbNRnz+F/KHmgxt3l6XstBoAYIdadwETFyG/6i+vWUSCawdC3pqOw==", "dev": true, "requires": { - "istextorbinary": "1.0.2", - "readable-stream": "2.3.3", - "replacestream": "4.0.3" + "istextorbinary": "2.2.1", + "readable-stream": "^2.0.1", + "replacestream": "^4.0.0" }, "dependencies": { "isarray": { @@ -2923,113 +4299,192 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "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" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } }, "gulp-shell": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.6.3.tgz", - "integrity": "sha1-Lqpu3/+ovf96jwufmFKHbzMzHGs=", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.7.0.tgz", + "integrity": "sha512-rpMbI6+b9LZNLB+KkOeqWynLdqVtypy8v68spDVjvMg1cVaVhNQILYVXPvmeH/KtcrPv4JLmoEJeElEB6/IvcA==", "dev": true, "requires": { - "async": "2.5.0", - "gulp-util": "3.0.8", - "lodash": "4.17.4", - "through2": "2.0.3" - } - }, - "gulp-uglify": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-2.1.2.tgz", - "integrity": "sha1-bbhbHQ7mPRgFhZK2WGSdZcLsRUE=", - "dev": true, - "requires": { - "gulplog": "1.0.0", - "has-gulplog": "0.1.0", - "lodash": "4.17.4", - "make-error-cause": "1.2.2", - "through2": "2.0.3", - "uglify-js": "2.8.29", - "uglify-save-license": "0.4.1", - "vinyl-sourcemaps-apply": "0.2.1" + "async": "^2.6.2", + "chalk": "^2.4.2", + "fancy-log": "^1.3.3", + "lodash.template": "^4.4.0", + "plugin-error": "^1.0.1", + "through2": "^3.0.1" }, "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "lodash.template": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", + "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", "dev": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" + "lodash._reinterpolate": "~3.0.0", + "lodash.templatesettings": "^4.0.0" } }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "lodash.templatesettings": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", + "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "lodash._reinterpolate": "~3.0.0" } }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", "dev": true, "requires": { - "source-map": "0.5.7" + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "readable-stream": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz", + "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "string_decoder": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", + "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "through2": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "dev": true, + "requires": { + "readable-stream": "2 || 3" + } + } + } + }, + "gulp-uglify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz", + "integrity": "sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "extend-shallow": "^3.0.2", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "isobject": "^3.0.1", + "make-error-cause": "^1.1.1", + "safe-buffer": "^5.1.2", + "through2": "^2.0.0", + "uglify-js": "^3.0.5", + "vinyl-sourcemaps-apply": "^0.2.0" + }, + "dependencies": { + "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==", "dev": true }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", "dev": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" + "source-map": "^0.5.1" } } } @@ -3040,24 +4495,24 @@ "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", "dev": true, "requires": { - "array-differ": "1.0.0", - "array-uniq": "1.0.3", - "beeper": "1.1.1", - "chalk": "1.1.3", - "dateformat": "2.2.0", - "fancy-log": "1.3.0", - "gulplog": "1.0.0", - "has-gulplog": "0.1.0", - "lodash._reescape": "3.0.0", - "lodash._reevaluate": "3.0.0", - "lodash._reinterpolate": "3.0.0", - "lodash.template": "3.6.2", - "minimist": "1.2.0", - "multipipe": "0.1.2", - "object-assign": "3.0.0", + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", "replace-ext": "0.0.1", - "through2": "2.0.3", - "vinyl": "0.5.3" + "through2": "^2.0.0", + "vinyl": "^0.5.0" } }, "gulplog": { @@ -3066,95 +4521,26 @@ "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", "dev": true, "requires": { - "glogg": "1.0.0" + "glogg": "^1.0.0" } }, "handlebars": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", + "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "optional": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } - }, "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "optional": true - } - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true, - "optional": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -3164,12 +4550,12 @@ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, "has": { @@ -3178,7 +4564,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -3187,7 +4573,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -3202,81 +4588,157 @@ "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", "dev": true, "requires": { - "sparkles": "1.0.0" + "sparkles": "^1.0.0" + } + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.1.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "highlight-es": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/highlight-es/-/highlight-es-1.0.1.tgz", - "integrity": "sha1-O7AesfIGLdqrcviyN2ajv4wadx8=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/highlight-es/-/highlight-es-1.0.3.tgz", + "integrity": "sha512-s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==", "dev": true, "requires": { - "chalk": "1.1.3", - "is-es2016-keyword": "1.0.0", - "js-tokens": "3.0.2" + "chalk": "^2.4.0", + "is-es2016-keyword": "^1.0.0", + "js-tokens": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" - }, "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, "requires": { - "parse-passwd": "1.0.0" + "parse-passwd": "^1.0.0" } }, "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha1-bWDjSzq7yDEwYsO3mO+NkBoHrzw=" + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", - "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, + "import-fresh": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz", + "integrity": "sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -3295,23 +4757,17 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, - "infinity-agent": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz", - "integrity": "sha1-ReDi/3qesDCyfWK3SzdEt6esQhY=", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.3.3", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3321,66 +4777,166 @@ "dev": true }, "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, "inquirer": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", - "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", - "dev": true, - "requires": { - "ansi-escapes": "1.4.0", - "ansi-regex": "2.1.1", - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-width": "2.2.0", - "figures": "1.7.0", - "lodash": "4.17.4", - "readline2": "1.0.1", - "run-async": "0.1.0", - "rx-lite": "3.1.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "through": "2.3.8" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", + "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.11", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "interpret": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", - "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", "dev": true }, "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" }, "is-absolute": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", - "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "is-relative": "0.2.1", - "is-windows": "0.2.0" + "kind-of": "^3.0.2" } }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } }, "is-buffer": { "version": "1.1.5", @@ -3388,36 +4944,53 @@ "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", "dev": true }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, "requires": { - "builtin-modules": "1.1.1" + "ci-info": "^1.5.0" } }, - "is-ci": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "ci-info": "1.1.2" + "kind-of": "^3.0.2" } }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "dev": true }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-es2016-keyword": { @@ -3433,9 +5006,9 @@ "dev": true }, "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-finite": { @@ -3444,24 +5017,21 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^2.1.1" } }, "is-installed-globally": { @@ -3470,10 +5040,16 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, "is-npm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", @@ -3481,12 +5057,12 @@ "dev": true }, "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -3495,65 +5071,24 @@ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "1.0.1" - } - }, "is-path-inside": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + "isobject": "^3.0.1" } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", @@ -3566,20 +5101,23 @@ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", "dev": true }, - "is-relative": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", - "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "is-unc-path": "0.1.2" + "has": "^1.0.1" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } }, "is-retry-allowed": { "version": "1.1.0", @@ -3590,8 +5128,16 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } }, "is-typedarray": { "version": "1.0.0", @@ -3599,23 +5145,36 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-unc-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", - "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, "requires": { - "unc-path-regex": "0.1.2" + "unc-path-regex": "^0.1.2" } }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true }, "is-windows": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", - "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true }, "isarray": { @@ -3627,25 +5186,13 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, "isstream": { "version": "0.1.2", @@ -3658,20 +5205,20 @@ "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", "dev": true, "requires": { - "abbrev": "1.0.9", - "async": "1.5.2", - "escodegen": "1.8.1", - "esprima": "2.7.3", - "glob": "5.0.15", - "handlebars": "4.0.10", - "js-yaml": "3.10.0", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "once": "1.3.3", - "resolve": "1.1.7", - "supports-color": "3.2.3", - "which": "1.3.0", - "wordwrap": "1.0.0" + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" }, "dependencies": { "async": { @@ -3686,11 +5233,11 @@ "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "dev": true, "requires": { - "esprima": "2.7.3", - "estraverse": "1.9.3", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.2.0" + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.2.0" } }, "esprima": { @@ -3717,11 +5264,22 @@ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "2.0.10", - "once": "1.3.3", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "resolve": { @@ -3737,7 +5295,7 @@ "dev": true, "optional": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, "supports-color": { @@ -3746,7 +5304,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } }, "wordwrap": { @@ -3758,13 +5316,14 @@ } }, "istextorbinary": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz", - "integrity": "sha1-rOGTVNGpoBc+/rEITOD4ewrX3s8=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", + "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", "dev": true, "requires": { - "binaryextensions": "1.0.1", - "textextensions": "1.0.2" + "binaryextensions": "2", + "editions": "^1.3.3", + "textextensions": "2" } }, "jison": { @@ -3776,10 +5335,10 @@ "JSONSelect": "0.4.0", "cjson": "0.3.0", "ebnf-parser": "0.1.10", - "escodegen": "1.3.3", - "esprima": "1.1.1", - "jison-lex": "0.3.4", - "lex-parser": "0.1.4", + "escodegen": "1.3.x", + "esprima": "1.1.x", + "jison-lex": "0.3.x", + "lex-parser": "~0.1.3", "nomnom": "1.5.2" }, "dependencies": { @@ -3797,30 +5356,30 @@ "integrity": "sha1-gcoo2E+ESZ36jFlNzePYo/Jux6U=", "dev": true, "requires": { - "lex-parser": "0.1.4", + "lex-parser": "0.1.x", "nomnom": "1.5.2" } }, "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha1-LnhEFka9RoLpY/IrbpKCPDCcYtw=", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "dependencies": { "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha1-RJnt3NERDgshi6zy+n9/WfVcqAQ=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true } } @@ -3828,8 +5387,7 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "json-schema": { "version": "0.2.3", @@ -3837,9 +5395,9 @@ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -3852,20 +5410,14 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "dev": true - }, "jsonlint": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.0.tgz", "integrity": "sha1-iKpGvCiaesk7tGyuLVihh6m7SUo=", "dev": true, "requires": { - "JSV": "4.0.2", - "nomnom": "1.5.2" + "JSV": ">= 4.0.x", + "nomnom": ">= 1.5.x" } }, "jsprim": { @@ -3879,36 +5431,102 @@ "verror": "1.10.0" } }, + "just-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", + "dev": true + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.5" + "is-buffer": "^1.1.5" + } + }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dev": true, + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "latest-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz", - "integrity": "sha1-cs/Ebj6NG+ZR4eu1Tqn26pbzdLs=", - "dev": true, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "requires": { - "package-json": "1.2.0" + "invert-kv": "^2.0.0" } }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "lcid": { + "lead": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, "requires": { - "invert-kv": "1.0.0" + "flush-write-stream": "^1.0.2" } }, "levn": { @@ -3917,8 +5535,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "lex-parser": { @@ -3928,79 +5546,84 @@ "dev": true }, "liftoff": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz", - "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", "dev": true, "requires": { - "extend": "3.0.1", - "findup-sync": "0.4.3", - "fined": "1.1.0", - "flagged-respawn": "0.3.2", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.mapvalues": "4.6.0", - "rechoir": "0.6.2", - "resolve": "1.4.0" + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" } }, "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "load-yaml-file": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.1.1.tgz", + "integrity": "sha512-G910TofXH7u0NfslAzqv6c9pHpvBzObNOo2hMG0/KUDpdHeFY0wE/fTBMExt0Gb12gg5bXS7Hj6pb0e+xbBXLA==", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "graceful-fs": "^4.1.5", + "js-yaml": "^3.13.0", + "pify": "^2.3.0", + "strip-bom": "^3.0.0" }, "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } } } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, - "lodash._baseassign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "lodash._basecopy": "3.0.1", - "lodash.keys": "3.1.2" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, "lodash._basecopy": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", "dev": true }, - "lodash._basecreate": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", - "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", - "dev": true - }, "lodash._basetostring": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", @@ -4049,29 +5672,13 @@ "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", "dev": true }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" - }, - "lodash.create": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", - "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", - "dev": true, - "requires": { - "lodash._baseassign": "3.2.0", - "lodash._basecreate": "3.0.3", - "lodash._isiterateecall": "3.0.9" - } - }, "lodash.escape": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", "dev": true, "requires": { - "lodash._root": "3.0.1" + "lodash._root": "^3.0.0" } }, "lodash.isarguments": { @@ -4086,35 +5693,17 @@ "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", "dev": true }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true - }, "lodash.keys": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "dev": true, "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" } }, - "lodash.mapvalues": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", - "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", - "dev": true - }, "lodash.restparam": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", @@ -4127,15 +5716,15 @@ "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", "dev": true, "requires": { - "lodash._basecopy": "3.0.1", - "lodash._basetostring": "3.0.1", - "lodash._basevalues": "3.0.0", - "lodash._isiterateecall": "3.0.9", - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0", - "lodash.keys": "3.1.2", - "lodash.restparam": "3.6.1", - "lodash.templatesettings": "3.1.1" + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" } }, "lodash.templatesettings": { @@ -4144,8 +5733,8 @@ "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", "dev": true, "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0" + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" } }, "lodash.toarray": { @@ -4154,19 +5743,59 @@ "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", "dev": true }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } }, "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "loud-rejection": { @@ -4175,29 +5804,33 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } }, "make-dir": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", - "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -4209,9 +5842,9 @@ } }, "make-error": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", - "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", "dev": true }, "make-error-cause": { @@ -4220,7 +5853,32 @@ "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", "dev": true, "requires": { - "make-error": "1.3.0" + "make-error": "^1.2.0" + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" } }, "map-cache": { @@ -4235,23 +5893,105 @@ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, "marked": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", - "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.2.tgz", + "integrity": "sha512-LqxwVH3P/rqKX4EKGz7+c2G9r98WeM/SW34ybhgNGhUQNKtf1GmmSkJ6cDGJ/t6tiyae49qRkpyTw2B9HOrgUA==", "dev": true }, "marked-terminal": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-1.7.0.tgz", - "integrity": "sha1-yMRgiBx3LHYEtkNnAH7l938SWQQ=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.2.0.tgz", + "integrity": "sha512-Yr1yVS0BbDG55vx7be1D0mdv+jGs9AW563o/Tt/7FTsId2J0yqhrTeXAqq/Q0DyyXltIn6CSxzesQuFqXgafjQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.1.0", + "cardinal": "^2.1.1", + "chalk": "^2.4.1", + "cli-table": "^0.3.1", + "node-emoji": "^1.4.1", + "supports-hyperlinks": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", "dev": true, "requires": { - "cardinal": "1.0.0", - "chalk": "1.1.3", - "cli-table": "0.3.1", - "lodash.assign": "4.2.0", - "node-emoji": "1.8.1" + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "dependencies": { + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "mem": { @@ -4260,7 +6000,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "meow": { @@ -4269,82 +6009,154 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } } } }, - "merge-options": { - "version": "0.0.64", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-0.0.64.tgz", - "integrity": "sha1-y+BPWUppheryf3+PCyo6z2+dVi0=", - "dev": true, - "requires": { - "is-plain-obj": "1.1.0" - } - }, "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" }, "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "requires": { - "mime-db": "1.30.0" + "mime-db": "1.40.0" } }, "mimic-fn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -4353,6 +6165,27 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -4371,82 +6204,122 @@ } }, "mocha": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz", - "integrity": "sha1-HgSA/jbS2lhY0etqzDhBiybqog0=", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz", + "integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==", "dev": true, "requires": { - "browser-stdout": "1.3.0", - "commander": "2.9.0", - "debug": "2.6.8", - "diff": "3.2.0", + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", "escape-string-regexp": "1.0.5", - "glob": "7.1.1", - "growl": "1.9.2", - "he": "1.1.1", - "json3": "3.3.2", - "lodash.create": "3.1.1", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", "mkdirp": "0.5.1", - "supports-color": "3.1.2" + "ms": "2.1.1", + "node-environment-flags": "1.0.5", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.2.2", + "yargs-parser": "13.0.0", + "yargs-unparser": "1.5.0" }, "dependencies": { - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "graceful-readlink": "1.0.1" + "ms": "^2.1.1" } }, - "glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", - "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.3.3", - "path-is-absolute": "1.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "supports-color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", - "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "has-flag": "1.0.0" + "isexe": "^2.0.0" } } } }, "mocha.parallel": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/mocha.parallel/-/mocha.parallel-0.15.3.tgz", - "integrity": "sha1-VGR2kdTxH17/y1Llx4tLv80hRoQ=", + "version": "0.15.6", + "resolved": "https://registry.npmjs.org/mocha.parallel/-/mocha.parallel-0.15.6.tgz", + "integrity": "sha512-pWph+QieKGjk7cHY2hB78wyKJDOQLyOMDuBLQLrFL7riJb8qbQBlCY3XztFHv0D1d4I1gCpiwFNjd4LhVOXPew==", "dev": true, "requires": { - "bluebird": "2.11.0", - "semaphore": "1.1.0" + "bluebird": "^2.9.34", + "semaphore": "^1.0.5" } }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", + "dev": true + }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, "multipipe": { @@ -4458,118 +6331,144 @@ "duplexer2": "0.0.2" } }, + "mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true + }, "mute-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", - "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, "mversion": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/mversion/-/mversion-1.10.1.tgz", - "integrity": "sha1-kyLRpPEfZnDeACTRgjoyphWj1A4=", - "dev": true, - "requires": { - "chalk": "0.5.1", - "cli-usage": "0.1.4", - "contra": "1.9.4", - "minimatch": "1.0.0", - "minimist": "0.2.0", - "rc": "0.5.5", - "semver": "4.3.6", - "through2": "1.1.1", - "update-notifier": "0.2.2", - "vinyl-fs": "0.3.14" + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/mversion/-/mversion-1.13.0.tgz", + "integrity": "sha512-882S8k+ZndowFEDwAzfOXfQvVVPZwTuoYIayqUck0b9h5VNfeppJTnJ8sMOXIiq8JvIzgXWGCOeMmf7ffScjJA==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cli-usage": "^0.1.8", + "contra": "^1.9.4", + "minimatch": "^3.0.4", + "minimist": "^1.2.0", + "rc": "^1.2.8", + "semver": "^5.6.0", + "through2": "^3.0.0", + "update-notifier": "^2.5.0", + "vinyl-fs": "^3.0.3" }, "dependencies": { - "ansi-regex": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", - "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", - "dev": true - }, "ansi-styles": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", - "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=", - "dev": true - }, - "chalk": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", - "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "ansi-styles": "1.1.0", - "escape-string-regexp": "1.0.5", - "has-ansi": "0.1.0", - "strip-ansi": "0.3.0", - "supports-color": "0.2.0" + "color-convert": "^1.9.0" } }, - "has-ansi": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", - "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-regex": "0.2.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "minimatch": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", - "integrity": "sha1-4N0hILSeG3JM6NcUxSCCKpQ4V20=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "brace-expansion": "^1.1.7" } }, - "minimist": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz", - "integrity": "sha1-Tf/lJdriuGTGbC4jxicdev3s784=", - "dev": true - }, - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true + "readable-stream": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz", + "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } }, - "strip-ansi": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", - "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", + "string_decoder": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", + "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", "dev": true, "requires": { - "ansi-regex": "0.2.1" + "safe-buffer": "~5.1.0" } }, "supports-color": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", - "dev": true + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } }, "through2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-1.1.1.tgz", - "integrity": "sha1-CEfLxESfNAVXTb3M2buEG4OsNUU=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", "dev": true, "requires": { - "readable-stream": "1.1.14", - "xtend": "4.0.1" + "readable-stream": "2 || 3" } } } }, - "natives": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz", - "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=", - "dev": true + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } }, "natural-compare": { "version": "1.4.0", @@ -4577,22 +6476,40 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "nested-error-stacks": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", - "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node-emoji": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", + "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", "dev": true, "requires": { - "inherits": "2.0.3" + "lodash.toarray": "^4.4.0" } }, - "node-emoji": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", - "integrity": "sha1-buxr+wdCHiFIx1xrunJCH4UwqCY=", + "node-environment-flags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", "dev": true, "requires": { - "lodash.toarray": "4.4.0" + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" } }, "nomnom": { @@ -4601,8 +6518,8 @@ "integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=", "dev": true, "requires": { - "colors": "0.5.1", - "underscore": "1.1.7" + "colors": "0.5.x", + "underscore": "1.1.x" } }, "nopt": { @@ -4611,18 +6528,19 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1.0.9" + "abbrev": "1" } }, "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -4631,219 +6549,213 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" + } + }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "requires": { + "once": "^1.3.2" } }, "npm-check": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/npm-check/-/npm-check-5.5.2.tgz", - "integrity": "sha512-xK2DNWha5ZUguocpoOmRO6650d6TAWgdmJljm4XhOvjMhROrnitfx4FH9I2b3AgXaPoBICnuy4Ubo+mTaQqlnw==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "callsite-record": "3.2.2", - "chalk": "1.1.3", - "co": "4.6.0", - "depcheck": "0.6.8", - "execa": "0.2.2", - "giturl": "1.0.0", - "global-modules": "1.0.0", - "globby": "4.1.0", - "inquirer": "0.12.0", - "is-ci": "1.1.0", - "lodash": "4.17.4", - "meow": "3.7.0", - "merge-options": "0.0.64", - "minimatch": "3.0.4", - "node-emoji": "1.8.1", - "ora": "0.2.3", - "package-json": "4.0.1", - "path-exists": "2.1.0", - "pkg-dir": "1.0.0", - "semver": "5.4.1", - "semver-diff": "2.1.0", - "text-table": "0.2.0", - "throat": "2.0.2", - "update-notifier": "2.3.0" + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/npm-check/-/npm-check-5.9.0.tgz", + "integrity": "sha512-KLvT5tghIv7bsVhcF3yBCrFu075DpUZROYKXCQvLmOdQuu2gqWTjzrLBzZjtE6wcvzzu5bxb1RRRM8KVzKU0BQ==", + "dev": true, + "requires": { + "babel-runtime": "^6.6.1", + "callsite-record": "^3.0.0", + "chalk": "^1.1.3", + "co": "^4.6.0", + "depcheck": "^0.6.11", + "execa": "^0.2.2", + "giturl": "^1.0.0", + "global-modules": "^1.0.0", + "globby": "^4.0.0", + "inquirer": "^0.12.0", + "is-ci": "^1.0.8", + "lodash": "^4.7.0", + "meow": "^3.7.0", + "minimatch": "^3.0.2", + "node-emoji": "^1.0.3", + "ora": "^0.2.1", + "package-json": "^4.0.1", + "path-exists": "^2.1.0", + "pkg-dir": "^1.0.0", + "preferred-pm": "^1.0.1", + "semver": "^5.0.1", + "semver-diff": "^2.0.0", + "text-table": "^0.2.0", + "throat": "^2.0.2", + "update-notifier": "^2.1.0", + "xtend": "^4.0.1" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "color-convert": "1.9.1" + "restore-cursor": "^1.0.1" } }, - "configstore": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", - "integrity": "sha1-CU7mYquD+tmRdnjeEU+q6o/NypA=", + "execa": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.2.2.tgz", + "integrity": "sha1-4urUcsLDGq1vc/GslW7vReEjIMs=", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.1.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "cross-spawn-async": "^2.1.1", + "npm-run-path": "^1.0.0", + "object-assign": "^4.0.1", + "path-key": "^1.0.0", + "strip-eof": "^1.0.0" } }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "homedir-polyfill": "1.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "inquirer": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", + "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", + "dev": true, + "requires": { + "ansi-escapes": "^1.1.0", + "ansi-regex": "^2.0.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^2.0.0", + "figures": "^1.3.5", + "lodash": "^4.3.0", + "readline2": "^1.0.1", + "run-async": "^0.1.0", + "rx-lite": "^3.1.2", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" } }, - "global-modules": { + "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "global-prefix": "1.0.2", - "is-windows": "1.0.1", - "resolve-dir": "1.0.1" + "number-is-nan": "^1.0.0" } }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "expand-tilde": "2.0.2", - "homedir-polyfill": "1.0.1", - "ini": "1.3.4", - "is-windows": "1.0.1", - "which": "1.3.0" + "brace-expansion": "^1.1.7" } }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "npm-run-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-1.0.0.tgz", + "integrity": "sha1-9cMr9ZX+ga6Sfa7FLoL4sACsPI8=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.0", - "safe-buffer": "5.1.1", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "path-key": "^1.0.0" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, - "is-windows": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", - "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "package-json": "4.0.1" + "pinkie-promise": "^2.0.0" } }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - } + "path-key": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-1.0.0.tgz", + "integrity": "sha1-XVPVeAGWRsDWiADbThRua9wqx68=", + "dev": true }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.1", - "registry-url": "3.1.0", - "semver": "5.4.1" + "find-up": "^1.0.0" } }, - "resolve-dir": { + "restore-cursor": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "expand-tilde": "2.0.2", - "global-modules": "1.0.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "run-async": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", "dev": true, "requires": { - "has-flag": "2.0.0" + "once": "^1.3.0" } }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, - "update-notifier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz", - "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=", - "dev": true, - "requires": { - "boxen": "1.3.0", - "chalk": "2.3.0", - "configstore": "3.1.1", - "import-lazy": "2.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } - } + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true } } }, @@ -4851,9 +6763,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "nsp": { @@ -4862,17 +6773,17 @@ "integrity": "sha1-Q24/E4aeBhDTo49Z1V+bNTzDKBc=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-table": "0.3.1", - "cvss": "1.0.2", - "https-proxy-agent": "1.0.0", - "joi": "6.10.1", - "nodesecurity-npm-utils": "5.0.0", - "path-is-absolute": "1.0.1", - "rc": "1.2.1", - "semver": "5.4.1", - "subcommand": "2.1.0", - "wreck": "6.3.0" + "chalk": "^1.1.1", + "cli-table": "^0.3.1", + "cvss": "^1.0.0", + "https-proxy-agent": "^1.0.0", + "joi": "^6.9.1", + "nodesecurity-npm-utils": "^5.0.0", + "path-is-absolute": "^1.0.0", + "rc": "^1.1.2", + "semver": "^5.0.3", + "subcommand": "^2.0.3", + "wreck": "^6.3.0" }, "dependencies": { "agent-base": { @@ -4881,8 +6792,8 @@ "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", "dev": true, "requires": { - "extend": "3.0.1", - "semver": "5.0.3" + "extend": "~3.0.0", + "semver": "~5.0.1" }, "dependencies": { "semver": { @@ -4911,7 +6822,7 @@ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "chalk": { @@ -4920,11 +6831,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "cli-table": { @@ -4964,9 +6875,9 @@ } }, "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "escape-string-regexp": { @@ -4987,7 +6898,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "hoek": { @@ -5002,9 +6913,9 @@ "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", "dev": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1" + "agent-base": "2", + "debug": "2", + "extend": "3" } }, "ini": { @@ -5025,10 +6936,10 @@ "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", "dev": true, "requires": { - "hoek": "2.16.3", - "isemail": "1.2.0", - "moment": "2.18.1", - "topo": "1.1.0" + "hoek": "2.x.x", + "isemail": "1.x.x", + "moment": "2.x.x", + "topo": "1.x.x" } }, "minimist": { @@ -5037,12 +6948,6 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, - "moment": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", - "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -5062,15 +6967,15 @@ "dev": true }, "rc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" } }, "semver": { @@ -5085,7 +6990,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -5100,10 +7005,10 @@ "integrity": "sha1-XkzspaN3njNlsVEeBfhmh3MC92A=", "dev": true, "requires": { - "cliclopts": "1.1.1", - "debug": "2.6.9", - "minimist": "1.2.0", - "xtend": "4.0.1" + "cliclopts": "^1.1.0", + "debug": "^2.1.3", + "minimist": "^1.2.0", + "xtend": "^4.0.0" } }, "supports-color": { @@ -5118,7 +7023,7 @@ "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "wreck": { @@ -5127,8 +7032,8 @@ "integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=", "dev": true, "requires": { - "boom": "2.10.1", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "xtend": { @@ -5145,9 +7050,9 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "3.0.0", @@ -5155,43 +7060,97 @@ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", "dev": true }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "array-each": "1.0.1", - "array-slice": "1.0.0", - "for-own": "1.0.0", - "isobject": "3.0.1" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "for-in": "1.0.2" + "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true } } }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.entries": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", + "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" } }, "object.pick": { @@ -5200,37 +7159,44 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + "isobject": "^3.0.1" + } + }, + "object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" } }, "once": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } }, "open": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz", - "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=", - "dev": true + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.2.0.tgz", + "integrity": "sha512-Vxf6HJkwrqmvh9UAID3MnMYXntbTxKLOSfOnO7LJdzPf3NE3KQYFNV0/Lcz2VAndbRFil58XVCyh8tiX11fiYw==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } }, "optimist": { "version": "0.6.1", @@ -5238,8 +7204,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.2" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { "minimist": { @@ -5256,12 +7222,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" }, "dependencies": { "wordwrap": { @@ -5278,49 +7244,151 @@ "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-spinners": "0.1.2", - "object-assign": "4.1.1" + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" }, "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } } } }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", "dev": true, "requires": { - "end-of-stream": "0.1.5", - "sequencify": "0.0.7", - "stream-consume": "0.1.0" + "readable-stream": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "requires": { - "lcid": "1.0.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + } } }, "os-tmpdir": { @@ -5329,29 +7397,28 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, - "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" }, "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -5360,7 +7427,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -5370,59 +7437,74 @@ "dev": true }, "package-json": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz", - "integrity": "sha1-yOysCUInzfdqMWh07QXifMk5oOA=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "3.3.1", - "registry-url": "3.1.0" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" } }, - "parse-filepath": { + "parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz", - "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { - "is-absolute": "0.2.6", - "map-cache": "0.2.2", - "path-root": "0.1.1" + "callsites": "^3.0.0" } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" } }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "dev": true }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "2.0.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", @@ -5439,13 +7521,12 @@ "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "path-root": { @@ -5454,7 +7535,7 @@ "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", "dev": true, "requires": { - "path-root-regex": "0.1.2" + "path-root-regex": "^0.1.0" } }, "path-root-regex": { @@ -5464,13 +7545,12 @@ "dev": true }, "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "pify": "^2.0.0" } }, "performance-now": { @@ -5481,36 +7561,112 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + } } }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "dev": true, + "requires": { + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + }, + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + } + }, + "arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "dev": true, + "requires": { + "kind-of": "^1.1.0" + } + }, + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, + "preferred-pm": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-1.0.1.tgz", + "integrity": "sha512-9Uxgin5Xnsl67DBvlNFsmDIlBuG9/XKK2cVBTj//7/7wW6ZY+IC9/GlLqxyHABpoasAsJ1MARFOdYPxMUtndxA==", + "dev": true, + "requires": { + "path-exists": "^3.0.0", + "which-pm": "^1.0.1" + } + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -5523,16 +7679,10 @@ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, "prettier": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.10.2.tgz", - "integrity": "sha512-TcdNoQIWFoHblurqqU6d1ysopjq7UX0oRcT/hJ8qvBAELiYWn+Ugf0AXdnzISEJ7vuhNnQ98N8jR8Sh53x4IZg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.17.0.tgz", + "integrity": "sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw==", "dev": true }, "pretty-hrtime": { @@ -5542,9 +7692,9 @@ "dev": true }, "printj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.0.tgz", - "integrity": "sha1-hUh7Xo+WdjsLSiU2E7753Zs4fjw=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" }, "private": { "version": "0.1.8", @@ -5559,9 +7709,9 @@ "dev": true }, "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "pseudomap": { @@ -5570,136 +7720,115 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "psl": { + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=", - "dev": true, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "kind-of": "3.2.2" + "once": "^1.4.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "is-buffer": "1.1.5" + "wrappy": "1" } } } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } } } }, - "rc": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/rc/-/rc-0.5.5.tgz", - "integrity": "sha1-VBzDMA9GS23+ZDLXVvDy3T6esZk=", + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "deep-extend": "0.2.11", - "ini": "1.3.4", - "minimist": "0.0.10", - "strip-json-comments": "0.1.3" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" }, "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } } } }, - "read-all-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", - "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=", + "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.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "pinkie-promise": "2.0.1", - "readable-stream": "2.3.3" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - } + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" } }, "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + } } }, "readable-stream": { @@ -5708,10 +7837,59 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "readline2": { @@ -5720,9 +7898,26 @@ "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", "mute-stream": "0.0.5" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "mute-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", + "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", + "dev": true + } } }, "recast": { @@ -5732,9 +7927,9 @@ "dev": true, "requires": { "ast-types": "0.8.15", - "esprima-fb": "15001.1001.0-dev-harmony-fb", - "private": "0.1.8", - "source-map": "0.5.7" + "esprima-fb": "~15001.1001.0-dev-harmony-fb", + "private": "~0.1.5", + "source-map": "~0.5.0" }, "dependencies": { "ast-types": { @@ -5757,7 +7952,7 @@ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "resolve": "1.4.0" + "resolve": "^1.1.6" } }, "redent": { @@ -5766,23 +7961,23 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "redeyed": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", - "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", "dev": true, "requires": { - "esprima": "3.0.0" + "esprima": "~4.0.0" }, "dependencies": { "esprima": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", - "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true } } @@ -5793,55 +7988,30 @@ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=", + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, "registry-auth-token": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", - "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", "dev": true, "requires": { - "rc": "1.2.3", - "safe-buffer": "5.1.1" - }, - "dependencies": { - "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", - "dev": true - }, - "rc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.3.tgz", - "integrity": "sha1-UVdakA+N1oOBxxC0cSwhVMPiA1s=", - "dev": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - } + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -5850,33 +8020,28 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.1" - }, - "dependencies": { - "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", - "dev": true - }, - "rc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", - "dev": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - } + "rc": "^1.0.1" + } + }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" } }, "remove-trailing-separator": { @@ -5886,9 +8051,9 @@ "dev": true }, "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true }, "repeat-string": { @@ -5903,7 +8068,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "replace-ext": { @@ -5912,15 +8077,26 @@ "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", "dev": true }, + "replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + } + }, "replacestream": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", - "integrity": "sha1-PuV5gJK+Nksc2xSEMISSyz3/LzY=", + "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1", - "readable-stream": "2.3.3" + "escape-string-regexp": "^1.0.3", + "object-assign": "^4.0.1", + "readable-stream": "^2.0.2" }, "dependencies": { "isarray": { @@ -5935,59 +8111,70 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "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" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } }, "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "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==" + } } }, "require-directory": { @@ -5996,9 +8183,9 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "require-package-name": { "version": "2.0.1", @@ -6006,101 +8193,78 @@ "integrity": "sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk=", "dev": true }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" - } - }, "resolve": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", - "integrity": "sha1-p1vgHFPaJdk0qY69DkxKcxL5KoY=", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", + "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.6" } }, "resolve-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", - "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "dev": true, "requires": { - "expand-tilde": "1.2.2", - "global-modules": "0.2.3" + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" } }, "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "value-or-function": "^3.0.0" } }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "align-text": "0.1.4" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "7.1.2" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.3.3", - "path-is-absolute": "1.0.1" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - } - } + "glob": "^7.1.3" } }, "run-async": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "once": "1.3.3" + "is-promise": "^2.1.0" } }, "rx-lite": { @@ -6109,13 +8273,13 @@ "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", "dev": true }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "rxjs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz", + "integrity": "sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg==", "dev": true, "requires": { - "rx-lite": "3.1.2" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -6123,22 +8287,30 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semaphore": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha1-qq2LhrIP6OmzKxbcLuaCqM0mqKo=", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", "dev": true }, "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha1-4FnAnYVx8FQII3M0M1BdOi8AsY4=" + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, "semver-diff": { "version": "2.1.0", @@ -6146,70 +8318,201 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.4.1" + "semver": "^5.0.3" } }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", - "dev": true + "semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dev": true, + "requires": { + "sver-compat": "^1.5.0" + } }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { - "is-fullwidth-code-point": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, "requires": { - "hoek": "4.2.0" + "kind-of": "^3.2.0" } }, "source-map": { @@ -6218,6 +8521,25 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, "sparkles": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", @@ -6225,22 +8547,45 @@ "dev": true }, "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } }, "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", + "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } }, "sprintf-js": { "version": "1.0.3", @@ -6248,31 +8593,67 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, + "ssf": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.2.tgz", + "integrity": "sha512-rDhAPm9WyIsY8eZEKyE8Qsotb3j/wBdvMWBUsOhJdfhKGLfQidRjiBUV0y/MkyCLiXQ38FG6LWW/VYUtqlIDZQ==", + "requires": { + "frac": "~1.1.2" + } + }, "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, "stackframe": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz", "integrity": "sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ=", "dev": true }, - "stream-consume": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", - "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", "dev": true }, "stream-shift": { @@ -6287,23 +8668,29 @@ "integrity": "sha1-s/D6QZKVICpaKJ9ta+n0kJphcZM=", "dev": true }, - "string-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", - "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", - "dev": true, - "requires": { - "strip-ansi": "3.0.1" - } - }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "string_decoder": { @@ -6312,32 +8699,24 @@ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "0.2.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-indent": { "version": "1.0.1", @@ -6345,13 +8724,13 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz", - "integrity": "sha1-Fkxk43Coo8wAyeAbU55WmCPw7lQ=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "supports-color": { @@ -6360,96 +8739,71 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "supports-hyperlinks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", + "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.4", - "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "has-flag": "^2.0.0", + "supports-color": "^5.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" - } - }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + } } } } }, + "sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dev": true, + "requires": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "table": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz", + "integrity": "sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ==", + "dev": true, + "requires": { + "ajv": "^6.9.1", + "lodash": "^4.17.11", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + } + }, "tabletop": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/tabletop/-/tabletop-1.5.2.tgz", "integrity": "sha1-ZU1ITK5ODmWh8gd6e+xg2nt0ZPM=", "dev": true, "requires": { - "nsp": "2.8.1", - "request": "2.83.0" + "nsp": "^2.6.2", + "request": "^2.51.0" } }, "term-size": { @@ -6458,24 +8812,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" - }, - "dependencies": { - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - } + "execa": "^0.7.0" } }, "text-table": { @@ -6485,9 +8822,9 @@ "dev": true }, "textextensions": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz", - "integrity": "sha1-ZUhjk+4fK7A5pgy7oFsLaL2VAdI=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.4.0.tgz", + "integrity": "sha512-qftQXnX1DzpSV8EddtHIT0eDDEiBF8ywhFYR2lI9xrGtxqKN+CvLXhACeCIGbCpQfxxERbrkZEFb8cZcDKbVZA==", "dev": true }, "throat": { @@ -6508,8 +8845,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" }, "dependencies": { "isarray": { @@ -6524,13 +8861,13 @@ "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "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" } }, "string_decoder": { @@ -6539,26 +8876,27 @@ "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, "ticky": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ticky/-/ticky-1.0.1.tgz", "integrity": "sha1-t8+nHnaPHJAAxJe5FRswlHxQ5G0=", "dev": true }, - "tildify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", - "dev": true, - "requires": { - "os-homedir": "1.0.2" - } - }, "time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", @@ -6566,9 +8904,9 @@ "dev": true }, "timed-out": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz", - "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, "tmp": { @@ -6577,7 +8915,17 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" + } + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" } }, "to-fast-properties": { @@ -6586,12 +8934,60 @@ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dev": true, + "requires": { + "through2": "^2.0.3" + } + }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "requires": { - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } } }, "trim-newlines": { @@ -6600,19 +8996,24 @@ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", "dev": true }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { "version": "0.3.2", @@ -6620,7 +9021,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "typedarray": { @@ -6630,19 +9031,19 @@ "dev": true }, "uglify-js": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.7.tgz", - "integrity": "sha512-esJIpNQIC44EFSrbeFPhiXHy2HJ+dTcnn0Zdkn+5meuLsvoV0mFJffKlyezNIIHNfhF0NpgbifygCfEyAogIhQ==", + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.10.tgz", + "integrity": "sha512-/GTF0nosyPLbdJBd+AwYiZ+Hu5z8KXWnO0WCGt1BQ/u9Iamhejykqmz5o1OHJ53+VAk6xVxychonnApDjuqGsw==", "dev": true, "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" + "commander": "~2.20.0", + "source-map": "~0.6.1" }, "dependencies": { "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "dev": true }, "source-map": { @@ -6653,19 +9054,6 @@ } } }, - "uglify-save-license": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/uglify-save-license/-/uglify-save-license-0.4.1.tgz", - "integrity": "sha1-lXJsF8xv0XHDYX479NjYKqjEzOE=", - "dev": true - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -6678,19 +9066,127 @@ "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=", "dev": true }, - "unique-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "undertaker": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", + "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", "dev": true }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, "unique-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } } }, "unzip-response": { @@ -6699,84 +9195,94 @@ "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", "dev": true }, + "upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "dev": true + }, "update-notifier": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.2.2.tgz", - "integrity": "sha1-5ps6eEtOaGoqzZj15mlEWRmW4Yc=", - "dev": true, - "requires": { - "chalk": "0.5.1", - "configstore": "0.3.2", - "is-npm": "1.0.0", - "latest-version": "1.0.1", - "semver-diff": "2.1.0", - "string-length": "1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", - "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", - "dev": true - }, + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { "ansi-styles": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", - "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=", - "dev": true - }, - "chalk": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", - "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "ansi-styles": "1.1.0", - "escape-string-regexp": "1.0.5", - "has-ansi": "0.1.0", - "strip-ansi": "0.3.0", - "supports-color": "0.2.0" + "color-convert": "^1.9.0" } }, - "has-ansi": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", - "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-regex": "0.2.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "strip-ansi": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", - "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "ansi-regex": "0.2.1" + "has-flag": "^3.0.0" } - }, - "supports-color": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", - "dev": true } } }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, "util-deprecate": { @@ -6786,36 +9292,43 @@ "dev": true }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=" + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.2.tgz", + "integrity": "sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw==", "dev": true, "requires": { - "user-home": "1.1.1" + "homedir-polyfill": "^1.0.1" } }, "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vinyl": { @@ -6824,82 +9337,151 @@ "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", "dev": true, "requires": { - "clone": "1.0.2", - "clone-stats": "0.0.1", + "clone": "^1.0.0", + "clone-stats": "^0.0.1", "replace-ext": "0.0.1" } }, "vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", - "dev": true, - "requires": { - "defaults": "1.0.3", - "glob-stream": "3.1.18", - "glob-watcher": "0.0.6", - "graceful-fs": "3.0.11", - "mkdirp": "0.5.1", - "strip-bom": "1.0.0", - "through2": "0.6.5", - "vinyl": "0.4.6" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" }, "dependencies": { "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", "dev": true }, - "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "dev": true, - "requires": { - "natives": "1.1.0" - } + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true }, "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "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" } }, - "strip-bom": { + "replace-ext": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "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==", "dev": true, "requires": { - "first-chunk-stream": "1.0.0", - "is-utf8": "0.2.1" + "safe-buffer": "~5.1.0" } }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "dev": true, "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" } + } + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dev": true, + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true }, "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "dev": true, "requires": { - "clone": "0.2.0", - "clone-stats": "0.0.1" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" } } } @@ -6910,7 +9492,7 @@ "integrity": "sha1-xfy9Q+LyOEI8LcmL3db3m3K8NFs=", "dev": true, "requires": { - "source-map": "0.1.43" + "source-map": "^0.1.39" }, "dependencies": { "source-map": { @@ -6919,7 +9501,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -6934,23 +9516,32 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=", - "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "widest-line": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "which-pm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-1.1.0.tgz", + "integrity": "sha512-7GHHJQpALk7BWMD8I+xSILSbHyngvBlfSXlwGpdRFY2voFwVCx+eJAybXTzTnUYmt7zio6B9SEdI81T0fBjxNA==", "dev": true, "requires": { - "string-width": "2.1.1" + "load-yaml-file": "^0.1.0", + "path-exists": "^3.0.0" + } + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" }, "dependencies": { "ansi-regex": { @@ -6959,10 +9550,40 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "string-width": { @@ -6971,8 +9592,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -6981,20 +9602,15 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, - "window-size": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", - "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=" - }, "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { @@ -7002,127 +9618,73 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha1-H/YVdcLipOjlENb6TiQ8zhg5mas=", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz", + "integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "xdg-basedir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-1.0.1.tgz", - "integrity": "sha1-FP+PY6T9vLBdW27qIrNvMDO58E4=", - "dev": true, - "requires": { - "user-home": "1.1.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true }, "xlsx": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.13.2.tgz", - "integrity": "sha512-COExny0yVgLZq7ObWQkEXGzsGGtzHGT3j07nhH+jdh1mfOg5WvEqw19r350j9nOSN4Vsy2co89WlDRk5eZ9CZg==", - "requires": { - "adler-32": "1.2.0", - "cfb": "1.0.8", - "codepage": "1.14.0", - "commander": "2.15.1", - "crc-32": "1.2.0", - "exit-on-epipe": "1.0.1", - "ssf": "0.10.2" - }, - "dependencies": { - "adler-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", - "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", - "requires": { - "exit-on-epipe": "1.0.1", - "printj": "1.1.0" - } - }, - "cfb": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.0.8.tgz", - "integrity": "sha1-d/ITST1pfXVP2cD1UR6rWtctAs8=", - "requires": { - "commander": "2.15.1", - "printj": "1.1.2" - }, - "dependencies": { - "printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" - } - } - }, - "codepage": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", - "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", - "requires": { - "commander": "2.14.1", - "exit-on-epipe": "1.0.1" - }, - "dependencies": { - "commander": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", - "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" - } - } - }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" - }, - "crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "requires": { - "exit-on-epipe": "1.0.1", - "printj": "1.1.0" - } - }, - "frac": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", - "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" - }, - "ssf": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.2.tgz", - "integrity": "sha512-rDhAPm9WyIsY8eZEKyE8Qsotb3j/wBdvMWBUsOhJdfhKGLfQidRjiBUV0y/MkyCLiXQ38FG6LWW/VYUtqlIDZQ==", - "requires": { - "frac": "1.1.2" - } - } + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.14.3.tgz", + "integrity": "sha512-wgt9zGKeFp4WIQdPx+j2sNNbDYRbJ+M+uuFcS16pf2yLo/aKcG3RaD4xmS/LHT5rznc6V27NRwIXNWmxLj6eZw==", + "requires": { + "adler-32": "~1.2.0", + "cfb": "^1.1.0", + "codepage": "~1.14.0", + "commander": "~2.17.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "ssf": "~0.10.2" } }, "xtend": { @@ -7132,9 +9694,9 @@ "dev": true }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yallist": { "version": "2.1.2", @@ -7143,33 +9705,110 @@ "dev": true }, "yargs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-5.0.0.tgz", - "integrity": "sha1-M1UUSXfQV1fbuG1uOOwFYSOzpm4=", - "requires": { - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "lodash.assign": "4.2.0", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "window-size": "0.2.0", - "y18n": "3.2.1", - "yargs-parser": "3.2.0" + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", + "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", + "requires": { + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.0.0" } }, "yargs-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-3.2.0.tgz", - "integrity": "sha1-UIE1XRnZ0MjF2BrakIy05tGGZk8=", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", + "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", + "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", + "dev": true, "requires": { - "camelcase": "3.0.0", - "lodash.assign": "4.2.0" + "flat": "^4.1.0", + "lodash": "^4.17.11", + "yargs": "^12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } } } } diff --git a/package.json b/package.json index 34d92122c1..bb81787a9c 100644 --- a/package.json +++ b/package.json @@ -29,42 +29,42 @@ "format:test": "prettier test/*.js --write" }, "dependencies": { - "dom-storage": "^2.0.1", - "es6-promise": "^4.2.2", - "lodash": "^4.17.4", - "request": "^2.83.0", - "xlsx": "^0.13.2", - "yargs": "^5.0.0" + "dom-storage": "^2.1.0", + "es6-promise": "^4.2.6", + "lodash": "^4.17.11", + "request": "^2.88.0", + "xlsx": "^0.14.3", + "yargs": "^13.2.2" }, "devDependencies": { "blueimp-md5": "^2.10.0", - "eslint": "^4.19.1", - "eslint-config-airbnb-base": "^12.1.0", - "eslint-config-standard": "^11.0.0", - "eslint-plugin-import": "^2.12.0", - "eslint-plugin-node": "^6.0.1", - "eslint-plugin-promise": "^3.8.0", - "eslint-plugin-standard": "^3.1.0", - "gulp": "^3.9.1", + "eslint": "^5.16.0", + "eslint-config-airbnb-base": "^13.1.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", + "gulp": "^4.0.1", "gulp-concat": "^2.6.1", "gulp-dereserve": "^0.2.1", - "gulp-exec": "^2.1.3", + "gulp-exec": "^3.0.2", "gulp-jison": "^1.2.0", - "gulp-rename": "^1.2.2", - "gulp-replace": "^0.6.1", - "gulp-shell": "^0.6.3", - "gulp-uglify": "^2.1.2", + "gulp-rename": "^1.4.0", + "gulp-replace": "^1.0.0", + "gulp-shell": "^0.7.0", + "gulp-uglify": "^3.0.2", "istanbul": "^0.4.5", "jison": "^0.4.18", - "mocha": "^3.5.3", - "mocha.parallel": "^0.15.3", - "mversion": "^1.10.1", - "npm-check": "^5.5.2", - "open": "0.0.5", - "prettier": "^1.10.2", + "mocha": "^6.1.4", + "mocha.parallel": "^0.15.6", + "mversion": "^1.13.0", + "npm-check": "^5.9.0", + "open": "6.2.0", + "prettier": "^1.17.0", "strftime": "^0.10.0", "tabletop": "^1.5.2", - "uglify-js": "^3.3.7" + "uglify-js": "^3.5.10" }, "engines": { "node": "*" diff --git a/src/15utility.js b/src/15utility.js index 64878e6c4b..1e39d0a1dd 100755 --- a/src/15utility.js +++ b/src/15utility.js @@ -1125,13 +1125,13 @@ if (!Array.isArray) { */ var xlsnc = (utils.xlsnc = function(i) { - var addr = String.fromCharCode(65 + i % 26); + var addr = String.fromCharCode(65 + (i % 26)); if (i >= 26) { i = ((i / 26) | 0) - 1; - addr = String.fromCharCode(65 + i % 26) + addr; + addr = String.fromCharCode(65 + (i % 26)) + addr; if (i > 26) { i = ((i / 26) | 0) - 1; - addr = String.fromCharCode(65 + i % 26) + addr; + addr = String.fromCharCode(65 + (i % 26)) + addr; } } return addr; diff --git a/src/18promise.js b/src/18promise.js index a19d626534..9cd12be415 100755 --- a/src/18promise.js +++ b/src/18promise.js @@ -142,24 +142,28 @@ if (!utils.global.Promise) { e._state === it ? S(t, e._result) : e._state === st - ? j(t, e._result) - : E( - e, - void 0, - function(e) { - g(t, e); - }, - function(e) { - j(t, e); - } - ); + ? j(t, e._result) + : E( + e, + void 0, + function(e) { + g(t, e); + }, + function(e) { + j(t, e); + } + ); } function w(t, n, r) { n.constructor === t.constructor && r === et && constructor.resolve === nt ? b(t, n) : r === ut - ? j(t, ut.error) - : void 0 === r ? S(t, n) : e(r) ? m(t, n, r) : S(t, n); + ? j(t, ut.error) + : void 0 === r + ? S(t, n) + : e(r) + ? m(t, n, r) + : S(t, n); } function g(e, n) { e === n ? j(e, _()) : t(n) ? w(e, n, v(n)) : S(e, n); @@ -249,10 +253,10 @@ if (!utils.global.Promise) { ? function(n, r) { for (var o = t.length, i = 0; o > i; i++) e.resolve(t[i]).then(n, r); - } + } : function(t, e) { e(new TypeError('You must pass an array to race.')); - } + } ); } function F(t) { @@ -283,14 +287,14 @@ if (!utils.global.Promise) { this.promise[rt] || k(this.promise), Array.isArray(e) ? ((this._input = e), - (this.length = e.length), - (this._remaining = e.length), - (this._result = new Array(this.length)), - 0 === this.length + (this.length = e.length), + (this._remaining = e.length), + (this._result = new Array(this.length)), + 0 === this.length ? S(this.promise, this._result) : ((this.length = this.length || 0), - this._enumerate(), - 0 === this._remaining && S(this.promise, this._result))) + this._enumerate(), + 0 === this._remaining && S(this.promise, this._result))) : j(this.promise, U()); } function U() { @@ -319,7 +323,7 @@ if (!utils.global.Promise) { ? Array.isArray : function(t) { return '[object Array]' === Object.prototype.toString.call(t); - }; + }; var B, G, H, @@ -342,7 +346,13 @@ if (!utils.global.Promise) { tt = new Array(1e3); H = Z ? o() - : X ? s() : $ ? u() : void 0 === R && 'function' == typeof require ? f() : c(); + : X + ? s() + : $ + ? u() + : void 0 === R && 'function' == typeof require + ? f() + : c(); var et = l, nt = h, rt = Math.random() @@ -420,10 +430,10 @@ if (!utils.global.Promise) { 'function' == typeof define && define.amd ? define(function() { return vt; - }) + }) : 'undefined' != typeof module && module.exports - ? (module.exports = vt) - : 'undefined' != typeof this && (this.ES6Promise = vt), + ? (module.exports = vt) + : 'undefined' != typeof this && (this.ES6Promise = vt), dt(); }.call(this)); diff --git a/src/38query.js b/src/38query.js index d3e9d5ab15..7e480f3855 100755 --- a/src/38query.js +++ b/src/38query.js @@ -421,7 +421,7 @@ function doLimit(query) { } var limit; if (query.percent) { - limit = ((query.data.length * query.limit / 100) | 0) + offset; + limit = (((query.data.length * query.limit) / 100) | 0) + offset; } else { limit = (query.limit | 0) + offset; } @@ -518,8 +518,7 @@ var preIndex = function(query) { // Save index to original table alasql.databases[source.databaseid].tables[source.tableid].indices[ hash(source.onrightfns + '`' + source.srcwherefns) - ] = - source.ix; + ] = source.ix; } } //console.log(38,274,source.ix); @@ -570,8 +569,7 @@ var preIndex = function(query) { if (!alasql.databases[source.databaseid].engineid) { alasql.databases[source.databaseid].tables[source.tableid].indices[ hash(source.wxleftfns + '`') - ] = - source.ix; + ] = source.ix; } } // Apply where filter to reduces rows diff --git a/src/39dojoin.js b/src/39dojoin.js index b1ee637e4e..a5bacb2e9d 100755 --- a/src/39dojoin.js +++ b/src/39dojoin.js @@ -158,50 +158,46 @@ function doJoin(query, scope, h) { // STEP 2 - if (h + 1 < query.sources.length) { - if ( - nextsource.joinmode == 'OUTER' || - nextsource.joinmode == 'RIGHT' || - nextsource.joinmode == 'ANTI' - ) { - scope[source.alias] = {}; - - var j = 0; - var jlen = nextsource.data.length; - var dataw; - - while ( - (dataw = nextsource.data[j]) || - (nextsource.getfn && (dataw = nextsource.getfn(j))) || - j < jlen + if (h == 0) { + for (var nh = h + 1; nh < query.sources.length; nh++) { + if ( + nextsource.joinmode == 'OUTER' || + nextsource.joinmode == 'RIGHT' || + nextsource.joinmode == 'ANTI' ) { - if (nextsource.getfn && !nextsource.dontcache) { - nextsource.data[j] = dataw; - } + scope[source.alias] = {}; + + var j = 0; + var jlen = nextsource.data.length; + var dataw; + + while ( + (dataw = nextsource.data[j]) || + (nextsource.getfn && (dataw = nextsource.getfn(j))) || + j < jlen + ) { + if (nextsource.getfn && !nextsource.dontcache) { + nextsource.data[j] = dataw; + } - // console.log(169,dataw._rightjoin,scope); - if (dataw._rightjoin) { - delete dataw._rightjoin; - } else { - // delete dataw._rightjoin; - // console.log(163,h,scope); - if (h == 0) { - scope[nextsource.alias] = dataw; - doJoin(query, scope, h + 2); + // console.log(169,dataw._rightjoin,scope); + if (dataw._rightjoin) { + delete dataw._rightjoin; } else { - //scope[nextsource.alias] = dataw; - //doJoin(query, scope, h+2); - // console.log(169,scope); + // delete dataw._rightjoin; + // console.log(163,h,scope); + scope[nextsource.alias] = dataw; + doJoin(query, scope, nh + 1); } + j++; } - j++; + // debugger; + } else { + //console.log(180,scope); } - // debugger; - } else { - //console.log(180,scope); + source = query.sources[nh]; + nextsource = query.sources[nh + 1]; } - } else { - // console.log(179,scope); } scope[tableid] = undefined; @@ -210,7 +206,7 @@ function doJoin(query, scope, h) { if(h+1 < query.sources.length) { var nextsource = query.sources[h+1]; - if(nextsource.joinmode == "OUTER" || nextsource.joinmode == "RIGHT" + if(nextsource.joinmode == "OUTER" || nextsource.joinmode == "RIGHT" || nextsource.joinmode == "ANTI") { @@ -224,7 +220,7 @@ function doJoin(query, scope, h) { //debugger; // var source = query.sources[h]; -// var tableid = source.alias || source.tableid; +// var tableid = source.alias || source.tableid; // var data = source.data; // Reduce data for looping if there is optimization hint @@ -254,7 +250,7 @@ function doJoin(query, scope, h) { // scope[tableid] = {}; // console.log(scope); doJoin(query,scope,h+2); - } + } }; // Additional join for LEFT JOINS diff --git a/src/423groupby.js b/src/423groupby.js index 0a75166490..e8883642d9 100755 --- a/src/423groupby.js +++ b/src/423groupby.js @@ -135,7 +135,7 @@ if(false) { } /* - */ + */ // s += self.columns.map(function(col){ //console.log('query.selectGroup',query.selectGroup); s += query.selectGroup diff --git a/src/55functions.js b/src/55functions.js index 8a9b8db51c..d5491e4ea7 100755 --- a/src/55functions.js +++ b/src/55functions.js @@ -331,7 +331,7 @@ alasql.aggr.QUART = function(v, s, stage, nth) { nth = !nth ? 1 : nth; var r = s.sort(); - var p = nth * (r.length + 1) / 4; + var p = (nth * (r.length + 1)) / 4; if (Number.isInteger(p)) { return r[p - 1]; //Integer value } diff --git a/src/56sprintf.js b/src/56sprintf.js index d7c9a0f953..b447ab88c1 100755 --- a/src/56sprintf.js +++ b/src/56sprintf.js @@ -52,16 +52,16 @@ stdfn.SPRINTF = function() { var fn; /* - * The callback function accepts the following properties - * x.index contains the substring position found at the origin string - * x[0] contains the found substring - * x[1] contains the index specifier (as \d+\$ or \d+#) - * x[2] contains the alignment specifier ("+" or "-" or empty) - * x[3] contains the padding specifier (space char, "0" or defined as '.) - * x[4] contains the width specifier (as \d*) - * x[5] contains the floating-point precision specifier (as \.\d*) - * x[6] contains the type specifier (as [bcdfosuxX]) - */ + * The callback function accepts the following properties + * x.index contains the substring position found at the origin string + * x[0] contains the found substring + * x[1] contains the index specifier (as \d+\$ or \d+#) + * x[2] contains the alignment specifier ("+" or "-" or empty) + * x[3] contains the padding specifier (space char, "0" or defined as '.) + * x[4] contains the width specifier (as \d*) + * x[5] contains the floating-point precision specifier (as \.\d*) + * x[6] contains the type specifier (as [bcdfosuxX]) + */ return args[0].replace(stdfn.SPRINTF.re, function() { if (arguments[0] == '%%') { return '%'; diff --git a/src/61date.js b/src/61date.js index 4904e055da..681efd531c 100755 --- a/src/61date.js +++ b/src/61date.js @@ -111,7 +111,7 @@ stdfn.YEAR = function(d) { var PERIODS = { year: 1000 * 3600 * 24 * 365, - quarter: 1000 * 3600 * 24 * 365 / 4, + quarter: (1000 * 3600 * 24 * 365) / 4, month: 1000 * 3600 * 24 * 30, week: 1000 * 3600 * 24 * 7, day: 1000 * 3600 * 24, diff --git a/src/69while.js b/src/69while.js index 7e4b357082..52a5af5026 100755 --- a/src/69while.js +++ b/src/69while.js @@ -24,8 +24,7 @@ yy.While.prototype.execute = function(databaseid, params, cb) { // console.log('cb',!!cb); if (cb) { var first = false; - loop(); - function loop(data) { + var loop = function(data) { if (first) { res.push(data); } else { @@ -38,7 +37,8 @@ yy.While.prototype.execute = function(databaseid, params, cb) { res = cb(res); } }, 0); - } + }; + loop(); } else { while (fn(params, alasql)) { var res1 = self.loopstat.execute(databaseid, params); diff --git a/src/80console.js b/src/80console.js index eef2c06d85..82ce77f736 100755 --- a/src/80console.js +++ b/src/80console.js @@ -298,7 +298,7 @@ function scrollTo(element, to, duration) { return; } var difference = to - element.scrollTop; - var perTick = difference / duration * 10; + var perTick = (difference / duration) * 10; setTimeout(function() { if (element.scrollTop === to) { diff --git a/src/833xlsx.js b/src/833xlsx.js index 98cf79c56d..2429169f4a 100755 --- a/src/833xlsx.js +++ b/src/833xlsx.js @@ -174,12 +174,12 @@ alasql.into.XLSX = function(filename, opts, data, columns, cb) { var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'}; var wbout = XLSX.write(wb, wopts); - function s2ab(s) { + var s2ab = function(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; - } + }; /* the saveAs call downloads a file on the local machine */ // saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), '"'+filename+'"') diff --git a/src/FileSaver.js b/src/FileSaver.js index 9ede569b25..d1be862abb 100755 --- a/src/FileSaver.js +++ b/src/FileSaver.js @@ -106,7 +106,7 @@ var saveAs = : reader.result.replace( /^data:[^;]*;/, 'data:attachment/file;' - ); + ); var popup = view.open(url, '_blank'); if (!popup) view.location.href = url; url = undefined; // release reference before dispatching diff --git a/src/alasqlparser.js b/src/alasqlparser.js index 71126b4b2a..ae3bf37242 100755 --- a/src/alasqlparser.js +++ b/src/alasqlparser.js @@ -1898,7 +1898,7 @@ _handle_error: // Return the rule stack depth where the nearest error rule can be found. // Return FALSE when no error recovery rule was found. - function locateNearestErrorRecoveryRule(state) { + var locateNearestErrorRecoveryRule = function(state) { var stack_probe = stack.length - 1; var depth = 0; @@ -2973,4 +2973,4 @@ exports.main = function commonjsMain(args) { if (typeof module !== 'undefined' && require.main === module) { exports.main(process.argv.slice(1)); } -} \ No newline at end of file +} diff --git a/test/test251.js b/test/test251.js index 0e6bf381bc..114a70de6d 100644 --- a/test/test251.js +++ b/test/test251.js @@ -8,6 +8,8 @@ if (typeof exports === 'object') { describe('Test 251 Overwrite XLSX file', function() { if (typeof exports === 'object') { it('1. Overwrite', function(done) { + alasql('SELECT * INTO XLSX("' + __dirname + '/test251.xlsx", {headers:true}) from ?', [{a: 1, b: 2}]); + alasql( 'SELECT HOUR(NOW()), MINUTE(NOW()), SECOND(NOW()) \ INTO XLSX("' + diff --git a/test/test383.js b/test/test383.js index b8f69e0df8..a6d14e6796 100644 --- a/test/test383.js +++ b/test/test383.js @@ -104,7 +104,7 @@ describe('Test 383 - MySQL compatibility issue #452', function() { alasql('UPDATE org4 SET name="George"'); var res = alasql('SELECT * FROM org4'); - assert(res[0].lastUpdateTime > res[0].createTime); + assert(res[0].lastUpdateTime >= res[0].createTime); done(); }); }); diff --git a/test/test800.js b/test/test800.js index b48cb52821..7eddf5bff2 100644 --- a/test/test800.js +++ b/test/test800.js @@ -6,6 +6,15 @@ if (typeof exports === 'object') { } describe('Test 800 - OUTER JOIN missing ids', function() { + before(function() { + alasql('CREATE DATABASE test800;USE test800'); + }); + + after(function() { + alasql.options.modifier = undefined; + alasql('DROP DATABASE test800'); + }); + it('1. ARRAY()', function(done) { var t1 = [ {id: '1', a: 'one'}, diff --git a/test/test801.js b/test/test801.js new file mode 100644 index 0000000000..95eb70de7b --- /dev/null +++ b/test/test801.js @@ -0,0 +1,55 @@ +if (typeof exports === 'object') { + var assert = require('assert'); + var alasql = require('..'); +} else { + __dirname = '.'; +} + +describe('Test 801 - OUTER JOIN of 4 tables', function() { + it('1. ARRAY()', function(done) { + var t1 = [ + {id: '1', a: 'one'}, + {id: '2', a: 'two'}, + {id: '3', a: 'three'}, + {id: '4', a: 'four'} + ]; + var t2 = [ + {id: '1', b: 'A'}, + {id: '2', b: 'B'}, + {id: '5', b: 'E'}, + {id: '6', b: 'F'} + ]; + var t3 = [ + {id: '1', c: 'I'}, + {id: '4', c: 'IV'}, + {id: '5', c: 'V'}, + {id: '7', c: 'VII'}, + {id: '8', c: 'VIII'} + ]; + var t4 = [ + {id: '1', d: 'a'}, + {id: '8', d: 'h'}, + {id: '9', d: 'i'} + ]; + + var res = alasql('SELECT * FROM ? T1 ' + + 'OUTER JOIN ? T2 ON T1.id = T2.id ' + + 'OUTER JOIN ? T3 ON T1.id = T3.id OR T2.id = T3.id ' + + 'OUTER JOIN ? T4 ON T1.id = T4.id OR T2.id = T4.id OR T3.id = T4.id', [t1, t2, t3, t4]); + + var expected = [ + {id: '1', a: 'one', b: 'A', c: 'I', d: 'a'}, + {id: '2', a: 'two', b: 'B'}, + {id: '3', a: 'three'}, + {id: '4', a: 'four', c: 'IV'}, + {id: '5', b: 'E', c: 'V'}, + {id: '6', b: 'F'}, + {id: '7', c: 'VII'}, + {id: '8', c: 'VIII', d: 'h'}, + {id: '9', d: 'i'} + ]; + + assert.deepEqual(res, expected); + done(); + }); +});