// source --> https://lgx.com.ua/wp-content/plugins/featured-image-from-url/includes/html/js/image.js?ver=4.6.5 
jQuery(document).ready(function ($) {
    // lazy load
    if (fifuImageVars.fifu_lazy)
        fifu_lazy();
    else {
        // no WordPress lazy load for the top images
        jQuery('img').each(function (index) {
            if (jQuery(this).offset().top < jQuery(window).height()) {
                jQuery(this).removeAttr('loading');
            }
        });
    }

    // woocommerce lightbox/zoom
    disableClick($);
    disableLink($);

    // zoomImg
    setTimeout(function () {
        jQuery('img.zoomImg').css('z-index', '');
        // Check if the zoomImg is missing an alt attribute and if its preceding sibling is an image
        if (!jQuery('img.zoomImg').attr('alt')) {
            const $zoomImg = jQuery('img.zoomImg');
            const $precedingImg = $zoomImg.prev('img');
            if ($precedingImg.length > 0) {
                $zoomImg.attr('alt', $precedingImg.attr('alt'));
            }
        }
    }, 1000);

    jQuery('img[height=1]').each(function (index) {
        if (jQuery(this).attr('width') != 1)
            jQuery(this).css('position', 'relative');
    });

    // load more buttons + lazy load
    jQuery('a.btn-load-more').on('click', function () {
        fifu_lazy();
    });
});

jQuery(window).on('ajaxComplete', function () {
    if (fifuImageVars.fifu_lazy)
        fifu_lazy();
});

jQuery(document).ajaxSuccess(function ($) {
    if (fifuImageVars.fifu_lazy)
        fifu_lazy_ajax();
});

var observer = new MutationObserver(function (mutations) {
    if (fifuImageVars.fifu_lazy) {
        mutations.forEach(function (mutation) {
            mutation.addedNodes.forEach(function (node) {
                if (jQuery(node).find('img').length > 0) {
                    // ignore WooCommerce zoom
                    if (!jQuery(node).hasClass('pswp__zoom-wrap')) {
                        jQuery(node).find('img').each(function (index) {
                            // dont touch on slider
                            if (jQuery(this).attr('src') == 'null' || jQuery(this).hasClass('lazyload'))
                                return;

                            fifu_lazy_ajax(this);
                        });
                    }
                    return;
                } else if (jQuery(node).prop('tagName') == 'IMG') {
                    // ignore WooCommerce zoom
                    if (!jQuery(node).hasClass('zoomImg'))
                        fifu_lazy_ajax(node);
                    return;
                }
            });
        });
    }
});
observer.observe(document, {attributes: false, childList: true, characterData: false, subtree: true});

function disableClick($) {
    if (!fifuImageVars.fifu_woo_lbox_enabled) {
        firstParentClass = '';
        parentClass = '';
        jQuery('figure.woocommerce-product-gallery__wrapper').find('div.woocommerce-product-gallery__image').each(function (index) {
            parentClass = jQuery(this).parent().attr('class').split(' ')[0];
            if (!firstParentClass)
                firstParentClass = parentClass;

            if (parentClass != firstParentClass)
                return false;

            jQuery(this).children().click(function () {
                return false;
            });
            jQuery(this).children().children().css("cursor", "default");
        });
    }
}

function disableLink($) {
    if (!fifuImageVars.fifu_woo_lbox_enabled) {
        firstParentClass = '';
        parentClass = '';
        jQuery('figure.woocommerce-product-gallery__wrapper').find('div.woocommerce-product-gallery__image').each(function (index) {
            parentClass = jQuery(this).parent().attr('class').split(' ')[0];
            if (!firstParentClass)
                firstParentClass = parentClass;

            if (parentClass != firstParentClass)
                return false;

            jQuery(this).children().attr("href", "");
        });
    }
}

jQuery(document).click(function ($) {
    fifu_fix_gallery_height();
})

function fifu_fix_gallery_height() {
    if (fifuImageVars.fifu_is_flatsome_active) {
        mainImage = jQuery('.woocommerce-product-gallery__wrapper div.flickity-viewport').find('img')[0];
        if (mainImage)
            jQuery('.woocommerce-product-gallery__wrapper div.flickity-viewport').css('height', mainImage.clientHeight + 'px');
    }
};
// source --> https://lgx.com.ua/wp-includes/js/jquery/ui/slider.min.js?ver=1.13.1 
/*!
 * jQuery UI Slider 1.13.1
 * http://jqueryui.com
 *
 * Copyright jQuery Foundation and other contributors
 * Released under the MIT license.
 * http://jquery.org/license
 */
!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./mouse","./core"],e):e(jQuery)}(function(o){"use strict";return o.widget("ui.slider",o.ui.mouse,{version:"1.13.1",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,t=this.options,i=this.element.find(".ui-slider-handle"),s=[],a=t.values&&t.values.length||1;for(i.length>a&&(i.slice(a).remove(),i=i.slice(0,a)),e=i.length;e<a;e++)s.push("<span tabindex='0'></span>");this.handles=i.add(o(s.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(e){o(this).data("ui-slider-handle-index",e).attr("tabIndex",0)})},_createRange:function(){var e=this.options;e.range?(!0===e.range&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:Array.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=o("<div>").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),"min"!==e.range&&"max"!==e.range||this._addClass(this.range,"ui-slider-range-"+e.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,a,n,t,h,l=this,r=this.options;return!r.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),h={x:e.pageX,y:e.pageY},i=this._normValueFromMouse(h),s=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var t=Math.abs(i-l.values(e));(t<s||s===t&&(e===l._lastChangedValue||l.values(e)===r.min))&&(s=t,a=o(this),n=e)}),!1!==this._start(e,n)&&(this._mouseSliding=!0,this._handleIndex=n,this._addClass(a,null,"ui-state-active"),a.trigger("focus"),t=a.offset(),h=!o(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=h?{left:0,top:0}:{left:e.pageX-t.left-a.width()/2,top:e.pageY-t.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,n,i),this._animateOff=!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},t=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,t),!1},_mouseStop:function(e){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,e="horizontal"===this.orientation?(t=this.elementSize.width,e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),e=e/t;return(e=1<e?1:e)<0&&(e=0),"vertical"===this.orientation&&(e=1-e),t=this._valueMax()-this._valueMin(),t=this._valueMin()+e*t,this._trimAlignValue(t)},_uiHash:function(e,t,i){var s={handle:this.handles[e],handleIndex:e,value:void 0!==t?t:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==t?t:this.values(e),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(e,t){return this._trigger("start",e,this._uiHash(t))},_slide:function(e,t,i){var s,a=this.value(),n=this.values();this._hasMultipleValues()&&(s=this.values(t?0:1),a=this.values(t),2===this.options.values.length&&!0===this.options.range&&(i=0===t?Math.min(s,i):Math.max(s,i)),n[t]=i),i!==a&&!1!==this._trigger("slide",e,this._uiHash(t,i,n))&&(this._hasMultipleValues()?this.values(t,i):this.value(i))},_stop:function(e,t){this._trigger("stop",e,this._uiHash(t))},_change:function(e,t){this._keySliding||this._mouseSliding||(this._lastChangedValue=t,this._trigger("change",e,this._uiHash(t)))},value:function(e){return arguments.length?(this.options.value=this._trimAlignValue(e),this._refreshValue(),void this._change(null,0)):this._value()},values:function(e,t){var i,s,a;if(1<arguments.length)return this.options.values[e]=this._trimAlignValue(t),this._refreshValue(),void this._change(null,e);if(!arguments.length)return this._values();if(!Array.isArray(e))return this._hasMultipleValues()?this._values(e):this.value();for(i=this.options.values,s=e,a=0;a<i.length;a+=1)i[a]=this._trimAlignValue(s[a]),this._change(null,a);this._refreshValue()},_setOption:function(e,t){var i,s=0;switch("range"===e&&!0===this.options.range&&("min"===t?(this.options.value=this._values(0),this.options.values=null):"max"===t&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),Array.isArray(this.options.values)&&(s=this.options.values.length),this._super(e,t),e){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(t),this.handles.css("horizontal"===t?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),i=s-1;0<=i;i--)this._change(null,i);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(e){this._super(e),this._toggleClass(null,"ui-state-disabled",!!e)},_value:function(){var e=this.options.value;return e=this._trimAlignValue(e)},_values:function(e){var t,i;if(arguments.length)return e=this.options.values[e],e=this._trimAlignValue(e);if(this._hasMultipleValues()){for(t=this.options.values.slice(),i=0;i<t.length;i+=1)t[i]=this._trimAlignValue(t[i]);return t}return[]},_trimAlignValue:function(e){if(e<=this._valueMin())return this._valueMin();if(e>=this._valueMax())return this._valueMax();var t=0<this.options.step?this.options.step:1,i=(e-this._valueMin())%t,e=e-i;return 2*Math.abs(i)>=t&&(e+=0<i?t:-t),parseFloat(e.toFixed(5))},_calculateNewMax:function(){var e=this.options.max,t=this._valueMin(),i=this.options.step;(e=Math.round((e-t)/i)*i+t)>this.options.max&&(e-=i),this.max=parseFloat(e.toFixed(this._precision()))},_precision:function(){var e=this._precisionOf(this.options.step);return e=null!==this.options.min?Math.max(e,this._precisionOf(this.options.min)):e},_precisionOf:function(e){var t=e.toString(),e=t.indexOf(".");return-1===e?0:t.length-e-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(e){"vertical"===e&&this.range.css({width:"",left:""}),"horizontal"===e&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var t,i,e,s,a,n=this.options.range,h=this.options,l=this,r=!this._animateOff&&h.animate,u={};this._hasMultipleValues()?this.handles.each(function(e){i=(l.values(e)-l._valueMin())/(l._valueMax()-l._valueMin())*100,u["horizontal"===l.orientation?"left":"bottom"]=i+"%",o(this).stop(1,1)[r?"animate":"css"](u,h.animate),!0===l.options.range&&("horizontal"===l.orientation?(0===e&&l.range.stop(1,1)[r?"animate":"css"]({left:i+"%"},h.animate),1===e&&l.range[r?"animate":"css"]({width:i-t+"%"},{queue:!1,duration:h.animate})):(0===e&&l.range.stop(1,1)[r?"animate":"css"]({bottom:i+"%"},h.animate),1===e&&l.range[r?"animate":"css"]({height:i-t+"%"},{queue:!1,duration:h.animate}))),t=i}):(e=this.value(),s=this._valueMin(),a=this._valueMax(),i=a!==s?(e-s)/(a-s)*100:0,u["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[r?"animate":"css"](u,h.animate),"min"===n&&"horizontal"===this.orientation&&this.range.stop(1,1)[r?"animate":"css"]({width:i+"%"},h.animate),"max"===n&&"horizontal"===this.orientation&&this.range.stop(1,1)[r?"animate":"css"]({width:100-i+"%"},h.animate),"min"===n&&"vertical"===this.orientation&&this.range.stop(1,1)[r?"animate":"css"]({height:i+"%"},h.animate),"max"===n&&"vertical"===this.orientation&&this.range.stop(1,1)[r?"animate":"css"]({height:100-i+"%"},h.animate))},_handleEvents:{keydown:function(e){var t,i,s,a=o(e.target).data("ui-slider-handle-index");switch(e.keyCode){case o.ui.keyCode.HOME:case o.ui.keyCode.END:case o.ui.keyCode.PAGE_UP:case o.ui.keyCode.PAGE_DOWN:case o.ui.keyCode.UP:case o.ui.keyCode.RIGHT:case o.ui.keyCode.DOWN:case o.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(o(e.target),null,"ui-state-active"),!1===this._start(e,a)))return}switch(s=this.options.step,t=i=this._hasMultipleValues()?this.values(a):this.value(),e.keyCode){case o.ui.keyCode.HOME:i=this._valueMin();break;case o.ui.keyCode.END:i=this._valueMax();break;case o.ui.keyCode.PAGE_UP:i=this._trimAlignValue(t+(this._valueMax()-this._valueMin())/this.numPages);break;case o.ui.keyCode.PAGE_DOWN:i=this._trimAlignValue(t-(this._valueMax()-this._valueMin())/this.numPages);break;case o.ui.keyCode.UP:case o.ui.keyCode.RIGHT:if(t===this._valueMax())return;i=this._trimAlignValue(t+s);break;case o.ui.keyCode.DOWN:case o.ui.keyCode.LEFT:if(t===this._valueMin())return;i=this._trimAlignValue(t-s)}this._slide(e,a,i)},keyup:function(e){var t=o(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,t),this._change(e,t),this._removeClass(o(e.target),null,"ui-state-active"))}}})});
// source --> https://lgx.com.ua/wp-content/plugins/woocommerce/assets/js/jquery-ui-touch-punch/jquery-ui-touch-punch.min.js?ver=6.6.2 
/*!
 * jQuery UI Touch Punch 0.2.3
 *
 * Copyright 2011–2014, Dave Furfero
 * Dual licensed under the MIT or GPL Version 2 licenses.
 *
 * Depends:
 *  jquery.ui.widget.js
 *  jquery.ui.mouse.js
 */
!function(t){var o,e,u,n;function c(o,t){var e,u;1<o.originalEvent.touches.length||(o.preventDefault(),e=o.originalEvent.changedTouches[0],(u=document.createEvent("MouseEvents")).initMouseEvent(t,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),o.target.dispatchEvent(u))}t.support.touch="ontouchend"in document,t.support.touch&&(o=t.ui.mouse.prototype,e=o._mouseInit,u=o._mouseDestroy,o._touchStart=function(o){!n&&this._mouseCapture(o.originalEvent.changedTouches[0])&&(n=!0,this._touchMoved=!1,c(o,"mouseover"),c(o,"mousemove"),c(o,"mousedown"))},o._touchMove=function(o){n&&(this._touchMoved=!0,c(o,"mousemove"))},o._touchEnd=function(o){n&&(c(o,"mouseup"),c(o,"mouseout"),this._touchMoved||c(o,"click"),n=!1)},o._mouseInit=function(){var o=this;o.element.on({touchstart:t.proxy(o,"_touchStart"),touchmove:t.proxy(o,"_touchMove"),touchend:t.proxy(o,"_touchEnd")}),e.call(o)},o._mouseDestroy=function(){var o=this;o.element.off({touchstart:t.proxy(o,"_touchStart"),touchmove:t.proxy(o,"_touchMove"),touchend:t.proxy(o,"_touchEnd")}),u.call(o)})}(jQuery);
// source --> https://lgx.com.ua/wp-content/plugins/woocommerce-currency-switcher/js/price-slider_33.js?ver=2.3.8 
"use strict";

/* global woocommerce_price_slider_params, accounting */
jQuery(function ($) {

    // woocommerce_price_slider_params is required to continue, ensure the object exists
    if (typeof woocommerce_price_slider_params === 'undefined') {
        return false;
    }

    $(document.body).on('price_slider_create price_slider_slide', function (event, min, max) {

        min = woocs_convert_price_slider(min);
        max = woocs_convert_price_slider(max);

        var woocs_format = "%v %s";
        if (woocs_current_currency.position === 'left') {
            woocs_format = "%s%v";
        } else if (woocs_current_currency.position === 'left_space') {
            woocs_format = "%s %v";
        } else if (woocs_current_currency.position === 'right') {
            woocs_format = "%v%s";

        } else if (woocs_current_currency.position === 'right_space') {
            woocs_format = "%v %s";
        }
        //woocommerce_price_slider_params.currency_format_num_decimals =woocs_current_currency.decimals;

        woocommerce_price_slider_params.currency_format_symbol = woocs_current_currency.symbol;
        woocommerce_price_slider_params.currency_format_num_decimals = woocs_current_currency.decimals;

        $('.price_slider_amount span.from').html(accounting.formatMoney(min, {
            symbol: woocommerce_price_slider_params.currency_format_symbol,
            decimal: woocommerce_price_slider_params.currency_format_decimal_sep,
            thousand: woocommerce_price_slider_params.currency_format_thousand_sep,
            precision: woocommerce_price_slider_params.currency_format_num_decimals,
            format: woocs_format
        }));

        $('.price_slider_amount span.to').html(accounting.formatMoney(max, {
            symbol: woocommerce_price_slider_params.currency_format_symbol,
            decimal: woocommerce_price_slider_params.currency_format_decimal_sep,
            thousand: woocommerce_price_slider_params.currency_format_thousand_sep,
            precision: woocommerce_price_slider_params.currency_format_num_decimals,
            format: woocs_format
        }));

        $(document.body).trigger('price_slider_updated', [min, max]);
    });

    function init_price_filter() {
        $('input#min_price, input#max_price').hide();
        $('.price_slider, .price_label').show();

        var min_price = $('.price_slider_amount #min_price').data('min'),
                max_price = $('.price_slider_amount #max_price').data('max'),
                current_min_price = $('.price_slider_amount #min_price').val(),
                current_max_price = $('.price_slider_amount #max_price').val();

        $('.price_slider:not(.ui-slider)').slider({
            range: true,
            animate: true,
            min: min_price,
            max: max_price,
            values: [current_min_price, current_max_price],
            create: function () {

                $('.price_slider_amount #min_price').val(current_min_price);
                $('.price_slider_amount #max_price').val(current_max_price);

                $(document.body).trigger('price_slider_create', [current_min_price, current_max_price]);
            },
            slide: function (event, ui) {

                $('input#min_price').val(ui.values[0]);
                $('input#max_price').val(ui.values[1]);

                $(document.body).trigger('price_slider_slide', [woocs_convert_price_slider(ui.values[0]), woocs_convert_price_slider(ui.values[1])]);
            },
            change: function (event, ui) {

                $(document.body).trigger('price_slider_change', [ui.values[0], ui.values[1]]);
            }
        });

    }

    init_price_filter();

    var hasSelectiveRefresh = (
            'undefined' !== typeof wp &&
            wp.customize &&
            wp.customize.selectiveRefresh &&
            wp.customize.widgetsPreview &&
            wp.customize.widgetsPreview.WidgetPartial
            );
    if (hasSelectiveRefresh) {
        wp.customize.selectiveRefresh.bind('partial-content-rendered', function () {
            init_price_filter();
        });
    }
});

function  woocs_convert_price_slider(price) {
    var label = price;

    if (woocs_current_currency.rate !== 1) {
        label = Math.ceil(label * parseFloat(woocs_current_currency.rate));
    }

    //+++
    return label;
};
// source --> https://lgx.com.ua/wp-content/plugins/woocommerce-currency-switcher/js/jquery.ddslick.min.js?ver=2.3.8 
"use strict";

(function (a) { function g(a, b) { var c = a.data("ddslick"); var d = a.find(".dd-selected"), e = d.siblings(".dd-selected-value"), f = a.find(".dd-options"), g = d.siblings(".dd-pointer"), h = a.find(".dd-option").eq(b), k = h.closest("li"), l = c.settings, m = c.settings.data[b]; a.find(".dd-option").removeClass("dd-option-selected"); h.addClass("dd-option-selected"); c.selectedIndex = b; c.selectedItem = k; c.selectedData = m; if (l.showSelectedHTML) { d.html((m.imageSrc ? '<img class="dd-selected-image' + (l.imagePosition == "right" ? " dd-image-right" : "") + '" src="' + m.imageSrc + '" />' : "") + (m.text ? '<label class="dd-selected-text">' + m.text + "</label>" : "") + (m.description ? '<small class="dd-selected-description dd-desc' + (l.truncateDescription ? " dd-selected-description-truncated" : "") + '" >' + m.description + "</small>" : "")) } else d.html(m.text); e.val(m.value); c.original.val(m.value); a.data("ddslick", c); i(a); j(a); if (typeof l.onSelected == "function") { l.onSelected.call(this, c) } } function h(b) { var c = b.find(".dd-select"), d = c.siblings(".dd-options"), e = c.find(".dd-pointer"), f = d.is(":visible"); a(".dd-click-off-close").not(d).slideUp(50); a(".dd-pointer").removeClass("dd-pointer-up"); if (f) { d.slideUp("fast"); e.removeClass("dd-pointer-up") } else { d.slideDown("fast"); e.addClass("dd-pointer-up") } k(b) } function i(a) { a.find(".dd-options").slideUp(50); a.find(".dd-pointer").removeClass("dd-pointer-up").removeClass("dd-pointer-up") } function j(a) { var b = a.find(".dd-select").css("height"); var c = a.find(".dd-selected-description"); var d = a.find(".dd-selected-image"); if (c.length <= 0 && d.length > 0) { a.find(".dd-selected-text").css("lineHeight", b) } } function k(b) { b.find(".dd-option").each(function () { var c = a(this); var d = c.css("height"); var e = c.find(".dd-option-description"); var f = b.find(".dd-option-image"); if (e.length <= 0 && f.length > 0) { c.find(".dd-option-text").css("lineHeight", d) } }) } a.fn.ddslick = function (c) { if (b[c]) { return b[c].apply(this, Array.prototype.slice.call(arguments, 1)) } else if (typeof c === "object" || !c) { return b.init.apply(this, arguments) } else {} }; var b = {}, c = { data: [], keepJSONItemsOnTop: false, width: 260, height: null, background: "#eee", selectText: "", defaultSelectedIndex: null, truncateDescription: true, imagePosition: "left", showSelectedHTML: true, clickOffToClose: true, onSelected: function () { } }, d = '<div class="dd-select"><input class="dd-selected-value" type="hidden" /><a class="dd-selected"></a><span class="dd-pointer dd-pointer-down"></span></div>', e = '<ul class="dd-options"></ul>', f = '<style id="css-ddslick" type="text/css">' + ".dd-select{ border-radius:2px; border:solid 1px #ccc; position:relative; cursor:pointer;}" + ".dd-desc { color:#aaa; display:block; overflow: hidden; font-weight:normal; line-height: 1.4em; }" + ".dd-selected{ overflow:hidden; display:block; padding:10px; font-weight:bold;}" + ".dd-pointer{ width:0; height:0; position:absolute; right:10px; top:50%; margin-top:-3px;}" + ".dd-pointer-down{ border:solid 5px transparent; border-top:solid 5px #000; }" + ".dd-pointer-up{border:solid 5px transparent !important; border-bottom:solid 5px #000 !important; margin-top:-8px;}" + ".dd-options{ border:solid 1px #ccc; border-top:none; list-style:none; box-shadow:0px 1px 5px #ddd; display:none; position:absolute; z-index:2000; margin:0; padding:0;background:#fff; overflow:auto;}" + ".dd-option{ padding:10px; display:block; border-bottom:solid 1px #ddd; overflow:hidden; text-decoration:none; color:#333; cursor:pointer;-webkit-transition: all 0.25s ease-in-out; -moz-transition: all 0.25s ease-in-out;-o-transition: all 0.25s ease-in-out;-ms-transition: all 0.25s ease-in-out; }" + ".dd-options > li:last-child > .dd-option{ border-bottom:none;}" + ".dd-option:hover{ background:#f3f3f3; color:#000;}" + ".dd-selected-description-truncated { text-overflow: ellipsis; white-space:nowrap; }" + ".dd-option-selected { background:#f6f6f6; }" + ".dd-option-image, .dd-selected-image { vertical-align:middle; float:left; margin-right:5px; max-width:64px;}" + ".dd-image-right { float:right; margin-right:15px; margin-left:5px;}" + ".dd-container{ position:relative;}​ .dd-selected-text { font-weight:bold}​</style>"; if (a("#css-ddslick").length <= 0) { a(f).appendTo("head") } b.init = function (b) { var b = a.extend({}, c, b); return this.each(function () { var c = a(this), f = c.data("ddslick"); if (!f) { var i = [], j = b.data; c.find("option").each(function () { var b = a(this), c = b.data(); i.push({ text: b.text().trim(), value: b.val(), selected: b.is(":selected"), description: c.description, imageSrc: c.imagesrc }) }); if (b.keepJSONItemsOnTop) a.merge(b.data, i); else b.data = a.merge(i, b.data); var k = c, l = a('<div id="' + c.attr("id") + '"></div>'); c.replaceWith(l); c = l; c.addClass("dd-container").append(d).append(e); var i = c.find(".dd-select"), m = c.find(".dd-options"); m.css({ width: b.width }); i.css({ width: b.width, background: b.background }); c.css({ width: b.width }); if (b.height != null) m.css({ height: b.height, overflow: "auto" }); a.each(b.data, function (a, c) { if (c.selected) b.defaultSelectedIndex = a; m.append("<li>" + '<a class="dd-option">' + (c.value ? ' <input class="dd-option-value" type="hidden" value="' + c.value + '" />' : "") + (c.imageSrc ? ' <img class="dd-option-image' + (b.imagePosition == "right" ? " dd-image-right" : "") + '" src="' + c.imageSrc + '" />' : "") + (c.text ? ' <label class="dd-option-text">' + c.text + "</label>" : "") + (c.description ? ' <small class="dd-option-description dd-desc">' + c.description + "</small>" : "") + "</a>" + "</li>") }); var n = { settings: b, original: k, selectedIndex: -1, selectedItem: null, selectedData: null }; c.data("ddslick", n); if (b.selectText.length > 0 && b.defaultSelectedIndex == null) { c.find(".dd-selected").html(b.selectText) } else { var o = b.defaultSelectedIndex != null && b.defaultSelectedIndex >= 0 && b.defaultSelectedIndex < b.data.length ? b.defaultSelectedIndex : 0; g(c, o) } c.find(".dd-select").on("click.ddslick", function () { h(c) }); c.find(".dd-option").on("click.ddslick", function () { g(c, a(this).closest("li").index()) }); if (b.clickOffToClose) { m.addClass("dd-click-off-close"); c.on("click.ddslick", function (a) { a.stopPropagation() }); a("body").on("click", function () { a(".dd-click-off-close").slideUp(50).siblings(".dd-select").find(".dd-pointer").removeClass("dd-pointer-up") }) } } }) }; b.select = function (b) { return this.each(function () { if (b.index) g(a(this), b.index) }) }; b.open = function () { return this.each(function () { var b = a(this), c = b.data("ddslick"); if (c) h(b) }) }; b.close = function () { return this.each(function () { var b = a(this), c = b.data("ddslick"); if (c) i(b) }) }; b.destroy = function () { return this.each(function () { var b = a(this), c = b.data("ddslick"); if (c) { var d = c.original; b.removeData("ddslick").unbind(".ddslick").replaceWith(d) } }) } })(jQuery);
// source --> https://lgx.com.ua/wp-content/plugins/woocommerce-currency-switcher/js/front.js?ver=2.3.8 
"use strict";
var woocs_loading_first_time = true;//simply flag var
var woocs_sumbit_currency_changing = true;//just a flag variable for drop-down redraws when prices redraws by AJAX

jQuery(function ($) {
    
    if(typeof woocs_array_of_get === 'undefined'){
        return;//to avoid notices and errors
    }

    woocs_array_of_get = JSON.parse(woocs_array_of_get);

    //wp-content\plugins\woocommerce\assets\js\frontend\cart.js
    if (Object.keys(woocs_array_of_get).length !== 0) {
        if ('currency' in woocs_array_of_get) {
            //this code nessesary for correct redrawing of the shipping methods while currency changes on the cart page
            $('body.woocommerce-cart .shop_table.cart').closest('form').find('input[name="update_cart"]').prop('disabled', false);
            $('body.woocommerce-cart .shop_table.cart').closest('form').find('input[name="update_cart"]').trigger('click');
        }
    }

    //keeps data of $_GET array

    if (Object.keys(woocs_array_of_get).length == 0) {
        woocs_array_of_get = {};
    }

    //***
    woocs_array_no_cents = JSON.parse(woocs_array_no_cents);

    //***

    //emptying cart widget after checkout
    if (!parseInt(woocs_get_cookie('woocommerce_items_in_cart'), 10)) {
        $('.widget_shopping_cart_content').empty();
        $(document.body).trigger('wc_fragment_refresh');
    }

    if (woocs_array_of_get.currency != undefined || woocs_array_of_get.removed_item != undefined || woocs_array_of_get.key != undefined)
    {
        woocs_refresh_mini_cart(555);
    }
    if (woocs_redraw_cart) {
        //intercept adding to cart event to redraw mini-cart widget
        jQuery(document).on("adding_to_cart", function () {
            woocs_refresh_mini_cart(999);
        });
    }

    //to make price popup mobile friendly
    jQuery('body').on('click', '.woocs_price_info', function () {
        return false;
    });

    //+++++++++++++++++++++++++++++++++++++++++++++++

    if (woocs_drop_down_view == 'chosen' || woocs_drop_down_view == 'chosen_dark') {
        try {
            if (jQuery("select.woocommerce-currency-switcher").length) {
                jQuery("select.woocommerce-currency-switcher").chosen({
                    disable_search_threshold: 10
                });

                jQuery.each(jQuery('.woocommerce-currency-switcher-form .chosen-container'), function (index, obj) {
                    jQuery(obj).css({'width': jQuery(this).prev('select').data('width')});
                });
            }
        } catch (e) {
            console.log(e);
        }
    }



    if (woocs_drop_down_view == 'ddslick') {
        try {
            woocs_init_ddslick_select();

        } catch (e) {
            console.log(e);
        }
    }

    woocs_loading_first_time = false;


    if (woocs_drop_down_view == 'wselect' && woocs_is_mobile != 1) {
        try {
            //https://github.com/websanova/wSelect#wselectjs
            jQuery('select.woocommerce-currency-switcher').wSelect({
                size: 7
            });
        } catch (e) {
            console.log(e);
        }
    }

    //for flags view instead of drop-down
    jQuery('.woocs_flag_view_item').on("click", function () {
        if (woocs_sumbit_currency_changing) {
            if (jQuery(this).hasClass('woocs_flag_view_item_current')) {
                return false;
            }
            //***

            if (Object.keys(woocs_array_of_get).length == 0) {
                window.location = window.location.href + '?currency=' + jQuery(this).data('currency');
            } else {

                woocs_redirect(jQuery(this).data('currency'));

            }
        }

        return false;
    });

    //for converter
    if (jQuery('.woocs_converter_shortcode').length) {
        jQuery('.woocs_converter_shortcode_button').on("click", function () {
            var amount = jQuery(this).parent('.woocs_converter_shortcode').find('.woocs_converter_shortcode_amount').eq(0).val();
            var from = jQuery(this).parent('.woocs_converter_shortcode').find('.woocs_converter_shortcode_from').eq(0).val();
            var to = jQuery(this).parent('.woocs_converter_shortcode').find('.woocs_converter_shortcode_to').eq(0).val();
            var precision = jQuery(this).parent('.woocs_converter_shortcode').find('.woocs_converter_shortcode_precision').eq(0).val();
            var results_obj = jQuery(this).parent('.woocs_converter_shortcode').find('.woocs_converter_shortcode_results').eq(0);
            jQuery(results_obj).val(woocs_lang_loading + ' ...');
            var data = {
                action: "woocs_convert_currency",
                amount: amount,
                from: from,
                to: to,
                precision: precision
            };

            jQuery.post(woocs_ajaxurl, data, function (value) {
                jQuery(results_obj).val(value);
            });

            return false;

        });
    }

    //for rates
    if (jQuery('.woocs_rates_shortcode').length) {
        jQuery('body').on('change', '.woocs_rates_current_currency', function () {
            var _this = this;
            var data = {
                action: "woocs_rates_current_currency",
                current_currency: jQuery(this).val(),
                precision: jQuery(this).data('precision'),
                exclude: jQuery(this).data('exclude')
            };

            jQuery.post(woocs_ajaxurl, data, function (html) {
                jQuery(_this).parent('.woocs_rates_shortcode').html(html);
            });

            return false;

        });
    }

    //if we using js price update while the site is cached
    if (typeof woocs_shop_is_cached !== 'undefined') {
        if (woocs_shop_is_cached) {

            setTimeout(function () {
                woocs_sumbit_currency_changing = false;
                if (typeof woocs_array_of_get.currency === 'undefined') {

                    if (jQuery('body').hasClass('single')) {
                        jQuery('.woocs_price_info').remove();
                    }

                    /****/
                    var custom_prices = [];
                    jQuery.each(jQuery('.woocs_amount_custom_price'), function (index, item) {
                        custom_prices.push(jQuery(item).data('value'));
                    });
                    if (custom_prices.length != 0) {

                        var data = {
                            action: "woocs_get_custom_price_html",
                            custom_prices: custom_prices
                        };
                        jQuery.post(woocs_ajaxurl, data, function (data) {
                            data = JSON.parse(data);

                            if (!jQuery.isEmptyObject(data)) {
                                jQuery.each(data, function (val, price) {
                                    jQuery(".woocs_amount_custom_price[data-value='" + val + "']").replaceWith(price);
                                });

                            }
                        });
                    }


                    /****/

                    var variation_ids = [];
                    var var_data = jQuery("form.variations_form").data("product_variations");
                    if (typeof var_data != "undefined") {
                        jQuery.each(var_data, function (indx, attr) {
                            variation_ids.push(attr['variation_id']);
                        });
                        if (variation_ids.length != 0) {
                            var data_var = {
                                action: "woocs_get_variation_products_price_html",
                                var_products_ids: variation_ids
                            };

                            jQuery.post(woocs_ajaxurl, data_var, function (data) {
                                data = JSON.parse(data);

                                if (!jQuery.isEmptyObject(data)) {
                                    jQuery.each(var_data, function (indx, attr) {
                                        if (typeof data[attr['variation_id']] != "undefined") {
                                            var_data[indx]['price_html'] = data[attr['variation_id']];
                                        }
                                    });
                                    jQuery("form.variations_form").data("product_variations", var_data);
                                }
                            });
                        }
                    }

                    //***
                    var products_ids = [];
                    jQuery.each(jQuery('.woocs_price_code'), function (index, item) {
                        products_ids.push(jQuery(item).data('product-id'));
                    });

                    //if no prices on the page - do nothing
                    if (products_ids.length === 0) {
                        woocs_sumbit_currency_changing = true;
                        return;
                    }


                    var data = {
                        action: "woocs_get_products_price_html",
                        products_ids: products_ids,
                    };

                    jQuery.post(woocs_ajaxurl, data, function (data) {

                        data = JSON.parse(data);
                        if (!jQuery.isEmptyObject(data)) {
                            jQuery('.woocs_price_info').remove();
			    jQuery('.woocs_price_approx.woocs_cart_item_price').remove();
                            jQuery.each(jQuery('.woocs_price_code'), function (index, item) {

                                if (data.ids[jQuery(item).data('product-id')] != undefined) {
                                    jQuery(item).replaceWith(data.ids[jQuery(item).data('product-id')]);
                                }

                            });
                            jQuery('.woocs_price_code').removeClass('woocs_preloader_ajax');
                            //***
                            jQuery('.woocommerce-currency-switcher').val(data.current_currency);
                            //***
                            if (woocs_drop_down_view == 'chosen' || woocs_drop_down_view == 'chosen_dark') {
                                try {
                                    if (jQuery("select.woocommerce-currency-switcher").length) {
                                        jQuery("select.woocommerce-currency-switcher").chosen({
                                            disable_search_threshold: 10
                                        });
                                        jQuery('select.woocommerce-currency-switcher').trigger("chosen:updated");
                                    }
                                } catch (e) {
                                    console.log(e);
                                }
                            }
                            if (typeof data.currency_data != "undefined") {
                                woocs_current_currency = data.currency_data;
                                /* Price  slider */
                                var min = jQuery('.price_slider_amount #min_price').val();
                                var max = jQuery('.price_slider_amount #max_price').val();
                                if (typeof max != 'undefined' && typeof min != 'undefined') {
                                    max = woocs_convert_price_slider(max);
                                    min = woocs_convert_price_slider(min);
                                    jQuery(document.body).trigger('price_slider_create', [min, max]);
                                }
                            }
                            //***
                            if (woocs_drop_down_view == 'ddslick') {
                                try {
                                    jQuery('div.dd-container').ddslick('destroy');
                                    jQuery('select.woocommerce-currency-switcher').val(data.current_currency);
                                    woocs_init_ddslick_select();
                                } catch (e) {
                                    console.log(e);
                                }
                            }
                            //***
                            if (woocs_drop_down_view == 'wselect' && woocs_is_mobile != 1) {
                                //https://github.com/websanova/wSelect
                                try {
                                    jQuery('select.woocommerce-currency-switcher').val(data.current_currency).change();
                                } catch (e) {
                                    console.log(e);
                                }
                            }
                            //***
                            /* auto switcher*/

                            var auto_switcher = jQuery('.woocs_auto_switcher');
                            if (auto_switcher.length > 0) {
                                woocs_auto_switcher_redraw(data.current_currency, auto_switcher);
                            }
                            woocs_sumbit_currency_changing = true;

                            var shortcode_currency = jQuery('strong.woocs_current_currency_code');
                            if (shortcode_currency.length) {
                                shortcode_currency.text(data.current_currency);
                            }


                            //***
                            //for another woocs switchers styles
                            document.dispatchEvent(new CustomEvent('after_woocs_get_products_price_html', {detail: {
                                    current_currency: data.current_currency
                                }}));
                        }

                    });

                } else {
                    woocs_sumbit_currency_changing = true;
                    jQuery('.woocs_price_code').removeClass('woocs_preloader_ajax');
                }
            }, 300);

        }
    }

    //***
    //removing price info on single page near variation prices
    setTimeout(function () {
        //jQuery('body.single-product .woocommerce-variation-price').find('.woocs_price_info').remove();
    }, 300);
    //***


});


function woocs_redirect(currency) {
    if (!woocs_sumbit_currency_changing) {
        return;
    }

    //***
    var l = window.location.href;
    //  l = l.replace('#', '');
    var l_tmp = l.split('#');
    l = l_tmp[0];
    var id_key = "";
    if (l_tmp.length > 1) {
        id_key = "#" + l_tmp[1]
    }
    //for #id navigation     l = l.replace(/(#.+$)/gi, '');

    l = l.split('?');
    l = l[0];
    var string_of_get = '?';
    woocs_array_of_get.currency = currency;

    /*
     l = l.replace(/(\?currency=[a-zA-Z]+)/g, '?');
     l = l.replace(/(&currency=[a-zA-Z]+)/g, '');
     */

    if (woocs_special_ajax_mode) {
        string_of_get = "";

        var data = {
            action: "woocs_set_currency_ajax",
            currency: currency
        };

        jQuery.post(woocs_ajaxurl, data, function (value) {
            location.reload();
        });

    } else {
        if (Object.keys(woocs_array_of_get).length > 0) {
            jQuery.each(woocs_array_of_get, function (index, value) {
                string_of_get = string_of_get + "&" + index + "=" + value;
            });

        }
        window.location = l + string_of_get + id_key;
    }


}

function woocs_refresh_mini_cart(delay) {
    /** Cart Handling */
    setTimeout(function () {
        try {

            //for refreshing mini cart
            $fragment_refresh = {
                url: wc_cart_fragments_params.ajax_url,
                type: 'POST',
                data: {action: 'woocommerce_get_refreshed_fragments', woocs_woocommerce_before_mini_cart: 'mini_cart_refreshing'},
                success: function (data) {
                    if (data && data.fragments) {

                        jQuery.each(data.fragments, function (key, value) {
                            jQuery(key).replaceWith(value);
                        });

                        try {
                            if ($supports_html5_storage) {
                                sessionStorage.setItem(wc_cart_fragments_params.fragment_name, JSON.stringify(data.fragments));
                                sessionStorage.setItem('wc_cart_hash', data.cart_hash);
                            }
                        } catch (e) {

                        }

                        jQuery('body').trigger('wc_fragments_refreshed');
                    }
                }
            };

            jQuery.ajax($fragment_refresh);


            /* Cart hiding */
            try {
                if (woocs_get_cookie('woocommerce_items_in_cart') > 0)
                {
                    jQuery('.hide_cart_widget_if_empty').closest('.widget_shopping_cart').show();
                } else {
                    jQuery('.hide_cart_widget_if_empty').closest('.widget_shopping_cart').hide();
                }
            } catch (e) {
                //***
            }


            jQuery('body').on('adding_to_cart', function () {
                jQuery('.hide_cart_widget_if_empty').closest('.widget_shopping_cart').show();
            });

        } catch (e) {
            //***
        }

    }, delay);

}

function woocs_get_cookie(name) {
    var matches = document.cookie.match(new RegExp(
            "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
            ));
    return matches ? decodeURIComponent(matches[1]) : undefined;
}

/*auto switcher*/

jQuery(function () {
    jQuery('.woocs_auto_switcher_link').on('click', function () {
        woocs_redirect(jQuery(this).data('currency'));
        return false;
    });

    jQuery('.woocs_auto_switcher li').on('click', function (e) {
        woocs_redirect(jQuery(this).find('a.woocs_auto_switcher_link').data('currency'));
        return false;
    });
});

function woocs_auto_switcher_redraw(curr_curr, switcher) {
    var view = switcher.data('view');
    switch (view) {
        case 'classic_blocks':
            switcher.find('a').removeClass('woocs_curr_curr');
            switcher.find('a[data-currency="' + curr_curr + '"]').addClass('woocs_curr_curr');
            break;
        case 'roll_blocks':
            switcher.find('a').removeClass('woocs_curr_curr');
            switcher.find('li').removeClass('woocs_auto_bg_woocs_curr_curr');
            var current_link = switcher.find('a[data-currency="' + curr_curr + '"]');
            current_link.addClass('woocs_curr_curr');
            current_link.parents('li').addClass('woocs_auto_bg_woocs_curr_curr');
            break;
        case 'round_select':
            switcher.find('a').removeClass('woocs_curr_curr');
            var current_link = switcher.find('a[data-currency="' + curr_curr + '"]');
            current_link.addClass('woocs_curr_curr');
            jQuery('.woocs_current_text').html(current_link.find('.woocs_base_text').html());
            break;
        default:
            break;
    }

}

function woocs_remove_link_param(key, sourceURL) {
    var rtn = sourceURL.split("?")[0],
            param,
            params_arr = [],
            queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : "";
    if (queryString !== "") {
        params_arr = queryString.split("&");
        for (var i = params_arr.length - 1; i >= 0; i -= 1) {
            param = params_arr[i].split("=")[0];
            if (param === key) {
                params_arr.splice(i, 1);
            }
        }
        rtn = rtn + "?" + params_arr.join("&");
    }
    return rtn;
}

function woocs_init_ddslick_select() {
    jQuery.each(jQuery('select.woocommerce-currency-switcher'), function (index, obj) {
        var width = jQuery(obj).data('width');
        var flag_position = jQuery(obj).data('flag-position');
        jQuery(obj).ddslick({
            //data: ddData,
            width: width,
            imagePosition: flag_position,
            selectText: "Select currency",
            //background:'#ff0000',
            onSelected: function (data) {
                if (!woocs_loading_first_time)
                {
                    var form = jQuery(data.selectedItem).closest('form.woocommerce-currency-switcher-form');
                    jQuery(form).find('input[name="woocommerce-currency-switcher"]').eq(0).val(data.selectedData.value);

                    if (Object.keys(woocs_array_of_get).length == 0) {
                        //jQuery(form).submit();
                        woocs_redirect(data.selectedData.value);
                    } else {
                        woocs_redirect(data.selectedData.value);
                    }
                }

            }
        });
    });
};
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/assets/js/helper.js?ver=2.0.4 
'use strict';

Element.prototype.appendBefore = function (element) {
    element.parentNode.insertBefore(this, element);
}, false;


Element.prototype.appendAfter = function (element) {
    element.parentNode.insertBefore(this, element.nextSibling);
}, false;

if (!String.prototype.format) {
    String.prototype.sprintf = function () {
        let args = arguments;
        return this.replace(/{(\d+)}/g, (match, number) => {
            return typeof args[number] !== 'undefined' ? args[number] : match;
        });
    };
}


var woot_helper = new (function () {
    return {
        prepare_ajax_form_data: function (data) {
            const formData = new FormData();

            Object.keys(data).forEach(function (k) {
                formData.append(k, data[k]);
            });

            return formData;
        },
        message: function (message_txt, type = 'notice', duration = 0) {
            if (duration === 0) {
                duration = 1777;
            }

            //***

            let container = null;

            if (!document.querySelectorAll('#growls').length) {
                container = document.createElement('div');
                container.setAttribute('id', 'growls');
                container.className = 'default';
                document.querySelector('body').appendChild(container);
            } else {
                container = document.getElementById('growls');
            }

            //***

            let id = this.create_id('m-');

            let wrapper = document.createElement('div');
            wrapper.className = 'growl growl-large growl-' + type;
            wrapper.setAttribute('id', id);

            let title = document.createElement('div');
            title.className = 'growl-title';
            let title_text = '';

            switch (type) {
                case 'warning':
                    title_text = woot_helper_vars.lang.m_warning;
                    break;

                case 'error':
                    title_text = woot_helper_vars.lang.m_error;
                    break;

                default:
                    title_text = woot_helper_vars.lang.m_notice;
                    break;
            }

            title.innerHTML = title_text;

            let message = document.createElement('div');
            message.className = 'growl-message';
            message.innerHTML = message_txt;

            //***

            //wrapper.appendChild(close);
            wrapper.appendChild(title);
            wrapper.appendChild(message);

            container.innerHTML = '';
            container.appendChild(wrapper);

            wrapper.addEventListener('click', function (e) {
                e.stopPropagation();
                this.remove();
                return false;
            });

            if (duration !== -1) {
                setTimeout(function () {
                    wrapper.style.opacity = 0;
                    setTimeout(function () {
                        wrapper.remove();
                    }, 777);
                }, duration);
        }

        },

        create_id: function (prefix = '') {
            return prefix + Math.random().toString(36).substring(7);
        },
        call_popup(command, more_data = {}, call_id = '', popup_title = '', popup_options = {}, title_info = '') {
            let popup = new Popup23(popup_options);
 
            popup.set_title(popup_title);

            if (title_info.length > 0) {
                popup.set_title_info(title_info);
            }
            //***

            if (!call_id) {
                call_id = woot_helper.create_id('woot-');
            }

            fetch(woot_helper_vars.ajax_url, {
                method: 'POST',
                credentials: 'same-origin',
                body: woot_helper.prepare_ajax_form_data({
                    action: 'woot_get_smth',
                    what: JSON.stringify({call_action: command, more_data: more_data}),
                    call_id: call_id,
                    lang: woot_helper_vars.selected_lang
                })
            }).then(response => response.text()).then(data => {
		
                if (typeof more_data.not_paste !== 'undefined' && more_data.not_paste) {
                    popup.set_content(data);
                }

                let generated_table = null;

                if (popup.node.querySelector('.woot-data-table.woot-data-table-self-call')) {
                    generated_table = new WOOT_GeneratedTables(JSON.parse(popup.node.querySelector('.woot-table-json-data').innerText), popup.node.querySelector('.woot-table-json-data').getAttribute('data-table-id'));
                }

                document.dispatchEvent(new CustomEvent('woot-call-popup', {detail: {
                        popup: popup,
                        call_id: call_id,
                        data: data,
                        generated_table: generated_table
                    }}));
            }).catch((err) => {
                woot_helper.message(err, 'error', 5000);
            });

            return false;
        },

        draw_switcher(name, value, post_id, event) {
            let id = this.create_id('sw');
            let container = document.createElement('div');
            container.classList.add('switcher23-container');

            let hidden = document.createElement('input');
            hidden.setAttribute('type', 'hidden');
            hidden.setAttribute('name', name);
            hidden.setAttribute('value', value);

            let checkbox = document.createElement('input');
            checkbox.setAttribute('type', 'checkbox');
            checkbox.setAttribute('id', id);
            checkbox.setAttribute('class', 'switcher23');
            checkbox.setAttribute('value', value);

            if (value) {
                checkbox.setAttribute('checked', true);
            }

            checkbox.setAttribute('data-post-id', post_id);
            checkbox.setAttribute('data-event', event);

            let label = document.createElement('label');
            label.setAttribute('for', id);
            label.setAttribute('class', 'switcher23-toggle');
            label.innerHTML = '<span></span>';

            container.appendChild(hidden);
            container.appendChild(checkbox);
            container.appendChild(label);


            return container;
        },

        init_switcher(button) {
            button.addEventListener('click', function (e) {

                e.stopPropagation();

                if (this.value > 0) {
                    this.value = 0;
                    this.previousSibling.value = 0;
                    this.removeAttribute('checked');
                } else {
                    this.value = 1;
                    this.previousSibling.value = 1;
                    this.setAttribute('checked', 'checked');
                }

                //Trigger the event
                if (this.getAttribute('data-event').length > 0) {
                    //window.removeEventListener(this.getAttribute('data-event'));

                    let data = {
                        self: this,
                        ajax_action: this.getAttribute('data-ajax-action'),
                        name: this.previousSibling.getAttribute('name'),
                        post_id: this.getAttribute('data-post-id'),
                        value: parseInt(this.value, 10),
                        custom_data: null
                    };

                    if (this.getAttribute('data-custom-data') && this.getAttribute('data-custom-data').length > 0) {
                        data.custom_data = JSON.parse(this.getAttribute('data-custom-data'));
                    }

                    document.dispatchEvent(new CustomEvent(this.getAttribute('data-event'), {detail: data}));

                    //this.setAttribute('data-event-attached', 1);
                }



                return true;
            });
        },

        get_loader_html() {
            return  `<div class="table23-place-loader">${woot_helper_vars.lang.loading}</div><br />`;
        },

        //make thumb bigger on onmouseover
        image_preview(_this) {
            var x = 150;
            var y = 30;
            let container = document.createElement('p');
            container.setAttribute('id', 'woot_img_preview');
            document.body.appendChild(container);

            //***

            let img = document.createElement('img');
            img.setAttribute('src', _this.getAttribute('data-full-img'));
            img.setAttribute('alt', woot_helper_vars.lang.loading);
            //img.setAttribute('width', _this.getAttribute('data-width'));//preview size        
            img.style.maxWidth = _this.getAttribute('data-width') + 'px';

            let text = document.createElement('div');
            text.innerHTML = '<br />' + _this.getAttribute('data-title');

            container.appendChild(img);
            container.appendChild(text);

            container.style.top = (_this.pageY - x) + 'px';
            container.style.left = (_this.pageX + y) + 'px';
            container.style.display = 'block';

            //***

            _this.addEventListener('mousemove', function (e) {
                e.stopPropagation();
                container.style.top = (e.pageY - x) + 'px';
                container.style.left = (e.pageX + y) + 'px';
            });

            _this.addEventListener('mouseleave', function (e) {
                e.stopPropagation();
                container.remove();
            });

        },

        //for tables in popup inbuilted into tables
        get_closest_skin(o_self, skin = '') {
            if (skin.length > 0) {
                return skin;
            }

            let closest = o_self.closest('div.data-table-23');
            skin = closest.getAttribute('data-skin');

            if (!skin) {
                if (closest.parentElement.closest('div.data-table-23')) {
                    closest = closest.parentElement.closest('div.data-table-23');
                    skin = closest.getAttribute('data-skin');
                }
            }

            if (!skin) {
                if (closest.parentElement.closest('div.data-table-23')) {
                    closest = closest.parentElement.closest('div.data-table-23');
                    skin = closest.getAttribute('data-skin');
                }
            }

            return skin;
        }

    };
});
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/assets/js/data-table-23/data-table-23.js?ver=2.0.4 
'use strict';
//Made by RealMag777
//ver.1.0.0
//19-10-2020
class DataTable23 {
    constructor(table_data, table_html_id, additional = {}) {
        this.table_html_id = table_html_id;
        this.is_mobile = 'ontouchstart' in document.documentElement;
        this.selected_lang = 'en_US';
        this.cache = {};
        this.use_cache = true;
        this.filter_form = null;
        this.allow_reset = true;
        this.additional = additional;//for flags of any custom options fir each table
        DataTable23.do_not_print = [];

        let defaults = {
            mode: 'ajax', //ajax,json
            ajax_url: '', //should be inited from outside
            heads: {title: 'Title'},
            cells_width: [],
            hide_on_mobile: [],
            orders: {title: false},
            editable: {},
            request_data: {},
            total_rows_count: 0, //how many rows at all (for pagination)
            filter_data: {}, //connect filtrations
            filter_provider: '', //for example: woof
            current_page: 0,
            use_load_more: 0,
            css_classes: '',
            no_found_text: '',
            show_print_btn: 0,
            post_id: 0,
            compact_view_width: -1,
            stop_notice: '', //replace the table by notice block if not empty!
            style: '',
            skin: '',
            use_flow_header: true,
            link_get_data: (new URLSearchParams((new URL(window.location.href)).search)).toString(), //$_GET
            lang: {
                loading: 'Loading ...',
                no_data: 'No data!',
                error: 'Error!',
                items: 'Items',
                page: 'Page',
                pages: 'Pages',
                load_more: 'Load more'
            },
            pagination: {
                position: 't', //t,b,tb
                next: {
                    class: 'btn',
                    content: '&gt;'
                },
                prev: {
                    class: 'btn',
                    content: '&lt;'
                },
                input: {
                    class: 'table23-form-control'
                }
            },
            per_page_sel_pp: -1,
            per_page_sel_position: 't', //t,b,tb
            print_css_url: ''
        };

        this.settings = this.extend(defaults, table_data);
        this.request_data = this.settings.request_data;//ref to request data to short syntax

        //lang bone fix for ajax requests
        if (DataTable23.selected_lang) {
            this.request_data.lang = DataTable23.selected_lang;
        } else {
            this.request_data.lang = this.settings.selected_lang;
        }


        this.container = document.getElementById(table_html_id);
        if (this.settings.css_classes) {
            this.container.classList.add(this.settings.css_classes);
        }

        this.table = this.container.querySelector('table');
        this.table.setAttribute('id', 't' + Math.random().toString(36).substring(7));
        this.table.innerHTML = '';

        //stop and exit from execution
        if (this.settings.stop_notice.length > 0) {
            this.container.innerHTML = this.settings.stop_notice;
            return;
        }

        this.wrapper = document.createElement('div');
        this.wrapper.className = 'table23-wrapper';

        //!important!
        if (this.is_mobile) {
            this.wrapper.style.overflowX = 'scroll';
        }

        this.wrapper.appendChild(this.table);
        this.container.appendChild(this.wrapper);
        if (this.container.querySelector('.table23-place-loader')) {
            this.container.querySelector('.table23-place-loader').remove();
        }

        if (this.settings.style.length > 0) {
            let style = document.createElement('style');
            style.setAttribute('data-table23-skin', this.settings.skin);
            style.setAttribute('data-table23-skin-of', this.table_html_id);
            style.innerHTML = this.settings.style;
            this.wrapper.appendChild(style);
        }

        //***
        //allows after ajax loading manipulate by table data in json mode
        if (this.settings.mode === 'to_json') {
            this.settings.mode = 'ajax';
            this.settings.switch_to_json = true;
        }
        
        if (this.settings.mode === 'json') {
            this.settings.switch_to_json = true;
        }

        if (this.request_data.mode === 'json' || this.request_data.mode === 'to_json' || this.settings.use_load_more) {
            this.use_cache = false;//as it cached by logic itself
        }

        //***

        this.show_compact = false;

        if (window.innerWidth <= this.settings.compact_view_width && this.settings.compact_view_width !== -1) {
            this.show_compact = true;
        } else {
            this.show_compact = false;
        }

        if (this.settings.use_flow_header && !this.show_compact) {
            this.flow_header = document.createElement('div');
            this.flow_header.className = 'table23-flow-header';
            this.flow_header.style.display = 'none';
            this.flow_header.innerHTML = '<div></div>'.repeat(this.get_cols_count());
            this.wrapper.appendChild(this.flow_header);
        }


        if (this.show_compact && this.settings.use_flow_header && this.flow_header) {
            this.use_flow_header = false;
            this.flow_header.style.display = 'none';
        }

        //draw table
        if (this.get_cols_count() > 0) {
            //set heads
            this.thead = document.createElement('thead');
            let tfoot = document.createElement('tfoot');
            let tbody = document.createElement('tbody');

            this.thead.appendChild(document.createElement('tr'));
            tfoot.appendChild(document.createElement('tr'));

            this.table.appendChild(this.thead);
            this.table.appendChild(tfoot);
            this.table.appendChild(tbody);

            let _this = this;

            //+++
            let counter = 0;
            Object.keys(this.settings.heads).forEach((field_key) => {

                if (this.is_mobile) {
                    if (this.settings.hide_on_mobile.includes(field_key)) {
                        return false;
                    }
                }

                //***

                let v = this.settings.heads[field_key];
                var th = document.createElement('th');
                let span = '';//for additions into html

                th.innerHTML = v + span;

                th.setAttribute('data-key', field_key);

                //***
                //cells width management
                th.style.minWidth = 'auto';
                if (typeof this.settings.cells_width[counter] !== 'undefined') {
                    let w = this.settings.cells_width[counter];

                    if (w.indexOf('px') !== -1 || w.indexOf('%') !== -1) {
                        th.style.width = w;
                        th.style.minWidth = w;
                    } else {
                        th.style.minWidth = w;
                    }
                }

                counter++;

                //***

                if (this.settings.orders[field_key]) {
                    th.classList.add('table23-order-able');
                    if (this.request_data.orderby == field_key) {
                        th.classList.add('table23-order-' + this.request_data.order);
                    }
                }

                this.thead.querySelector('tr').appendChild(th);
                tfoot.querySelector('tr').appendChild(th.cloneNode(true));
            });


            //***

            var th_order_able = this.table.querySelectorAll('th.table23-order-able');

            if (th_order_able.length > 0) {
                for (let i = 0; i < th_order_able.length; i++) {
                    th_order_able[i].addEventListener('click', function (e) {
                        e.stopPropagation();
                        _this.request_data.orderby = this.getAttribute('data-key');
                        _this.request_data.order = _this.settings.orders[_this.request_data.orderby];

                        if (this.classList.contains('table23-order-desc')) {
                            _this.request_data.order = 'asc';
                        }

                        if (this.classList.contains('table23-order-asc')) {
                            _this.request_data.order = 'desc';
                        }

                        //***

                        _this.table.querySelectorAll('th').forEach(function (item) {
                            item.classList.remove('table23-order-asc');
                            item.classList.remove('table23-order-desc');
                        });

                        _this.table.querySelectorAll("th[data-key='" + _this.request_data.orderby + "']").forEach(function (item) {
                            item.classList.add('table23-order-' + _this.request_data.order);
                        });

                        _this.request_data.current_page = 0;
                        _this.allow_reset = true;//for load more button
                        //_this.use_cache = false;//for tests
                        _this.draw_data();
                        _this.draw_pagination();
                        return false;
                    });
                }
            }

            //***
            //not_load_on_init is special dev param
            if (typeof this.settings.not_load_on_init === 'undefined') {
                this.draw_data();
                this.draw_pagination();
            }

            if (this.settings.per_page_sel_position !== 'none') {
                switch (this.settings.per_page_sel_position) {
                    case 't':
                        this.draw_per_page_selector('top');
                        break;

                    case 'b':
                        this.draw_per_page_selector('bottom');
                        break;

                    default:
                        this.draw_per_page_selector('top');
                        this.draw_per_page_selector('bottom');
                        break;
                }
            }


            if (this.settings.use_load_more) {
                this.draw_load_more_button();
            }

        }


        //***
        //for active elements, for example favourites!!
        document.addEventListener('table23-reset-cache', e => {
            if (this.table_html_id === e.detail.table_html_id) {
                this.cache = {};
            }
        }, false);

        //for extensions with table communication returns self
        document.addEventListener('table23-get', e => {
            if (this.table_html_id === e.detail.table_html_id) {
                e.detail.answer.table = this;
            }
        }, false);

        document.dispatchEvent(new CustomEvent('table23-html-drawn', {detail: {otable: this}}));

        //+++
        this.resize_ev_is_locked = false;
        setTimeout(() => {
            window.addEventListener('resize', (e) => {
                if (!this.resize_ev_is_locked) {
                    this.resize_ev_is_locked = true;
                    let prev_state = this.show_compact;

                    if (window.innerWidth <= this.settings.compact_view_width) {
                        this.show_compact = true;
                    } else {
                        this.show_compact = false;
                    }

                    if (this.show_compact) {
                        if (this.settings.use_flow_header && this.flow_header) {
                            this.use_flow_header = false;
                            this.flow_header.style.display = 'none';
                        }
                        this.container.classList.add('table23-in-compact-mode');
                    } else {
                        this.container.classList.remove('table23-in-compact-mode');
                    }

                    if (prev_state !== this.show_compact) {
                        this.redraw_table(false);
                    }

                    setTimeout(() => {
                        //damper, to avoid double act
                        this.resize_ev_is_locked = false;
                    }, 999);
                }
            });
        }, 999);

        //+++

        if (!DataTable23.tables) {
            DataTable23.tables = [];
        }
        //using DataTable23.tables it is possible get any table class object just by table_html_id
        DataTable23.tables[this.table_html_id] = this;
    }

    //***

    draw_data(filter_data = {}) {
        this.notification(this.settings.lang.loading);

        //dynamic js search
        if (typeof filter_data === 'object' && filter_data !== null && Object.keys(filter_data).length > 0) {
            this.request_data.filter_data = filter_data;
            this.request_data.current_page = 0;
        } else {
            //filter reset
            if (filter_data === null) {
                this.request_data.filter_data = {};
                this.request_data.current_page = 0;
            }
        }

        switch (this.settings.mode) {
            case 'json':
                //filter_data not implemented in json requests!
                let d = {};

                if (typeof this.settings.table_data !== 'object') {
                    d = JSON.parse(this.settings.table_data);
                } else {
                    d = this.settings.table_data;
                }

                if (typeof d.rows !== 'undefined') {
                    this.settings.table_data = d.rows;
                    this.settings.total_rows_count = parseInt(d.count, 10);
                } else {
                    this.settings.table_data = d;
                }

                //***

                let sql = 'SELECT * FROM ? ';
                let sql_count = 'SELECT COUNT(*) FROM ? ';

                //+++

                let title_key = 'title';
                if (typeof this.request_data.filter_data[title_key] === 'undefined') {
                    title_key = 'post_title';
                }

                if (typeof this.request_data.filter_data[title_key] !== 'undefined') {
                    let title_tail = ` WHERE (title LIKE '%${this.request_data.filter_data[title_key]}%' OR post_title LIKE '%${this.request_data.filter_data[title_key]}%')`;
                    sql += title_tail;
                    sql_count += title_tail;
                }

                //+++

                this.settings.total_rows_count = parseInt(alasql(sql_count, [this.settings.table_data])[0]['COUNT(*)'], 10);

                //***

                sql += ' ORDER BY ' + this.request_data.orderby + ' ' + this.request_data.order;

                if (parseInt(this.request_data.per_page, 10) !== -1) {
                    sql += ' LIMIT ' + this.request_data.per_page + ' OFFSET ' + (this.request_data.current_page * this.request_data.per_page);
                }

                //***

                let data = alasql(sql, [this.settings.table_data]);
                this.__process_raw_data(data);

                break;
            default:
                //ajax mode

                let fd = this.extend(this.request_data, {
                    filter_data: this.request_data.filter_data ? JSON.stringify(this.request_data.filter_data) : '{}',
                    filter_provider: this.request_data.filter_provider ? this.request_data.filter_provider : ''
                });

                //***

                //data from cache
                if (this.get_cache(this.request_data) && typeof alasql !== 'undefined') {

                    //data from cache
                    if (this.get_pages_count() === 1 && this.get_cache(0)) {
                        let d = this.get_cache(0);

                        if (typeof d.rows !== 'undefined') {
                            d = d.rows;
                        }

                        let sql = 'SELECT * FROM ?';

                        if (typeof this.request_data.filter_data.post_title !== 'undefined') {
                            if (this.request_data.filter_data.post_title.length > 0) {
                                sql += ' WHERE ';
                                for (let k in this.request_data.fields) {
                                    sql += this.request_data.fields[k] + ' LIKE "%' + this.request_data.filter_data.post_title + '%" OR ';
                                }

                                sql = sql.substr(0, sql.length - 3);
                            }
                        }

                        //***

                        sql += ' ORDER BY ' + this.request_data.orderby + ' ' + this.request_data.order;

                        d = alasql(sql, [d]);
                        this.__process_raw_data(d);
                        break;
                    } else {
                        if (this.get_cache(this.request_data)) {
                            this.__process_raw_data(this.get_cache(this.request_data));
                            break;
                        }
                    }

                } else {
                    let body = this.prepare_ajax_form_data(fd);

                    if (this.fetch_controller) {
                        //cancel ajax request if user leaf through too quick
                        this.fetch_controller.abort();
                    }

                    this.fetch_controller = new AbortController();
                    const signal = this.fetch_controller.signal;
                    //avalon23 compatibility  ajax
	            let ajax_url=this.settings.ajax_url;
                    if(location.search.substr(1)){
                        ajax_url+="?"+location.search.substr(1);
                    }
                    fetch(ajax_url, {...{
                                method: 'POST',
                                credentials: 'same-origin', // 'include', default: 'omit'
                                body: body
                        }, signal}).then((response) => response.json()).then((data) => {
                        this.__process_raw_data(data);

                        //useful switch after first ajax data loading
                        if (typeof this.settings.switch_to_json !== 'undefined') {
                            this.settings.table_data = data;
                            this.settings.mode = 'json';
                        }

                        this.set_cache(data, this.request_data);
                    }).catch((err) => {
                        //this.notification(err, 'error', 5000);
                    });

                }

                break;
    }

    }

    __process_raw_data(data) {
        let length = 0;
        if (typeof data.rows === 'undefined') {
            length = data.length;
        } else {
            length = data.rows.length;
        }

        //+++

        if (length > 0) {

            if (typeof data.rows === 'undefined') {
                this.build_rows(data);
            } else {
                this.build_rows(data.rows);
                this.settings.total_rows_count = parseInt(data.count, 10);
                this.set_cache(data);
            }

            this.draw_pagination();
        } else {
            this.reset();

            //if (this.allow_reset) {
            if (this.settings.no_found_text) {
                this.notification(this.settings.no_found_text, true);
            } else {
                this.notification(this.settings.lang.no_data, true);
            }
            //}

            this.settings.total_rows_count = 0;
            this.draw_pagination();
        }


        this.do_after_draw();
    }

    build_rows(data) {
        let _this = this;
        this.reset();
        let head_columns = Object.keys(this.settings.heads);

        let rows_fragment = document.createDocumentFragment();

        //for to_json mode
        let max_iterations = parseInt(this.settings.request_data.per_page);
        if (max_iterations <= 0) {
            max_iterations = Infinity;
        }

        for (let x = 0; x < data.length && x < max_iterations; x++) {
            var row = document.createElement('tr');

            //if show_compact is true
            var compact_td = document.createElement('td');
            compact_td.setAttribute('colspan', this.get_cols_count());


            if (this.show_compact) {
                this.hide_heads();
            } else {
                this.show_heads();
            }

            Object.keys(data[x]).forEach(function (current_field) {

                if (current_field === 'pid') {
                    return;//important special field, this is not column, postID
                }

                if (!head_columns.includes(current_field)) {
                    return;
                }

                if (_this.is_mobile) {
                    if (_this.settings.hide_on_mobile.includes(current_field)) {
                        return;
                    }
                }

                //***

                var css_class = '';
                var data_field_type = '';
                //for editable fields
                if ((Object.keys(_this.settings.editable)).includes(current_field)) {
                    css_class = 'table23-td-editable';
                    data_field_type = _this.settings.editable[current_field];
                }

                //***

                var td = null;

                if (_this.show_compact) {
                    td = document.createElement('div');
                } else {
                    td = document.createElement('td');
                }

                if (css_class.length) {
                    css_class = ' ' + css_class;
                }

                td.className = 'table23_td_cell table23_td_' + current_field.replace(':', '') + css_class;
                td.setAttribute('data-field-type', data_field_type);
                td.setAttribute('data-pid', typeof data[x]['pid'] !== 'undefined' ? data[x]['pid'] : 0);
                td.setAttribute('data-key', current_field);

                if ((Object.keys(_this.settings.custom_field_keys)).includes(current_field)) {
                    //if we need another key for saving for col in each row
                    if (data[x][current_field].custom_field_key) {
                        td.setAttribute('data-field', data[x][current_field].custom_field_key);
                        td.innerHTML = data[x][current_field].value;
                    } else {
                        td.setAttribute('data-field', current_field);
                        td.innerHTML = data[x][current_field];
                    }
                } else {
                    td.setAttribute('data-field', current_field);
                    td.innerHTML = data[x][current_field];
                }

                if (_this.show_compact /* && !['id'].includes(current_field)*/) {
                    td.innerHTML = `<span class="table23_td_cell_title">${_this.settings.heads[current_field]}:</span>` + td.innerHTML;
                }

                //for td view customization depending of its content
                td.classList.add('hash' + _this.hash_code(td.innerHTML));
                row.setAttribute('data-pid', data[x]['pid']);

                if (_this.show_compact) {
                    compact_td.appendChild(td);
                } else {
                    row.appendChild(td);
                }

            });

            if (this.show_compact) {
                row.appendChild(compact_td);
            }

            this.init_row_actions(row);
            rows_fragment.appendChild(row);

        }

        this.table.querySelector('tbody').appendChild(rows_fragment);

        //***
        //load more button
        if (this.settings.use_load_more && this.wrapper.parentElement.querySelector('.table23-load-more-button')) {
            if (this.request_data.per_page > Object.keys(data).length) {
                this.wrapper.parentElement.querySelector('.table23-load-more-button').style.display = 'none';
            } else {
                this.wrapper.parentElement.querySelector('.table23-load-more-button').style.display = 'block';
            }
        }

        //***

        document.dispatchEvent(new CustomEvent('table23-after-build-rows', {detail: {
                otable: this
            }}));
    }

    get_pages_count() {
        let pp = parseInt(this.request_data.per_page, 10);
        if (pp === -1) {
            pp = 99999;
        }
        return Math.ceil(this.settings.total_rows_count / pp);
    }

    draw_pagination() {

        if (!document.getElementById(this.table_html_id)) {
            return;
        }

        this.__draw_print_button();

        this.wrapper = document.getElementById(this.table_html_id).querySelector('.table23-wrapper');

        if (this.settings.use_load_more) {
            return false;
        }

        if (parseInt(this.request_data.per_page, 10) === -1) {
            return false;
        }

        //***

        this.wrapper.parentElement.querySelectorAll('.table23-pagination').forEach(function (item) {
            item.remove();
        });

        if (this.settings.pagination.position !== 'none') {
            switch (this.settings.pagination.position) {
                case 't':
                    this.__draw_pagination('top');
                    break;

                case 'b':
                    this.__draw_pagination('bottom');
                    break;

                default:
                    this.__draw_pagination('top');
                    this.__draw_pagination('bottom');
                    break;
            }

        }


    }

    __draw_print_button() {
        if (typeof this.print_btn_created === 'undefined') {
            if (parseInt(this.settings.show_print_btn)) {
                var btn = document.createElement('a');
                btn.className = 'table23-print-btn';
                btn.setAttribute('href', '#');
                btn.innerHTML = '<i class="woot-icon">&#xe800;</i>';
                this.wrapper.parentElement.insertBefore(btn, this.wrapper);

                btn.addEventListener('click', (e) => {
                    e.preventDefault();

                    if (typeof table23_print_window_width === 'undefined') {
                        var table23_print_window_width = 800;
                    }

                    if (typeof table23_print_window_height === 'undefined') {
                        var table23_print_window_height = 600;
                    }

                    let mywindow = window.open('', 'PRINT', `width=${table23_print_window_width},height=${table23_print_window_height}`);
                    mywindow.document.write('<html><head><title>' + document.title + '</title>');

                    mywindow.document.write(`<link rel="stylesheet" href="${this.settings.print_css_url}" type="text/css" />`);

                    mywindow.document.write('</head><body>');
                    mywindow.document.write('<h3>' + document.title + '</h3>');
                    mywindow.document.write(this.table.outerHTML);
                    mywindow.document.write('</body></html>');

                    for (var th of mywindow.document.getElementsByTagName('th')) {
                        th.removeAttribute('style');
                    }

                    if (typeof table23_do_not_print !== 'undefined') {
                        DataTable23.do_not_print = [...DataTable23.do_not_print, ...table23_do_not_print];
                    }

                    Loop1:
                            for (var i = 0; i < DataTable23.do_not_print.length; i++) {
                        Loop2:
                                for (var th of mywindow.document.getElementsByTagName('th')) {
                            if (th.getAttribute('data-key') === DataTable23.do_not_print[i]) {
                                th.remove();
                            }
                        }
                    }

                    Loop1:
                            for (var i = 0; i < DataTable23.do_not_print.length; i++) {
                        Loop2:
                                for (var td of mywindow.document.getElementsByTagName('td')) {
                            if (td.getAttribute('data-field').trim() === DataTable23.do_not_print[i].trim()) {
                                td.remove();
                            }
                        }
                    }

                    mywindow.document.close();
                    mywindow.focus();

                    mywindow.print();
                    mywindow.onafterprint = () => {
                        mywindow.close();
                    };

                    return true;
                });

                this.print_btn_created = true;//flag
            }
        }
    }

    __draw_pagination(position = 'top') {
        var pages_count = this.get_pages_count();

        if (pages_count > 1) {
            var pagination = document.createElement('div');
            pagination.className = 'table23-pagination';

            if (position === 'top') {
                this.wrapper.parentElement.insertBefore(pagination, this.wrapper);
            } else {
                this.wrapper.parentElement.appendChild(pagination, this.wrapper);
            }

            let _this = this;
            var buttons = [-1, 0, +1];
            for (var p = 0; p < buttons.length; p++) {

                var li = document.createElement('span');
                if (buttons[p] === 0) {
                    //draw input
                    var input = document.createElement('input');
                    input.setAttribute('type', 'number');
                    input.setAttribute('min', 1);
                    input.setAttribute('max', pages_count);
                    input.className = 'table23-pager';
                    input.classList.add(this.settings.pagination.input.class);
                    input.value = this.request_data.current_page + 1;

                    input.addEventListener('change', function (e) {
                        e.stopPropagation();

                        _this.wrapper.parentElement.querySelectorAll('.table23-pagination a').forEach(function (item) {
                            item.classList.remove('table23-hidden');
                        });

                        if (this.value <= 0) {
                            this.value = 1;
                        }

                        if (this.value >= _this.get_pages_count()) {
                            this.value = _this.get_pages_count();
                        }

                        let value = this.value;

                        _this.wrapper.parentElement.querySelectorAll('input[type=number]').forEach(function (item) {
                            item.value = value;
                        });

                        //+++

                        _this.request_data.current_page = parseInt(value, 10) - 1;

                        _this.wrapper.parentElement.querySelectorAll('.table23-current-page span').forEach(function (item) {
                            item.innerHTML = _this.request_data.current_page + 1;
                        });

                        _this.draw_data();

                        //***
                        //buttons accessibility
                        _this.wrapper.parentElement.querySelector('.table23-pagination .table23-prev').classList.remove('table23-hidden');
                        _this.wrapper.parentElement.querySelector('.table23-pagination .table23-next').classList.remove('table23-hidden');

                        if (_this.request_data.current_page <= 0) {
                            _this.request_data.current_page = 0;

                            _this.wrapper.parentElement.querySelectorAll('.table23-prev').forEach(function (item) {
                                item.classList.add('table23-hidden');
                            });
                            _this.wrapper.parentElement.querySelectorAll('.table23-next').forEach(function (item) {
                                item.classList.remove('table23-hidden');
                            });
                        }

                        if (_this.request_data.current_page >= pages_count - 1) {
                            _this.request_data.current_page = pages_count - 1;

                            _this.wrapper.parentElement.querySelectorAll('.table23-prev').forEach(function (item) {
                                item.classList.remove('table23-hidden');
                            });
                            _this.wrapper.parentElement.querySelectorAll('.table23-next').forEach(function (item) {
                                item.classList.add('table23-hidden');
                            });
                        }

                        return true;
                    });

                    li.appendChild(input);
                    pagination.appendChild(li);
                    continue;
                }

                //+++

                var a = document.createElement('a');
                a.setAttribute('href', '#');
                a.setAttribute('data-page', buttons[p]);

                if (buttons[p] > 0) {
                    a.innerHTML = _this.settings.pagination.next.content;
                    a.classList.add(_this.settings.pagination.next.class);
                    a.classList.add('table23-next');
                    if (this.request_data.current_page >= pages_count - 1) {
                        a.classList.add('table23-hidden');
                    }
                } else {
                    a.innerHTML = _this.settings.pagination.prev.content;
                    a.classList.add(_this.settings.pagination.prev.class);
                    a.classList.add('table23-prev');
                    if (this.request_data.current_page <= 0) {
                        a.classList.add('table23-hidden');
                    }
                }

                a.addEventListener('click', function (e) {
                    e.preventDefault();
                    e.stopPropagation();

                    _this.allow_reset = true;

                    let do_not_draw_data = false;
                    if (this.classList.contains('table23-hidden')) {
                        do_not_draw_data = true;//avoid redrawing page on the same extreme page
                    }

                    //+++

                    _this.request_data.current_page += parseInt(this.getAttribute('data-page'), 10);

                    _this.wrapper.parentElement.querySelectorAll('.table23-pagination a').forEach(function (item) {
                        item.classList.remove('table23-hidden');
                    });

                    if (_this.request_data.current_page <= 0) {
                        _this.request_data.current_page = 0;
                        //this.classList.add('table23-hidden');
                    }

                    if (_this.request_data.current_page >= pages_count - 1) {
                        _this.request_data.current_page = pages_count - 1;
                        //this.classList.add('table23-hidden');
                    }

                    if (do_not_draw_data) {
                        return false;
                    }

                    //***

                    _this.wrapper.parentElement.querySelectorAll('.table23-pager').forEach(function (item) {
                        item.value = parseInt(_this.request_data.current_page, 10) + 1;
                    });


                    _this.wrapper.parentElement.querySelectorAll('.table23-current-page span').forEach(function (item) {
                        item.innerHTML = _this.request_data.current_page + 1;
                    });


                    _this.wrapper.parentElement.querySelectorAll('.table23-pagination input[type=number]').forEach(function (item) {
                        item.value = parseInt(_this.request_data.current_page, 10) + 1;
                    });

                    _this.draw_data();
                    return false;
                });

                li.appendChild(a);
                pagination.appendChild(li);
            }

            var li = document.createElement('span');
            li.className = 'table23-current-page';
            li.innerHTML = /*this.settings.lang.page + ': ' + '<span>' + (this.request_data.current_page + 1) + '</span>, ' + */this.settings.lang.pages + ': ' + this.get_pages_count() + ', ' + this.settings.lang.items + ': ' + this.settings.total_rows_count;
            pagination.appendChild(li);
        }

        return true;
    }

    draw_per_page_selector(position = 'top') {

        if (this.settings.use_load_more) {
            return false;
        }

        if (parseInt(this.settings.per_page_sel_pp, 10) === -1) {
            return false;
        }

        //***

        var select = document.createElement('select');
        select.className = 'table23-per-page-selector';

        if (position === 'top') {
            this.wrapper.parentElement.insertBefore(select, this.wrapper);
        } else {
            this.wrapper.parentElement.appendChild(select, this.wrapper);
        }

        this.settings.per_page_sel_pp.forEach(function (pp) {
            let option = document.createElement('option');
            option.setAttribute('value', pp);
            option.innerText = pp;
            select.appendChild(option);
        });

        select.value = this.request_data.per_page;

        //***

        let _this = this;
        select.addEventListener('change', function (e) {
            e.stopPropagation();

            _this.request_data.per_page = parseInt(this.options[e.srcElement.selectedIndex].value, 10);
            _this.request_data.current_page = 0;
            _this.allow_reset = true;
            _this.draw_data();
            _this.draw_pagination();

            //***

            var value = parseInt(this.value, 10);

            _this.wrapper.parentElement.querySelectorAll('select.table23-per-page-selector').forEach(function (item) {
                item.value = value;
            });
        });


    }

    draw_load_more_button() {
        this.allow_reset = false;

        var div = document.createElement('div');
        var button = document.createElement('a');
        div.className = 'table23-load-more-button';
        button.setAttribute('href', '#');
        button.innerHTML = this.settings.lang.load_more;

        let _this = this;
        let last_row = _this.table.querySelector('tbody').lastChild;
        button.addEventListener('click', function (e) {
            e.preventDefault();
            e.stopPropagation();

            _this.allow_reset = false;
            _this.use_cache = false;
            _this.request_data.current_page = parseInt(_this.request_data.current_page, 10) + 1;

            last_row = _this.table.querySelector('tbody').lastChild;
            _this.draw_data();

            if (_this.request_data.current_page > _this.get_pages_count() - 1) {
                this.style.display = 'none';
            }

            return false;
        });

        //scroll to first new row
        document.addEventListener('table23-after-build-rows', function (e) {
            e.stopPropagation();

            if (e.detail.otable.table_html_id === _this.table_html_id) {
                last_row.scrollIntoView({behavior: 'smooth'});
            }
        });

        div.appendChild(button);
        this.wrapper.parentElement.appendChild(div, this.wrapper);
    }

    reset() {

        if (this.table.querySelector('.table23-tr-notice')) {
            this.table.querySelector('.table23-tr-notice').remove();
        }

        let allow = this.allow_reset;
        if (typeof this.allow_reset_force !== 'undefined') {
            allow = this.allow_reset_force;
            delete this.allow_reset_force;//one time using per operation
        }

        if (allow) {
            this.table.querySelector('tbody').style.height = this.table.querySelector('tbody').clientHeight;//offsetHeight
            this.table.querySelector('tbody').innerHTML = '';
        }
    }

    notification(word, no_flow = false) {
        var row = document.createElement('tr');
        var td = document.createElement('td');
        td.setAttribute('colspan', this.get_cols_count());
        td.setAttribute('align', 'center');
        td.className = 'table23-empty-row';
        td.innerHTML = word;
        row.appendChild(td);
        if (!no_flow) {
            row.className = 'table23-tr-notice';
        }

        if (this.table.querySelector('tbody tr') !== null && this.allow_reset) {
            let first_row = this.table.querySelector('tbody').querySelector('tr');
            if (first_row) {
                row.appendBefore(first_row);
            } else {
                this.table.querySelector('tbody').appendChild(row);
            }
        } else {
            this.table.querySelector('tbody').appendChild(row);
        }

        row.style.width = this.table.offsetWidth - 4 + 'px';
    }

    get_cols_count() {
        return Object.keys(this.settings.heads).length;
    }

    prepare_ajax_form_data(data) {
        const formData = new FormData();

        Object.keys(data).forEach(function (k) {
            formData.append(k, data[k]);
        });

        return formData;
    }

    extend(d1, d2) {
        return {...d1, ...d2};
    }

    //***

    __hash_object(obj) {
        return (JSON.stringify(obj)).split('').reduce((prevHash, currVal) => (((prevHash << 5) - prevHash) + currVal.charCodeAt(0)) | 0, 0);
    }

    set_cache(data, request_data) {
        if (request_data && this.use_cache) {
            let index = 0;

            //if (this.get_pages_count() > 1) {
            index = this.__hash_object(request_data);
            //}

            //for zero index of onepage tables
            if (index === 0) {
                if (Object.keys(this.cache).length !== 0) {
                    index = this.__hash_object(request_data);
                }
            }

            this.cache[index] = data;
        }
    }

    get_cache(request_data) {
        let index = 0;

        if (this.use_cache) {
            //if (this.get_pages_count() > 1) {
            index = this.__hash_object(request_data);
            //}

            if (typeof this.cache[index] !== 'undefined') {
                return this.cache[index];
            }
        }

        return null;
    }

    hash_code(str) {
        return str.split('').reduce((prevHash, currVal) => (((prevHash << 5) - prevHash) + currVal.charCodeAt(0)) | 0, 0);
    }

    delete_row(pid) {
        if (this.table.querySelector('tr[data-pid="' + pid + '"]')) {
            this.table.querySelector('tr[data-pid="' + pid + '"]').remove();

            if (this.settings.mode === 'json') {

                if (typeof this.settings.table_data.rows !== 'undefined') {
                    for (const key of Object.keys(this.settings.table_data.rows)) {
                        if (parseInt(pid) === parseInt(this.settings.table_data.rows[key].pid)) {
                            delete this.settings.table_data.rows[key];
                            //keys reset
                            this.settings.table_data.rows = this.settings.table_data.rows.filter(function (item) {
                                return item !== 'undefined';
                            });
                            break;
                        }
                    }
                } else {
                    for (const key of Object.keys(this.settings.table_data)) {
                        if (parseInt(pid) === parseInt(this.settings.table_data[key].pid)) {
                            delete this.settings.table_data[key];
                            //keys reset
                            this.settings.table_data = this.settings.table_data.filter(function (item) {
                                return item !== 'undefined';
                            });
                            break;
                        }
                    }
                }

            }
        }
    }

    delete_column(data_key) {
        Array.from(this.table.querySelectorAll(`[data-key="${data_key}"]`)).forEach(function (cell) {
            cell.remove();
        });
    }

    redraw_table(set_first_page = true) {

        if (set_first_page) {
            this.request_data.current_page = 0;
        }

        if (!this.allow_reset) {
            this.allow_reset_force = true;
        }

        this.draw_data();
        this.draw_pagination();
    }

    hide_heads() {
        this.table.querySelector('thead').style.display = 'none';
        this.table.querySelector('tfoot').style.display = 'none';
    }

    show_heads() {
        this.table.querySelector('thead').removeAttribute('style');
        this.table.querySelector('tfoot').removeAttribute('style');
    }

    do_after_draw() {
        document.addEventListener('scroll', (e) => {
            let flow = this.wrapper.querySelector('.table23-flow-header');

            if (flow && !this.show_compact) {
                let box = this.wrapper.getBoundingClientRect();
                let first_row = this.wrapper.querySelector('table thead tr');

                if (box.top <= -15) {
                    flow.style.display = 'block';
                    flow.style.width = (this.wrapper.querySelector('table').offsetWidth + 1) + 'px';

                    if (document.getElementById('wpadminbar')) {
                        flow.style.top = Math.abs(box.top) + document.getElementById('wpadminbar').offsetHeight + 'px';
                    } else {
                        flow.style.top = Math.abs(box.top) + 'px';
                    }

                    Array.from(first_row.querySelectorAll('th')).forEach((th, index) => {
                        if(this.container.classList.contains('data-table-23-separated')){
                            flow.querySelectorAll('div')[index].style.width = th.offsetWidth + 1 + 'px';
                        }else{
                            flow.querySelectorAll('div')[index].style.width = th.offsetWidth + 'px';
                        }                        
                        
                        flow.querySelectorAll('div')[index].innerHTML = th.innerText;
                    });

                } else {
                    flow.style.display = 'none';
                }
            }
        });

        //+++
        if (!this.show_compact) {
            Array.from(this.table.querySelectorAll('thead th')).forEach((th, th_index) => {
                ['table23-order-desc', 'table23-order-asc'].forEach((css_class, i) => {
                    if (th.classList.contains(css_class) && this.table.querySelectorAll('tbody td').length > 1) {
                        Array.from(this.table.querySelectorAll('tbody tr')).forEach((tr, index) => {
                            if (tr.querySelector(`td:nth-child(${th_index + 1})`)) {
                                tr.querySelector(`td:nth-child(${th_index + 1})`).classList.add(css_class);
                            }
                        });
                    }
                });
            });
        }

    }

    get_cell(pid, field) {
        return this.table.querySelector(`td[data-pid="${pid}"][data-field="${field}"]`);
    }

    init_json_fields_saving() {
        this.change_cell_ev_handler = this.init_json_fields_saving_listener.bind(this);
        document.addEventListener('after_' + this.save_table_field_action, this.change_cell_ev_handler);
    }

    init_json_fields_saving_listener(e) {
        if (this.settings.mode === 'json'/* && e.detail.self === this*/) {
            //console.log('event ' + 'after_' + this.save_table_field_action);

            let cell = this.get_cell(e.detail.post_id, e.detail.field);

            if (cell) {
                if (cell.querySelector('input[type="checkbox"]')) {
                    if (e.detail.value) {
                        cell.querySelector('input[type="checkbox"]').setAttribute('checked', true);
                    } else {
                        cell.querySelector('input[type="checkbox"]').removeAttribute('checked');
                    }
                }

                if (cell.querySelector('select')) {
                    cell.querySelector('select').querySelectorAll('option').forEach(function (option) {
                        option.removeAttribute('selected');

                        if (option.value === e.detail.value) {
                            option.setAttribute('selected', true);
                        }
                    });
                }

                this.save_jsoned_field(e.detail.field, cell.innerHTML, e.detail.post_id);
            }
        }
    }

    //saving cell data for json-mode tables
    save_jsoned_field(field, value, post_id) {
        if (this.settings.mode === 'json') {
            if (typeof this.settings.table_data.rows !== 'undefined') {
                for (const key of Object.keys(this.settings.table_data.rows)) {
                    if (parseInt(post_id) === parseInt(this.settings.table_data.rows[key].pid)) {
                        this.settings.table_data.rows[key][field] = value;
                        break;
                    }
                }
            } else {
                for (const key of Object.keys(this.settings.table_data)) {
                    if (parseInt(post_id) === parseInt(this.settings.table_data[key].pid)) {
                        this.settings.table_data[key][field] = value;
                        break;
                    }
                }
            }

        }
    }

    init_row_actions(row) {}
    redraw_row(row) {}
};
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/assets/js/generated-tables.js?ver=2.0.4 
'use strict';
class WOOT_GeneratedTables extends DataTable23 {
    constructor(table_data, table_html_id, additional = {}) {
        super(table_data, table_html_id, additional);

        DataTable23.do_not_print.push('add_to_cart');
        DataTable23.do_not_print.push('single');
        DataTable23.do_not_print.push('gallery');
        DataTable23.do_not_print.push('upsell');
        DataTable23.do_not_print.push('cross_sell');
        DataTable23.do_not_print.push('variations');
        DataTable23.do_not_print.push('grouped');
        DataTable23.do_not_print.push('file');

        if (this.settings.stop_notice.length > 0) {
            return;
        }

        //***
        let _this = this;
        _this.wrapper.parentElement.querySelectorAll('.woot-text-search').forEach(function (input) {
            _this.attach_keyup_event(input);
            _this.attach_mouseup_event(input);
        });


        if (typeof WOOT_Filter !== 'undefined') {
            this.filter_form = new WOOT_Filter(this);
        }

        //WOOF ajax compatibility
        if (_this.request_data.post_type === 'product') {
            document.addEventListener('woof-ajax-form-redrawing', function (e) {
                document.querySelector('.woof[data-ajax-redraw="1"] .woof_submit_search_form_container .woof_submit_search_form').style.display = 'none';
                let data = new URL(e.detail.link).search;

                let filter_data = {};
                data.replace(/[?&]+([^=&]+)=([^&]*)/gi,
                        function (m, key, value) {
                            filter_data[key] = value;
                        });

                if (typeof (_this.request_data.filter_data.post_title) !== 'undefined') {
                    filter_data.post_title = _this.request_data.filter_data.post_title;
                }

                if (Object.keys(filter_data).length > 1) {
                    _this.draw_data(filter_data);
                } else {
                    _this.draw_data(null);
                }

                woof_is_ajax = 1;//to make reset button ajaxable!!
            });
        }
        //avalon23 compatibility  ajax
        document.addEventListener('avalon23-filter-ajax-search', function (e) {
                let data = new URL(e.detail.link).search;

                let filter_data = {};
                data.replace(/[?&]+([^=&]+)=([^&]*)/gi,
                        function (m, key, value) {
                            filter_data[key] = value;
                        });

                if (typeof (_this.request_data.filter_data.post_title) !== 'undefined') {
                    filter_data.post_title = _this.request_data.filter_data.post_title;
                }

                if (Object.keys(filter_data).length > 1) {
                    _this.draw_data(filter_data);
                } else {
                    _this.draw_data(null);
                }        
        });
        //***
        //sort-by select installation
        if (this.settings.mode === 'ajax' && !this.settings.switch_to_json) {
            let orderby_select = this.wrapper.parentElement.querySelector('.woot-order-select');
            if (orderby_select) {
                this.order_select_connect_id = woot_helper.create_id('sel');
                this.order_select = new Select23(orderby_select, JSON.parse(orderby_select.innerText), this.order_select_connect_id, {});
                this.order_select.ordered_by_table = this.request_data.orderby;//before by select
                orderby_select.removeAttribute('style');

                document.addEventListener('select23-change', (e) => {
                    if (e.detail.connect_id === this.order_select_connect_id) {
                        let val = e.detail.value;
                        if (parseInt(val) === 0) {
                            val = this.order_select.ordered_by_table;
                        } else {
                            //prefix orderby_select_ added for the recognition on the server that ordering is by the drop-down
                            val = 'orderby_select_' + val;
                        }

                        this.request_data.orderby = val;
                        this.redraw_table();
                    }
                });

                document.addEventListener('woot-do-after-draw', (e) => {
                    if (e.detail.otable === this) {
                        if (!(this.request_data.orderby.match(/orderby_select_/g) || []).length && this.order_select) {
                            this.order_select.container.querySelector('select').value = 0;
                        }
                    }
                });

            }
        }

        this.init_drop_downs();
    }

    //tables under textinputs
    init_drop_downs() {
	
        document.querySelectorAll('.woot-woocommerce-text-search-container').forEach(function (item) {
            let wrapper = item.querySelector('.woot-woocommerce-text-search-wrapper');
            item.querySelector('input[type="search"]').addEventListener('change', function (e) {

                if (this.value) {

                    let _this = this;
                    wrapper.style.display = 'block';
                    //for hidden elements (as range slider) to redraw correctly (after creating in hidden container)
                    window.dispatchEvent(new Event('resize'));


                    //***

                    this.parentElement.querySelector('.woot-text-search').value = this.value;
                    this.parentElement.querySelector('.woot-text-search').dispatchEvent(new CustomEvent('keyup', {detail: {
                            woo_text_search: true
                        }}));

                    //***

                    this.addEventListener('mouseup', function (e) {
                        e.stopPropagation();

                        if (_this.value.length > 0) {
                            //click on cross
			   
                            setTimeout(function () {
                                if (_this.value.length === 0) {
				    wrapper.style.display = 'none';
                                }
                            }, 5);
                        }
                    });

                    this.addEventListener('keydown', function (e) {
                        e.stopPropagation();

                        if (e.keyCode === 27) {//escape
                            wrapper.style.display = 'none';
                        }

                        return false;
                    });


                    this.addEventListener('click', (e) => {
                        if (this.value.length > 0) {
                            wrapper.style.display = 'block';
                            window.dispatchEvent(new Event('resize'));
                        }
                    });

                    document.addEventListener('click', (e) => {
                        if (!item.contains(e.target) && !e.target.classList.contains('woot-filter-navigation-label')) {
                            wrapper.style.display = 'none';
                        }
                    });
                }
            });

            //clean search input if reset button clicked
            document.addEventListener('woot-filter-reset', function (e) {
                if (item.querySelector('.woot-data-table').id === e.detail.dt.table_html_id) {
                    item.querySelector('input[type="search"]').value = '';
                }
            });



        });
    }

    define_display_cell_info() {

        //clean previous defined
        document.querySelectorAll('.table23-display-cell-info').forEach(function (d) {
            d.style.display = 'none';
        });

        //***

        if (this.request_data.post_type === 'product' && this.container.classList.contains('woot_woocommerce_tables')) {

            this.display = document.createElement('div');
            this.display.className = 'table23-display-cell-info';
            this.wrapper.parentElement.insertBefore(this.display, this.wrapper);

            if (this.table.querySelectorAll('tbody tr').length > 0) {
                let _this = this;
                this.table.querySelectorAll('tbody tr').forEach(function (tr) {
                    if (tr.querySelector('.table23_td_post_title')) {
                        let tid = tr.querySelector('.table23_td_id');

                        if (tid) {
                            tid = '#' + tid.innerText;
                        } else {
                            tid = '';
                        }

                        tr.addEventListener(_this.is_mobile ? 'touchstart' : 'mouseover', function (e) {
                            if (!_this.show_compact) {
                                _this.display.style.display = 'block';
                                let data_field = e.target.getAttribute('data-field');
                                let txt = tid + ' ' + (tr.querySelector('.table23_td_post_title a') ? tr.querySelector('.table23_td_post_title a').innerText : '');

                                if (_this.thead.querySelector(`th[data-key="${data_field}"]`)) {
                                    txt += ', ' + _this.thead.querySelector(`th[data-key="${data_field}"]`).innerText;
                                }

                                _this.display.innerHTML = txt;
                            }
                        });

                        document.addEventListener(_this.is_mobile ? 'touchend' : 'mouseout', function (e) {
                            if (!_this.show_compact) {
                                _this.display.innerHTML = '';
                                _this.display.style.display = 'none';
                            }
                        });
                    }
                });
            }
        }
    }

    do_after_draw() {
        super.do_after_draw();
        document.dispatchEvent(new CustomEvent('woot-do-after-draw', {detail: {otable: this}}));

        if (this.container.classList.contains('woot-define-display-cell-info')) {
            this.define_display_cell_info();
        }


        //scroll bar is for products tables
        if (this.show_compact) {

            if (this.scrollbar23) {
                this.scrollbar23.remove();
                this.wrapper.classList.remove('horizontal-scrollbar23-attached');
            }

        } else {

            if (this.container.classList.contains('woot-data-table')) {
                if (!this.wrapper.classList.contains('horizontal-scrollbar23-attached')) {
                    setTimeout(() => {
                        this.wrapper.classList.add('horizontal-scrollbar23-attached');
                        if (typeof this.additional.no_scroll_bar === 'undefined') {
                            this.scrollbar23 = new HorizontalScrollbar23(this.wrapper);
                        }
                    }, 777);
                }
            }

        }

        //***
        //load tables in the cells
        if (this.table.querySelectorAll('.woot-data-table').length) {
            this.table.querySelectorAll('.woot-data-table').forEach((t) => {
                let id = t.getAttribute('id');
                new WOOT_GeneratedTables(JSON.parse(this.table.querySelector(`[data-table-id="${id}"]`).innerText), id, {no_scroll_bar: true});
            });
        }

        //init switchers
        Array.from(this.table.querySelectorAll('.switcher23')).forEach((button) => {
            woot_helper.init_switcher(button);
        });

        //for hidden elements (as range slider) to redraw correctly (after creating in hidden container)
        window.dispatchEvent(new Event('resize'));
    }

    recreate_scroll_bar() {
        if (this.scrollbar23) {
            this.scrollbar23.remove();
            this.wrapper.classList.remove('horizontal-scrollbar23-attached');
        }
        this.wrapper.classList.add('horizontal-scrollbar23-attached');
        this.scrollbar23 = new HorizontalScrollbar23(this.wrapper);
    }

    //use this for class filter also
    attach_keyup_event(input) {
        let _this = this;

        input.addEventListener('keyup', function (e) {

            let add = {};
            let do_search = false;
            let key = this.getAttribute('data-key');

            if (e.keyCode === 13 || typeof e.detail.woo_text_search !== 'undefined') {

                if (input.value.length === 0) {
                    if (input.classList.contains('woot-not-ready-text-search')) {
                        //if user want to reset by empty string nad Enter key
                        if (typeof _this.request_data.filter_data[key] !== 'undefined') {
                            input.classList.remove('woot-not-ready-text-search');
                            delete _this.request_data.filter_data[key];
                            _this.settings.total_rows_count = 0;
                            _this.draw_pagination();
                            if (!_this.allow_reset) {
                                _this.allow_reset_force = true;//fix for load more button
                            }
                            _this.draw_data();
                            return true;
                        }
                    }
                }

                //***

                if (input.value.length < Number(input.getAttribute('minlength'))) {
                    input.classList.add('woot-not-ready-text-search');
                    return true;
                }

                //woo text search works - table clean for new search request
                if (typeof e.detail.woo_text_search !== 'undefined') {
                    _this.reset();
                    _this.settings.total_rows_count = 0;
                    _this.draw_pagination();
                }


                add = {};
                add[key] = input.value;
                do_search = true;
            }

            if (e.keyCode === 27) {
                delete _this.request_data.filter_data[key];
                do_search = true;
                input.classList.remove('woot-not-ready-text-search');
            }


            if (do_search) {
                input.classList.remove('woot-not-ready-text-search');
                _this.request_data.current_page = 0;
                if (typeof _this.request_data.filter_data !== 'object' && _this.request_data.filter_data.length > 0) {
                    _this.request_data.filter_data = JSON.parse(_this.request_data.filter_data);
                }
                _this.request_data.filter_data = _this.extend(_this.request_data.filter_data, add);
                if (!_this.allow_reset) {
                    _this.allow_reset_force = true;//fix for load more button
                }

                //_this.use_cache = false;//23-04-2020 disabled as this flag disable cache after text loading
                _this.draw_data();
            }

            //***

            document.dispatchEvent(new CustomEvent('woot-filter-is-changed', {detail: {
                    dt: _this
                }}));
        });
    }

    //use this for class filter also
    attach_mouseup_event(input) {
        let _this = this;

        //click on cross
        input.addEventListener('mouseup', function (e) {
            e.stopPropagation();

            if (input.value.length > 0) {
                setTimeout(() => {
                    if (input.value.length === 0) {
                        input.classList.remove('woot-not-ready-text-search');
                        delete _this.request_data.filter_data[this.getAttribute('data-key')];
                        _this.request_data.current_page = 0;
                        _this.draw_data();

                        document.dispatchEvent(new CustomEvent('woot-filter-is-changed', {detail: {
                                dt: _this
                            }}));
                    }
                }, 5);
            }
        });
    }
};
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/assets/js/calendar-23.js?ver=2.0.4 
/**
 * @summary     Calendar23
 * @description calendar
 * @version     1.0.0
 * @file        calendar-23
 * @author      realmag777
 * @contact     https://pluginus.net/contact-us/
 * @github      https://github.com/realmag777/calendar-23
 * @copyright   Copyright 2020 PluginUs.NET
 *
 * This source file is free software, available under the following license:
 *   MIT license - https://en.wikipedia.org/wiki/MIT_License
 */
'use strict';

class Calendar23 {

    constructor(container, calendar_id = null, unix_time_stamp = null, additional = {}) {
        this.scene = 0;//0,1,2

        this.month_names = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
        this.month_names_short = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
        this.day_names = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];

        if (typeof additional.calendar_names !== 'undefined') {
            if (typeof additional.calendar_names.month_names !== 'undefined') {
                this.month_names = additional.calendar_names.month_names;
            }

            if (typeof additional.calendar_names.month_names_short !== 'undefined') {
                this.month_names_short = additional.calendar_names.month_names_short;
            }

            if (typeof additional.calendar_names.day_names !== 'undefined') {
                this.day_names = additional.calendar_names.day_names;
            }
        }

        //***

        if (typeof additional.month_names !== 'undefined') {
            this.month_names = additional.month_names;
        }

        if (typeof additional.month_names_short !== 'undefined') {
            this.month_names_short = additional.month_names_short;
        }

        if (typeof additional.day_names !== 'undefined') {
            this.day_names = additional.day_names;
        }

        //***
        this.calendar_id = calendar_id;

        if (!this.calendar_id) {
            this.calendar_id = woot_helper.create_id('calendar-');
        }

        //***

        if (!unix_time_stamp) {
            this.current_date = new Date();
        } else {
            this.current_date = new Date(unix_time_stamp * 1000);
        }

        this.today = new Date();
        this.selected_date = null;//selected by click

        this.container = container;
        this.cells = [];
        this.fill_container();
    }

    fill_container() {
        this.cells = [];
        this.container.innerHTML = '';

        //***

        switch (this.scene) {
            case 1:
                this.fill_scene_1();//years
                break;

            case 2:
                this.fill_scene_2();//monthes
                break;

            default:
                this.fill_scene_0();//days
                break;
        }
    }

    get_prev_month_days_count() {
        let m = this.get_month() - 1;
        let y = this.get_year();
        if (m < 0) {
            m = 11;
            y--;
        }

        return new Date(y, m + 1, 0).getDate();

    }

    get_month() {
        return this.current_date.getMonth();
    }

    get_year() {
        return this.current_date.getFullYear();
    }

    get_days_in_month() {
        return new Date(this.get_year(), this.get_month() + 1, 0).getDate();
    }

    //***

    create_label_0() {
        let label = document.createElement('div');
        label.className = 'calendar23-label';

        let span = document.createElement('span');
        span.innerText = this.month_names[this.get_month()] + ' ' + this.get_year();
        label.appendChild(span);

        span.addEventListener('click', e => {
            e.stopPropagation();
            this.scene = 1;
            /*
             * 0 - days calendar
             * 1 - monthes list 7x5
             * 2 - years list 7x5
             */

            this.fill_container();
            return false;
        });

        //***

        let prev = document.createElement('a');
        prev.setAttribute('href', '#');
        prev.className = 'calendar23-prev';
        prev.addEventListener('click', e => {
            e.stopPropagation();
            e.preventDefault();
            let m = this.get_month() - 1;
            let y = this.get_year();
            if (m < 0) {
                m = 11;
                y--;
            }

            this.current_date = new Date(y, m, 1);
            this.fill_container();
            return false;
        });

        label.appendChild(prev);


        //***

        let next = document.createElement('a');
        next.setAttribute('href', '#');
        next.className = 'calendar23-next';
        next.addEventListener('click', e => {
            e.stopPropagation();
            e.preventDefault();
            let m = this.get_month() + 1;
            let y = this.get_year();
            if (m > 11) {
                m = 0;
                y++;
            }

            this.current_date = new Date(y, m, 1);
            this.fill_container();
            return false;
        });

        label.appendChild(next);

        //***

        return label;
    }

    fill_scene_0() {
        let month = document.createElement('div');
        month.className = 'calendar23-month';
        month.appendChild(this.create_label_0());

        for (let i = 0; i < 7; ++i) {
            let d = document.createElement('div');
            d.className = 'calendar23-dow';
            d.innerText = this.day_names[i];
            month.appendChild(d);
        }

        //***

        for (let i = 0; i < 42; ++i) {//7x6
            this.cells[i] = document.createElement('div');
            month.appendChild(this.cells[i]);
        }

        this.container.appendChild(month);

        //***

        let first_month_day = new Date(this.get_year(), this.get_month(), 1).getDay() - 1;//TODO when sunday first
        if (first_month_day < 0) {
            first_month_day = 6;
        }

        let day = 1;
        for (let i = first_month_day; i < this.get_days_in_month() + first_month_day; ++i) {
            let c = new Date(this.get_year(), this.get_month(), day);
            this.cells[i].innerText = day;
            this.cells[i].className = 'calendar23-day';
            this.cells[i].setAttribute('data-date', c.getTime() / 1000);

            if ([0, 6].includes(new Date(this.get_year(), this.get_month(), day).getDay())) {
                this.cells[i].classList.add('calendar23-weekend');
            }

            if (this.today.getDate() === day && this.today.getMonth() === this.get_month() && this.today.getFullYear() === this.get_year()) {
                this.cells[i].classList.add('calendar23-today');
            }

            if (this.selected_date !== null) {
                if (this.selected_date.getDate() === day && this.selected_date.getMonth() === this.get_month() && this.selected_date.getFullYear() === this.get_year()) {
                    this.cells[i].classList.add('calendar23-focused');
                }
            }

            day++;

            //***
            let _this = this;
            this.cells[i].addEventListener('click', function (e) {
                e.stopPropagation();
                _this.current_date = new Date(this.getAttribute('data-date') * 1000);
                _this.selected_date = new Date(this.getAttribute('data-date') * 1000);

                for (let y = 0; y < _this.cells.length; y++) {
                    if (_this.cells[y].classList.contains('calendar23-focused')) {
                        _this.cells[y].classList.remove('calendar23-focused');
                        break;
                    }
                }

                this.classList.add('calendar23-focused');
                document.dispatchEvent(new CustomEvent('calendar23-date-selected', {detail: {date: this.getAttribute('data-date'), calendar_id: _this.calendar_id}}));
                return false;
            });
        }

        //***
        //prev month days fill
        for (let i = 0; i < first_month_day; ++i) {
            this.cells[i].className = 'calendar23-dummy-day';
            this.cells[i].innerText = this.get_prev_month_days_count() - first_month_day + i + 1;
        }

        //***
        //next month days fill
        let next_month_day = 1;
        for (let i = 0; i < 42; ++i) {
            if (this.cells[i].innerText.length === 0) {
                this.cells[i].className = 'calendar23-dummy-day';
                this.cells[i].innerText = next_month_day++;
            }
        }

        //remove last not this month week
        let clear = true;
        for (let i = 42 - 7; i < 42; i++) {
            if (!this.cells[i].classList.contains('calendar23-dummy-day')) {
                clear = false;
                break;
            }
        }

        if (clear) {
            for (let i = 42 - 7; i < 42; i++) {
                this.cells[i].remove();
            }
        }
    }

    //***

    create_label_1() {
        let label = document.createElement('div');
        label.className = 'calendar23-label';

        let span = document.createElement('span');
        span.innerText = this.get_year();
        label.appendChild(span);

        span.addEventListener('click', e => {
            e.stopPropagation();
            this.scene = 2;
            this.fill_container();
            return false;
        });

        //***

        let prev = document.createElement('a');
        prev.setAttribute('href', '#');
        prev.className = 'calendar23-prev';
        prev.addEventListener('click', e => {
            e.stopPropagation();
            e.preventDefault();
            this.current_date = new Date(this.get_year() - 1, this.get_month(), 1);
            this.fill_container();
            return false;
        });

        label.appendChild(prev);

        //***

        let next = document.createElement('a');
        next.setAttribute('href', '#');
        next.className = 'calendar23-next';
        next.addEventListener('click', e => {
            e.stopPropagation();
            e.preventDefault();
            this.current_date = new Date(this.get_year() + 1, this.get_month(), 1);
            this.fill_container();
            return false;
        });

        label.appendChild(next);

        //***

        return label;
    }

    fill_scene_1() {
        let monthes = document.createElement('div');
        monthes.className = 'calendar23-month';
        monthes.appendChild(this.create_label_1());

        for (let i = 0; i < 12; ++i) {
            this.cells[i] = document.createElement('div');
            this.cells[i].className = 'calendar23-big calendar23-day';
            this.cells[i].setAttribute('data-month', i);
            this.cells[i].innerText = this.month_names_short[i];
            if (this.today.getMonth() === i && this.today.getFullYear() === this.get_year()) {
                this.cells[i].classList.add('calendar23-today');
            }
            monthes.appendChild(this.cells[i]);

            //***
            let _this = this;
            this.cells[i].addEventListener('click', function (e) {
                e.stopPropagation();
                _this.current_date.setMonth(this.getAttribute('data-month'));
                _this.scene = 0;
                _this.fill_container();
                return false;
            });
        }

        this.container.appendChild(monthes);

    }

    //***

    create_label_2() {
        let label = document.createElement('div');
        label.className = 'calendar23-label';

        let span = document.createElement('span');
        span.innerText = this.get_year() + ' - ' + (this.get_year() + 12 - 1);
        label.appendChild(span);

        //***

        let prev = document.createElement('a');
        prev.setAttribute('href', '#');
        prev.className = 'calendar23-prev';
        prev.addEventListener('click', e => {
            e.stopPropagation();
            e.preventDefault();
            this.current_date = new Date(this.get_year() - 12, this.get_month(), 1);
            this.fill_container();
            return false;
        });

        label.appendChild(prev);


        //***

        let next = document.createElement('a');
        next.setAttribute('href', '#');
        next.className = 'calendar23-next';
        next.addEventListener('click', e => {
            e.stopPropagation();
            e.preventDefault();
            this.current_date = new Date(this.get_year() + 12, this.get_month(), 1);
            this.fill_container();
            return false;
        });

        label.appendChild(next);

        //***

        return label;
    }

    fill_scene_2() {
        let _this = this;
        let years = document.createElement('div');
        years.className = 'calendar23-month';
        years.appendChild(this.create_label_2());

        for (let i = this.get_year(); i < this.get_year() + 12; ++i) {
            this.cells[i] = document.createElement('div');
            this.cells[i].className = 'calendar23-big calendar23-day';
            this.cells[i].setAttribute('data-year', i);
            this.cells[i].innerText = i;
            if (this.today.getFullYear() === i) {
                this.cells[i].classList.add('calendar23-today');
            }
            years.appendChild(this.cells[i]);

            //***

            this.cells[i].addEventListener('click', function (e) {
                e.stopPropagation();
                _this.current_date.setFullYear(this.getAttribute('data-year'));
                _this.scene = 1;
                _this.fill_container();
                return false;
            });
        }

        this.container.appendChild(years);
    }
}

//***
//<div class="calendar23-selector" data-date="1729807200" data-name="new_data"></div>
class Calendar23_Selector {
    constructor(selector = null, unix_time_stamp = null, placeholder = '', calendar_names = {}) {
        let _this = this;
        this.unix_time_stamp = null;
        this.placeholder = placeholder;
        this.calendar_names = calendar_names;

        if (!selector) {
            if (!document.querySelectorAll('.calendar23-selector').length) {
                return;
            }

            document.querySelectorAll('.calendar23-selector').forEach(item => {
                this.init(item, unix_time_stamp);
            });
        } else {
            this.init(selector, unix_time_stamp);
        }

        //***

        this.input.addEventListener('focus', function (e) {
            e.stopPropagation();
            if (!_this.calendar_wrapper.style.display || _this.calendar_wrapper.style.display === 'none') {
                _this.calendar_wrapper.style.display = 'block';

                document.dispatchEvent(new CustomEvent('calendar23-date-focused', {detail: {calendar_id: _this.calendar_id}}));

            } else {
                _this.calendar_wrapper.style.display = 'none';
            }

            this.blur();
            return true;
        });

        document.addEventListener('click', e => {
            let close = true;

            if (e.target.closest('.calendar23-selector')) {
                close = false;
            }

            if (e.target.closest('.calendar23-month')) {
                close = false;
            }

            if (close) {
                this.calendar_wrapper.style.display = 'none';
            }
        });

        document.addEventListener('calendar23-date-selected', e => {
            e.stopPropagation();
            if (this.calendar_id === e.detail.calendar_id) {
                let unix_time_stamp = e.detail.date;
                this.input.setAttribute('data-selected-date', unix_time_stamp);
                this.input.setAttribute('value', unix_time_stamp);
                this.set_input_value(unix_time_stamp);
                this.calendar_wrapper.style.display = 'none';

                //***

                this.unix_time_stamp = unix_time_stamp;
                this.selected();
                document.dispatchEvent(new CustomEvent('calendar23-selector-date-selected', {detail: {date: unix_time_stamp, selector: this}}));
            }
        });
    }

    selected() {
        //should be reloaded by business logic!!
    }

    init(item, unix_time_stamp) {

        this.draw_html(item);

        //***

        this.input = item.querySelector('.calendar23-data-input');
        this.calendar_wrapper = item.querySelector('.calendar23-calendar-wrapper');

        //close another calendars if current one is focused
        document.addEventListener('calendar23-date-focused', (e) => {
            if (e.detail.calendar_id !== this.calendar_id) {
                this.calendar_wrapper.style.display = 'none';
            }
        });

        this.calendar_id = woot_helper.create_id('calendar23-');//for get selected

        //***

        if (this.input.getAttribute('data-selected-date').length > 0) {
            this.unix_time_stamp = parseInt(this.input.getAttribute('data-selected-date'), 10);
        }

        if (unix_time_stamp) {
            this.unix_time_stamp = unix_time_stamp;//more prioritet
        }

        if (this.unix_time_stamp) {
            this.set_input_value(this.unix_time_stamp);
        }

        //***

        this.calendar = new Calendar23(this.calendar_wrapper.querySelector('div'), this.calendar_id, this.unix_time_stamp, {calendar_names: this.calendar_names});

    }

    set_input_value(unix_time_stamp) {
        if (document.querySelector('html').getAttribute('lang')) {
            //var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
            this.input.value = new Date(unix_time_stamp * 1000).toLocaleDateString(document.querySelector('html').getAttribute('lang'), {year: 'numeric', month: 'long', day: 'numeric'});
        } else {
            this.input.value = new Date(unix_time_stamp * 1000).toLocaleDateString();
        }
    }

    draw_html(container) {
        let input = document.createElement('input');
        input.setAttribute('type', 'text');
        input.setAttribute('readonly', 'readonly');
        input.className = 'calendar23-data-input';
        input.setAttribute('data-selected-date', '');
        input.setAttribute('value', '');
        input.setAttribute('placeholder', this.placeholder);

        if (container.hasAttribute('data-date')) {
            input.setAttribute('data-selected-date', container.getAttribute('data-date'));
        }

        if (container.hasAttribute('data-name')) {
            input.setAttribute('name', container.getAttribute('data-name'));
        }

        //***

        let wrapper = document.createElement('div');
        wrapper.className = 'calendar23-calendar-wrapper';

        let div = document.createElement('div');

        wrapper.appendChild(div);
        container.appendChild(input);
        container.appendChild(wrapper);
    }
};
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/assets/js/ranger-23.js?ver=2.0.4 
/**
 * @summary     Ranger23
 * @description range slider
 * @version     1.0.0
 * @file        ranger-23
 * @author      realmag777
 * @contact     https://pluginus.net/contact-us/
 * @github      https://github.com/realmag777/ranger-23
 * @copyright   Copyright 2020 PluginUs.NET
 *
 * This source file is free software, available under the following license:
 *   MIT license - https://en.wikipedia.org/wiki/MIT_License
 */
'use strict';

class Ranger23 {
    constructor(track, cast_id = null, handler_width = 30) {
        this.cast_id = cast_id;
        if (!this.cast_id) {
            this.cast_id = 'slider-' + (new Date()).getTime();
        }

        this.dragged = null;
        this.track = track;
        this.handler_width = handler_width;
        this.min = parseInt(this.track.dataset.min);
        this.max = parseInt(this.track.dataset.max);
        this.prev_selected_left_val =this.selected_left_val = parseInt(this.track.dataset.selectedMin);
        this.prev_selected_right_val =this.selected_right_val = parseInt(this.track.dataset.selectedMax);

        this.is_mobile = 'ontouchstart' in document.documentElement,
                this.event_click = this.is_mobile ? 'click' : 'click',
                this.event_mousedown = this.is_mobile ? 'touchstart' : 'mousedown',
                this.event_mouseup = this.is_mobile ? 'touchend' : 'mouseup',
                this.event_mouseout = this.is_mobile ? 'touchcancel' : 'mouseout',
                this.event_mousemove = this.is_mobile ? 'touchmove' : 'mousemove';

        this.container = document.createElement('div');
        this.container.className = 'ranger23-container';

        this.handler_left = document.createElement('div');
        this.handler_left.className = 'ranger23-handler-left';
        this.handler_left.innerHTML = '<span></span>';

        this.handler_right = document.createElement('div');
        this.handler_right.className = 'ranger23-handler-right';
        this.handler_right.innerHTML = '<span></span>';

        this.handler_min = document.createElement('div');
        this.handler_min.className = 'ranger23-min';

        this.handler_max = document.createElement('div');
        this.handler_max.className = 'ranger23-max';

        this.bar = document.createElement('div');
        this.bar.className = 'ranger23-bar';

        this.container.appendChild(this.handler_min);
        this.container.appendChild(this.handler_left);
        this.container.appendChild(this.bar);
        this.container.appendChild(this.handler_right);
        this.container.appendChild(this.handler_max);
        this.track.appendChild(this.container);

        this.container_x = (this.container.getBoundingClientRect()).x;
        this.container_width = (this.container.getBoundingClientRect()).width;
        this.max_track = parseInt(this.container_width) - 2 * this.handler_width;

        this.init_math();
        this.init_events();
        this.redraw_bar();

        window.addEventListener('resize', (e) => {
            this.resize();
        });
    }

    resize() {
        this.container_x = (this.container.getBoundingClientRect()).x;
        this.container_width = (this.container.getBoundingClientRect()).width;
        this.max_track = parseInt(this.container_width) - 2 * this.handler_width;

        this.init_math();
        this.redraw_bar();
    }

    init_math() {
        if (this.selected_left_val > this.min) {
            this.handler_left.style.left = this.calculate_left_distance(this.selected_left_val) + 'px';
        } else {
            this.handler_left.style.left = 0;
        }

        if (this.selected_right_val < this.max) {
            this.handler_right.style.left = this.calculate_right_distance(this.selected_right_val) + 'px';
        } else {
            this.handler_right.style.left = this.container_width - this.handler_width + 'px';
        }

        this.__reset_handlers_view_values();
        this.handler_min.innerHTML = this.min;
        this.handler_max.innerHTML = this.max;
    }

    init_events() {

        this.handler_min.addEventListener(this.event_click, (e) => {
            this.handler_left.style.left = 0;
            this.handler_left.querySelector('span').innerHTML = this.selected_left_val = this.min;
            this.cast();
        });

        this.handler_max.addEventListener(this.event_click, (e) => {
            this.handler_right.style.left = this.container_width - this.handler_width + 'px';
            this.handler_right.querySelector('span').innerHTML = this.selected_right_val = this.max;
            this.cast();
        });


        this.handler_right.addEventListener(this.event_mousedown, (e) => {
            this.dragged = e.target.parentElement;
            this.dragged.style.zIndex = 2;
        });


        this.handler_left.addEventListener(this.event_mousedown, (e) => {
            this.dragged = e.target.parentElement;
            this.dragged.style.zIndex = 2;
        });


        this.handler_right.addEventListener(this.event_mousemove, (e) => {
            this.__reset_handlers_view_values();
        });


        this.handler_left.addEventListener(this.event_mousemove, (e) => {
            this.__reset_handlers_view_values();
        });


        this.container.addEventListener(this.event_mouseout, (e) => {
            this.__reset_handlers_view_values();
        });


        document.addEventListener(this.event_mousemove, (e) => {
            if (this.dragged && this.container) {
                let page_x = e.pageX - this.handler_width / 2;//for on handler mouse pointer centrating

                if (this.is_mobile) {
                    page_x = e.touches[0].clientX - this.handler_width / 2;
                }

                if (page_x >= this.container_x && page_x <= this.container_x + this.container_width - this.handler_width) {

                    let distance = page_x - this.container_x;
                    let can_move = true;

                    if (this.dragged === this.handler_left) {
                        if (distance + this.handler_width - 1 >= this.handler_right.offsetLeft) {
                            can_move = false;
                        }
                    } else {
                        if (distance - this.handler_width <= this.handler_left.offsetLeft) {
                            can_move = false;
                        }
                    }

                    //+++

                    if (can_move) {
                        this.dragged.style.left = distance + 'px';
                        this.calculate();
                        this.redraw_bar();
                    }

                } else {
                    if (this.dragged === this.handler_left) {
                        this.handler_left.style.left = 0;
                        this.handler_left.querySelector('span').innerHTML = this.selected_left_val = this.min;
                    } else {
                        this.handler_right.style.left = this.container_width - this.handler_width + 'px';
                        this.handler_right.querySelector('span').innerHTML = this.selected_right_val = this.max;
                    }

                    this.redraw_bar();
                }
            }

        });

        document.addEventListener(this.event_mouseup, (e) => {
            if (this.dragged && this.container) {
                this.dragged.onmouseup = null;
                this.dragged.style.zIndex = 1;
                this.dragged = null;

                if (this.is_mobile) {
                    this.handler_min.innerHTML = this.min;
                    this.handler_max.innerHTML = this.max;
                }

                this.cast();
            }
        });

        //+++

        this.init_events_container();

    }

    init_events_container() {
        //only for PC
        this.container.addEventListener(this.event_mousemove, (e) => {

            if (e.target === this.container && !this.dragged) {
                let left_distance = e.clientX - this.container_x;

                if (left_distance < this.handler_left.offsetLeft) {
                    this.handler_left.querySelector('span').innerHTML = this.calculate_left_value(left_distance);
                }

                if (left_distance > this.handler_right.offsetLeft) {
                    left_distance -= this.handler_width;
                    this.handler_right.querySelector('span').innerHTML = this.calculate_right_value(left_distance);
                }

            }

        });

        this.container.addEventListener(this.event_click, (e) => {
            if (e.target === this.container && !this.dragged) {
                let left_distance = e.clientX - this.container_x;

                if (left_distance < this.handler_left.offsetLeft) {
                    this.handler_left.querySelector('span').innerHTML = this.selected_left_val = this.calculate_left_value(left_distance);
                    this.handler_left.style.left = left_distance + 'px';
                }

                if (left_distance > this.handler_right.offsetLeft) {
                    left_distance -= this.handler_width;
                    this.handler_right.querySelector('span').innerHTML = this.selected_right_val = this.calculate_right_value(left_distance);
                    this.handler_right.style.left = left_distance + 'px';
                }

                this.cast();
            }
        });

        //+++

        //only for PC
        this.bar.addEventListener(this.event_mousemove, (e) => {

            if (e.target === this.bar && !this.dragged) {
                let left_distance = e.clientX - this.container_x;

                if (left_distance > this.handler_left.offsetLeft && left_distance < this.handler_right.offsetLeft) {

                    if ((left_distance - this.handler_left.offsetLeft - this.handler_width) < (this.handler_right.offsetLeft - left_distance)) {
                        left_distance -= this.handler_width;
                        this.handler_left.querySelector('span').innerHTML = this.calculate_left_value(left_distance);
                    } else {
                        this.handler_right.querySelector('span').innerHTML = this.calculate_right_value(left_distance);
                    }

                }

            }

        });

        //reset
        this.container.addEventListener('mouseleave', (e) => {
            this.__reset_handlers_view_values();
        });

        this.bar.addEventListener(this.event_click, (e) => {

            if (e.target === this.bar && !this.dragged) {
                let left_distance = e.clientX - this.container_x;

                if (left_distance > this.handler_left.offsetLeft && left_distance < this.handler_right.offsetLeft) {

                    if ((left_distance - this.handler_left.offsetLeft - this.handler_width) < (this.handler_right.offsetLeft - left_distance)) {
                        left_distance -= this.handler_width;
                        this.handler_left.querySelector('span').innerHTML = this.selected_left_val = this.calculate_left_value(left_distance);
                        this.handler_left.style.left = left_distance + 'px';
                    } else {
                        this.handler_right.querySelector('span').innerHTML = this.selected_right_val = this.calculate_right_value(left_distance);
                        this.handler_right.style.left = left_distance + 'px';
                    }

                }

                this.cast();

            }

        });

    }

    calculate_left_value(left_distance) {
        return Math.ceil(parseFloat(left_distance / this.max_track) * (this.max - this.min) + this.min);
    }

    calculate_left_distance(value) {
        return Math.floor(parseFloat((value - this.min) / (this.max - this.min)) * this.max_track);
    }

    calculate_right_value(left_distance) {
        return Math.ceil(parseFloat(left_distance / this.max_track) * (this.max - this.min) + this.min - parseFloat(this.handler_width / this.max_track) * (this.max - this.min));
    }

    calculate_right_distance(value) {
        return Math.floor(parseFloat((value + parseFloat(this.handler_width / this.max_track) * (this.max - this.min) - this.min) / (this.max - this.min) * this.max_track));
    }

    __reset_handlers_view_values() {
        this.handler_left.querySelector('span').innerHTML = this.selected_left_val;
        this.handler_right.querySelector('span').innerHTML = this.selected_right_val;
    }

    calculate() {
        let left_distance = parseInt(this.dragged.style.left);

        if (this.dragged === this.handler_left) {
            this.handler_left.querySelector('span').innerHTML = this.selected_left_val = this.calculate_left_value(left_distance);

            if (this.is_mobile) {
                this.handler_min.innerHTML = this.selected_left_val;
            }
        }

        if (this.dragged === this.handler_right) {
            this.handler_right.querySelector('span').innerHTML = this.selected_right_val = this.calculate_right_value(left_distance);

            if (this.is_mobile) {
                this.handler_max.innerHTML = this.selected_right_val;
            }
        }

        //fix-checking for values as we use rounding by Math.ceil
        if (this.selected_left_val > this.selected_right_val) {
            this.handler_left.querySelector('span').innerHTML = this.selected_left_val = this.selected_right_val;
        }

        if (this.selected_right_val < this.selected_left_val) {
            this.handler_right.querySelector('span').innerHTML = this.selected_right_val = this.selected_left_val;
        }
    }

    redraw_bar() {
        this.bar.style.left = this.handler_left.offsetLeft + this.handler_width - 1 + 'px';
        this.bar.style.width = this.handler_right.offsetLeft - this.handler_left.offsetLeft - this.handler_width + 1 + 'px';

        //ranger23-bar-var-equal
        if (this.selected_left_val === this.selected_right_val) {
            this.bar.classList.add('ranger23-bar-var-equal');
        } else {
            this.bar.classList.remove('ranger23-bar-var-equal');
        }
    }

    cast() {
        this.redraw_bar();

        if (this.prev_selected_left_val !== this.selected_left_val || this.prev_selected_right_val !== this.selected_right_val) {
            //cast only if range values are changed
            this.prev_selected_left_val=this.selected_left_val;
            this.prev_selected_right_val=this.selected_right_val;

            document.dispatchEvent(new CustomEvent('ranger23-update', {detail: {
                    cast_id: this.cast_id,
                    self: this, //pointer
                    from: this.selected_left_val,
                    to: this.selected_right_val,
                    min: this.min,
                    max: this.max
                }}));
        }
    }

    remove() {
        this.container.remove();
    }

};
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/assets/js/selectm-23.js?ver=2.0.4 
/**
 * @summary     SelectM23
 * @description multi choice drop-down
 * @version     1.0.0
 * @file        selectm-23
 * @author      realmag777
 * @contact     https://pluginus.net/contact-us/
 * @github      https://github.com/realmag777/selectm-23
 * @copyright   Copyright 2020 PluginUs.NET
 *
 * This source file is free software, available under the following license:
 *   MIT license - https://en.wikipedia.org/wiki/MIT_License
 */
'use strict';

class SelectM23 {
    constructor(select, use_drag = false, placeholder = '') {

        if (!select.hasAttribute('multiple')) {
            return false;
        }

        this.selected_values = [];
        this.use_drag = use_drag;
        this.placeholder = placeholder;

        if (select.hasAttribute('data-use-drag')) {
            if (parseInt(select.getAttribute('data-use-drag'), 10)) {
                this.use_drag = true;
            } else {
                this.use_drag = false;
            }
        }

        this.dragged_element = null;//for moving selected options
        this.ghost = null;
        this.ghost_delay_timer = null;//to avoid immediate clicks
        this.is_mobile = 'ontouchstart' in document.documentElement;

        //***

        this.select = select;
        this.hide(this.select);

        this.wrapper = document.createElement('div');
        this.wrapper.className = 'selectm23';
        this.select.after(this.wrapper);
        this.wrapper.appendChild(this.select);
        this.set_placeholder();

        this.selecton = document.createElement('span');//selected options here
        this.selecton.className = 'selectm23-selecton';
        this.wrapper.appendChild(this.selecton);


        this.input = document.createElement('input');
        this.input.className = 'selectm23-input selectm23-hidden';
        this.input.setAttribute('type', 'text');
        this.input.setAttribute('autocomplete', 'off');
        this.wrapper.appendChild(this.input);

        this.options = document.createElement('div');//all options exept selected ones
        this.options.className = 'selectm23-options selectm23-hidden';
        this.wrapper.appendChild(this.options);

        this.select.querySelectorAll('option').forEach((o) => {

            if (o.value === 'selectm23-exclude') {
                o.remove();
                return;
            }

            let option = document.createElement('div');
            option.className = 'selectm23-option';
            option.setAttribute('data-value', o.value);
            option.innerHTML = o.innerText;

            if (o.hasAttribute('selected')) {
                this.hide(option);
            }

            this.options.appendChild(option);

            option.addEventListener(this.is_mobile ? 'touchstart' : 'click', (e) => {
                this.add_selected(option);
                this.input.focus();
                return true;
            });
        });

        //***

        this.wrapper.addEventListener(this.is_mobile ? 'touchstart' : 'click', (e) => {
            this.show_options();
            this.show(this.input);
            this.input.focus();
            return true;
        });

        this.input.addEventListener(this.is_mobile ? 'touchstart' : 'click', (e) => {
            this.input.focus();
            this.show_options();
            return true;
        });

        document.addEventListener(this.is_mobile ? 'touchstart' : 'click', (e) => {
            let show = e.target === this.input;
            if (!show) {
                show = e.target === this.wrapper;
            }

            if (!show) {
                if (e.target.classList.contains('selectm23-selected')) {
                    show = true;
                    this.input.focus();
                }
            }

            if (!show) {
                this.hide(this.options);
                this.hide(this.input);
                this.unselect_selected();
            }

            this.input.value = '';
            //this.set_placeholder(false);

            return true;
        });

        this.input.addEventListener('keyup', (e) => {
            this.show_options();
            switch (e.keyCode) {
                case 37:
                case 39:
                    this.select_option(this.find_next_visible_sibling(this.options.querySelectorAll('.selectm23-option')[0]));
                    break;
                case 38://up
                case 40://down
                    if (this.options.querySelector('.selectm23-option-selected')) {
                        let current = this.options.querySelector('.selectm23-option-selected');
                        if (e.keyCode === 40) {
                            let next = this.find_next_visible_sibling(current);
                            if (next) {
                                this.unselect_selected();
                                this.select_option(next);
                                this.options.scrollTop = next.offsetTop;
                                break;
                            }
                        } else {
                            let prev = this.find_prev_visible_sibling(current);
                            if (prev) {
                                this.unselect_selected();
                                this.select_option(prev);
                                this.options.scrollTop = prev.offsetTop;
                                break;
                            }
                        }
                    } else {
                        this.select_option(this.find_next_visible_sibling(this.options.querySelectorAll('.selectm23-option')[0]));
                    }

                    break;
                case 13:
                    if (this.options.querySelector('.selectm23-option-selected')) {
                        let option = this.options.querySelector('.selectm23-option-selected');
                        this.add_selected(option);
                    }
                    break;
                case 27:

                    if (this.input.value.length > 0) {
                        this.input.value = '';
                        this.options.querySelectorAll('.selectm23-option').forEach((option) => {
                            if (!this.selected_values.includes(option.getAttribute('data-value'))) {
                                this.show(option);
                            }
                        });
                    } else {
                        this.hide(this.options);
                        this.hide(this.input);
                    }

                    this.unselect_selected();
                    break;
                default:

                    this.options.querySelectorAll('.selectm23-option').forEach((option) => {
                        if (this.input.value.length > 0) {
                            if (option.innerText.search(new RegExp(this.input.value, 'i')) !== -1) {
                                if (!this.selected_values.includes(option.getAttribute('data-value'))) {
                                    this.show(option);
                                }
                            } else {
                                this.hide(option);
                            }
                        } else {
                            if (!this.selected_values.includes(option.getAttribute('data-value'))) {
                                this.show(option);
                            }
                        }
                    });
                    break;
            }


            if (this.input.value.length > 0) {
                this.set_placeholder(true);
            } else {
                this.set_placeholder(false);
            }

            return true;
        });

        //***


        this.set_select_selected_options();
    }

    /*********************************************/

    set_select_selected_options() {
        let selected_options = [];
        let selected_vals = '';

        if (this.select.hasAttribute('data-values')) {
            selected_vals = this.select.getAttribute('data-values').split(',');
        }

        //***

        this.select.querySelectorAll('option').forEach((option) => {
            if (option.hasAttribute('selected')) {
                if (selected_vals.length) {
                    try {
                        selected_options[option.value] = this.options.querySelector(`[data-value="${option.value}"]`);
                    } catch (e) {
                        //key "length": https://stackoverflow.com/questions/61655194/uncaught-rangeerror-invalid-array-length-js-engine-bug-see-the-code-example
                        selected_options['~' + option.value] = this.options.querySelector(`[data-value="${option.value}"]`);
                    }
                } else {
                    this.add_selected(option, false);
                }
            }

        });

        //***

        for (let i = 0; i < selected_vals.length; i++) {
            if (selected_options['~' + selected_vals[i]]) {
                //fix for length field https://stackoverflow.com/questions/61655194/uncaught-rangeerror-invalid-array-length-js-engine-bug-see-the-code-example
                this.add_selected(selected_options['~' + selected_vals[i]], false);
            } else {
                this.add_selected(selected_options[selected_vals[i]], false);
            }

        }

        //***
        if (this.use_drag) {
            document.addEventListener(this.is_mobile ? 'touchend' : 'mouseup', (e, x) => {
                if (this.ghost) {
                    e.preventDefault();
                    this.delete_ghost();
                    this.dragged_element = null;
                }
            });

            document.addEventListener(this.is_mobile ? 'touchmove' : 'mousemove', (e) => {
                if (this.ghost) {

                    let target = e.target;

                    if (this.is_mobile) {
                        target = document.elementFromPoint(e.changedTouches[e.changedTouches.length - 1].pageX, e.changedTouches[e.changedTouches.length - 1].pageY);
                    }

                    if (target.closest('.selectm23') === this.wrapper) {
                        if (target.classList.contains('selectm23-selected')) {

                            if (this.ghost !== target) {

                                if (this.find_prev_visible_sibling(this.ghost) === target) {
                                    target.before(this.ghost);
                                } else {
                                    target.after(this.ghost);
                                }

                            }
                        }
                    }

                }
            });
        }
    }

    hide(element) {
        element.classList.add('selectm23-hidden');
    }

    show(element) {
        element.classList.remove('selectm23-hidden');
    }

    find_prev_visible_sibling(option) {
        let prev = null;

        if (option.previousElementSibling) {
            if (!option.previousElementSibling.classList.contains('selectm23-hidden')) {
                prev = option.previousElementSibling;
            } else {
                prev = this.find_prev_visible_sibling(option.previousElementSibling);
            }
        }

        return prev;
    }

    find_next_visible_sibling(option) {
        let next = null;

        if (option.nextElementSibling) {
            if (!option.nextElementSibling.classList.contains('selectm23-hidden')) {
                next = option.nextElementSibling;
            } else {
                next = this.find_next_visible_sibling(option.nextElementSibling);
            }
        }

        return next;
    }

    add_selected(option, cast = true) {
        if (option) {
            let option_value = null;
            if (option.hasAttribute('data-value')) {
                option_value = option.getAttribute('data-value');
            } else {
                option_value = option.getAttribute('value');
            }

            let selected = document.createElement('span');
            selected.className = 'selectm23-selected';
            selected.setAttribute('data-value', option_value);
            this.selected_values.push(option_value);
            if (this.select.querySelector(`option[value="${option_value}"]`)) {
                this.select.querySelector(`option[value="${option_value}"]`).setAttribute('selected', '');
            }
            selected.innerHTML = option.innerText;
            this.hide(option);
            this.hide(this.options);
            //remove all text nodes
            //[...this.selecton.childNodes].forEach(elm => elm.nodeType !== 1 && elm.parentNode.removeChild(elm))
            this.set_placeholder(true);
            this.selecton.appendChild(selected);

            let cross = document.createElement('span');
            cross.className = 'selectm23-selected-cross';
            cross.innerHTML = 'x';
            selected.appendChild(cross);

            if (cast) {
                this.cast();
            }

            selected.addEventListener(this.is_mobile ? 'touchstart' : 'click', (e) => {
                clearTimeout(this.ghost_delay_timer);
                this.show_options();
                this.input.focus();

                return true;
            });

            //+++
            if (this.use_drag) {
                selected.addEventListener(this.is_mobile ? 'touchstart' : 'mousedown', (e) => {
                    e.preventDefault();
                    e.stopPropagation();

                    this.ghost_delay_timer = setTimeout(() => {
                        this.hide(this.options);
                        this.create_ghost(selected);
                    }, 223);

                });
            }
            //***

            cross.addEventListener(this.is_mobile ? 'touchstart' : 'click', (e) => {
                e.preventDefault();
                e.stopPropagation();
                this.selected_values.splice(this.selected_values.indexOf(selected.getAttribute('data-value')), 1);
                this.show(this.options.querySelector(`[data-value="${selected.getAttribute('data-value')}"]`));
                this.select.querySelector(`option[value="${option_value}"]`).removeAttribute('selected');
                selected.remove();
                this.hide(this.options);
                this.hide(this.input);
                this.cast();
                clearTimeout(this.ghost_delay_timer);

                if (this.selecton.querySelectorAll('.selectm23-selected').length === 0) {
                    this.set_placeholder();
                }

                return true;
            });
    }
    }

    unselect_selected() {
        if (this.options.querySelector('.selectm23-option-selected')) {
            this.options.querySelector('.selectm23-option-selected').classList.remove('selectm23-option-selected');
        }
    }

    select_option(option) {
        option.classList.add('selectm23-option-selected');
    }

    show_options() {
        if (typeof SelectM23.start_z_index === 'undefined') {
            SelectM23.start_z_index = 9999;
        }

        this.options.style.zIndex = SelectM23.start_z_index++;
        this.show(this.options);
    }

    cast() {

        if (this.selected_values.length > 0) {
            this.set_placeholder(true);            
        } else {
            this.set_placeholder(false);
        }

        if (this.use_drag) {
            this.reorder_values();
        } else {
            this.select.dispatchEvent(new Event('change'));//disabled because not right reorder saved if to add new option
        }
    }

    //+++

    create_ghost(element) {
        this.dragged_element = element;
        this.ghost = this.dragged_element.cloneNode(true);
        this.ghost.classList.add('selectm23-ghost');
        this.dragged_element.after(this.ghost);
        this.hide(this.dragged_element);
    }

    delete_ghost() {
        clearTimeout(this.ghost_delay_timer);
        if (this.ghost) {
            this.ghost.before(this.dragged_element);
            this.show(this.dragged_element);
            this.ghost.remove();
            this.ghost = null;

            //***

            this.reorder_values();
        }
    }

    reorder_values() {
        let values = [];
        this.selecton.querySelectorAll('.selectm23-selected').forEach((option) => {
            values.push(option.getAttribute('data-value'));
        });

        //***

        if (this.select.getAttribute('data-values') !== values.join(',')) {
            this.select.setAttribute('data-values', values.join(','));

            this.select.dispatchEvent(new CustomEvent('selectm23-reorder', {detail: {
                    values: this.select.getAttribute('data-values')
                }}));
        }
    }

    set_placeholder(empty = false) {
        if (empty) {
            this.wrapper.style.background = '';
        } else {
            this.wrapper.style.background = `url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='50px' width='120px'><text x='5' y='18' fill='black' font-size='14'>${this.placeholder}</text></svg>") no-repeat`;
    }

    }
};
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/assets/js/select-23.js?ver=2.0.4 
/**
 * @summary     Select23
 * @description single choice drop-down
 * @version     1.0.0
 * @file        select-23
 * @author      realmag777
 * @contact     https://pluginus.net/contact-us/
 * @github      https://github.com/realmag777/select-23
 * @copyright   Copyright 2020 PluginUs.NET
 *
 * This source file is free software, available under the following license:
 *   MIT license - https://en.wikipedia.org/wiki/MIT_License
 */
'use strict';

class Select23 {
    constructor(container, data, connect_id = '', attributes = {}) {

        this.connect_id = connect_id;
        this.select = document.createElement('select');
        this.container=container;

        if (Object.keys(attributes).length) {
            for (let key in attributes) {
                this.select.setAttribute(key, attributes[key]);
            }
        }

        if (Object.keys(data).length) {
            for (let key in data) {
                let option = document.createElement('option');
                option.value = key;
                option.innerText = data[key];
                this.select.appendChild(option);
            }
        }

        //***
        container.innerHTML = '';
        container.appendChild(this.select);
        this.init();

    }

    init() {
        this.select.addEventListener('change', (e) => {
            document.dispatchEvent(new CustomEvent('select23-change', {detail: {
                    connect_id: this.connect_id,
                    value: this.select.value
                }}));
        });
    }
};
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/assets/js/popup-23.js?ver=2.0.4 
/**
 * @summary     Popup23
 * @description popup window
 * @version     1.0.0
 * @file        popup-23
 * @author      realmag777
 * @contact     https://pluginus.net/contact-us/
 * @github      https://github.com/realmag777/popup-23
 * @copyright   Copyright 2020 PluginUs.NET
 *
 * This source file is free software, available under the following license:
 *   MIT license - https://en.wikipedia.org/wiki/MIT_License
 */
'use strict';

//1 object == 1 popup
class Popup23 {

    constructor(data = {}) {
        if (typeof Popup23.z_index === 'undefined') {
            Popup23.z_index = 15003;
        }

        ++Popup23.z_index;
        this.create(data);
    }

    create(data = {}) {
        this.node = document.createElement('div');
        let div_id = woot_helper.create_id('popw-');
        this.node.setAttribute('id', div_id);
        this.node.className = 'woot-dynamic-popup-wrapper';
        this.node.innerHTML = document.querySelector('#woot-popup-template').innerHTML;
        document.querySelector('body').appendChild(this.node);
        this.node.querySelector('.woot-modal').style.zIndex = Popup23.z_index;
        this.node.querySelector('.woot-modal-backdrop').style.zIndex = Popup23.z_index - 1;

        this.node.querySelectorAll('.woot-modal-close, .woot-modal-button-large-1').forEach(item => {
            item.addEventListener('click', e => {
                e.preventDefault();
                e.stopPropagation();
                
                this.node.remove();
                return false;
            });
        });

        //***

        if (typeof data.iframe !== 'undefined' && data.iframe.length > 0) {
            let iframe = document.createElement('iframe');
            iframe.className = 'woot-iframe-in-popup';

            if (typeof data.height !== 'undefined') {
                iframe.height = data.height;
            } else {
                iframe.height = this.get_content_area_height();
            }

            iframe.frameborder = 0;
            iframe.allowfullscreen = '';
            iframe.allow = typeof data.allow !== 'undefined' ? data.allow : '';

            iframe.src = data.iframe;
            this.set_content('');
            this.append_content(iframe);
        }

        //***

        if (typeof data.title !== 'undefined' && data.title.length > 0) {
            this.set_title(data.title);
        }

        if (typeof data.help_title !== 'undefined' && data.help_title.length > 0) {
            if (typeof data.help_link !== 'undefined' && data.help_link.length > 0) {
                this.set_title_info(`<a href="${data.help_link}" class="woot-btn" target="_blank">${data.help_title}</a>`);
            }
        }

        if (typeof data.width !== 'undefined') {
            this.node.querySelector('.woot-modal').style.maxWidth = data.width + 'px';
        }

        if (typeof data.height !== 'undefined') {
            this.node.querySelector('.woot-modal').style.maxHeight = data.height + 'px';
        }

        if (typeof data.left !== 'undefined') {
            this.node.querySelector('.woot-modal').style.left = data.left + '%';
        }

        if (typeof data.left !== 'undefined') {
            this.node.querySelector('.woot-modal').style.right = data.right + '%';
        }

        if (typeof data.action !== 'undefined' && data.action.length > 0) {
            document.dispatchEvent(new CustomEvent(data.action, {detail: {...data, ...{popup: this}}}));
        }

        if (typeof data.what !== 'undefined' && data.what) {
            fetch(woot_helper_vars.ajax_url, {
                method: 'POST',
                credentials: 'same-origin',
                body: woot_helper.prepare_ajax_form_data({
                    action: 'woot_get_smth',
                    what: data.what,
                    post_id: data.post_id,
                    lang: woot_helper_vars.selected_lang
                })
            }).then((response) => response.text()).then((content) => {
                this.set_content(content);
                document.dispatchEvent(new CustomEvent('woot-popup-smth-loaded', {detail: {popup: this, content: content, post_id: data.post_id, what: data.what}}));
            }).catch((err) => {
                woot_helper.message(err, 'error', 5000);
            });
        }

        //***

        if (typeof data.shortcodes_set !== 'undefined' && data.shortcodes_set) {
            fetch(woot_helper_vars.ajax_url, {
                method: 'POST',
                credentials: 'same-origin',
                body: woot_helper.prepare_ajax_form_data({
                    action: 'woot_get_smth',
                    what: 'shortcodes_set',
                    shortcodes_set: data.shortcodes_set,
                    lang: woot_helper_vars.selected_lang
                })
            }).then((response) => response.text()).then((content) => {
                this.set_content(content);
                document.dispatchEvent(new CustomEvent('woot-popup-smth-loaded', {detail: {popup: this, content: content, what: {call_action: 'shortcodes_set'}, shortcodes_set: data.shortcodes_set}}));

                /*
                 this.shortcodes_set_interval = setInterval(() => {
                 if (this.node.querySelector('.woot-table')) {
                 this.node.querySelector('.woot-tables-set a').dispatchEvent(new Event('click'));
                 clearInterval(this.shortcodes_set_interval);
                 }
                 }, 999);
                 */

            }).catch((err) => {
                woot_helper.message(err, 'error', 5000);
            });
        }

        //***

        this.node.querySelector('.woot-modal-inner-content').addEventListener('scroll', (e) => {
            document.dispatchEvent(new CustomEvent('popup23-scrolling', {detail: {
                    top: e.srcElement.scrollTop,
                    self: this
                }}));

            //+++

            let elem = this.node.querySelector('.woot-data-table > .table23-wrapper');
            if (elem) {
                let flow = elem.querySelector('.table23-flow-header');

                if (flow) {
                    let box = elem.getBoundingClientRect();
                    let box2 = this.node.querySelector('.woot-modal-inner-header').getBoundingClientRect();
                    let first_row = elem.querySelector('table thead tr');

                    if (box.top <= Math.abs(box2.height) / 3) {

                        flow.style.display = 'block';
                        flow.style.width = (elem.querySelector('table').offsetWidth + 10) + 'px';
                        flow.style.top = 2 * Math.abs(box2.height) + Math.abs(box.top) + 'px';

                        Array.from(first_row.querySelectorAll('th')).forEach((th, index) => {
                            flow.querySelectorAll('div')[index].style.width = th.offsetWidth + 1 + 'px';
                            flow.querySelectorAll('div')[index].innerHTML = th.innerText;
                        });

                    } else {
                        flow.style.display = 'none';
                    }
                }
            }

        });

        //***

        return this.node;
    }

    set_title(title) {
        this.node.querySelector('.woot-modal-title').innerHTML = title;
    }

    set_title_info(info) {
        this.node.querySelector('.woot-modal-title-info').innerHTML = info;
    }

    set_content(content) {
        this.node.querySelector('.woot-form-element-container').innerHTML = content;
    }

    append_content(node) {
        this.node.querySelector('.woot-form-element-container').appendChild(node);
    }

    get_content_area_height() {
        return this.node.querySelector('.woot-modal-inner-content').offsetHeight - 50;
    }
};
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/assets/js/horizontal-scrollbar-23.js?ver=2.0.4 
/**
 * @summary     Horizontal Scrollbar 23
 * @description horizontal scrollbar for <table>
 * @version     1.0.0
 * @file        horizontal-scrollbar-23
 * @author      realmag777
 * @contact     https://pluginus.net/contact-us/
 * @github      https://github.com/realmag777/horizontal-scrollbar-23
 * @copyright   Copyright 2020 PluginUs.NET
 *
 * This source file is free software, available under the following license:
 *   MIT license - https://en.wikipedia.org/wiki/MIT_License
 */
'use strict';

class HorizontalScrollbar23 {
    constructor(container) {
        this.is_mobile = 'ontouchstart' in document.documentElement;
        if (this.is_mobile) {
            //user can use finger
            return false;
        }

        //***

        this.container = container;
        this.container.style.overflowX = 'hidden';

        this.wrapper = document.createElement('div');
        this.wrapper.className = 'horizontal-scrollbar23-wrapper';

        this.track = document.createElement('div');
        this.track.className = 'horizontal-scrollbar23-track';
        this.track.style.width = this.container.clientWidth + 'px';

        this.handler = document.createElement('div');
        this.handler.className = 'horizontal-scrollbar23-handler';
        this.__set_handler_width();
        this.track.appendChild(this.handler);

        this.wrapper.appendChild(this.track);
        //append after
        this.container.parentNode.insertBefore(this.wrapper, this.container.nextSibling);

        this.track_width = this.track.offsetWidth;
        this.handler_width = this.handler.offsetWidth;

        this.value = 0;
        this.dragged = null;

        this.click_event = this.is_mobile ? 'touchstart' : 'click';
        this.down_event = this.is_mobile ? 'touchstart' : 'mousedown';
        this.up_event = this.is_mobile ? 'touchend' : 'mouseup';
        this.move_event = this.is_mobile ? 'touchmove' : 'mousemove';

        this.wrapper.style.display = 'none';

        //+++

        this.handler.addEventListener(this.down_event, (e) => {
            e.preventDefault();
            e.stopPropagation();
            this.dragged = this;
        });

        document.addEventListener(this.up_event, (e) => {
            //e.preventDefault();
            this.dragged = null;
            return true;
        });

        document.addEventListener(this.move_event, (e) => {
            //e.preventDefault();

            if (this.dragged) {
                let x = e.clientX + this.handler_width / 2;
                if (this.is_mobile) {
                    x = e.touches[0].clientX;
                }

                this.move(x);
            }

            return true;
        });

        this.track.addEventListener(this.click_event, (e) => {
            e.preventDefault();
            e.stopPropagation();

            let x = e.clientX;
            if (this.is_mobile) {
                x = e.touches[0].clientX;
            }

            //to avoid double moving
            if (e.target === this.track && !this.dragged) {
                this.move(x, this.handler);
            }

        });

        //***

        window.addEventListener('resize', (e) => {
            this.resize();
        });

        //***

        document.addEventListener('scroll', (e) => {
            let bounding = this.container.querySelector('table').getBoundingClientRect();
            let condition = window.innerHeight - bounding.top > 75 &&
                    window.innerHeight - bounding.bottom < window.innerHeight / 4;

            this.__scroll(bounding, condition);
        });

        //adaptation for WOOT
        document.addEventListener('popup23-scrolling', (e) => {
            let table = e.detail.self.node.querySelector('table');

            if (table) {
                if (this.container.closest('.woot-modal-inner-content')) {
                    this.__scroll(table.getBoundingClientRect(), true);
                }
            }
        });


    }

    __scroll(bounding, condition) {

        if (bounding.height < window.innerHeight) {
            condition = true;
        } else {
            this.wrapper.style.position = 'fixed';
        }

        if (condition) {
            this.wrapper.style.display = 'block';
        } else {
            this.wrapper.style.display = 'none';
        }

        this.__set_handler_width();
    }

    __set_handler_width() {
        this.handler.style.width = (this.container.offsetWidth / this.container.scrollWidth) * this.container.offsetWidth + 'px';
        this.track.style.width = this.container.offsetWidth + 'px';

        if (this.container.scrollWidth <= this.handler.offsetWidth + 30) {
            //30 here is minimum width when the scrollbar visibility has the sense
            this.wrapper.style.display = 'none';
            return false;
        }

        return true;
    }

    move(x, handler = null) {

        let h = this.dragged;

        if (handler) {
            h = handler;
        }

        if (h) {
            let track_distance = Math.ceil((this.track.getBoundingClientRect()).x);

            let can_move = true;
            let distance = x - track_distance;

            let set_min = false;
            let set_max = false;

            if (track_distance + this.handler_width > x) {
                this.handler.style.left = '0px';
                can_move = false;
                set_min = true;
            }

            if (distance > this.track_width) {
                can_move = false;
                this.handler.style.left = this.track_width - this.handler_width + 'px';
                set_max = true;
            }

            if (!can_move) {
                this.resize();
            }

            if (can_move) {
                this.handler.style.left = distance - this.handler_width + 'px';
                this.value = Math.ceil(parseFloat(parseInt(this.handler.style.left) / parseInt(this.track_width - this.handler_width)) * 100);

                //closer
                if (this.value >= 100) {
                    this.value = 100;
                }

                //closer
                if (this.value <= 0) {
                    this.value = 0;
                }
            }

            //***

            let scroll = Math.floor(parseFloat((this.container.scrollWidth - this.track_width) / 100) * this.value);

            //closer
            if (set_min) {
                scroll = 0;
            }

            //closer
            if (set_max) {
                scroll *= 2;
            }

            this.container.scrollTo({
                top: 0,
                left: scroll,
                behavior: 'auto'
            });

    }
    }

    resize() {
        this.__set_handler_width();
        this.track_width = this.track.offsetWidth;
        this.track_width = this.track.offsetWidth;
        this.handler_width = this.handler.offsetWidth;
    }

    remove() {
        if (this.wrapper) {
            this.wrapper.remove();
        }
    }

    set_the_topmost() {
        let max_z_index = 0;
        document.querySelectorAll('.horizontal-scrollbar23-wrapper').forEach(function (scroll_bar) {
            if (parseInt(scroll_bar.style.zIndex)) {
                if (parseInt(scroll_bar.style.zIndex) > max_z_index) {
                    max_z_index = parseInt(scroll_bar.style.zIndex);
                }
            }
        });

        this.wrapper.style.zIndex = max_z_index + 1;
    }
};
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/assets/js/filter.js?ver=2.0.4 
'use strict';

class WOOT_Filter {
    constructor(dtable) {
        if (!dtable.wrapper.parentElement.querySelector('.woot-filter-data')) {
            return;
        }

        this.dtable = dtable;
        this.data = JSON.parse(this.dtable.wrapper.parentElement.querySelector('.woot-filter-data').innerText);
        this.list = this.dtable.wrapper.parentElement.querySelector('.woot-filter-list');
        this.draw();

        document.addEventListener('woot-filter-is-changed', e => {
            if (e.detail.dt === this.dtable) {
                let reset_visibility = 'block';
                if (Object.keys(this.dtable.request_data.filter_data).length === 0) {
                    reset_visibility = 'none';
                }

                if (this.dtable.wrapper.parentElement.querySelector('.woot-filter-reset')) {
                    this.draw_navigation();
                    this.dtable.wrapper.parentElement.querySelector('.woot-filter-reset').style.display = reset_visibility;
                }
            }
        }, false);
    }

    reset() {

        if (!this.dtable.wrapper.parentElement.querySelector('.woot-filter-list')) {
            return;
        }

        this.dtable.request_data.filter_data = {};

        if (this.dtable.wrapper.parentElement.querySelector('.woot-text-search')) {
            this.dtable.wrapper.parentElement.querySelector('.woot-text-search').value = '';
        }

        this.draw();
        this.redraw_table();

        document.dispatchEvent(new CustomEvent('woot-filter-reset', {detail: {
                dt: this.dtable
            }}));
    }

    draw() {
        //console.trace();
        this.list.innerHTML = '';
        if (Object.keys(this.data).length > 0) {

            if (typeof this.dtable.request_data.filter_data !== 'object') {
                this.dtable.request_data.filter_data = {};
            }

            //***
            let _this = this;

            for (let key in this.data) {
                let li = null, elem = null, label = null, value = null;

                switch (this.data[key]['view']) {
                    case 'select':
                    case 'mselect':

                        elem = document.createElement('select');
                        elem.setAttribute('data-key', key);
                        let option = document.createElement('option');
                        option.setAttribute('value', 0);
                        option.innerText = this.data[key]['title'];
                        elem.appendChild(option);

                        let filter_data = this.dtable.request_data.filter_data;

                        Object.values(this.data[key]['options']).map(function (o) {
                            option = document.createElement('option');
                            option.setAttribute('value', o.id);
                            option.innerText = o.title;
                            elem.appendChild(option);

                            //+++

                            if (filter_data[key]) {
                                if (filter_data[key].includes(parseInt(o.id))) {
                                    option.setAttribute('selected', '');
                                }
                            }

                        });

                        //***
                        //for non-multiselect drop-down
                        elem.addEventListener('change', (e) => {
                            e.stopPropagation();
                            let key = elem.getAttribute('data-key');
                            let values = Array.from(elem.querySelectorAll('option:checked')).map(el => Number(el.value));

                            this.dtable.request_data.filter_data[key] = values;

                            if (values.length === 0) {
                                delete this.dtable.request_data.filter_data[key];
                            }

                            if (values.length === 1) {
                                if (values[0] === 0) {//for single select
                                    delete this.dtable.request_data.filter_data[key];
                                }
                            }

                            this.redraw_table();
                        });

                        //***

                        let is_multi = this.data[key]['view'] === 'mselect';

                        if (is_multi && typeof SelectM23 === 'function') {
                            setTimeout(() => {

                                //fix for strange behaviour of multi selects with first option selection while redrawing
                                elem.querySelector('option').setAttribute('value', 'selectm23-exclude');//first option
                                elem.setAttribute('multiple', 'multiple');
                                new SelectM23(elem, false, this.data[key]['title']);//wrapping of <select>

                            }, 111);
                        }

                        break;

                    case 'range_slider':

                        elem = document.createElement('div');
                        elem.setAttribute('data-key', key);
                        elem.className = 'ranger23-track woot-slider';
                        elem.setAttribute('data-min', this.data[key]['min']);
                        elem.setAttribute('data-max', this.data[key]['max']);
                        elem.setAttribute('data-selected-min', this.data[key]['min']);
                        elem.setAttribute('data-selected-max', this.data[key]['max']);

                        if (this.data[key]['title']) {
                            label = document.createElement('div');
                            label.className = 'woot-slider-label';
                            label.innerText = this.data[key]['title'] + ':';
                        }

                        //+++

                        if (_this.dtable.request_data.filter_data[key]) {
                            let val = _this.dtable.request_data.filter_data[key].split(':');
                            elem.setAttribute('data-selected-min', val[0]);
                            elem.setAttribute('data-selected-max', val[1]);
                        }

                        //+++

                        let slider = new Ranger23(elem, woot_helper.create_id('slider-'));

                        //if slider generated in float containers coordinates are wrong
                        setTimeout(() => {
                            slider.resize();
                        }, 125);

                        document.addEventListener('ranger23-update', (e) => {
                            if (e.detail.cast_id === slider.cast_id) {

                                let key = slider.track.getAttribute('data-key');
                                let from = parseInt(e.detail.from, 10);
                                let to = parseInt(e.detail.to, 10);

                                _this.dtable.request_data.filter_data[key] = from + ':' + to;

                                if (slider.min === from && slider.max === to) {
                                    delete _this.dtable.request_data.filter_data[key];
                                }

                                if (Object.keys(_this.dtable.request_data.filter_data).length === 0) {
                                    _this.redraw_table(null);//because another way no reaction if filter_data empty
                                } else {
                                    _this.redraw_table();
                                }
                            }
                        });

                        break;


                    case 'textinput':

                        elem = document.createElement('input');
                        elem.setAttribute('data-key', key);
                        elem.setAttribute('type', 'search');
                        if (this.data[key]['minlength']) {
                            elem.setAttribute('minlength', this.data[key]['minlength']);
                        } else {
                            elem.setAttribute('minlength', 1);
                        }
                        elem.className = 'woot-text-search';

                        if (this.data[key]['placeholder']) {
                            elem.setAttribute('placeholder', this.data[key]['placeholder']);
                        }

                        if (_this.dtable.request_data.filter_data[key]) {
                            elem.value = _this.dtable.request_data.filter_data[key];
                        }

                        this.dtable.attach_keyup_event(elem);//we also use this for post title search input
                        this.dtable.attach_mouseup_event(elem);//we also use this for post title search input

                        break;

                    case 'switcher':

                        value = 0;

                        if (_this.dtable.request_data.filter_data[key]) {
                            value = _this.dtable.request_data.filter_data[key];
                        }
                        
                        elem = document.createElement('div');
                        
                         if (this.data[key]['title']) {
                            label = document.createElement('span');
                            label.className = 'woot-slider-label';
                            label.innerText = this.data[key]['title'] + ': ';
                            
                            elem.appendChild(label);
                        }

                        elem.appendChild(woot_helper.draw_switcher(key, value, 0, ''));
                        woot_helper.init_switcher(elem.querySelector('.switcher23'));

                        elem.querySelector('.switcher23').addEventListener('change', function (e) {

                            if (Number(this.value)) {
                                _this.dtable.request_data.filter_data[key] = Number(this.value);
                            } else {
                                delete _this.dtable.request_data.filter_data[key];
                            }

                            _this.redraw_table();
                            return true;
                        });

                       

                        break;

                    case 'calendar':

                        elem = document.createElement('div');
                        elem.className = 'calendar23-selector';

                        if (_this.dtable.request_data.filter_data[key]) {
                            value = _this.dtable.request_data.filter_data[key];
                        }

                        let selector = new Calendar23_Selector(elem, value, this.data[key]['placeholder'], woot_helper_vars.lang.calendar23_names);

                        selector.selected = () => {
                            this.dtable.request_data.filter_data[key] = selector.unix_time_stamp;
                            this.redraw_table();
                        };

                        break;

                    default:
                        //default filter element here
                        break;
                }

                if (elem && this.data[key]) {
                    li = document.createElement('div');
                    li.className = 'woot-filter-cell-' + key + ' woot-filter-cell-type-' + this.data[key]['view'];

                    if (this.data[key]['width'] && this.data[key]['width'].length > 0) {
                        li.style.width = this.data[key]['width'];
                    }

                    li.appendChild(elem);
                    this.list.appendChild(li);


                    if (label && this.data[key]['view'] !== 'switcher') {
                        label.appendBefore(elem);
                    }
                }
            }

            //add reset button
            let reset = document.createElement('a');
            reset.setAttribute('href', '#');
            reset.className = 'woot-filter-reset woot-btn';
            reset.innerText = woot_helper_vars.lang.reset;
            reset.addEventListener('click', function (e) {
                e.preventDefault();
                e.stopPropagation();
                _this.reset();
                _this.dtable.request_data.filter_data = {};
                _this.draw_navigation();

                return false;
            });

            let li = document.createElement('div');
            li.className = 'woot-filter-reset-container';
            li.appendChild(reset);
            this.list.appendChild(li);
        }
    }

    draw_navigation() {

        if (this.navigation) {
            this.navigation.remove();
        }

        this.navigation = document.createElement('div');
        this.navigation.className = 'woot-filter-navigation woot-clearfix';
        this.dtable.wrapper.parentElement.querySelector('.woot-filter-list').after(this.navigation);

        let keys = Object.keys(this.data);
        keys.push('post_title');

        if (keys.length > 0) {
            let label = null;

            for (let i in keys) {
                
                let key = keys[i];
                
                if(this.navigation.querySelector(`[data-key="${key}"]`)){
                    continue;
                }                

                if (!this.dtable.request_data.filter_data[key]) {
                    continue;
                }

                label = document.createElement('span');
                label.className = 'woot-filter-navigation-label';
                label.setAttribute('data-key', key);


                if (key === 'post_title') {
                    label.innerText = woot_helper_vars.lang.product_title;
                } else {
                    label.innerText = this.data[key]['title'];
                }

                this.navigation.appendChild(label);

                //***
                label.addEventListener('click', () => {
                    label.remove();
                    delete this.dtable.request_data.filter_data[key];

                    if (key === 'post_title') {
                        this.dtable.wrapper.parentElement.querySelector('.woot-text-search').value = '';
                    }

                    this.draw();
                    this.redraw_table();
                    return true;
                });

            }
        }

    }

    redraw_table() {
        this.dtable.redraw_table();

        document.dispatchEvent(new CustomEvent('woot-filter-is-changed', {detail: {
                dt: this.dtable
            }}));

    }

};
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/assets/js/alasql.min.js?ver=0.5.5 
//! AlaSQL v0.5.5 | © 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.5.5",gi.debug=void 0;function W(){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<s[o-2].length&&("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];1<p.length&&("MIN"==f.toUpperCase()||"MAX"==f.toUpperCase())?this.$=new n.FuncValue({funcid:f,args:p}):gi.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:[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]&&2<T&&N.push("'"+this.terminals_[T]+"'");I=h.showPosition?"Parse error on line "+(o+1)+":\n"+h.showPosition()+"\nExpecting "+N.join(", ")+", got '"+(this.terminals_[E]||E)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==E?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(I,{text:h.match,token:this.terminals_[E]||E,line:h.yylineno,loc:p,expected:N,recoverable:!1!==w})}if(3==c){if(1===E||1===g)throw new Error(I||"Parsing halted while starting to recover from another error.");u=h.yyleng,i=h.yytext,o=h.yylineno,p=h.yylloc,E=R()}if(!1===w)throw new Error(I||"Parsing halted. No suitable error recovery rule available.");C=w,n.length=n.length-2*C,r.length=r.length-C,a.length=a.length-C,g=2==E?null:E,E=2,m=n[n.length-1],v=s[m]&&s[m][2],c=3}if(v[0]instanceof Array&&1<v.length)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+E);switch(v[0]){case 1:n.push(E),r.push(h.yytext),a.push(h.yylloc),n.push(v[1]),E=null,g?(E=g,g=null):(u=h.yyleng,i=h.yytext,o=h.yylineno,p=h.yylloc,0<c&&c--);break;case 2:if(A=this.productions_[v[1]][1],O.$=r[r.length-A],O._$={first_line:a[a.length-(A||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(A||1)].first_column,last_column:a[a.length-1].last_column},b&&(O._$.range=[a[a.length-(A||1)].range[0],a[a.length-1].range[1]]),void 0!==(S=this.performAction.apply(O,[i,u,o,d.yy,v[1],r,a].concat(l))))return S;A&&(n=n.slice(0,-1*A*2),r=r.slice(0,-1*A),a=a.slice(0,-1*A)),n.push(this.productions_[v[1]][0]),r.push(O.$),a.push(O._$),y=s[n[n.length-2]][n[n.length-1]],n.push(y);break;case 3:return!0}}return!0}},pi=["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"];fi.parseError=function(e,t){if(!(t.expected&&-1<t.expected.indexOf("'LITERAL'")&&/[a-zA-Z_][a-zA-Z_0-9]*/.test(t.token)&&-1<pi.indexOf(t.token)))throw new SyntaxError(e)};var bi={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(20<e.length?"...":"")+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)+(20<e.length?"...":"")).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))&&(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;var e,t,r,n;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),s=0;s<a.length;s++)if((r=this._input.match(this.rules[a[s]]))&&(!t||r[0].length>t[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<this.conditionStack.length-1?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 0<=(e=this.conditionStack.length-1-Math.abs(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}}};function Ei(){this.yy={}}return fi.lexer=bi,new((Ei.prototype=fi).Parser=Ei)}();void 0!==W&&"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&&W.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 e(){}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 W.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;r<e.length;++r)t[r]=String.fromCharCode(e[r]);n(t.join(""))},a.send()}else if(e instanceof Event){var s=e.target.files,i=new FileReader;s[0].name;i.onload=function(e){var t=e.target.result;n(t)},i.readAsArrayBuffer(s[0])}else e instanceof Blob&&n(e)},c.removeFile=function(e,t){if(!c.isNode)throw new Error("You can remove files only in Node.js and Apache Cordova")},c.deleteFile=function(e,t){};c.autoExtFilename=function(e,t,r){return r=r||{},"string"!=typeof e||e.match(/^[A-z]+:\/\/|\n|\..{2,4}$/)||0===r.autoExt||!1===r.autoExt?e:e+"."+t};c.fileExists=function(e,t){if(!c.isNode)throw new Error("You can use exists() only in Node.js or Apach Cordova")},c.saveFile=function(e,t,r,n){var a=1;if(void 0===e)a=t,r&&(a=r(a));else if(c.isNode);else if(9===h()){var s=t.replace(/\r\n/g,"&#A;&#D;");s=(s=s.replace(/\n/g,"&#D;")).replace(/\t/g,"&#9;");var i=c.global.open("about:blank","_blank");i.document.write(s),i.document.close(),i.document.execCommand("SaveAs",!1,e),i.close()}else{var o={disableAutoBom:!1};gi.utils.extend(o,n);var u=new Blob([t],{type:"text/plain;charset=utf-8"});ae(u,e,o.disableAutoBom),r&&(a=r(a))}return a};function h(){var e=navigator.userAgent.toLowerCase();return-1!==e.indexOf("msie")&&parseInt(e.split("msie")[1])}var E=c.hash=function(e){for(var t=2166136261,r=e.length;r;)t^=e.charCodeAt(--r),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return t},r=c.arrayUnion=function(e,t){var r=t.slice(0);return e.forEach(function(e){r.indexOf(e)<0&&r.push(e)}),r},d=c.arrayDiff=function(e,t){return e.filter(function(e){return t.indexOf(e)<0})},T=c.arrayIntersect=function(e,n){var a=[];return e.forEach(function(t){var r=!1;n.forEach(function(e){r=r||t===e}),r&&a.push(t)}),a},m=c.arrayUnionDeep=function(e,t){var n=t.slice(0);return e.forEach(function(t){var r=!1;n.forEach(function(e){r=r||N(t,e)}),r||n.push(t)}),n},A=c.arrayExceptDeep=function(e,n){var a=[];return e.forEach(function(t){var r=!1;n.forEach(function(e){r=r||N(t,e)}),r||a.push(t)}),a},y=c.arrayIntersectDeep=function(e,n){var a=[];return e.forEach(function(t){var r=!1;n.forEach(function(e){r=r||N(t,e,!0)}),r&&a.push(t)}),a},b=c.cloneDeep=function e(t){if(null===t||"object"!=typeof t)return t;if(t instanceof Date)return new Date(t);var r=t.constructor();for(var n in t)t.hasOwnProperty(n)&&(r[n]=e(t[n]));return r},N=c.deepEqual=function(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var r in e)if(!N(e[r],t[r]))return!1;return!0},x=c.distinctArray=function(t){for(var e={},r=0,n=t.length;r<n;r++){e["object"==typeof t[r]?Object.keys(t[r]).sort().map(function(e){return e+"`"+t[r][e]}).join("`"):t[r]]=t[r]}var a=[];for(var s in e)a.push(e[s]);return a},g=c.extend=function(e,t){for(var r in e=e||{},t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e},a=c.flatArray=function(t){if(!t||0===t.length)return[];if("object"==typeof t&&t instanceof gi.Recordset)return t.data.map(function(e){return e[t.columns[0].columnid]});var r=Object.keys(t[0])[0];return void 0===r?[]:t.map(function(e){return e[r]})};c.arrayOfArrays=function(e){return e.map(function(e){var t=[];for(var r in e)t.push(e[r]);return t})};Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)});c.xlsnc=function(e){var t=String.fromCharCode(65+e%26);return 26<=e&&(e=(e/26|0)-1,t=String.fromCharCode(65+e%26)+t,26<e&&(e=(e/26|0)-1,t=String.fromCharCode(65+e%26)+t)),t},c.xlscn=function(e){var t=e.charCodeAt(0)-65;return 1<e.length&&(t=26*(t+1)+e.charCodeAt(1)-65,2<e.length&&(t=26*(t+1)+e.charCodeAt(2)-65)),t},c.domEmptyChildren=function(e){for(var t=e.childNodes.length;t--;)e.removeChild(e.lastChild)},c.like=function(e,t,r){r=r||"";for(var n=0,a="^";n<e.length;){var s=e[n],i="";n<e.length-1&&(i=e[n+1]),s===r?(a+="\\"+i,n++):"["===s&&"^"===i?(a+="[^",n++):"["===s||"]"===s?a+=s:"%"===s?a+=".*":"_"===s?a+=".":-1<"/.*+?|(){}".indexOf(s)?a+="\\"+s:a+=s,n++}return a+="$",-1<(""+(t||"")).toUpperCase().search(RegExp(a.toUpperCase()))};c.glob=function(e,t){for(var r=0,n="^";r<t.length;){var a=t[r],s="";r<t.length-1&&(s=t[r+1]),"["===a&&"^"===s?(n+="[^",r++):"["===a||"]"===a?n+=a:"*"===a?n+=".*":"?"===a?n+=".":-1<"/.*+?|(){}".indexOf(a)?n+="\\"+a:n+=a,r++}return n+="$",-1<(""+(e||"")).toUpperCase().search(RegExp(n.toUpperCase()))},c.findAlaSQLPath=function(){if(c.isWebWorker)return"";if(c.isMeteorClient)return"/packages/dist/";if(c.isMeteorServer)return"assets/packages/dist/";if(c.isNode)return"";if(c.isBrowser)for(var e=document.getElementsByTagName("script"),t=0;t<e.length;t++){if("alasql-worker.js"===e[t].src.substr(-16).toLowerCase())return e[t].src.substr(0,e[t].src.length-16);if("alasql-worker.min.js"===e[t].src.substr(-20).toLowerCase())return e[t].src.substr(0,e[t].src.length-20);if("alasql.js"===e[t].src.substr(-9).toLowerCase())return e[t].src.substr(0,e[t].src.length-9);if("alasql.min.js"===e[t].src.substr(-13).toLowerCase())return e[t].src.substr(0,e[t].src.length-13)}return""};function C(){var e=gi.private.externalXlsxLib;if(e)return e;if(c.isNode||c.isBrowserify||c.isMeteorServer||(e=c.global.XLSX||null),null===e)throw new Error("Please include the xlsx.js library");return e}gi.path=gi.utils.findAlaSQLPath(),gi.utils.uncomment=function(e){for(var t,r=!1,n=!1,a=!1,s=0,i=(e=("__"+e+"__").split("")).length;s<i;s++){var o="\\"!==e[s-1]||"\\"===e[s-2];r?e[s]===t&&o&&(r=!1):n?"*"===e[s]&&"/"===e[s+1]?(e[s]=e[s+1]="",n=!1,s++):e[s]="":a?("\n"!==e[s+1]&&"\r"!==e[s+1]||(a=!1),e[s]=""):'"'===e[s]||"'"===e[s]?(r=!0,t=e[s]):"["===e[s]&&"@"!==e[s-1]?(r=!0,t="]"):"/"===e[s]&&"*"===e[s+1]&&(n=!(e[s]=""))}return e=e.join("").slice(2,-2)},gi.parser=t,gi.parser.parseError=function(e,t){throw new Error("Have you used a reserved keyword without `escaping` it?\n"+e)},gi.parse=function(e){return t.parse(gi.utils.uncomment(e))},gi.engines={},gi.databases={},gi.databasenum=0,gi.options={},gi.options.errorlog=!1,gi.options.valueof=!1,gi.options.dropifnotexists=!1,gi.options.datetimeformat="sql",gi.options.casesensitive=!0,gi.options.logtarget="output",gi.options.logprompt=!0,gi.options.progress=!1,gi.options.modifier=void 0,gi.options.columnlookup=10,gi.options.autovertex=!0,gi.options.usedbo=!0,gi.options.autocommit=!0,gi.options.cache=!0,gi.options.tsql=!0,gi.options.mysql=!0,gi.options.postgres=!0,gi.options.oracle=!0,gi.options.sqlite=!0,gi.options.orientdb=!0,gi.options.nocount=!1,gi.options.nan=!1,gi.options.joinstar="overwrite",gi.vars={},gi.declares={},gi.prompthistory=[],gi.plugins={},gi.from={},gi.into={},gi.fn={},gi.aggr={},gi.busy=0,gi.MAXSQLCACHESIZE=1e4,gi.DEFAULTDATABASEID="alasql",gi.lastid=0,gi.buffer={},gi.private={externalXlsxLib:null},gi.setXLSX=function(e){gi.private.externalXlsxLib=e},gi.use=function(e){if(e=e||gi.DEFAULTDATABASEID,gi.useid!==e){gi.useid=e;var t=gi.databases[gi.useid];gi.tables=t.tables,t.resetSqlCache(),gi.options.usedbo&&(gi.databases.dbo=t)}},gi.autoval=function(e,t,r,n){var a=n?gi.databases[n]:gi.databases[gi.useid];if(!a.tables[e])throw new Error("Tablename not found: "+e);if(!a.tables[e].identities[t])throw new Error("Colname not found: "+t);return r?a.tables[e].identities[t].value||null:a.tables[e].identities[t].value-a.tables[e].identities[t].step||null},gi.exec=function(e,t,r,n){if("function"==typeof t&&(n=r,r=t,t={}),delete gi.error,t=t||{},!gi.options.errorlog)return gi.dexec(gi.useid,e,t,r,n);try{return gi.dexec(gi.useid,e,t,r,n)}catch(e){gi.error=e,r&&r(null,gi.error)}},gi.dexec=function(e,t,r,n,a){var s,i=gi.databases[e];if(gi.options.cache&&(s=E(t),(u=i.sqlCache[s])&&i.dbversion===u.dbversion))return u(r,n);var o=gi.parse(t);if(o.statements){if(0===o.statements.length)return 0;if(1===o.statements.length){if(o.statements[0].compile){var u;if(!(u=o.statements[0].compile(e,r)))return;return u.sql=t,u.dbversion=i.dbversion,gi.options.cache&&(i.sqlCacheSize>gi.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;o<u;o++)if(t.statements[o])if(t.statements[o].compile){var c=t.statements[o].compile(gi.useid);i.push(gi.res=c(r,null,a))}else gi.precompile(t.statements[o],gi.useid,r),i.push(gi.res=t.statements[o].execute(gi.useid,r));return s!==e&&gi.use(s),n&&n(i),gi.res=i},gi.adrun=function(n,a,s,i,o){var u=0,c=a.statements.length;!1!==gi.options.progress&&gi.options.progress(c,u++);var l=gi.useid;l!==n&&gi.use(n);var h=[];!function e(t){void 0!==t&&h.push(t);var r=a.statements.shift();r?(r.compile?r.compile(gi.useid)(s,e,o):(gi.precompile(a.statements[0],gi.useid,s),r.execute(gi.useid,s,e)),!1!==gi.options.progress&&gi.options.progress(c,u++)):(l!==n&&gi.use(l),i(h))}()},gi.compile=function(e,t){t=t||gi.useid;var r=gi.parse(e);if(1!==r.statements.length)throw new Error("Cannot compile, because number of statements in SQL is not equal to 1");var a=r.statements[0].compile(t);return a.promise=function(e){return new Promise(function(r,n){a(e,function(e,t){t?n(t):r(e)})})},a},c.global.Promise||c.isNode||function(){function c(e){return"function"==typeof e}function t(){return function(){setTimeout(r,1)}}function r(){for(var e=0;e<C;e+=2){(0,k[e])(k[e+1]),k[e]=void 0,k[e+1]=void 0}C=0}function i(){}function o(e){try{return e.then}catch(e){return G.error=e,G}}function u(e,t,r){t.constructor===e.constructor&&r===M&&constructor.resolve===U?function(t,e){e._state===P?h(t,e._result):e._state===q?d(t,e._result):f(e,void 0,function(e){l(t,e)},function(e){d(t,e)})}(e,t):r===G?d(e,G.error):void 0===r?h(e,t):c(r)?function(e,n,a){R(function(t){var r=!1,e=function(e,t,r,n){try{e.call(t,r,n)}catch(e){return e}}(a,n,function(e){r||(r=!0,n!==e?l(t,e):h(t,e))},function(e){r||(r=!0,d(t,e))},t._label);!r&&e&&(r=!0,d(t,e))},e)}(e,t,r):h(e,t)}function l(e,t){e===t?d(e,new TypeError("You cannot resolve a promise with itself")):function(e){return"function"==typeof e||"object"==typeof e&&null!==e}(t)?u(e,t,o(t)):h(e,t)}function n(e){e._onerror&&e._onerror(e._result),p(e)}function h(e,t){e._state===F&&(e._result=t,e._state=P,0!==e._subscribers.length&&R(p,e))}function d(e,t){e._state===F&&(e._state=q,e._result=t,R(n,e))}function f(e,t,r,n){var a=e._subscribers,s=a.length;e._onerror=null,a[s]=t,a[s+P]=r,a[s+q]=n,0===s&&e._state&&R(p,e)}function p(e){var t=e._subscribers,r=e._state;if(0!==t.length){for(var n,a,s=e._result,i=0;i<t.length;i+=3)n=t[i],a=t[i+r],n?b(r,n,a,s):a(s);e._subscribers.length=0}}function e(){this.error=null}function b(e,t,r,n){var a,s,i,o,u=c(r);if(u){if((a=function(e,t){try{return e(t)}catch(e){return V.error=e,V}}(r,n))===V?(o=!0,s=a.error,a=null):i=!0,t===a)return void d(t,new TypeError("A promises callback cannot return that same promise."))}else a=n,i=!0;t._state!==F||(u&&i?l(t,a):o?d(t,s):e===P?h(t,a):e===q&&d(t,a))}function E(e){e[_]=B++,e._state=void 0,e._result=void 0,e._subscribers=[]}function a(e){this[_]=B++,this._result=this._state=void 0,this._subscribers=[],i!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof a?function(t,e){try{e(function(e){l(t,e)},function(e){d(t,e)})}catch(e){d(t,e)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}function s(e,t){this._instanceConstructor=e,this.promise=new e(i),this.promise[_]||E(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?h(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&h(this.promise,this._result))):d(this.promise,new Error("Array Methods must be provided an Array"))}var g,m,v,S,T,A,y,N=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},C=0,R=function(e,t){k[C]=e,k[C+1]=t,2===(C+=2)&&(m?m(r):v())},O="undefined"!=typeof window?window:void 0,w=O||{},I=w.MutationObserver||w.WebKitMutationObserver,x="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),D="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,k=new Array(1e3);v=x?function(){process.nextTick(r)}:I?(T=0,A=new I(r),y=document.createTextNode(""),A.observe(y,{characterData:!0}),function(){y.data=T=++T%2}):D?((S=new MessageChannel).port1.onmessage=r,function(){S.port2.postMessage(0)}):void 0===O?function(){try{var e=W("vertx");return g=e.runOnLoop||e.runOnContext,function(){g(r)}}catch(e){return t()}}():t();function L(a){var s=this;return new s(N(a)?function(e,t){for(var r=a.length,n=0;n<r;n++)s.resolve(a[n]).then(e,t)}:function(e,t){t(new TypeError("You must pass an array to race."))})}function $(e){var t=new this(i);return d(t,e),t}var M=function(e,t){var r=this,n=new this.constructor(i);void 0===n[_]&&E(n);var a=r._state;if(a){var s=arguments[a-1];R(function(){b(a,n,s,r._result)})}else f(r,n,e,t);return n},U=function(e){if(e&&"object"==typeof e&&e.constructor===this)return e;var t=new this(i);return l(t,e),t},_=Math.random().toString(36).substring(16),F=void 0,P=1,q=2,G=new e,V=new e,B=0,j=a;a.all=function(e){return new H(this,e).promise},a.race=L,a.resolve=U,a.reject=$,a._setScheduler=function(e){m=e},a._setAsap=function(e){R=e},a._asap=R,a.prototype={constructor:a,then:M,catch:function(e){return this.then(null,e)}};var H=s;s.prototype._enumerate=function(){for(var e=this.length,t=this._input,r=0;this._state===F&&r<e;r++)this._eachEntry(t[r],r)},s.prototype._eachEntry=function(t,e){var r=this._instanceConstructor,n=r.resolve;if(n===U){var a=o(t);if(a===M&&t._state!==F)this._settledAt(t._state,e,t._result);else if("function"!=typeof a)this._remaining--,this._result[e]=t;else if(r===j){var s=new r(i);u(s,t,a),this._willSettleAt(s,e)}else this._willSettleAt(new r(function(e){e(t)}),e)}else this._willSettleAt(n(t),e)},s.prototype._settledAt=function(e,t,r){var n=this.promise;n._state===F&&(this._remaining--,e===q?d(n,r):this._result[t]=r),0===this._remaining&&h(n,this._result)},s.prototype._willSettleAt=function(e,t){var r=this;f(e,void 0,function(e){r._settledAt(P,t,e)},function(e){r._settledAt(q,t,e)})};var J=function(){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=j)},Y={Promise:j,polyfill:J};"function"==typeof define&&define.amd?define(function(){return Y}):"undefined"!=typeof module&&module.exports?module.exports=Y:void 0!==this&&(this.ES6Promise=Y),J()}.call(this);function i(e,t,a,s){return new c.global.Promise(function(r,n){gi(e,t,function(e,t){t?n(t):(a&&s&&!1!==gi.options.progress&&gi.options.progress(a,s),r(e))})})}gi.promise=function(e,t){if("undefined"==typeof Promise)throw new Error("Please include a Promise/A+ library");if("string"==typeof e)return i(e,t);if(!c.isArray(e)||e.length<1||void 0!==t)throw new Error("Error in .promise parameters");return function(e){if(!(e.length<1)){for(var t,r,n,a=[],s=0;s<e.length;s++){if("string"==typeof(t=e[s])&&(t=[t]),!c.isArray(t)||t.length<1||2<t.length)throw new Error("Error in .promise parameter");r=t[0],n=t[1]||void 0,a.push(i(r,n,s,e.length))}return c.global.Promise.all(a)}}(e)};var s=gi.Database=function(e){var t=this;if(t===gi)if(e){if(t=gi.databases[e],!(gi.databases[e]=t))throw new Error('Database "'+e+'" not found')}else t=gi.databases.alasql,gi.options.tsql&&(gi.databases.tempdb=gi.databases.alasql);return e=e||"db"+gi.databasenum++,t.databaseid=e,(gi.databases[e]=t).dbversion=0,t.tables={},t.views={},t.triggers={},t.indices={},t.objects={},t.counter=0,t.resetSqlCache(),t};s.prototype.resetSqlCache=function(){this.sqlCache={},this.sqlCacheSize=0},s.prototype.exec=function(e,t,r){return gi.dexec(this.databaseid,e,t,r)},s.prototype.autoval=function(e,t,r){return gi.autoval(e,t,r,this.databaseid)},s.prototype.transaction=function(e){return e(new gi.Transaction(this.databaseid))};var R=gi.Transaction=function(e){return this.transactionid=Date.now(),this.databaseid=e,this.commited=!1,this.dbversion=gi.databases[e].dbversion,this.bank=JSON.stringify(gi.databases[e]),this};R.prototype.commit=function(){this.commited=!0,gi.databases[this.databaseid].dbversion=Date.now(),delete this.bank},R.prototype.rollback=function(){if(this.commited)throw new Error("Transaction already commited");gi.databases[this.databaseid]=JSON.parse(this.bank),delete this.bank},R.prototype.exec=function(e,t,r){return gi.dexec(this.databaseid,e,t,r)},R.prototype.executeSQL=R.prototype.exec;var O=gi.Table=function(e){this.data=[],this.columns=[],this.xcolumns={},this.inddefs={},this.indices={},this.uniqs={},this.uniqdefs={},this.identities={},this.checks=[],this.checkfns=[],this.beforeinsert={},this.afterinsert={},this.insteadofinsert={},this.beforedelete={},this.afterdelete={},this.insteadofdelete={},this.beforeupdate={},this.afterupdate={},this.insteadofupdate={},g(this,e)};O.prototype.indexColumns=function(){var t=this;t.xcolumns={},t.columns.forEach(function(e){t.xcolumns[e.columnid]=e})};gi.View=function(e){this.columns=[],this.xcolumns={},this.query=[],g(this,e)};var w=gi.Query=function(e){this.alasql=gi,this.columns=[],this.xcolumns={},this.selectGroup=[],this.groupColumns={},g(this,e)},D=(gi.Recordset=function(e){g(this,e)},t.yy=gi.yy={});D.extend=g,D.casesensitive=gi.options.casesensitive;var I=D.Base=function(e){return D.extend(this,e)};I.prototype.toString=function(){},I.prototype.toType=function(){},I.prototype.toJS=function(){},I.prototype.compile=e,I.prototype.exec=function(){},I.prototype.compile=e,I.prototype.exec=function(){},D.Statements=function(e){return D.extend(this,e)},D.Statements.prototype.toString=function(){return this.statements.map(function(e){return e.toString()}).join("; ")},D.Statements.prototype.compile=function(t){var n=this.statements.map(function(e){return e.compile(t)});return 1===n.length?n[0]:function(t,e){var r=n.map(function(e){return e(t)});return e&&e(r),r}},D.Search=function(e){return D.extend(this,e)},D.Search.prototype.toString=function(){var e="SEARCH ";return this.selectors&&(e+=this.selectors.toString()),this.from&&(e+="FROM "+this.from.toString()),e},D.Search.prototype.toJS=function(e){return"this.queriesfn["+(this.queriesidx-1)+"](this.params,null,"+e+")"},D.Search.prototype.compile=function(e){var n=e,a=this,s=function(e,t){var r;return function(e,O,t){var r,w,n,a,I={},s=b(this.selectors);if(void 0!==s&&0<s.length&&(s&&s[0]&&"PROP"===s[0].srchid&&s[0].args&&s[0].args[0]&&("XML"===s[0].args[0].toUpperCase()?(I.mode="XML",s.shift()):"HTML"===s[0].args[0].toUpperCase()?(I.mode="HTML",s.shift()):"JSON"===s[0].args[0].toUpperCase()&&(I.mode="JSON",s.shift())),0<s.length&&"VALUE"===s[0].srchid&&(I.value=!0,s.shift())),this.from instanceof D.Column){var i=this.from.databaseid||e;w=gi.databases[i].tables[this.from.columnid].data}else if(this.from instanceof D.FuncValue&&gi.from[this.from.funcid.toUpperCase()]){var o=this.from.args.map(function(e){var t=e.toJS();return new Function("params,alasql","var y;return "+t).bind(this)(O,gi)});w=gi.from[this.from.funcid.toUpperCase()].apply(this,o)}else if(void 0===this.from)w=gi.databases[e].objects;else{var u=new Function("params,alasql","var y;return "+this.from.toJS());w=u(O,gi),"object"==typeof Mongo&&"object"!=typeof Mongo.Collection&&w instanceof Mongo.Collection&&(w=w.find().fetch())}return r=void 0!==s&&0<s.length?function r(n,a,t){var s=n[a];if(s.selid){if("PATH"===s.selid){for(var i=[{node:t,stack:[]}],e={},o=gi.databases[gi.useid].objects;0<i.length;){var u=i.shift(),c=u.node,l=u.stack;if(0<(C=r(s.args,0,c)).length){if(a+1+1>n.length)return l;var h=[];return l&&0<l.length&&l.forEach(function(e){h=h.concat(r(n,a+1,e))}),h}void 0===e[c.$id]&&(e[c.$id]=!0,c.$out&&0<c.$out.length&&c.$out.forEach(function(e){var t=o[e],r=l.concat(t);r.push(o[t.$out[0]]),i.push({node:o[t.$out[0]],stack:r})}))}return[]}if("NOT"===s.selid)return 0<(f=r(s.args,0,t)).length?[]:a+1+1>n.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&&0<r(e,0,t).length}),d?a+1+1>n.length?[t]:r(n,a+1,t):[];if("OR"===s.selid)return d=!1,s.args.forEach(function(e){d=d||0<r(e,0,t).length}),d?a+1+1>n.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<b)for(var m=[{value:t,lvl:1}],v=0;0<m.length;){var f=m[0];if(m.shift(),f.lvl<=b){p&&(gi.vars[p]=f.lvl);var S=r(s.sels,0,f.value);S.forEach(function(e){m.push({value:e,lvl:f.lvl+1})}),f.lvl>=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;0<m.length;)if(f=m.shift(),f=r(s.args,0,f),m=m.concat(f),a+1+1>n.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;0<m.length;)if(f=m[0],m.shift(),f=r(s.args,0,f),m=m.concat(f),a+1+1<=n.length&&f.forEach(function(e){g=g.concat(r(n,a+1,e))}),1e5<++v)throw new Error("Loop brake. Number of iterations = "+v);return g}if("QUESTION"===s.selid)return g=(g=[]).concat(r(n,a+1,t)),f=r(s.args,0,t),a+1+1<=n.length&&f.forEach(function(e){g=g.concat(r(n,a+1,e))}),g;if("WITH"!==s.selid){if("ROOT"===s.selid)return a+1+1>n.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)}void 0===C&&(C={status:1,values:[t]});d=[];if(1===C.status){var R=C.values;if(a+1+1>n.length)d=R;else for(v=0;v<C.values.length;v++)d=d.concat(r(n,a+1,R[v]))}return d}(s,0,w):w,this.into?(void 0!==this.into.args[0]&&(n=new Function("params,alasql","var y;return "+this.into.args[0].toJS())(O,gi)),void 0!==this.into.args[1]&&(a=new Function("params,alasql","var y;return "+this.into.args[1].toJS())(O,gi)),r=gi.into[this.into.funcid.toUpperCase()](n,a,r,[],t)):(I.value&&0<r.length&&(r=r[0]),t&&(r=t(r))),r}.bind(a)(n,e,function(e){r=M(s.query,e),t&&(r=t(r))}),r};return s.query={},s},gi.srch={},gi.srch.PROP=function(e,t,r){if("XML"!==r.mode)return"object"!=typeof e||null===e||"object"!=typeof t||void 0===e[t[0]]?{status:-1,values:[]}:{status:1,values:[e[t[0]]]};var n=[];return e.children.forEach(function(e){e.name.toUpperCase()===t[0].toUpperCase()&&n.push(e)}),0<n.length?{status:1,values:n}:{status:-1,values:[]}},gi.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]]]}},gi.srch.EQ=function(e,t,r,n){var a=t[0].toJS("x","");return e===new Function("x,alasql,params","return "+a)(e,gi,n)?{status:1,values:[e]}:{status:-1,values:[]}},gi.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,gi,n).toUpperCase().replace(/%/g,".*").replace(/\?|_/g,".")+"$"),"g")?{status:1,values:[e]}:{status:-1,values:[]}},gi.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")},gi.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")},gi.srch.SHARP=function(e,t){var r=gi.databases[gi.useid].objects[t[0]];return void 0!==e&&e===r?{status:1,values:[e]}:{status:-1,values:[]}},gi.srch.PARENT=function(){return console.error("PARENT not implemented",arguments),{status:-1,values:[]}},gi.srch.CHILD=function(t,e,r){return"object"==typeof t?Array.isArray(t)?{status:1,values:t}:"XML"===r.mode?{status:1,values:Object.keys(t.children).map(function(e){return t.children[e]})}:{status:1,values:Object.keys(t).map(function(e){return t[e]})}:{status:1,values:[]}},gi.srch.KEYS=function(e){return"object"==typeof e&&null!==e?{status:1,values:Object.keys(e)}:{status:1,values:[]}},gi.srch.WHERE=function(e,t,r,n){var a=t[0].toJS("x","");return new Function("x,alasql,params","return "+a)(e,gi,n)?{status:1,values:[e]}:{status:-1,values:[]}},gi.srch.NAME=function(e,t){return e.name===t[0]?{status:1,values:[e]}:{status:-1,values:[]}},gi.srch.CLASS=function(e,t){return e.$class==t?{status:1,values:[e]}:{status:-1,values:[]}},gi.srch.VERTEX=function(e){return"VERTEX"===e.$node?{status:1,values:[e]}:{status:-1,values:[]}},gi.srch.INSTANCEOF=function(e,t){return e instanceof gi.fn[t[0]]?{status:1,values:[e]}:{status:-1,values:[]}},gi.srch.EDGE=function(e){return"EDGE"===e.$node?{status:1,values:[e]}:{status:-1,values:[]}},gi.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,gi,n)]}},gi.srch.RETURN=function(n,e,t,a){var s={};return e&&0<e.length&&e.forEach(function(e){var t=e.toJS("x",""),r=new Function("x,alasql,params","return "+t);void 0===e.as&&(e.as=e.toString()),s[e.as]=r(n,gi,a)}),{status:1,values:[s]}},gi.srch.REF=function(e){return{status:1,values:[gi.databases[gi.useid].objects[e]]}},gi.srch.OUT=function(e){return e.$out&&0<e.$out.length?{status:1,values:e.$out.map(function(e){return gi.databases[gi.useid].objects[e]})}:{status:-1,values:[]}},gi.srch.OUTOUT=function(e){if(e.$out&&0<e.$out.length){var r=[];return e.$out.forEach(function(e){var t=gi.databases[gi.useid].objects[e];t&&t.$out&&0<t.$out.length&&t.$out.forEach(function(e){r=r.concat(gi.databases[gi.useid].objects[e])})}),{status:1,values:r}}return{status:-1,values:[]}},gi.srch.IN=function(e){return e.$in&&0<e.$in.length?{status:1,values:e.$in.map(function(e){return gi.databases[gi.useid].objects[e]})}:{status:-1,values:[]}},gi.srch.ININ=function(e){if(e.$in&&0<e.$in.length){var r=[];return e.$in.forEach(function(e){var t=gi.databases[gi.useid].objects[e];t&&t.$in&&0<t.$in.length&&t.$in.forEach(function(e){r=r.concat(gi.databases[gi.useid].objects[e])})}),{status:1,values:r}}return{status:-1,values:[]}},gi.srch.AS=function(e,t){return{status:1,values:[gi.vars[t[0]]=e]}},gi.srch.AT=function(e,t){return{status:1,values:[gi.vars[t[0]]]}},gi.srch.CLONEDEEP=function(e){return{status:1,values:[b(e)]}},gi.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,gi),{status:1,values:[e]}},gi.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,gi)]}},gi.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]}};function k(e,t,r){if(0<=t){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]=a(e);if(r.sourceslen--,!(0<r.sourceslen))return L(r)}function L(e){var t,r=e.scope;$(e),e.data=[],e.xgroups={},e.groups=[];if(function r(n,a,s){if(s>=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<e.length)for(var t=0;t<e.length;t++)a[i.alias]=e[t],r(n,a,s+1);else"OUTER"==i.applymode&&(a[i.alias]={},r(n,a,s+1))},a)}else{var i=n.sources[s],e=n.sources[s+1],t=i.alias||i.tableid,o=!1,u=i.data,c=!1;i.getfn&&(!i.getfn||i.dontcache)||"RIGHT"==i.joinmode||"OUTER"==i.joinmode||"ANTI"==i.joinmode||"ix"!=i.optimization||(u=i.ix[i.onleftfn(a,n.params,gi)]||[],c=!0);var l=0;if(void 0===u)throw new Error("Data source number "+s+" in undefined");for(var h=u.length;(f=u[l])||!c&&i.getfn&&(f=i.getfn(l))||l<h;)c||!i.getfn||i.dontcache||(u[l]=f),a[t]=f,i.onleftfn&&i.onleftfn(a,n.params,gi)!=i.onrightfn(a,n.params,gi)||i.onmiddlefn(a,n.params,gi)&&("SEMI"!=i.joinmode&&"ANTI"!=i.joinmode&&r(n,a,s+1),"LEFT"!=i.joinmode&&"INNER"!=i.joinmode&&(f._rightjoin=!0),o=!0),l++;if("LEFT"!=i.joinmode&&"OUTER"!=i.joinmode&&"SEMI"!=i.joinmode||o||(a[t]={},r(n,a,s+1)),0==s)for(var d=s+1;d<n.sources.length;d++){if("OUTER"==e.joinmode||"RIGHT"==e.joinmode||"ANTI"==e.joinmode){a[i.alias]={};for(var f,p=0,b=e.data.length;(f=e.data[p])||e.getfn&&(f=e.getfn(p))||p<b;)e.getfn&&!e.dontcache&&(e.data[p]=f),f._rightjoin?delete f._rightjoin:(a[e.alias]=f,r(n,a,d+1)),p++}i=n.sources[d],e=n.sources[d+1]}a[t]=void 0}}(e,r,0),e.groupfn){if(e.data=[],0===e.groups.length){var n={};0<e.selectGroup.length&&e.selectGroup.forEach(function(e){"COUNT"==e.aggregatorid||"SUM"==e.aggregatorid?n[e.nick]=0:n[e.nick]=void 0}),e.groups=[n]}if(0<e.aggrKeys.length){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;i<o;i++){n=e.groups[i];if(s&&s(n,e.params,gi),!e.havingfn||e.havingfn(n,e.params,gi)){var u=e.selectgfn(n,e.params,gi);e.data.push(u)}}}if(function(t){if(t.distinct){for(var e={},r=Object.keys(t.data[0]||[]),n=0,a=t.data.length;n<a;n++){var s=r.map(function(e){return t.data[n][e]}).join("`");e[s]=t.data[n]}for(var i in t.data=[],e)t.data.push(e[i])}}(e),e.unionallfn){if(e.corresponding)e.unionallfn.query.modifier||(e.unionallfn.query.modifier=void 0),h=e.unionallfn(e.params);else{e.unionallfn.query.modifier||(e.unionallfn.query.modifier="RECORDSET"),h=[],o=(d=e.unionallfn(e.params)).data.length;for(i=0;i<o;i++){for(var c={},l=Math.min(e.columns.length,d.columns.length)-1;0<=l;l--)c[e.columns[l].columnid]=d.data[i][d.columns[l].columnid];h.push(c)}}e.data=e.data.concat(h)}else if(e.unionfn){if(e.corresponding)e.unionfn.query.modifier||(e.unionfn.query.modifier="ARRAY"),h=e.unionfn(e.params);else{e.unionfn.query.modifier||(e.unionfn.query.modifier="RECORDSET"),h=[],o=(d=e.unionfn(e.params)).data.length;for(i=0;i<o;i++){c={},t=Math.min(e.columns.length,d.columns.length);for(l=0;l<t;l++)c[e.columns[l].columnid]=d.data[i][d.columns[l].columnid];h.push(c)}}e.data=m(e.data,h)}else if(e.exceptfn){if(e.corresponding){e.exceptfn.query.modifier||(e.exceptfn.query.modifier="ARRAY");var h=e.exceptfn(e.params)}else{e.exceptfn.query.modifier||(e.exceptfn.query.modifier="RECORDSET");var d;for(h=[],i=0,o=(d=e.exceptfn(e.params)).data.length;i<o;i++){for(c={},l=Math.min(e.columns.length,d.columns.length)-1;0<=l;l--)c[e.columns[l].columnid]=d.data[i][d.columns[l].columnid];h.push(c)}}e.data=A(e.data,h)}else if(e.intersectfn){if(e.corresponding)e.intersectfn.query.modifier||(e.intersectfn.query.modifier=void 0),h=e.intersectfn(e.params);else for(e.intersectfn.query.modifier||(e.intersectfn.query.modifier="RECORDSET"),h=[],o=(d=e.intersectfn(e.params)).data.length,i=0;i<o;i++){for(c={},t=Math.min(e.columns.length,d.columns.length),l=0;l<t;l++)c[e.columns[l].columnid]=d.data[i][d.columns[l].columnid];h.push(c)}e.data=y(e.data,h)}if(e.orderfn){if(e.explain)var f=Date.now();e.data=e.data.sort(e.orderfn),e.explain&&e.explaination.push({explid:e.explid++,description:"QUERY BY",ms:Date.now()-f})}if(function(e){if(e.limit){var t,r=0;e.offset&&(r=(r=0|e.offset||0)<0?0:r),t=e.percent?(e.data.length*e.limit/100|0)+r:(0|e.limit)+r,e.data=e.data.slice(r,t)}}(e),"undefined"!=typeof angular&&e.removeKeys.push("$$hashKey"),0<e.removeKeys.length){var p=e.removeKeys;if(0<(t=p.length))for(o=e.data.length,i=0;i<o;i++)for(l=0;l<t;l++)delete e.data[i][p[l]];0<e.columns.length&&(e.columns=e.columns.filter(function(t){var r=!1;return p.forEach(function(e){t.columnid==e&&(r=!0)}),!r}))}if(void 0!==e.removeLikeKeys&&0<e.removeLikeKeys.length){var b=e.removeLikeKeys;for(i=0,o=e.data.length;i<o;i++)for(var E in c=e.data[i])for(l=0;l<e.removeLikeKeys.length;l++)gi.utils.like(e.removeLikeKeys[l],E)&&delete c[E];0<e.columns.length&&(e.columns=e.columns.filter(function(t){var r=!1;return b.forEach(function(e){gi.utils.like(e,t.columnid)&&(r=!0)}),!r}))}if(e.pivotfn&&e.pivotfn(),e.unpivotfn&&e.unpivotfn(),e.intoallfn){var g=e.intoallfn(e.columns,e.cb,e.params,e.alasql);return g}if(e.intofn){for(o=e.data.length,i=0;i<o;i++)e.intofn(e.data[i],i,e.params,e.alasql);return e.cb&&e.cb(e.data.length,e.A,e.B),e.data.length}return g=e.data,e.cb&&(g=e.cb(e.data,e.A,e.B)),g}gi.srch.ORDERBY=function(e,t){return{status:1,values:e.sort(function(e){if(e){if(e&&1===e.length&&e[0].expression&&"function"==typeof e[0].expression){var a=e[0].expression;return function(e,t){var r=a(e),n=a(t);return n<r?1:r===n?0:-1}}var n="",s="";return e.forEach(function(e){var t="";if(e.expression instanceof D.NumValue&&(e.expression=self.columns[e.expression.value-1]),e.expression instanceof D.Column){var r=e.expression.columnid;gi.options.valueof&&(t=".valueOf()"),e.nocase&&(t+=".toUpperCase()"),"_"===r?(n+="if(a"+t+("ASC"===e.direction?">":"<")+"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 $=function(t){for(var e=0,r=t.sources.length;e<r;e++){var n=t.sources[e];if(delete n.ix,0<e&&"ix"==n.optimization&&n.onleftfn&&n.onrightfn){if(n.databaseid&&gi.databases[n.databaseid].tables[n.tableid]){gi.databases[n.databaseid].tables[n.tableid].indices||(t.database.tables[n.tableid].indices={});var a=gi.databases[n.databaseid].tables[n.tableid].indices[E(n.onrightfns+"`"+n.srcwherefns)];!gi.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))||o<u;){if(n.getfn&&!n.dontcache&&(n.data[o]=s),i[n.alias||n.tableid]=s,n.srcwherefn(i,t.params,gi)){var c=n.onrightfn(i,t.params,gi),l=n.ix[c];(l=l||(n.ix[c]=[])).push(s)}o++}n.databaseid&&gi.databases[n.databaseid].tables[n.tableid]&&(gi.databases[n.databaseid].tables[n.tableid].indices[E(n.onrightfns+"`"+n.srcwherefns)]=n.ix)}}else if(n.wxleftfn){if(gi.databases[n.databaseid].engineid||(a=gi.databases[n.databaseid].tables[n.tableid].indices[E(n.wxleftfns+"`")]),!gi.databases[n.databaseid].tables[n.tableid].dirty&&a)n.ix=a,n.data=n.ix[n.wxrightfn(null,t.params,gi)];else{for(n.ix={},i={},o=0,u=n.data.length;(s=n.data[o])||n.getfn&&(s=n.getfn(o))||o<u;)n.getfn&&!n.dontcache&&(n.data[o]=s),i[n.alias||n.tableid]=n.data[o],c=n.wxleftfn(i,t.params,gi),(l=(l=n.ix[c])||(n.ix[c]=[])).push(n.data[o]),o++;gi.databases[n.databaseid].engineid||(gi.databases[n.databaseid].tables[n.tableid].indices[E(n.wxleftfns+"`")]=n.ix)}n.srcwherefns&&(n.data?(i={},n.data=n.data.filter(function(e){return i[n.alias]=e,n.srcwherefn(i,t.params,gi)})):n.data=[])}else if(n.srcwherefns&&!n.dontcache)if(n.data){i={};n.data=n.data.filter(function(e){return i[n.alias]=e,n.srcwherefn(i,t.params,gi)}),i={},o=0,u=n.data.length;for(var h=[];(s=n.data[o])||n.getfn&&(s=n.getfn(o))||o<u;)n.getfn&&!n.dontcache&&(n.data[o]=s),i[n.alias]=s,n.srcwherefn(i,t.params,gi)&&h.push(s),o++;n.data=h}else n.data=[];n.databaseid&&gi.databases[n.databaseid].tables[n.tableid]}};function M(e,t){if(void 0===t||"number"==typeof t||"string"==typeof t||"boolean"==typeof t)return t;var r=e.modifier||gi.options.modifier,n=e.columns;if(void 0===n||0==n.length)if(0<t.length){for(var a={},s=Math.min(t.length,gi.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)t=0<t.length?(i=n&&0<n.length?n[0].columnid:Object.keys(t[0])[0],t[0][i]):void 0;else if("ROW"===r)if(0<t.length){var 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(0<t.length){i=n&&0<n.length?n[0].columnid:Object.keys(t[0])[0];s=0;for(var c=t.length;s<c;s++)u.push(t[s][i])}t=u}else if("MATRIX"===r){for(u=[],s=0;s<t.length;s++){o=[];for(var l=t[s],h=0;h<n.length;h++)o.push(l[n[h].columnid]);u.push(o)}t=u}else if("INDEX"===r){var d;u={};if(n&&0<n.length)i=n[0].columnid,d=n[1].columnid;else{var f=Object.keys(t[0]);i=f[0],d=f[1]}for(s=0,c=t.length;s<c;s++)u[t[s][i]]=t[s][d];t=u}else if("RECORDSET"===r)t=new gi.Recordset({columns:n,data:t});else if("TEXTSTRING"===r){i=n&&0<n.length?n[0].columnid:Object.keys(t[0])[0];for(s=0,c=t.length;s<c;s++)t[s]=t[s][i];t=t.join("\n")}return t}function U(i,e,o){var u="",c=[],l={};return e.forEach(function(s){if(i.ixsources={},i.sources.forEach(function(e){i.ixsources[e.alias]=e}),i.ixsources[s])var e=i.ixsources[s].columns;o&&"json"==gi.options.joinstar&&(u+="r['"+s+"']={};"),e&&0<e.length?e.forEach(function(e){if(o&&"underscore"==gi.options.joinstar)c.push("'"+s+"_"+e.columnid+"':p['"+s+"']['"+e.columnid+"']");else if(o&&"json"==gi.options.joinstar)u+="r['"+s+"']['"+e.columnid+"']=p['"+s+"']['"+e.columnid+"'];";else{var t="p['"+s+"']['"+e.columnid+"']";if(l[e.columnid]){var r=t+" !== undefined ? "+t+" : "+l[e.columnid].value;c[l[e.columnid].id]=l[e.columnid].key+r,l[e.columnid].value=r}else{var n="'"+e.columnid+"':";c.push(n+t),l[e.columnid]={id:c.length-1,value:t,key:n}}}i.selectColumns[p(e.columnid)]=!0;var a={columnid:e.columnid,dbtypeid:e.dbtypeid,dbsize:e.dbsize,dbprecision:e.dbprecision,dbenum:e.dbenum};i.columns.push(a),i.xcolumns[a.columnid]=a}):(u+='var w=p["'+s+'"];for(var k in w){r[k]=w[k]};',i.dirtyColumns=!0)}),{s:c.join(","),sp:u}}D.Select=function(e){return D.extend(this,e)},D.Select.prototype.toString=function(){var e;return e="",this.explain&&(e+="EXPLAIN "),e+="SELECT ",this.modifier&&(e+=this.modifier+" "),this.distinct&&(e+="DISTINCT "),this.top&&(e+="TOP "+this.top.value+" ",this.percent&&(e+="PERCENT ")),e+=this.columns.map(function(e){var t;return t=e.toString(),void 0!==e.as&&(t+=" AS "+e.as),t}).join(", "),this.from&&(e+=" FROM "+this.from.map(function(e){var t;return t=e.toString(),e.as&&(t+=" AS "+e.as),t}).join(",")),this.joins&&(e+=this.joins.map(function(e){var t;if(t=" ",e.joinmode&&(t+=e.joinmode+" "),e.table)t+="JOIN "+e.table.toString();else if(e.select)t+="JOIN ("+e.select.toString()+")";else{if(!(e instanceof gi.yy.Apply))throw new Error("Wrong type in JOIN mode");t+=e.toString()}return e.as&&(t+=" AS "+e.as),e.using&&(t+=" USING "+e.using.toString()),e.on&&(t+=" ON "+e.on.toString()),t}).join("")),this.where&&(e+=" WHERE "+this.where.toString()),this.group&&0<this.group.length&&(e+=" GROUP BY "+this.group.map(function(e){return e.toString()}).join(", ")),this.having&&(e+=" HAVING "+this.having.toString()),this.order&&0<this.order.length&&(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},D.Select.prototype.toJS=function(e){return"alasql.utils.flatArray(this.queriesfn["+(this.queriesidx-1)+"](this.params,null,"+e+"))[0]"},D.Select.prototype.compile=function(e,t){var r=gi.databases[e],u=new w;if(u.removeKeys=[],u.aggrKeys=[],u.explain=this.explain,u.explaination=[],u.explid=1,u.modifier=this.modifier,u.database=r,this.compileWhereExists(u),this.compileQueries(u),u.defcols=this.compileDefCols(u,e),u.fromfn=this.compileFrom(u),this.joins&&this.compileJoins(u),u.rownums=[],this.compileSelectGroup0(u),this.group||0<u.selectGroup.length?u.selectgfns=this.compileSelectGroup1(u):u.selectfns=this.compileSelect1(u,t),this.compileRemoveColumns(u),this.where&&this.compileWhereJoins(u),u.wherefn=this.compileWhere(u),(this.group||0<u.selectGroup.length)&&(u.groupfn=this.compileGroup(u)),this.having&&(u.havingfn=this.compileHaving(u)),this.order&&(u.orderfn=this.compileOrder(u,t)),this.group||0<u.selectGroup.length?u.selectgfn=this.compileSelectGroup2(u):u.selectfn=this.compileSelect2(u,t),u.distinct=this.distinct,this.pivot&&(u.pivotfn=this.compilePivot(u)),this.unpivot&&(u.pivotfn=this.compileUnpivot(u)),this.top?u.limit=this.top.value:this.limit&&(u.limit=this.limit.value,this.offset&&(u.offset=this.offset.value)),u.percent=this.percent,u.corresponding=this.corresponding,this.union?(u.unionfn=this.union.compile(e),this.union.order?u.orderfn=this.union.compileOrder(u,t):u.orderfn=null):this.unionall?(u.unionallfn=this.unionall.compile(e),this.unionall.order?u.orderfn=this.unionall.compileOrder(u,t):u.orderfn=null):this.except?(u.exceptfn=this.except.compile(e),this.except.order?u.orderfn=this.except.compileOrder(u,t):u.orderfn=null):this.intersect&&(u.intersectfn=this.intersect.compile(e),this.intersect.order?u.intersectfn=this.intersect.compileOrder(u,t):u.orderfn=null),this.into){if(this.into instanceof D.Table)gi.options.autocommit&&gi.databases[this.into.databaseid||e].engineid?u.intoallfns='return alasql.engines["'+gi.databases[this.into.databaseid||e].engineid+'"].intoTable("'+(this.into.databaseid||e)+'","'+this.into.tableid+'",this.data, columns, cb);':u.intofns="alasql.databases['"+(this.into.databaseid||e)+"'].tables['"+this.into.tableid+"'].data.push(r);";else if(this.into instanceof D.VarValue)u.intoallfns='alasql.vars["'+this.into.variable+'"]=this.data;res=this.data.length;if(cb)res=cb(res);return res;';else if(this.into instanceof D.FuncValue){var n="return alasql.into['"+this.into.funcid.toUpperCase()+"'](";this.into.args&&0<this.into.args.length?(n+=this.into.args[0].toJS()+",",1<this.into.args.length?n+=this.into.args[1].toJS()+",":n+="undefined,"):n+="undefined, undefined,",u.intoallfns=n+"this.data,columns,cb)"}else this.into instanceof D.ParamValue&&(u.intofns="params['"+this.into.param+"'].push(r)");u.intofns?u.intofn=new Function("r,i,params,alasql","var y;"+u.intofns):u.intoallfns&&(u.intoallfn=new Function("columns,cb,params,alasql","var y;"+u.intoallfns))}function a(e,o,t){return u.params=e,function(n,e,t,r,a){n.sources.length,n.sourceslen=n.sources.length;var s,i,o=n.sourceslen;return(n.query=n).A=r,n.B=a,n.cb=t,n.oldscope=e,n.queriesfn&&(n.sourceslen+=n.queriesfn.length,o+=n.queriesfn.length,n.queriesdata=[],n.queriesfn.forEach(function(e,t){e.query.params=n.params,k([],-t-1,n)})),s=e?b(e):{},n.scope=s,n.sources.forEach(function(e,t){e.query=n;var r=e.datafn(n,n.params,k,t,gi);void 0!==r&&((n.intofn||n.intoallfn)&&Array.isArray(r)&&(r=r.length),i=r),e.queriesdata=n.queriesdata}),0!=n.sources.length&&0!==o||(i=L(n)),i}(u,t,function(e,t){if(t)return o(t,null);if(0<u.rownums.length)for(var r=0,n=e.length;r<n;r++)for(var a=0,s=u.rownums.length;a<s;a++)e[r][u.rownums[a]]=r+1;var i=M(u,e);return o&&o(i),i})}return a.query=u,a},D.Select.prototype.execute=function(e,t,r){return this.compile(e)(t,r)},D.ExistsValue=function(e){return D.extend(this,e)},D.ExistsValue.prototype.toString=function(){return"EXISTS("+this.value.toString()+")"},D.ExistsValue.prototype.toType=function(){return"boolean"},D.ExistsValue.prototype.toJS=function(e,t,r){return"this.existsfn["+this.existsidx+"](params,null,"+e+").data.length"},D.Select.prototype.compileWhereExists=function(r){this.exists&&(r.existsfn=this.exists.map(function(e){var t=e.compile(r.database.databaseid);return t.query.modifier="RECORDSET",t}))},D.Select.prototype.compileQueries=function(r){this.queries&&(r.queriesfn=this.queries.map(function(e){var t=e.compile(r.database.databaseid);return t.query.modifier="RECORDSET",t}))},gi.precompile=function(r,n,e){r&&(r.params=e,r.queries&&(r.queriesfn=r.queries.map(function(e){var t=e.compile(n||r.database.databaseid);return t.query.modifier="RECORDSET",t})),r.exists&&(r.existsfn=r.exists.map(function(e){var t=e.compile(n||r.database.databaseid);return t.query.modifier="RECORDSET",t})))},D.Select.prototype.compileFrom=function(r){r.sources=[],r.aliases={},this.from&&(this.from.forEach(function(i){var e="",t=i.as||i.tableid;if(i instanceof D.Table)r.aliases[t]={tableid:i.tableid,databaseid:i.databaseid||r.database.databaseid,type:"table"};else if(i instanceof D.Select)r.aliases[t]={type:"subquery"};else if(i instanceof D.Search)r.aliases[t]={type:"subsearch"};else if(i instanceof D.ParamValue)r.aliases[t]={type:"paramvalue"};else if(i instanceof D.FuncValue)r.aliases[t]={type:"funcvalue"};else if(i instanceof D.VarValue)r.aliases[t]={type:"varvalue"};else if(i instanceof D.FromData)r.aliases[t]={type:"fromdata"};else if(i instanceof D.Json)r.aliases[t]={type:"json"};else{if(!i.inserted)throw new Error("Wrong table at FROM");r.aliases[t]={type:"inserted"}}var o={alias:t,databaseid:i.databaseid||r.database.databaseid,tableid:i.tableid,joinmode:"INNER",onmiddlefn:S,srcwherefns:"",srcwherefn:S};if(i instanceof D.Table)o.columns=gi.databases[o.databaseid].tables[o.tableid].columns,gi.options.autocommit&&gi.databases[o.databaseid].engineid&&!gi.databases[o.databaseid].tables[o.tableid].view?o.datafn=function(e,t,r,n,a){return a.engines[a.databases[o.databaseid].engineid].fromTable(o.databaseid,o.tableid,r,n,e)}:gi.databases[o.databaseid].tables[o.tableid].view?o.datafn=function(e,t,r,n,a){var s=a.databases[o.databaseid].tables[o.tableid].select(t);return r&&(s=r(s,n,e)),s}:o.datafn=function(e,t,r,n,a){var s=a.databases[o.databaseid].tables[o.tableid].data;return r&&(s=r(s,n,e)),s};else if(i instanceof D.Select)o.subquery=i.compile(r.database.databaseid),void 0===o.subquery.query.modifier&&(o.subquery.query.modifier="RECORDSET"),o.columns=o.subquery.query.columns,o.datafn=function(t,e,r,n,a){var s;return o.subquery(t.params,function(e){return s=e.data,r&&(s=r(s,n,t)),s}),s};else if(i instanceof D.Search)o.subsearch=i,o.columns=[],o.datafn=function(t,e,r,n,a){var s;return o.subsearch.execute(t.database.databaseid,t.params,function(e){return s=e,r&&(s=r(s,n,t)),s}),s};else if(i instanceof D.ParamValue)e="var res = alasql.prepareFromData(params['"+i.param+"']",i.array&&(e+=",true"),e+=");if(cb)res=cb(res,idx,query);return res",o.datafn=new Function("query,params,cb,idx,alasql",e);else if(i.inserted)e="var res = alasql.prepareFromData(alasql.inserted",i.array&&(e+=",true"),e+=");if(cb)res=cb(res,idx,query);return res",o.datafn=new Function("query,params,cb,idx,alasql",e);else if(i instanceof D.Json)e="var res = alasql.prepareFromData("+i.toJS(),i.array&&(e+=",true"),e+=");if(cb)res=cb(res,idx,query);return res",o.datafn=new Function("query,params,cb,idx,alasql",e);else if(i instanceof D.VarValue)e="var res = alasql.prepareFromData(alasql.vars['"+i.variable+"']",i.array&&(e+=",true"),e+=");if(cb)res=cb(res,idx,query);return res",o.datafn=new Function("query,params,cb,idx,alasql",e);else if(i instanceof D.FuncValue)e="var res=alasql.from['"+i.funcid.toUpperCase()+"'](",i.args&&0<i.args.length?(i.args[0]?e+=i.args[0].toJS("query.oldscope")+",":e+="null,",i.args[1]?e+=i.args[1].toJS("query.oldscope")+",":e+="null,"):e+="null,null,",e+="cb,idx,query",e+=");/*if(cb)res=cb(res,idx,query);*/return res",o.datafn=new Function("query, params, cb, idx, alasql",e);else{if(!(i instanceof D.FromData))throw new Error("Wrong table at FROM");o.datafn=function(e,t,r,n,a){var s=i.data;return r&&(s=r(s,n,e)),s}}r.sources.push(o)}),r.defaultTableid=r.sources[0].alias)},gi.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;r<n;r++)a[r]=[a[r]]}else if(t)for(a=[],r=0,n=e.length;r<n;r++)a.push([e[r]]);else if("object"==typeof e&&!Array.isArray(e))if("undefined"!=typeof Mongo&&void 0!==Mongo.Collection&&e instanceof Mongo.Collection)a=e.find().fetch();else for(var s in a=[],e)e.hasOwnProperty(s)&&a.push([s,e[s]]);return a},D.Select.prototype.compileJoins=function(m){this.joins.forEach(function(e){var t,r,i;if("CROSS"===e.joinmode){if(e.using||e.on)throw new Error("CROSS JOIN cannot have USING or ON clauses");e.joinmode="INNER"}if(e instanceof D.Apply)return(i={alias:e.as,applymode:e.applymode,onmiddlefn:S,srcwherefns:"",srcwherefn:S,columns:[]}).applyselect=e.select.compile(m.database.databaseid),i.columns=i.applyselect.query.columns,i.datafn=function(e,t,r,n,a){var s;return r&&(s=r(s,n,e)),s},void m.sources.push(i);if(e.table){if(t=e.table,i={alias:e.as||t.tableid,databaseid:t.databaseid||m.database.databaseid,tableid:t.tableid,joinmode:e.joinmode,onmiddlefn:S,srcwherefns:"",srcwherefn:S,columns:[]},!gi.databases[i.databaseid].tables[i.tableid])throw new Error("Table '"+i.tableid+"' is not exists in database '"+i.databaseid+"'");i.columns=gi.databases[i.databaseid].tables[i.tableid].columns,gi.options.autocommit&&gi.databases[i.databaseid].engineid?i.datafn=function(e,t,r,n,a){return a.engines[a.databases[i.databaseid].engineid].fromTable(i.databaseid,i.tableid,r,n,e)}:gi.databases[i.databaseid].tables[i.tableid].view?i.datafn=function(e,t,r,n,a){var s=a.databases[i.databaseid].tables[i.tableid].select(t);return r&&(s=r(s,n,e)),s}:i.datafn=function(e,t,r,n,a){var s=a.databases[i.databaseid].tables[i.tableid].data;return r&&(s=r(s,n,e)),s},m.aliases[i.alias]={tableid:t.tableid,databaseid:t.databaseid||m.database.databaseid}}else if(e.select)t=e.select,(i={alias:e.as,joinmode:e.joinmode,onmiddlefn:S,srcwherefns:"",srcwherefn:S,columns:[]}).subquery=t.compile(m.database.databaseid),void 0===i.subquery.query.modifier&&(i.subquery.query.modifier="RECORDSET"),i.columns=i.subquery.query.columns,i.datafn=function(e,t,r,n,a){return i.subquery(e.params,null,r,n).data},m.aliases[i.alias]={type:"subquery"};else if(e.param){i={alias:e.as,joinmode:e.joinmode,onmiddlefn:S,srcwherefns:"",srcwherefn:S},r="var res=alasql.prepareFromData(params['"+e.param.param+"']",e.array&&(r+=",true"),r+=");if(cb)res=cb(res, idx, query);return res",i.datafn=new Function("query,params,cb,idx, alasql",r),m.aliases[i.alias]={type:"paramvalue"}}else if(e.variable)i={alias:e.as,joinmode:e.joinmode,onmiddlefn:S,srcwherefns:"",srcwherefn:S},r="var res=alasql.prepareFromData(alasql.vars['"+e.variable+"']",e.array&&(r+=",true"),r+=");if(cb)res=cb(res, idx, query);return res",i.datafn=new Function("query,params,cb,idx, alasql",r),m.aliases[i.alias]={type:"varvalue"};else if(e.func){i={alias:e.as,joinmode:e.joinmode,onmiddlefn:S,srcwherefns:"",srcwherefn:S};var n="var res=alasql.from['"+e.func.funcid.toUpperCase()+"'](",a=e.func.args;a&&0<a.length?(a[0]?n+=a[0].toJS("query.oldscope")+",":n+="null,",a[1]?n+=a[1].toJS("query.oldscope")+",":n+="null,"):n+="null,null,",n+="cb,idx,query",n+=");/*if(cb)res=cb(res,idx,query);*/return res",i.datafn=new Function("query, params, cb, idx, alasql",n),m.aliases[i.alias]={type:"funcvalue"}}var s=i.alias;if(e.natural){if(e.using||e.on)throw new Error("NATURAL JOIN cannot have USING or ON clauses");if(0<m.sources.length){var o=m.sources[m.sources.length-1],u=gi.databases[o.databaseid].tables[o.tableid],c=gi.databases[i.databaseid].tables[i.tableid];if(!u||!c)throw new Error("In this version of Alasql NATURAL JOIN works for tables with predefined columns only");var l=u.columns.map(function(e){return e.columnid}),h=c.columns.map(function(e){return e.columnid});e.using=T(l,h).map(function(e){return{columnid:e}})}}if(e.using)o=m.sources[m.sources.length-1],i.onleftfns=e.using.map(function(e){return"p['"+(o.alias||o.tableid)+"']['"+e.columnid+"']"}).join('+"`"+'),i.onleftfn=new Function("p,params,alasql","var y;return "+i.onleftfns),i.onrightfns=e.using.map(function(e){return"p['"+(i.alias||i.tableid)+"']['"+e.columnid+"']"}).join('+"`"+'),i.onrightfn=new Function("p,params,alasql","var y;return "+i.onrightfns),i.optimization="ix";else if(e.on)if(e.on instanceof D.Op&&"="===e.on.op&&!e.on.allsome){var d="",f="",p="",b=!(i.optimization="ix"),E=e.on.left.toJS("p",m.defaultTableid,m.defcols),g=e.on.right.toJS("p",m.defaultTableid,m.defcols);-1<E.indexOf("p['"+s+"']")&&!(-1<g.indexOf("p['"+s+"']"))?(E.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+s+"']"})?f=E:b=!0:!(-1<E.indexOf("p['"+s+"']"))&&-1<g.indexOf("p['"+s+"']")&&(g.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+s+"']"})?d=E:b=!0,-1<g.indexOf("p['"+s+"']")&&!(-1<E.indexOf("p['"+s+"']"))?(g.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+s+"']"})?f=g:b=!0:!(-1<g.indexOf("p['"+s+"']"))&&-1<E.indexOf("p['"+s+"']")&&(E.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+s+"']"})?d=g:b=!0,b&&(d=f="",p=e.on.toJS("p",m.defaultTableid,m.defcols),i.optimization="no"),i.onleftfns=d,i.onrightfns=f,i.onmiddlefns=p||"true",i.onleftfn=new Function("p,params,alasql","var y;return "+i.onleftfns),i.onrightfn=new Function("p,params,alasql","var y;return "+i.onrightfns),i.onmiddlefn=new Function("p,params,alasql","var y;return "+i.onmiddlefns)}else i.optimization="no",i.onmiddlefns=e.on.toJS("p",m.defaultTableid,m.defcols),i.onmiddlefn=new Function("p,params,alasql","var y;return "+e.on.toJS("p",m.defaultTableid,m.defcols));m.sources.push(i)})},D.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}},D.Select.prototype.compileWhereJoins=function(e){},D.Select.prototype.compileGroup=function(s){if(0<s.sources.length)var i=s.sources[0].alias;else i="";var o=s.defcols,e=[[]];this.group&&(e=G(this.group,s));var u=[];e.forEach(function(e){u=r(u,e)}),s.allgroups=u,s.ingroup=[];var c="";return e.forEach(function(e){c+="var g=this.xgroups[";var t=e.map(function(e){var t=e.split("\t")[0],r=e.split("\t")[1];return""===t?"1":(s.ingroup.push(t),r)});0===t.length&&(t=["''"]),c+=t.join('+"`"+'),c+="];if(!g) {this.groups.push((g=this.xgroups[",c+=t.join('+"`"+'),c+="] = {",c+=e.map(function(e){var t=e.split("\t")[0],r=e.split("\t")[1];return""===t?"":"'"+t+"':"+r+","}).join("");var r=d(u,e);c+=r.map(function(e){return"'"+e.split("\t")[0]+"':null,"}).join("");var n="",a="";void 0!==s.groupStar&&(a+="for(var f in p['"+s.groupStar+"']) {g[f]=p['"+s.groupStar+"'][f];};"),c+=s.selectGroup.map(function(e){var t=e.expression.toJS("p",i,o),r=e.nick;return e instanceof D.AggrValue?(e.distinct&&(n+=",g['$$_VALUES_"+r+"']={},g['$$_VALUES_"+r+"']["+t+"]=true"),"SUM"===e.aggregatorid?"'"+r+"':("+t+")||0,":"MIN"===e.aggregatorid||"MAX"===e.aggregatorid||"FIRST"===e.aggregatorid||"LAST"===e.aggregatorid?"'"+r+"':"+t+",":"ARRAY"===e.aggregatorid?"'"+r+"':["+t+"],":"COUNT"===e.aggregatorid?"*"===e.expression.columnid?"'"+r+"':1,":"'"+r+"':(typeof "+t+' != "undefined")?1:0,':"AVG"===e.aggregatorid?(s.removeKeys.push("_SUM_"+r),s.removeKeys.push("_COUNT_"+r),"'"+r+"':"+t+",'_SUM_"+r+"':("+t+")||0,'_COUNT_"+r+"':(typeof "+t+' != "undefined")?1:0,'):"AGGR"===e.aggregatorid?(n+=",g['"+r+"']="+e.expression.toJS("g",-1),""):"REDUCE"===e.aggregatorid?(s.aggrKeys.push(e),"'"+r+"':alasql.aggr['"+e.funcid+"']("+t+",undefined,1),"):""):""}).join(""),c+="}"+n+",g));"+a+"} else {",c+=s.selectGroup.map(function(e){var t=e.nick,r=e.expression.toJS("p",i,o);if(e instanceof D.AggrValue){var n="",a="";if(e.distinct)n="if(typeof "+r+'!="undefined" && (!g[\'$$_VALUES_'+t+"']["+r+"])) \t\t\t\t \t\t {",a="g['$$_VALUES_"+t+"']["+r+"]=true;}";return"SUM"===e.aggregatorid?n+"g['"+t+"']+=("+r+"||0);"+a:"COUNT"===e.aggregatorid?"*"===e.expression.columnid?n+"g['"+t+"']++;"+a:n+"if(typeof "+r+'!="undefined") g[\''+t+"']++;"+a:"ARRAY"===e.aggregatorid?n+"g['"+t+"'].push("+r+");"+a:"MIN"===e.aggregatorid?n+"if ((y="+r+") < g['"+t+"']) g['"+t+"'] = y;"+a:"MAX"===e.aggregatorid?n+"if ((y="+r+") > g['"+t+"']) g['"+t+"'] = y;"+a:"FIRST"===e.aggregatorid?"":"LAST"===e.aggregatorid?n+"g['"+t+"']="+r+";"+a:"AVG"===e.aggregatorid?n+"g['_SUM_"+t+"']+=(y="+r+")||0;g['_COUNT_"+t+"']+=(typeof y!=\"undefined\")?1:0;g['"+t+"']=g['_SUM_"+t+"']/g['_COUNT_"+t+"'];"+a:"AGGR"===e.aggregatorid?n+"g['"+t+"']="+e.expression.toJS("g",-1)+";"+a:"REDUCE"===e.aggregatorid?n+"g['"+t+"']=alasql.aggr."+e.funcid+"("+r+",g['"+t+"'],2);"+a:""}return""}).join(""),c+="}"}),new Function("p,params,alasql","var y;"+c)},D.Select.prototype.compileSelect1=function(u,c){var l=this;u.columns=[],u.xcolumns={},u.selectColumns={},u.dirtyColumns=!1;var e="var r={",h="",d=[];return this.columns.forEach(function(e){if(e instanceof D.Column)if("*"===e.columnid)if(e.func)h+="r=params['"+e.param+"'](p['"+u.sources[0].alias+"'],p,params,alasql);";else if(e.tableid){(t=U(u,[e.tableid],!1)).s&&(d=d.concat(t.s)),h+=t.sp}else{var t;(t=U(u,Object.keys(u.aliases),!0)).s&&(d=d.concat(t.s)),h+=t.sp}else{var r=e.tableid,n=e.databaseid||u.sources[0].databaseid||u.database.databaseid;if(r=(r=r||u.defcols[e.columnid])||u.defaultTableid,"_"!==e.columnid)c&&1<c.length&&Array.isArray(c[0])&&1<=c[0].length&&c[0][0].hasOwnProperty("sheetid")?h='var r={};var w=p["'+r+'"];var cols=['+l.columns.map(function(e){return"'"+e.columnid+"'"}).join(",")+"];var colas=["+l.columns.map(function(e){return"'"+(e.as||e.columnid)+"'"}).join(",")+"];for (var i=0;i<Object.keys(p['"+r+"']).length;i++) for(var k=0;k<cols.length;k++){if (!r.hasOwnProperty(i)) r[i]={}; r[i][colas[k]]=w[i][cols[k]];}":d.push("'"+p(e.as||e.columnid)+"':p['"+r+"']['"+e.columnid+"']");else d.push("'"+p(e.as||e.columnid)+"':p['"+r+"']");if(u.selectColumns[p(e.as||e.columnid)]=!0,u.aliases[r]&&"table"===u.aliases[r].type){if(!gi.databases[n].tables[u.aliases[r].tableid])throw new Error("Table '"+r+"' does not exist in database");var a=gi.databases[n].tables[u.aliases[r].tableid].columns,s=gi.databases[n].tables[u.aliases[r].tableid].xcolumns;if(s&&0<a.length){var i=s[e.columnid];if(void 0===i)throw new Error("Column does not exist: "+e.columnid);var o={columnid:e.as||e.columnid,dbtypeid:i.dbtypeid,dbsize:i.dbsize,dbpecision:i.dbprecision,dbenum:i.dbenum};u.columns.push(o),u.xcolumns[o.columnid]=o}else{o={columnid:e.as||e.columnid};u.columns.push(o),u.xcolumns[o.columnid]=o,u.dirtyColumns=!0}}else{o={columnid:e.as||e.columnid};u.columns.push(o),u.xcolumns[o.columnid]=o}}else if(e instanceof D.AggrValue){l.group||(l.group=[""]),e.as||(e.as=p(e.toString())),"SUM"===e.aggregatorid||"MAX"===e.aggregatorid||"MIN"===e.aggregatorid||"FIRST"===e.aggregatorid||"LAST"===e.aggregatorid||"AVG"===e.aggregatorid||"ARRAY"===e.aggregatorid||"REDUCE"===e.aggregatorid?d.push("'"+p(e.as)+"':"+f(e.expression.toJS("p",u.defaultTableid,u.defcols))):"COUNT"===e.aggregatorid&&d.push("'"+p(e.as)+"':1");o={columnid:e.as||e.columnid||e.toString()};u.columns.push(o),u.xcolumns[o.columnid]=o}else{d.push("'"+p(e.as||e.columnid||e.toString())+"':"+f(e.toJS("p",u.defaultTableid,u.defcols))),u.selectColumns[p(e.as||e.columnid||e.toString())]=!0;o={columnid:e.as||e.columnid||e.toString()};u.columns.push(o),u.xcolumns[o.columnid]=o}}),e+=d.join(",")+"};"+h},D.Select.prototype.compileSelect2=function(n,a){var s=n.selectfns;return this.orderColumns&&0<this.orderColumns.length&&this.orderColumns.forEach(function(e,t){var r="$$$"+t;e instanceof D.Column&&n.xcolumns[e.columnid]?s+="r['"+r+"']=r['"+e.columnid+"'];":e instanceof D.ParamValue&&n.xcolumns[a[e.param]]?s+="r['"+r+"']=r['"+a[e.param]+"'];":s+="r['"+r+"']="+e.toJS("p",n.defaultTableid,n.defcols)+";",n.removeKeys.push(r)}),new Function("p,params,alasql","var y;"+s+"return r")},D.Select.prototype.compileSelectGroup0=function(a){var s=this;s.columns.forEach(function(e,t){if(e instanceof D.Column&&"*"===e.columnid)a.groupStar=e.tableid||"default";else{var r;r=e instanceof D.Column?p(e.columnid):p(e.toString(!0));for(var n=0;n<t;n++)if(r===s.columns[n].nick){r=s.columns[n].nick+":"+t;break}e.nick=r,!e.funcid||"ROWNUM"!==e.funcid.toUpperCase()&&"ROW_NUMBER"!==e.funcid.toUpperCase()||a.rownums.push(e.as)}}),this.columns.forEach(function(e){e.findAggregator&&e.findAggregator(a)}),this.having&&this.having.findAggregator&&this.having.findAggregator(a)},D.Select.prototype.compileSelectGroup1=function(n){var a="var r = {};";return this.columns.forEach(function(e){if(e instanceof D.Column&&"*"===e.columnid)return a+="for(var k in g) {r[k]=g[k]};","";var t=e.as;void 0===t&&(t=e instanceof D.Column?p(e.columnid):e.nick),n.groupColumns[t]=e.nick,a+="r['"+t+"']=",a+=f(e.toJS("g",""))+";";for(var r=0;r<n.removeKeys.length;r++)if(n.removeKeys[r]===t){n.removeKeys.splice(r,1);break}}),a},D.Select.prototype.compileSelectGroup2=function(n){var a=n.selectgfns;return this.columns.forEach(function(e){-1<n.ingroup.indexOf(e.nick)&&(a+="r['"+(e.as||e.nick)+"']=g['"+e.nick+"'];")}),this.orderColumns&&0<this.orderColumns.length&&this.orderColumns.forEach(function(e,t){var r="$$$"+t;e instanceof D.Column&&n.groupColumns[e.columnid]?a+="r['"+r+"']=r['"+e.columnid+"'];":a+="r['"+r+"']="+e.toJS("g","")+";",n.removeKeys.push(r)}),new Function("g,params,alasql","var y;"+a+"return r")},D.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}))},D.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}},D.Select.prototype.compileOrder=function(o,u){var c=this;if(c.orderColumns=[],this.order){if(this.order&&1==this.order.length&&this.order[0].expression&&"function"==typeof this.order[0].expression){var a=this.order[0].expression;return function(e,t){var r=a(e),n=a(t);return n<r?1:r==n?0:-1}}var l="",h="";return this.order.forEach(function(e,t){if(e.expression instanceof D.NumValue)var r=c.columns[e.expression.value-1];else r=e.expression;c.orderColumns.push(r);var n="$$$"+t,a="";if(e.expression instanceof D.Column){var s=e.expression.columnid;if(o.xcolumns[s])"DATE"!=(i=o.xcolumns[s].dbtypeid)&&"DATETIME"!=i&&"DATETIME2"!=i||(a=".valueOf()");else gi.options.valueof&&(a=".valueOf()")}if(e.expression instanceof D.ParamValue){var i;s=u[e.expression.param];if(o.xcolumns[s])"DATE"!=(i=o.xcolumns[s].dbtypeid)&&"DATETIME"!=i&&"DATETIME2"!=i||(a=".valueOf()");else gi.options.valueof&&(a=".valueOf()")}e.nocase&&(a+=".toUpperCase()"),l+="if((a['"+n+"']||'')"+a+("ASC"==e.direction?">":"<")+"(b['"+n+"']||'')"+a+")return 1;",l+="if((a['"+n+"']||'')"+a+"==(b['"+n+"']||'')"+a+"){",h+="}"}),l+="return 0;",l+=h+"return -1",o.orderfns=l,new Function("a,b","var y;"+l)}},D.Select.prototype.compilePivot=function(e){var t=this,h=t.pivot.columnid,d=t.pivot.expr.aggregatorid,f=t.pivot.inlist,p=null;if(null==(p=t.pivot.expr.expression.hasOwnProperty("columnid")?t.pivot.expr.expression.columnid:t.pivot.expr.expression.expression.columnid))throw"columnid not found";return f=f&&f.map(function(e){return e.expr.columnid}),function(){var r=this,n=r.columns.filter(function(e){return e.columnid!=h&&e.columnid!=p}).map(function(e){return e.columnid}),a=[],s={},i={},o={},u=[];if(r.data.forEach(function(t){if(!f||-1<f.indexOf(t[h])){var e=n.map(function(e){return t[e]}).join("`"),r=i[e];if(r||(r={},i[e]=r,u.push(r),n.forEach(function(e){r[e]=t[e]})),o[e]||(o[e]={}),o[e][t[h]]?o[e][t[h]]++:o[e][t[h]]=1,s[t[h]]||(s[t[h]]=!0,a.push(t[h])),"SUM"==d||"AVG"==d)void 0===r[t[h]]&&(r[t[h]]=0),r[t[h]]+=+t[p];else if("COUNT"==d)void 0===r[t[h]]&&(r[t[h]]=0),r[t[h]]++;else if("MIN"==d)void 0===r[t[h]]&&(r[t[h]]=t[p]),t[p]<r[t[h]]&&(r[t[h]]=t[p]);else if("MAX"==d)void 0===r[t[h]]&&(r[t[h]]=t[p]),t[p]>r[t[h]]&&(r[t[h]]=t[p]);else if("FIRST"==d)void 0===r[t[h]]&&(r[t[h]]=t[p]);else if("LAST"==d)r[t[h]]=t[p];else{if(!gi.aggr[d])throw new Error("Wrong aggregator in PIVOT clause");gi.aggr[d](r[t[h]],t[p])}}}),"AVG"==d)for(var e in i){var t=i[e];for(var c in t)-1==n.indexOf(c)&&c!=p&&(t[c]=t[c]/o[e][c])}r.data=u,f&&(a=f);var l=r.columns.filter(function(e){return e.columnid==p})[0];r.columns=r.columns.filter(function(e){return!(e.columnid==h||e.columnid==p)}),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 _=function(e,t){for(var r=[],n=0,a=e.length,s=0;s<a+1;s++){for(var i=[],o=0;o<a;o++){if(e[o]instanceof D.Column){e[o].nick=p(e[o].columnid),t.groupColumns[p(e[o].columnid)]=e[o].nick;var u=e[o].nick+"\t"+e[o].toJS("p",t.sources[0].alias,t.defcols)}else{t.groupColumns[p(e[o].toString())]=p(e[o].toString());u=p(e[o].toString())+"\t"+e[o].toJS("p",t.sources[0].alias,t.defcols)}n&1<<o&&i.push(u)}r.push(i),n=1+(n<<1)}return r},F=function(e,t){for(var r=[],n=e.length,a=1<<n,s=0;s<a;s++){for(var i=[],o=0;o<n;o++)s&1<<o&&(i=i.concat(G(e[o],t)));r.push(i)}return r},P=function(e,r){return e.reduce(function(e,t){return e=e.concat(G(t,r))},[])},q=function(e,t){for(var r=[],n=0;n<e.length;n++)for(var a=0;a<t.length;a++)r.push(e[n].concat(t[a]));return r};function G(t,r){if(Array.isArray(t)){for(var e=[[]],n=0;n<t.length;n++)if(t[n]instanceof D.Column)t[n].nick=p(t[n].columnid),r.groupColumns[t[n].nick]=t[n].nick,e=e.map(function(e){return e.concat(t[n].nick+"\t"+t[n].toJS("p",r.sources[0].alias,r.defcols))});else if(t[n]instanceof D.FuncValue)r.groupColumns[p(t[n].toString())]=p(t[n].toString()),e=e.map(function(e){return e.concat(p(t[n].toString())+"\t"+t[n].toJS("p",r.sources[0].alias,r.defcols))});else if(t[n]instanceof D.GroupExpression)if("ROLLUP"==t[n].type)e=q(e,_(t[n].group,r));else if("CUBE"==t[n].type)e=q(e,F(t[n].group,r));else{if("GROUPING SETS"!=t[n].type)throw new Error("Unknown grouping function");e=q(e,P(t[n].group,r))}else e=""===t[n]?[["1\t1"]]:e.map(function(e){return r.groupColumns[p(t[n].toString())]=p(t[n].toString()),e.concat(p(t[n].toString())+"\t"+t[n].toJS("p",r.sources[0].alias,r.defcols))});return e}return t instanceof D.FuncValue?(r.groupColumns[p(t.toString())]=p(t.toString()),[t.toString()+"\t"+t.toJS("p",r.sources[0].alias,r.defcols)]):t instanceof D.Column?(t.nick=p(t.columnid),r.groupColumns[t.nick]=t.nick,[t.nick+"\t"+t.toJS("p",r.sources[0].alias,r.defcols)]):(r.groupColumns[p(t.toString())]=p(t.toString()),[p(t.toString())+"\t"+t.toJS("p",r.sources[0].alias,r.defcols)])}D.Select.prototype.compileDefCols=function(e,n){var a={".":{}};return this.from&&this.from.forEach(function(e){if(a["."][e.as||e.tableid]=!0,e instanceof D.Table){var t=e.as||e.tableid,r=gi.databases[e.databaseid||n].tables[e.tableid];if(void 0===r)throw new Error("Table does not exist: "+e.tableid);r.columns&&r.columns.forEach(function(e){a[e.columnid]?a[e.columnid]="-":a[e.columnid]=t})}else if(e instanceof D.Select);else if(e instanceof D.Search);else if(e instanceof D.ParamValue);else if(e instanceof D.VarValue);else if(e instanceof D.FuncValue);else if(e instanceof D.FromData);else if(e instanceof D.Json);else if(!e.inserted)throw new Error("Unknown type of FROM clause")}),this.joins&&this.joins.forEach(function(e){if(a["."][e.as||e.table.tableid]=!0,e.table){var t=e.table.tableid;e.as&&(t=e.as);t=e.as||e.table.tableid;var r=gi.databases[e.table.databaseid||n].tables[e.table.tableid];r.columns&&r.columns.forEach(function(e){a[e.columnid]?a[e.columnid]="-":a[e.columnid]=t})}else if(e.select);else if(e.param);else if(!e.func)throw new Error("Unknown type of FROM clause")}),a},D.Union=function(e){return D.extend(this,e)},D.Union.prototype.toString=function(){return"UNION"},D.Union.prototype.compile=function(e){return null},D.Apply=function(e){return D.extend(this,e)},D.Apply.prototype.toString=function(){var e=this.applymode+" APPLY ("+this.select.toString()+")";return this.as&&(e+=" AS "+this.as),e},D.Over=function(e){return D.extend(this,e)},D.Over.prototype.toString=function(){var e="OVER (";return this.partition&&(e+="PARTITION BY "+this.partition.toString(),this.order&&(e+=" ")),this.order&&(e+="ORDER BY "+this.order.toString()),e+=")"},D.ExpressionStatement=function(e){return D.extend(this,e)},D.ExpressionStatement.prototype.toString=function(){return this.expression.toString()},D.ExpressionStatement.prototype.execute=function(e,t,r){if(this.expression){gi.precompile(this,e,t);var n=new Function("params,alasql,p","var y;return "+this.expression.toJS("({})","",null)).bind(this)(t,gi);return r&&(n=r(n)),n}},D.Expression=function(e){return D.extend(this,e)},D.Expression.prototype.toString=function(e){var t=this.expression.toString(e);return this.order&&(t+=" "+this.order.toString()),this.nocase&&(t+=" COLLATE NOCASE"),this.direction&&(t+=" "+this.direction),t},D.Expression.prototype.findAggregator=function(e){this.expression.findAggregator&&this.expression.findAggregator(e)},D.Expression.prototype.toJS=function(e,t,r){return this.expression.reduced?"true":this.expression.toJS(e,t,r)},D.Expression.prototype.compile=function(e,t,r){return!!this.reduced||new Function("p","var y;return "+this.toJS(e,t,r))},D.JavaScript=function(e){return D.extend(this,e)},D.JavaScript.prototype.toString=function(){return"``"+this.value+"``"},D.JavaScript.prototype.toJS=function(){return"("+this.value+")"},D.JavaScript.prototype.execute=function(e,t,r){var n=1;return new Function("params,alasql,p",this.value)(t,gi),r&&(n=r(n)),n},D.Literal=function(e){return D.extend(this,e)},D.Literal.prototype.toString=function(e){var t=this.value;return this.value1&&(t=this.value1+"."+t),this.alias&&!e&&(t+=" AS "+this.alias),t},D.Join=function(e){return D.extend(this,e)},D.Join.prototype.toString=function(){var e=" ";return this.joinmode&&(e+=this.joinmode+" "),e+="JOIN "+this.table.toString()},D.Table=function(e){return D.extend(this,e)},D.Table.prototype.toString=function(){var e=this.tableid;return this.databaseid&&(e=this.databaseid+"."+e),e},D.View=function(e){return D.extend(this,e)},D.View.prototype.toString=function(){var e=this.viewid;return this.databaseid&&(e=this.databaseid+"."+e),e},D.Op=function(e){return D.extend(this,e)},D.Op.prototype.toString=function(){if("IN"===this.op||"NOT IN"===this.op)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)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()+")"},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;n<e.removeKeys.length;n++)if(e.removeKeys[n]===t){r=!0;break}r||e.removeKeys.push(t)}e.selectGroup.push(this)}},D.AggrValue.prototype.toType=function(){return-1<["SUM","COUNT","AVG","MIN","MAX","AGGR","VAR","STDDEV"].indexOf(this.aggregatorid)?"number":-1<["ARRAY"].indexOf(this.aggregatorid)?"array":-1<["FIRST","LAST"].indexOf(this.aggregatorid)?this.expression.toType():void 0},D.AggrValue.prototype.toJS=function(){var e=this.nick;return void 0===e&&(e=this.toString()),"g['"+e+"']"},D.OrderExpression=function(e){return D.extend(this,e)},D.OrderExpression.prototype.toString=D.Expression.prototype.toString,D.GroupExpression=function(e){return D.extend(this,e)},D.GroupExpression.prototype.toString=function(){return this.type+"("+this.group.toString()+")"},D.FromData=function(e){return D.extend(this,e)},D.FromData.prototype.toString=function(){return this.data?"DATA("+(1e16*Math.random()|0)+")":"?"},D.FromData.prototype.toJS=function(){},D.Select.prototype.exec=function(e,t){this.preparams&&(e=this.preparams.concat(e));var r=gi.useid;db=gi.databases[r];var n=this.toString(),a=E(n),s=this.compile(r);if(s)return s.sql=n,s.dbversion=db.dbversion,db.sqlCacheSize>gi.MAXSQLCACHESIZE&&db.resetSqlCache(),db.sqlCacheSize++,db.sqlCache[a]=s,gi.res=s(e,t)},D.Select.prototype.Select=function(){var r=this;if(1<arguments.length)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 r.columns=[],args.forEach(function(e){if("string"==typeof e)r.columns.push(new D.Column({columnid:e}));else if("function"==typeof e){var t=0;r.preparams?t=r.preparams.length:r.preparams=[],r.preparams.push(e),r.columns.push(new D.Column({columnid:"*",func:e,param:t}))}}),r},D.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 D.ParamValue({param:r}))}else{if("string"!=typeof e)throw new Error("Unknown arguments in From() function");t.from.push(new D.Table({tableid:e}))}return t},D.Select.prototype.OrderBy=function(){var r=this;if(r.order=[],0==arguments.length)args=["_"];else if(1<arguments.length)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 0<args.length&&args.forEach(function(e){var t=new D.Column({columnid:e});"function"==typeof e&&(t=e),r.order.push(new D.OrderExpression({expression:t,direction:"ASC"}))}),r},D.Select.prototype.Top=function(e){return this.top=new D.NumValue({value:e}),this},D.Select.prototype.GroupBy=function(){var r=this;if(1<arguments.length)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 r.group=[],args.forEach(function(e){var t=new D.Column({columnid:e});r.group.push(t)}),r},D.Select.prototype.Where=function(e){return"function"==typeof e&&(this.where=e),this},D.FuncValue=function(e){return D.extend(this,e)},D.FuncValue.prototype.toString=function(e){var t="";return gi.fn[this.funcid]?t+=this.funcid:gi.aggr[this.funcid]?t+=this.funcid:(gi.stdlib[this.funcid.toUpperCase()]||gi.stdfn[this.funcid.toUpperCase()])&&(t+=this.funcid.toUpperCase()),t+="(",this.args&&0<this.args.length&&(t+=this.args.map(function(e){return e.toString()}).join(",")),t+=")",this.as&&!e&&(t+=" AS "+this.as.toString()),t},D.FuncValue.prototype.execute=function(e,t,r){var n=1;return gi.precompile(this,e,t),new Function("params,alasql","var y;return "+this.toJS("","",null))(t,gi),r&&(n=r(n)),n},D.FuncValue.prototype.findAggregator=function(t){this.args&&0<this.args.length&&this.args.forEach(function(e){e.findAggregator&&e.findAggregator(t)})},D.FuncValue.prototype.toJS=function(t,r,n){var e="",a=this.funcid;return!gi.fn[a]&&gi.stdlib[a.toUpperCase()]?this.args&&0<this.args.length?e+=gi.stdlib[a.toUpperCase()].apply(this,this.args.map(function(e){return e.toJS(t,r)})):e+=gi.stdlib[a.toUpperCase()]():(!gi.fn[a]&&gi.stdfn[a.toUpperCase()]?(this.newid&&(e+="new "),e+="alasql.stdfn."+this.funcid.toUpperCase()+"(",this.args&&0<this.args.length&&(e+=this.args.map(function(e){return e.toJS(t,r,n)}).join(","))):(this.newid&&(e+="new "),e+="alasql.fn."+this.funcid+"(",this.args&&0<this.args.length&&(e+=this.args.map(function(e){return e.toJS(t,r,n)}).join(","))),e+=")"),e};var V=gi.stdlib={},B=gi.stdfn={};V.ABS=function(e){return"Math.abs("+e+")"},V.CLONEDEEP=function(e){return"alasql.utils.cloneDeep("+e+")"},B.CONCAT=function(){return Array.prototype.slice.call(arguments).join("")},V.EXP=function(e){return"Math.pow(Math.E,"+e+")"},V.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")},V.IFNULL=function(e,t){return"("+e+"||"+t+")"},V.INSTR=function(e,t){return"(("+e+").indexOf("+t+")+1)"},V.LEN=V.LENGTH=function(e){return n(e,"y.length")},V.LOWER=V.LCASE=function(e){return n(e,"String(y).toLowerCase()")},V.LTRIM=function(e){return n(e,'y.replace(/^[ ]+/,"")')},V.RTRIM=function(e){return n(e,'y.replace(/[ ]+$/,"")')},V.MAX=V.GREATEST=function(){return"["+Array.prototype.join.call(arguments,",")+"].reduce(function (a, b) { return a > b ? a : b; })"},V.MIN=V.LEAST=function(){return"["+Array.prototype.join.call(arguments,",")+"].reduce(function (a, b) { return a < b ? a : b; })"},V.SUBSTRING=V.SUBSTR=V.MID=function(e,t,r){return 2==arguments.length?n(e,"y.substr("+t+"-1)"):3==arguments.length?n(e,"y.substr("+t+"-1,"+r+")"):void 0},B.REGEXP_LIKE=function(e,t,r){return-1<(e||"").search(RegExp(t,r))},V.ISNULL=V.NULLIF=function(e,t){return"("+e+"=="+t+"?undefined:"+e+")"},V.POWER=function(e,t){return"Math.pow("+e+","+t+")"},V.RANDOM=function(e){return 0==arguments.length?"Math.random()":"(Math.random()*("+e+")|0)"},V.ROUND=function(e,t){return 2==arguments.length?"Math.round(("+e+")*Math.pow(10,("+t+")))/Math.pow(10,("+t+"))":"Math.round("+e+")"},V.CEIL=V.CEILING=function(e){return"Math.ceil("+e+")"},V.FLOOR=function(e){return"Math.floor("+e+")"},V.ROWNUM=function(){return"1"},V.ROW_NUMBER=function(){return"1"},V.SQRT=function(e){return"Math.sqrt("+e+")"},V.TRIM=function(e){return n(e,"y.trim()")},V.UPPER=V.UCASE=function(e){return n(e,"String(y).toUpperCase()")},B.CONCAT_WS=function(){var e=Array.prototype.slice.call(arguments);return e.slice(1,e.length).join(e[0])},gi.aggr.GROUP_CONCAT=function(e,t,r){return 1===r?""+e:2===r?t+=","+e:t},gi.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(function(e,t){return e===t?0:t<e?1:-1}),a=(n.length+1)/2;return Number.isInteger(a)?n[a-1]:"number"!=typeof n[Math.floor(a-1)]?n[Math.floor(a-1)]:(n[Math.floor(a-1)]+n[Math.ceil(a-1)])/2},gi.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(function(e,t){return e===t?0:t<e?1:-1}),s=n*(a.length+1)/4;return Number.isInteger(s)?a[s-1]:a[Math.floor(s)]},gi.aggr.QUART2=function(e,t,r){return gi.aggr.QUART(e,t,r,2)},gi.aggr.QUART3=function(e,t,r){return gi.aggr.QUART(e,t,r,3)},gi.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.arr.push(e),t.sum+=e),t;for(var n=t.arr.length,a=t.sum/n,s=0,i=0;i<n;i++)s+=(t.arr[i]-a)*(t.arr[i]-a);return s/=n-1},gi.aggr.STDEV=function(e,t,r){return 1===r||2===r?gi.aggr.VAR(e,t,r):Math.sqrt(gi.aggr.VAR(e,t,r))},gi.aggr.VARP=function(e,t,r){if(1==r)return{arr:[e],sum:e};if(2==r)return t.arr.push(e),t.sum+=e,t;for(var n=t.arr.length,a=t.sum/n,s=0,i=0;i<n;i++)s+=(t.arr[i]-a)*(t.arr[i]-a);return s/=n},gi.aggr.STD=gi.aggr.STDDEV=gi.aggr.STDEVP=function(e,t,r){return 1==r||2==r?gi.aggr.VARP(e,t,r):Math.sqrt(gi.aggr.VARP(e,t,r))},gi._aggrOriginal=gi.aggr,gi.aggr={},Object.keys(gi._aggrOriginal).forEach(function(n){gi.aggr[n]=function(e,t,r){if(3!==r||void 0!==t)return gi._aggrOriginal[n].apply(null,arguments)}}),B.REPLACE=function(e,t,r){return(e||"").split(t).join(r)};for(var j=[],H=0;H<256;H++)j[H]=(H<16?"0":"")+H.toString(16);B.NEWID=B.UUID=B.GEN_RANDOM_UUID=function(){var e=4294967295*Math.random()|0,t=4294967295*Math.random()|0,r=4294967295*Math.random()|0,n=4294967295*Math.random()|0;return j[255&e]+j[e>>8&255]+j[e>>16&255]+j[e>>24&255]+"-"+j[255&t]+j[t>>8&255]+"-"+j[t>>16&15|64]+j[t>>24&255]+"-"+j[63&r|128]+j[r>>8&255]+"-"+j[r>>16&255]+j[r>>24&255]+j[255&n]+j[n>>8&255]+j[n>>16&255]+j[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<this.whens.length&&this.whens.forEach(function(e){e.when.findAggregator&&e.when.findAggregator(t),e.then.findAggregator&&e.then.findAggregator(t)}),this.elses&&this.elses.findAggregator&&this.elses.findAggregator(t)},D.CaseValue.prototype.toJS=function(t,r,n){var e="((function("+t+",params,alasql){var y,r;";return this.expression?(e+="v="+this.expression.toJS(t,r,n)+";",e+=(this.whens||[]).map(function(e){return" if(v=="+e.when.toJS(t,r,n)+") {r="+e.then.toJS(t,r,n)+"}"}).join(" else ")):e+=(this.whens||[]).map(function(e){return" if("+e.when.toJS(t,r,n)+") {r="+e.then.toJS(t,r,n)+"}"}).join(" else "),this.elses&&(e+=" else {r="+this.elses.toJS(t,r,n)+"}"),e+=";return r;}).bind(this))("+t+",params,alasql)"},D.Json=function(e){return D.extend(this,e)},D.Json.prototype.toString=function(){var e="";return e+=J(this.value),e+=""};var J=gi.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 J(e)}).join(",")+"]";else if(!e.toJS||e instanceof D.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+=":"+J(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};function Y(e,t,r,n){var a="";if("string"==typeof e)a='"'+e+'"';else if("number"==typeof e)a="("+e+")";else if("boolean"==typeof e)a=e;else{if("object"!=typeof e)throw new Error("2Can not parse JSON object "+JSON.stringify(e));if(Array.isArray(e))a+="["+e.map(function(e){return Y(e,t,r,n)}).join(",")+"]";else if(!e.toJS||e instanceof D.Json){a="{";var s=[];for(var i in e){var o="";if("string"==typeof i)o+='"'+i+'"';else if("number"==typeof i)o+=i;else{if("boolean"!=typeof i)throw new Error("THis is not ES6... no expressions on left side yet");o+=i}o+=":"+Y(e[i],t,r,n),s.push(o)}a+=s.join(",")+"}"}else{if(!e.toJS)throw new Error("1Can not parse JSON object "+JSON.stringify(e));a=e.toJS(t,r,n)}}return a}D.Json.prototype.toJS=function(e,t,r){return Y(this.value,e,t,r)},D.Convert=function(e){return D.extend(this,e)},D.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+=")"},D.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+"})"},gi.stdfn.CONVERT=function(e,t){var r,n=e;if(t.style)switch(r=/\d{8}/.test(n)?new Date(+n.substr(0,4),+n.substr(4,2)-1,+n.substr(6,2)):new Date(n),t.style){case 1:n=("0"+(r.getMonth()+1)).substr(-2)+"/"+("0"+r.getDate()).substr(-2)+"/"+("0"+r.getYear()).substr(-2);break;case 2:n=("0"+r.getYear()).substr(-2)+"."+("0"+(r.getMonth()+1)).substr(-2)+"."+("0"+r.getDate()).substr(-2);break;case 3:n=("0"+r.getDate()).substr(-2)+"/"+("0"+(r.getMonth()+1)).substr(-2)+"/"+("0"+r.getYear()).substr(-2);break;case 4:n=("0"+r.getDate()).substr(-2)+"."+("0"+(r.getMonth()+1)).substr(-2)+"."+("0"+r.getYear()).substr(-2);break;case 5:n=("0"+r.getDate()).substr(-2)+"-"+("0"+(r.getMonth()+1)).substr(-2)+"-"+("0"+r.getYear()).substr(-2);break;case 6:n=("0"+r.getDate()).substr(-2)+" "+r.toString().substr(4,3).toLowerCase()+" "+("0"+r.getYear()).substr(-2);break;case 7:n=r.toString().substr(4,3)+" "+("0"+r.getDate()).substr(-2)+","+("0"+r.getYear()).substr(-2);break;case 8:case 108:n=("0"+r.getHours()).substr(-2)+":"+("0"+r.getMinutes()).substr(-2)+":"+("0"+r.getSeconds()).substr(-2);break;case 10:n=("0"+(r.getMonth()+1)).substr(-2)+"-"+("0"+r.getDate()).substr(-2)+"-"+("0"+r.getYear()).substr(-2);break;case 11:n=("0"+r.getYear()).substr(-2)+"/"+("0"+(r.getMonth()+1)).substr(-2)+"/"+("0"+r.getDate()).substr(-2);break;case 12:n=("0"+r.getYear()).substr(-2)+("0"+(r.getMonth()+1)).substr(-2)+("0"+r.getDate()).substr(-2);break;case 101:n=("0"+(r.getMonth()+1)).substr(-2)+"/"+("0"+r.getDate()).substr(-2)+"/"+r.getFullYear();break;case 102:n=r.getFullYear()+"."+("0"+(r.getMonth()+1)).substr(-2)+"."+("0"+r.getDate()).substr(-2);break;case 103:n=("0"+r.getDate()).substr(-2)+"/"+("0"+(r.getMonth()+1)).substr(-2)+"/"+r.getFullYear();break;case 104:n=("0"+r.getDate()).substr(-2)+"."+("0"+(r.getMonth()+1)).substr(-2)+"."+r.getFullYear();break;case 105:n=("0"+r.getDate()).substr(-2)+"-"+("0"+(r.getMonth()+1)).substr(-2)+"-"+r.getFullYear();break;case 106:n=("0"+r.getDate()).substr(-2)+" "+r.toString().substr(4,3).toLowerCase()+" "+r.getFullYear();break;case 107:n=r.toString().substr(4,3)+" "+("0"+r.getDate()).substr(-2)+","+r.getFullYear();break;case 110:n=("0"+(r.getMonth()+1)).substr(-2)+"-"+("0"+r.getDate()).substr(-2)+"-"+r.getFullYear();break;case 111:n=r.getFullYear()+"/"+("0"+(r.getMonth()+1)).substr(-2)+"/"+("0"+r.getDate()).substr(-2);break;case 112:n=r.getFullYear()+("0"+(r.getMonth()+1)).substr(-2)+("0"+r.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(n);if("DATE"==a)return i=(s=new Date(n)).getFullYear()+"."+("0"+(s.getMonth()+1)).substr(-2)+"."+("0"+s.getDate()).substr(-2);if("DATETIME"==a||"DATETIME2"==a){var s,i=(s=new Date(n)).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(-1<["MONEY"].indexOf(a))return(0|(o=+n))+100*o%100/100;if(-1<["BOOLEAN"].indexOf(a))return!!n;if(-1<["INT","INTEGER","SMALLINT","BIGINT","SERIAL","SMALLSERIAL","BIGSERIAL"].indexOf(t.dbtypeid.toUpperCase()))return 0|n;if(-1<["STRING","VARCHAR","NVARCHAR","CHARACTER VARIABLE"].indexOf(t.dbtypeid.toUpperCase()))return t.dbsize?(""+n).substr(0,t.dbsize):""+n;if(-1<["CHAR","CHARACTER","NCHAR"].indexOf(a))return(n+new Array(t.dbsize+1).join(" ")).substr(0,t.dbsize);if(-1<["NUMBER","FLOAT","DECIMAL","NUMERIC"].indexOf(a)){var o=+n;return o=void 0!==t.dbsize?parseFloat(o.toPrecision(t.dbsize)):o,o=void 0!==t.dbprecision?parseFloat(o.toFixed(t.dbprecision)):o}if(-1<["JSON"].indexOf(a)){if("object"==typeof n)return n;try{return JSON.parse(n)}catch(e){throw new Error("Cannot convert string to JSON")}}return n},D.ColumnDef=function(e){return D.extend(this,e)},D.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},D.CreateTable=function(e){return D.extend(this,e)},D.CreateTable.prototype.toString=function(){var e="CREATE";(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:e+=" ("+this.columns.map(function(e){return e.toString()}).join(",")+")";return this.view&&this.select&&(e+=" AS "+this.select.toString()),e},D.CreateTable.prototype.execute=function(f,p,e){var t=gi.databases[this.table.databaseid||f],r=this.table.tableid;if(!r)throw new Error("Table name is not defined");var n=this.columns,a=this.constraints||[];if(this.ifnotexists&&t.tables[r])return e?e(0):0;if(t.tables[r])throw new Error("Can not create table '"+r+"', because it already exists in the database '"+t.databaseid+"'");var c=t.tables[r]=new gi.Table;this.class&&(c.isclass=!0);var s,o=[],u=[];if(n&&n.forEach(function(n){var e=n.dbtypeid;gi.fn[e]||(e=e.toUpperCase()),-1<["SERIAL","SMALLSERIAL","BIGSERIAL"].indexOf(e)&&(n.identity={value:1,step:1});var t={columnid:n.columnid,dbtypeid:e,dbsize:n.dbsize,dbprecision:n.dbprecision,notnull:n.notnull,identity:n.identity};if(n.identity&&(c.identities[n.columnid]={value:+n.identity.value,step:+n.identity.step}),n.check&&c.checks.push({id:n.check.constrantid,fn:new Function("r","var y;return "+n.check.expression.toJS("r",""))}),n.default&&o.push("'"+n.columnid+"':"+n.default.toJS("r","")),n.primarykey){var r=c.pk={};r.columns=[n.columnid],r.onrightfns="r['"+n.columnid+"']",r.onrightfn=new Function("r","var y;return "+r.onrightfns),r.hh=E(r.onrightfns),c.uniqs[r.hh]={}}if(n.unique){var a={};c.uk=c.uk||[],c.uk.push(a),a.columns=[n.columnid],a.onrightfns="r['"+n.columnid+"']",a.onrightfn=new Function("r","var y;return "+a.onrightfns),a.hh=E(a.onrightfns),c.uniqs[a.hh]={}}if(n.foreignkey){var s=n.foreignkey.table,i=gi.databases[s.databaseid||f].tables[s.tableid];if(void 0===s.columnid){if(!(i.pk.columns&&0<i.pk.columns.length))throw new Error("FOREIGN KEY allowed only to tables with PRIMARY KEYs");s.columnid=i.pk.columns[0]}c.checks.push({fn:function(e){var t={};if(void 0===e[n.columnid])return!0;t[s.columnid]=e[n.columnid];var r=i.pk.onrightfn(t);if(!i.uniqs[i.pk.hh][r])throw new Error("Foreign key violation");return!0}})}n.onupdate&&u.push("r['"+n.columnid+"']="+n.onupdate.toJS("r","")),c.columns.push(t),c.xcolumns[t.columnid]=t}),c.defaultfns=o.join(","),c.onupdatefns=u.join(";"),a.forEach(function(e){var t;if("PRIMARY KEY"===e.type){if(c.pk)throw new Error("Primary key already exists");var r=c.pk={};r.columns=e.columns,r.onrightfns=r.columns.map(function(e){return"r['"+e+"']"}).join("+'`'+"),r.onrightfn=new Function("r","var y;return "+r.onrightfns),r.hh=E(r.onrightfns),c.uniqs[r.hh]={}}else if("CHECK"===e.type)t=new Function("r","var y;return "+e.expression.toJS("r",""));else if("UNIQUE"===e.type){var n={};c.uk=c.uk||[],c.uk.push(n),n.columns=e.columns,n.onrightfns=n.columns.map(function(e){return"r['"+e+"']"}).join("+'`'+"),n.onrightfn=new Function("r","var y;return "+n.onrightfns),n.hh=E(n.onrightfns),c.uniqs[n.hh]={}}else if("FOREIGN KEY"===e.type){var a=c.xcolumns[e.columns[0]],s=e.fktable;e.fkcolumns&&0<e.fkcolumns.length&&(s.columnid=e.fkcolumns[0]);var i=gi.databases[s.databaseid||f].tables[s.tableid];void 0===s.columnid&&(s.columnid=i.pk.columns[0]),t=function(e){var t={};if(void 0===e[a.columnid])return!0;t[s.columnid]=e[a.columnid];var r=i.pk.onrightfn(t);if(!i.uniqs[i.pk.hh][r])throw new Error("Foreign key violation");return!0}}t&&c.checks.push({fn:t,id:e.constraintid,fk:"FOREIGN KEY"===e.type})}),this.view&&this.viewcolumns){var i=this;this.viewcolumns.forEach(function(e,t){i.select.columns[t].as=e.columnid})}return this.view&&this.select&&(c.view=!0,c.select=this.select.compile(this.table.databaseid||f)),t.engineid?gi.engines[t.engineid].createTable(this.table.databaseid||f,r,this.ifnotexists,e):(c.insert=function(r,n){var e=gi.inserted;gi.inserted=[r];var a=this,s=!1,t=!1;for(var i in a.beforeinsert){(d=a.beforeinsert[i])&&(d.funcid?!1===gi.fn[d.funcid](r)&&(t=t||!0):d.statement&&!1===d.statement.execute(f)&&(t=t||!0))}if(!t){var o=!1;for(i in a.insteadofinsert)o=!0,(d=a.insteadofinsert[i])&&(d.funcid?gi.fn[d.funcid](r):d.statement&&d.statement.execute(f));if(!o){for(var u in a.identities){var c=a.identities[u];r[u]=c.value}if(a.checks&&0<a.checks.length&&a.checks.forEach(function(e){if(!e.fn(r))throw new Error("Violation of CHECK constraint "+(e.id||""))}),a.columns.forEach(function(e){if(e.notnull&&void 0===r[e.columnid])throw new Error("Wrong NULL value in NOT NULL column "+e.columnid)}),a.pk){var l=(h=a.pk).onrightfn(r);if(void 0!==a.uniqs[h.hh][l]){if(!n)throw new Error("Cannot insert record, because it already exists in primary key index");s=a.uniqs[h.hh][l]}}if(a.uk&&a.uk.length&&a.uk.forEach(function(e){var t=e.onrightfn(r);if(void 0!==a.uniqs[e.hh][t]){if(!n)throw new Error("Cannot insert record, because it already exists in unique index");s=a.uniqs[e.hh][t]}}),s)a.update(function(e){for(var t in r)e[t]=r[t]},a.data.indexOf(s),p);else{for(var u in a.data.push(r),a.identities){(c=a.identities[u]).value+=c.step}if(a.pk){var h;l=(h=a.pk).onrightfn(r);a.uniqs[h.hh][l]=r}a.uk&&a.uk.length&&a.uk.forEach(function(e){var t=e.onrightfn(r);a.uniqs[e.hh][t]=r})}for(var i in a.afterinsert){var d;(d=a.afterinsert[i])&&(d.funcid?gi.fn[d.funcid](r):d.statement&&d.statement.execute(f))}gi.inserted=e}}},c.delete=function(e){var r=this,n=r.data[e],t=!1;for(var a in r.beforedelete){(i=r.beforedelete[a])&&(i.funcid?!1===gi.fn[i.funcid](n)&&(t=t||!0):i.statement&&!1===i.statement.execute(f)&&(t=t||!0))}if(t)return!1;var s=!1;for(var a in r.insteadofdelete){var i;s=!0,(i=r.insteadofdelete[a])&&(i.funcid?gi.fn[i.funcid](n):i.statement&&i.statement.execute(f))}if(!s){if(this.pk){var o=this.pk,u=o.onrightfn(n);if(void 0===this.uniqs[o.hh][u])throw new Error("Something wrong with primary key index on table");this.uniqs[o.hh][u]=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})}},c.deleteall=function(){this.data.length=0,this.pk&&(this.uniqs[this.pk.hh]={}),c.uk&&c.uk.length&&c.uk.forEach(function(e){c.uniqs[e.hh]={}})},c.update=function(e,t,r){var n,a=b(this.data[t]);if(this.pk&&((n=this.pk).pkaddr=n.onrightfn(a,r),void 0===this.uniqs[n.hh][n.pkaddr]))throw new Error("Something wrong with index on table");c.uk&&c.uk.length&&c.uk.forEach(function(e){if(e.ukaddr=e.onrightfn(a),void 0===c.uniqs[e.hh][e.ukaddr])throw new Error("Something wrong with unique index on table")}),e(a,r,gi);var s=!1;for(var i in c.beforeupdate){(u=c.beforeupdate[i])&&(u.funcid?!1===gi.fn[u.funcid](this.data[t],a)&&(s=s||!0):u.statement&&!1===u.statement.execute(f)&&(s=s||!0))}if(s)return!1;var o=!1;for(var i in c.insteadofupdate){o=!0,(u=c.insteadofupdate[i])&&(u.funcid?gi.fn[u.funcid](this.data[t],a):u.statement&&u.statement.execute(f))}if(!o){if(c.checks&&0<c.checks.length&&c.checks.forEach(function(e){if(!e.fn(a))throw new Error("Violation of CHECK constraint "+(e.id||""))}),c.columns.forEach(function(e){if(e.notnull&&void 0===a[e.columnid])throw new Error("Wrong NULL value in NOT NULL column "+e.columnid)}),this.pk&&(n.newpkaddr=n.onrightfn(a),void 0!==this.uniqs[n.hh][n.newpkaddr]&&n.newpkaddr!==n.pkaddr))throw new Error("Record already exists");for(var i in c.uk&&c.uk.length&&c.uk.forEach(function(e){if(e.newukaddr=e.onrightfn(a),void 0!==c.uniqs[e.hh][e.newukaddr]&&e.newukaddr!==e.ukaddr)throw new Error("Record already exists")}),this.pk&&(this.uniqs[n.hh][n.pkaddr]=void 0,this.uniqs[n.hh][n.newpkaddr]=a),c.uk&&c.uk.length&&c.uk.forEach(function(e){c.uniqs[e.hh][e.ukaddr]=void 0,c.uniqs[e.hh][e.newukaddr]=a}),this.data[t]=a,c.afterupdate){var u;(u=c.afterupdate[i])&&(u.funcid?gi.fn[u.funcid](this.data[t],a):u.statement&&u.statement.execute(f))}}},gi.options.nocount||(s=1),e&&(s=e(s)),s)},gi.fn.Date=Object,gi.fn.Date=Date,gi.fn.Number=Number,gi.fn.String=String,gi.fn.Boolean=Boolean,B.EXTEND=gi.utils.extend,B.CHAR=String.fromCharCode.bind(String),B.ASCII=function(e){return e.charCodeAt(0)},B.COALESCE=function(){for(var e=0;e<arguments.length;e++)if(void 0!==arguments[e]&&("number"!=typeof arguments[e]||!isNaN(arguments[e])))return arguments[e]},B.USER=function(){return"alasql"},B.OBJECT_ID=function(e){return!!gi.tables[e]},B.DATE=function(e){return/\d{8}/.test(e)?new Date(+e.substr(0,4),+e.substr(4,2)-1,+e.substr(6,2)):new Date(e)},B.NOW=function(){var e=new Date,t=e.getFullYear()+"."+("0"+(e.getMonth()+1)).substr(-2)+"."+("0"+e.getDate()).substr(-2);return t+=" "+("0"+e.getHours()).substr(-2)+":"+("0"+e.getMinutes()).substr(-2)+":"+("0"+e.getSeconds()).substr(-2),t+="."+("00"+e.getMilliseconds()).substr(-3)},B.GETDATE=B.NOW,B.CURRENT_TIMESTAMP=B.NOW,B.SECOND=function(e){return(e=new Date(e)).getSeconds()},B.MINUTE=function(e){return(e=new Date(e)).getMinutes()},B.HOUR=function(e){return(e=new Date(e)).getHours()},B.DAYOFWEEK=B.WEEKDAY=function(e){return(e=new Date(e)).getDay()},B.DAY=B.DAYOFMONTH=function(e){return(e=new Date(e)).getDate()},B.MONTH=function(e){return(e=new Date(e)).getMonth()+1},B.YEAR=function(e){return(e=new Date(e)).getFullYear()};var X={year:31536e6,quarter:7884e6,month:2592e6,week:6048e5,day:864e5,dayofyear:864e5,weekday:864e5,hour:36e5,minute:6e4,second:1e3,millisecond:1,microsecond:.001};function K(t){var r="";if(void 0===t)r+="undefined";else if(Array.isArray(t)){r+="<style>",r+="table {border:1px black solid; border-collapse: collapse; border-spacing: 0px;}",r+="td,th {border:1px black solid; padding-left:5px; padding-right:5px}",r+="th {background-color: #EEE}",r+="</style>",r+="<table>";var e=[];for(var n in t[0])e.push(n);r+="<tr><th>#",e.forEach(function(e){r+="<th>"+e});for(var a=0,s=t.length;a<s;a++)r+="<tr><th>"+(a+1),e.forEach(function(e){r+="<td> ",t[a][e]==+t[a][e]?(r+='<div style="text-align:right">',void 0===t[a][e]?r+="NULL":r+=t[a][e],r+="</div>"):void 0===t[a][e]?r+="NULL":"string"==typeof t[a][e]?r+=t[a][e]:r+=J(t[a][e])});r+="</table>"}else r+="<p>"+J(t)+"</p>";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.byteLength/n;++r)t+=String.fromCharCode.apply(null,new Uint8Array(e.slice(r*n,r*n+n)));return t+=String.fromCharCode.apply(null,new Uint8Array(e.slice(r*n)))}(e),r=m.read(btoa(t),{type:"base64"});else r=m.read(e,{type:"binary"});var n,a;n=void 0===A.sheetid?r.SheetNames[0]:"number"==typeof A.sheetid?r.SheetNames[A.sheetid]:A.sheetid;var s=[];if(void 0===A.range?a=r.Sheets[n]["!ref"]:(a=A.range,r.Sheets[n][a]&&(a=r.Sheets[n][a])),a){for(var i=a.split(":"),o=i[0].match(/[A-Z]+/)[0],u=+i[0].match(/[0-9]+/)[0],c=i[1].match(/[A-Z]+/)[0],l=+i[1].match(/[0-9]+/)[0],h={},d=gi.utils.xlscn(o),f=gi.utils.xlscn(c),p=d;p<=f;p++){var b=gi.utils.xlsnc(p);A.headers?r.Sheets[n][b+""+u]?h[b]=y(r.Sheets[n][b+""+u].v):h[b]=y(b):h[b]=b}A.headers&&u++;for(var E=u;E<=l;E++){var g={};for(p=d;p<=f;p++){b=gi.utils.xlsnc(p);r.Sheets[n][b+""+E]&&(g[h[b]]=r.Sheets[n][b+""+E].v)}s.push(g)}}else s.push([]);0<s.length&&s[s.length-1]&&0==Object.keys(s[s.length-1]).length&&s.pop(),v&&(s=v(s,S,T))},function(e){throw e})}gi.stdfn.DATEDIFF=function(e,t,r){return(new Date(r).getTime()-new Date(t).getTime())/X[e.toLowerCase()]},gi.stdfn.DATEADD=function(e,t,r){var n=new Date(r).getTime()+t*X[e.toLowerCase()];return new Date(n)},gi.stdfn.INTERVAL=function(e,t){return e*X[t.toLowerCase()]},gi.stdfn.DATE_ADD=gi.stdfn.ADDDATE=function(e,t){var r=new Date(e).getTime()+t;return new Date(r)},gi.stdfn.DATE_SUB=gi.stdfn.SUBDATE=function(e,t){var r=new Date(e).getTime()-t;return new Date(r)},D.DropTable=function(e){return D.extend(this,e)},D.DropTable.prototype.toString=function(){var e="DROP ";return this.view?e+="VIEW":e+="TABLE",this.ifexists&&(e+=" IF EXISTS"),e+=" "+this.tables.toString()},D.DropTable.prototype.execute=function(n,e,a){var s=this.ifexists,i=0,o=0,u=this.tables.length;return this.tables.forEach(function(e){var t=gi.databases[e.databaseid||n],r=e.tableid;if(!s||s&&t.tables[r]){if(t.tables[r])t.engineid?gi.engines[t.engineid].dropTable(e.databaseid||n,r,s,function(e){delete t.tables[r],i+=e,++o==u&&a&&a(i)}):(delete t.tables[r],i++,++o==u&&a&&a(i));else if(!gi.options.dropifnotexists)throw new Error("Can not drop table '"+e.tableid+"', because it does not exist in the database.")}else++o==u&&a&&a(i)}),i},D.TruncateTable=function(e){return D.extend(this,e)},D.TruncateTable.prototype.toString=function(){var e="TRUNCATE TABLE";return e+=" "+this.table.toString()},D.TruncateTable.prototype.execute=function(e,t,r){var n=gi.databases[this.table.databaseid||e],a=this.table.tableid;if(n.engineid)return gi.engines[n.engineid].truncateTable(this.table.databaseid||e,a,this.ifexists,r);if(!n.tables[a])throw new Error("Cannot truncate table becaues it does not exist");return n.tables[a].data=[],r?r(0):0},D.CreateVertex=function(e){return D.extend(this,e)},D.CreateVertex.prototype.toString=function(){var e="CREATE VERTEX ";return this.class&&(e+=this.class+" "),this.sharp&&(e+="#"+this.sharp+" "),this.sets?e+=this.sets.toString():this.content?e+=this.content.toString():this.select&&(e+=this.select.toString()),e},D.CreateVertex.prototype.toJS=function(e){return"this.queriesfn["+(this.queriesidx-1)+"](this.params,null,"+e+")"},D.CreateVertex.prototype.compile=function(e){var s=e,i=this.sharp;if(void 0!==this.name)var t="x.name="+this.name.toJS(),o=new Function("x",t);if(this.sets&&0<this.sets.length){t=this.sets.map(function(e){return"x['"+e.column.columnid+"']="+e.expression.toJS("x","")}).join(";");var u=new Function("x,params,alasql",t)}return function(e,t){var r,n=gi.databases[s],a={$id:void 0!==i?i:n.counter++,$node:"VERTEX"};return r=n.objects[a.$id]=a,o&&o(a),u&&u(a,e,gi),t&&(r=t(r)),r}},D.CreateEdge=function(e){return D.extend(this,e)},D.CreateEdge.prototype.toString=function(){var e="CREATE EDGE ";return this.class&&(e+=this.class+" "),e},D.CreateEdge.prototype.toJS=function(e){return"this.queriesfn["+(this.queriesidx-1)+"](this.params,null,"+e+")"},D.CreateEdge.prototype.compile=function(e){var o=e,u=new Function("params,alasql","var y;return "+this.from.toJS()),c=new Function("params,alasql","var y;return "+this.to.toJS());if(void 0!==this.name)var t="x.name="+this.name.toJS(),l=new Function("x",t);if(this.sets&&0<this.sets.length){t=this.sets.map(function(e){return"x['"+e.column.columnid+"']="+e.expression.toJS("x","")}).join(";");var h=new Function("x,params,alasql","var y;"+t)}return function(e,t){var r=0,n=gi.databases[o],a={$id:n.counter++,$node:"EDGE"},s=u(e,gi),i=c(e,gi);return a.$in=[s.$id],a.$out=[i.$id],void 0===s.$out&&(s.$out=[]),s.$out.push(a.$id),i.$in,i.$in.push(a.$id),r=n.objects[a.$id]=a,l&&l(a),h&&h(a,e,gi),t&&(r=t(r)),r}},D.CreateGraph=function(e){return D.extend(this,e)},D.CreateGraph.prototype.toString=function(){var e="CREATE GRAPH ";return this.class&&(e+=this.class+" "),e},D.CreateGraph.prototype.execute=function(u,c,e){var l=[];return this.from&&gi.from[this.from.funcid]&&(this.graph=gi.from[this.from.funcid.toUpperCase()]),this.graph.forEach(function(e){if(e.source){var t={};void 0!==e.as&&(gi.vars[e.as]=t),void 0!==e.prop&&(t.name=e.prop),void 0!==e.sharp&&(t.$id=e.sharp),void 0!==e.name&&(t.name=e.name),void 0!==e.class&&(t.$class=e.class);var r,n,a=gi.databases[u];if(void 0===t.$id&&(t.$id=a.counter++),t.$node="EDGE",void 0!==e.json&&g(t,new Function("params,alasql","var y;return "+e.json.toJS())(c,gi)),e.source.vars){r="object"==typeof(i=gi.vars[e.source.vars])?i:a.objects[i]}else{var s=e.source.sharp;void 0===s&&(s=e.source.prop),void 0!==(r=gi.databases[u].objects[s])||!gi.options.autovertex||void 0===e.source.prop&&void 0===e.source.name||void 0===(r=h(e.source.prop||e.source.name))&&(r=d(e.source))}if(e.source.vars){var i;n="object"==typeof(i=gi.vars[e.target.vars])?i:a.objects[i]}else{var o=e.target.sharp;void 0===o&&(o=e.target.prop),void 0!==(n=gi.databases[u].objects[o])||!gi.options.autovertex||void 0===e.target.prop&&void 0===e.target.name||void 0===(n=h(e.target.prop||e.target.name))&&(n=d(e.target))}if(t.$in=[r.$id],t.$out=[n.$id],void 0===r.$out&&(r.$out=[]),r.$out.push(t.$id),void 0===n.$in&&(n.$in=[]),n.$in.push(t.$id),void 0!==(a.objects[t.$id]=t).$class){if(void 0===gi.databases[u].tables[t.$class])throw new Error("No such class. Pleace use CREATE CLASS");gi.databases[u].tables[t.$class].data.push(t)}l.push(t.$id)}else d(e)}),e&&(l=e(l)),l;function h(e){var t=gi.databases[gi.useid].objects;for(var r in t)if(t[r].name===e)return t[r]}function d(e){var t={};void 0!==e.as&&(gi.vars[e.as]=t),void 0!==e.prop&&(t.$id=e.prop,t.name=e.prop),void 0!==e.sharp&&(t.$id=e.sharp),void 0!==e.name&&(t.name=e.name),void 0!==e.class&&(t.$class=e.class);var r=gi.databases[u];if(void 0===t.$id&&(t.$id=r.counter++),t.$node="VERTEX",void 0!==e.json&&g(t,new Function("params,alasql","var y;return "+e.json.toJS())(c,gi)),void 0!==(r.objects[t.$id]=t).$class){if(void 0===gi.databases[u].tables[t.$class])throw new Error("No such class. Pleace use CREATE CLASS");gi.databases[u].tables[t.$class].data.push(t)}return l.push(t.$id),t}},D.CreateGraph.prototype.compile1=function(e){var o=e,u=new Function("params,alasql","var y;return "+this.from.toJS()),c=new Function("params,alasql","var y;return "+this.to.toJS());if(void 0!==this.name)var t="x.name="+this.name.toJS(),l=new Function("x",t);if(this.sets&&0<this.sets.length){t=this.sets.map(function(e){return"x['"+e.column.columnid+"']="+e.expression.toJS("x","")}).join(";");var h=new Function("x,params,alasql","var y;"+t)}return function(e,t){var r=0,n=gi.databases[o],a={$id:n.counter++,$node:"EDGE"},s=u(e,gi),i=c(e,gi);return a.$in=[s.$id],a.$out=[i.$id],void 0===s.$out&&(s.$out=[]),s.$out.push(a.$id),void 0===i.$in&&(i.$in=[]),i.$in.push(a.$id),r=n.objects[a.$id]=a,l&&l(a),h&&h(a,e,gi),t&&(r=t(r)),r}},D.AlterTable=function(e){return D.extend(this,e)},D.AlterTable.prototype.toString=function(){var e="ALTER TABLE "+this.table.toString();return this.renameto&&(e+=" RENAME TO "+this.renameto),e},D.AlterTable.prototype.execute=function(e,t,r){if((p=gi.databases[e]).dbversion=Date.now(),this.renameto){var n=this.table.tableid,a=this.renameto,s=1;if(p.tables[a])throw new Error("Can not rename a table '"+n+"' to '"+a+"', because the table with this name already exists");if(a===n)throw new Error("Can not rename a table '"+n+"' to itself");return p.tables[a]=p.tables[n],delete p.tables[n],s=1,r&&r(s),s}if(this.addcolumn){(p=gi.databases[this.table.databaseid||e]).dbversion++;var i=this.table.tableid,o=p.tables[i],u=this.addcolumn.columnid;if(o.xcolumns[u])throw new Error('Cannot add column "'+u+'", because it already exists in the table "'+i+'"');var c={columnid:u,dbtypeid:this.dbtypeid,dbsize:this.dbsize,dbprecision:this.dbprecision,dbenum:this.dbenum,defaultfns:null};o.columns.push(c),o.xcolumns[u]=c;for(var l=0,h=o.data.length;l<h;l++)o.data[l][u]=void 0;return r?r(1):1}if(this.modifycolumn){(p=gi.databases[this.table.databaseid||e]).dbversion++;i=this.table.tableid,o=p.tables[i],u=this.modifycolumn.columnid;if(!o.xcolumns[u])throw new Error('Cannot modify column "'+u+'", because it was not found in the table "'+i+'"');return(c=o.xcolumns[u]).dbtypeid=this.dbtypeid,c.dbsize=this.dbsize,c.dbprecision=this.dbprecision,c.dbenum=this.dbenum,r?r(1):1}if(this.renamecolumn){(p=gi.databases[this.table.databaseid||e]).dbversion++;i=this.table.tableid,o=p.tables[i],u=this.renamecolumn;var d=this.to;if(!o.xcolumns[u])throw new Error('Column "'+u+'" is not found in the table "'+i+'"');if(o.xcolumns[d])throw new Error('Column "'+d+'" already exists in the table "'+i+'"');if(u==d)return r?r(0):0;for(var f=0;f<o.columns.length;f++)o.columns[f].columnid==u&&(o.columns[f].columnid=d);o.xcolumns[d]=o.xcolumns[u],delete o.xcolumns[u];for(l=0,h=o.data.length;l<h;l++)o.data[l][d]=o.data[l][u],delete o.data[l][u];return o.data.length}if(this.dropcolumn){var p;(p=gi.databases[this.table.databaseid||e]).dbversion++;i=this.table.tableid,o=p.tables[i],u=this.dropcolumn;var b=!1;for(f=0;f<o.columns.length;f++)if(o.columns[f].columnid==u){b=!0,o.columns.splice(f,1);break}if(!b)throw new Error('Cannot drop column "'+u+'", because it was not found in the table "'+i+'"');for(delete o.xcolumns[u],l=0,h=o.data.length;l<h;l++)delete o.data[l][u];return r?r(o.data.length):o.data.length}throw Error("Unknown ALTER TABLE method")},D.CreateIndex=function(e){return D.extend(this,e)},D.CreateIndex.prototype.toString=function(){var e="CREATE";return this.unique&&(e+=" UNIQUE"),e+=" INDEX "+this.indexid+" ON "+this.table.toString(),e+="("+this.columns.toString()+")"},D.CreateIndex.prototype.execute=function(e,t,r){var n=gi.databases[e],a=this.table.tableid,s=n.tables[a],i=this.indexid;n.indices[i]=a;var o=this.columns.map(function(e){return e.expression.toJS("r","")}).join("+'`'+"),u=new Function("r,params,alasql","return "+o);if(this.unique){s.uniqdefs[i]={rightfns:o};var c=s.uniqs[i]={};if(0<s.data.length)for(var l=0,h=s.data.length;l<h;l++){c[p=o(s.data[l])]||(c[p]={num:0}),c[p].num++}}else{var d=E(o);s.inddefs[i]={rightfns:o,hh:d},s.indices[d]={};var f=s.indices[d]={};if(0<s.data.length)for(l=0,h=s.data.length;l<h;l++){var p;f[p=u(s.data[l],t,gi)]||(f[p]=[]),f[p].push(s.data[l])}}var b=1;return r&&(b=r(b)),b},D.Reindex=function(e){return D.extend(this,e)},D.Reindex.prototype.toString=function(){return"REINDEX "+this.indexid},D.Reindex.prototype.execute=function(e,t,r){var n=gi.databases[e],a=this.indexid,s=n.indices[a];n.tables[s].indexColumns();var i=1;return r&&(i=r(i)),i},D.DropIndex=function(e){return D.extend(this,e)},D.DropIndex.prototype.toString=function(){return"DROP INDEX"+this.indexid},D.DropIndex.prototype.compile=function(e){this.indexid;return function(){return 1}},D.WithSelect=function(e){return D.extend(this,e)},D.WithSelect.prototype.toString=function(){var e="WITH ";return e+=this.withs.map(function(e){return e.name+" AS ("+e.select.toString()+")"}).join(",")+" ",e+=this.select.toString()},D.WithSelect.prototype.execute=function(r,t,n){var a=this,s=[];a.withs.forEach(function(e){s.push(gi.databases[r].tables[e.name]),(gi.databases[r].tables[e.name]=new O({tableid:e.name})).data=e.select.execute(r,t)});return this.select.execute(r,t,function(e){return a.withs.forEach(function(e,t){s[t]?gi.databases[r].tables[e.name]=s[t]:delete gi.databases[r].tables[e.name]}),n&&(e=n(e)),e})},D.If=function(e){return D.extend(this,e)},D.If.prototype.toString=function(){var e="IF ";return e+=this.expression.toString(),e+=" "+this.thenstat.toString(),this.elsestat&&(e+=" ELSE "+this.thenstat.toString()),e},D.If.prototype.execute=function(e,t,r){var n;return new Function("params,alasql,p","var y;return "+this.expression.toJS("({})","",null)).bind(this)(t,gi)?n=this.thenstat.execute(e,t,r):this.elsestat?n=this.elsestat.execute(e,t,r):r&&(n=r(n)),n},D.While=function(e){return D.extend(this,e)},D.While.prototype.toString=function(){var e="WHILE ";return e+=this.expression.toString(),e+=" "+this.loopstat.toString()},D.While.prototype.execute=function(t,r,n){var a=this,s=[],i=new Function("params,alasql,p","var y;return "+this.expression.toJS());if(n){var o=!1,u=function(e){o?s.push(e):o=!0,setTimeout(function(){i(r,gi)?a.loopstat.execute(t,r,u):s=n(s)},0)};u()}else for(;i(r,gi);){var e=a.loopstat.execute(t,r);s.push(e)}return s},D.Break=function(e){return D.extend(this,e)},D.Break.prototype.toString=function(){return"BREAK"},D.Break.prototype.execute=function(e,t,r,n){var a=1;return r&&(a=r(a)),a},D.Continue=function(e){return D.extend(this,e)},D.Continue.prototype.toString=function(){return"CONTINUE"},D.Continue.prototype.execute=function(e,t,r,n){var a=1;return r&&(a=r(a)),a},D.BeginEnd=function(e){return D.extend(this,e)},D.BeginEnd.prototype.toString=function(){return"BEGIN "+this.statements.toString()+" END"},D.BeginEnd.prototype.execute=function(e,r,n,t){var a=this,s=[],i=0;return function t(){a.statements[i].execute(e,r,function(e){if(s.push(e),++i<a.statements.length)return t();n&&(s=n(s))})}(),s},D.Insert=function(e){return D.extend(this,e)},D.Insert.prototype.toString=function(){var e="INSERT ";return this.orreplace&&(e+="OR REPLACE "),this.replaceonly&&(e="REPLACE "),e+="INTO "+this.into.toString(),this.columns&&(e+="("+this.columns.toString()+")"),this.values&&(e+=" VALUES "+this.values.toString()),this.select&&(e+=" "+this.select.toString()),e},D.Insert.prototype.toJS=function(e,t,r){return"this.queriesfn["+(this.queriesidx-1)+"](this.params,null,"+e+")"},D.Insert.prototype.compile=function(s){var o=this;s=o.into.databaseid||s;var i=gi.databases[s],u=o.into.tableid,c=i.tables[u];if(!c)throw"Table '"+u+"' could not be found";var n,e="",t="",r=(e="db.tables['"+u+"'].dirty=true;","var a,aa=[],x;");if(this.values){this.exists&&(this.existsfn=this.exists.map(function(e){var t=e.compile(s);return t.query.modifier="RECORDSET",t})),this.queries&&(this.queriesfn=this.queries.map(function(e){var t=e.compile(s);return t.query.modifier="RECORDSET",t})),o.values.forEach(function(n){var a=[];o.columns?o.columns.forEach(function(e,t){var r="'"+e.columnid+"':";c.xcolumns&&c.xcolumns[e.columnid]?0<=["INT","FLOAT","NUMBER","MONEY"].indexOf(c.xcolumns[e.columnid].dbtypeid)?r+="(x="+n[t].toJS()+",x==undefined?undefined:+x)":gi.fn[c.xcolumns[e.columnid].dbtypeid]?(r+="(new "+c.xcolumns[e.columnid].dbtypeid+"(",r+=n[t].toJS(),r+="))"):r+=n[t].toJS():r+=n[t].toJS(),a.push(r)}):Array.isArray(n)&&c.columns&&0<c.columns.length?c.columns.forEach(function(e,t){var r="'"+e.columnid+"':";0<=["INT","FLOAT","NUMBER","MONEY"].indexOf(e.dbtypeid)?r+="+"+n[t].toJS():gi.fn[e.dbtypeid]?(r+="(new "+e.dbtypeid+"(",r+=n[t].toJS(),r+="))"):r+=n[t].toJS(),a.push(r)}):t=Y(n),i.tables[u].defaultfns&&a.unshift(i.tables[u].defaultfns),e+=t?"a="+t+";":"a={"+a.join(",")+"};",i.tables[u].isclass&&(e+="var db=alasql.databases['"+s+"'];",e+='a.$class="'+u+'";',e+="a.$id=db.counter++;",e+="db.objects[a.$id]=a;"),i.tables[u].insert?(e+="var db=alasql.databases['"+s+"'];",e+="db.tables['"+u+"'].insert(a,"+(o.orreplace?"true":"false")+");"):e+="aa.push(a);"}),n=r+e,i.tables[u].insert||(e+="alasql.databases['"+s+"'].tables['"+u+"'].data=alasql.databases['"+s+"'].tables['"+u+"'].data.concat(aa);"),i.tables[u].insert&&i.tables[u].isclass?e+="return a.$id;":e+="return "+o.values.length;var a=new Function("db, params, alasql","var y;"+r+e).bind(this)}else if(this.select){this.select.modifier="RECORDSET";var l=this.select.compile(s);if(i.engineid&&gi.engines[i.engineid].intoTable)return p=function(e,t){var r=l(e);return gi.engines[i.engineid].intoTable(i.databaseid,u,r.data,null,t)};var h="return alasql.utils.extend(r,{"+c.defaultfns+"})",d=new Function("r,db,params,alasql",h);a=function(e,t,r){var n=l(t).data;if(e.tables[u].insert)for(var a=0,s=n.length;a<s;a++){var i=b(n[a]);d(i,e,t,r),e.tables[u].insert(i,o.orreplace)}else e.tables[u].data=e.tables[u].data.concat(n);return r.options.nocount?void 0:n.length}}else{if(!this.default)throw new Error("Wrong INSERT parameters");var f="db.tables['"+u+"'].data.push({"+c.defaultfns+"});return 1;";a=new Function("db,params,alasql",f)}if(i.engineid&&gi.engines[i.engineid].intoTable&&gi.options.autocommit)var p=function(e,t){var r=new Function("db,params","var y;"+n+"return aa;")(i,e);return gi.engines[i.engineid].intoTable(i.databaseid,u,r,null,t)};else p=function(e,t){var r=gi.databases[s];gi.options.autocommit&&r.engineid&&gi.engines[r.engineid].loadTableData(s,u);var n=a(r,e,gi);return gi.options.autocommit&&r.engineid&&gi.engines[r.engineid].saveTableData(s,u),gi.options.nocount&&(n=void 0),t&&t(n),n};return p},D.Insert.prototype.execute=function(e,t,r){return this.compile(e)(t,r)},D.CreateTrigger=function(e){return D.extend(this,e)},D.CreateTrigger.prototype.toString=function(){var e="CREATE TRIGGER "+this.trigger+" ";return this.when&&(e+=this.when+" "),e+=this.action+" ON ",this.table.databaseid&&(e+=this.table.databaseid+"."),e+=this.table.tableid+" ",e+=this.statement.toString()},D.CreateTrigger.prototype.execute=function(e,t,r){var n=1,a=this.trigger;e=this.table.databaseid||e;var s=gi.databases[e],i=this.table.tableid,o={action:this.action,when:this.when,statement:this.statement,funcid:this.funcid,tableid:this.table.tableid};return"INSERT"==(s.triggers[a]=o).action&&"BEFORE"==o.when?s.tables[i].beforeinsert[a]=o:"INSERT"==o.action&&"AFTER"==o.when?s.tables[i].afterinsert[a]=o:"INSERT"==o.action&&"INSTEADOF"==o.when?s.tables[i].insteadofinsert[a]=o:"DELETE"==o.action&&"BEFORE"==o.when?s.tables[i].beforedelete[a]=o:"DELETE"==o.action&&"AFTER"==o.when?s.tables[i].afterdelete[a]=o:"DELETE"==o.action&&"INSTEADOF"==o.when?s.tables[i].insteadofdelete[a]=o:"UPDATE"==o.action&&"BEFORE"==o.when?s.tables[i].beforeupdate[a]=o:"UPDATE"==o.action&&"AFTER"==o.when?s.tables[i].afterupdate[a]=o:"UPDATE"==o.action&&"INSTEADOF"==o.when&&(s.tables[i].insteadofupdate[a]=o),r&&(n=r(n)),n},D.DropTrigger=function(e){return D.extend(this,e)},D.DropTrigger.prototype.toString=function(){return"DROP TRIGGER "+this.trigger},D.DropTrigger.prototype.execute=function(e,t,r){var n=0,a=gi.databases[e],s=this.trigger;if(!a.triggers[s])throw new Error("Trigger not found");var i=a.triggers[s].tableid;if(!i)throw new Error("Trigger Table not found");return n=1,delete a.tables[i].beforeinsert[s],delete a.tables[i].afterinsert[s],delete a.tables[i].insteadofinsert[s],delete a.tables[i].beforedelete[s],delete a.tables[i].afterdelete[s],delete a.tables[i].insteadofdelete[s],delete a.tables[i].beforeupdate[s],delete a.tables[i].afterupdate[s],delete a.tables[i].insteadofupdate[s],delete a.triggers[s],r&&(n=r(n)),n},D.Delete=function(e){return D.extend(this,e)},D.Delete.prototype.toString=function(){var e="DELETE FROM "+this.table.toString();return this.where&&(e+=" WHERE "+this.where.toString()),e},D.Delete.prototype.compile=function(l){l=this.table.databaseid||l;var e,h=this.table.tableid,d=gi.databases[l];if(this.where){this.exists&&(this.existsfn=this.exists.map(function(e){var t=e.compile(l);return t.query.modifier="RECORDSET",t})),this.queries&&(this.queriesfn=this.queries.map(function(e){var t=e.compile(l);return t.query.modifier="RECORDSET",t}));var f=new Function("r,params,alasql","var y;return ("+this.where.toJS("r","")+")").bind(this);e=function(e,t){if(d.engineid&&gi.engines[d.engineid].deleteFromTable)return gi.engines[d.engineid].deleteFromTable(l,h,f,e,t);gi.options.autocommit&&d.engineid&&("LOCALSTORAGE"==d.engineid||"FILESTORAGE"==d.engineid)&&gi.engines[d.engineid].loadTableData(l,h);for(var r=d.tables[h],n=r.data.length,a=[],s=0,i=r.data.length;s<i;s++)f(r.data[s],e,gi)?r.delete&&r.delete(s,e,gi):a.push(r.data[s]);for(var o in r.data=a,r.afterdelete){var u=r.afterdelete[o];u&&(u.funcid?gi.fn[u.funcid]():u.statement&&u.statement.execute(l))}var c=n-r.data.length;return gi.options.autocommit&&d.engineid&&("LOCALSTORAGE"==d.engineid||"FILESTORAGE"==d.engineid)&&gi.engines[d.engineid].saveTableData(l,h),t&&t(c),c}}else e=function(e,t){gi.options.autocommit&&d.engineid&&gi.engines[d.engineid].loadTableData(l,h),d.tables[h].dirty=!0;var r=d.tables[h].data.length;for(var n in d.tables[h].data.length=0,d.tables[h].uniqs)d.tables[h].uniqs[n]={};for(var n in d.tables[h].indices)d.tables[h].indices[n]={};return gi.options.autocommit&&d.engineid&&gi.engines[d.engineid].saveTableData(l,h),t&&t(r),r};return e},D.Delete.prototype.execute=function(e,t,r){return this.compile(e)(t,r)},D.Update=function(e){return D.extend(this,e)},D.Update.prototype.toString=function(){var e="UPDATE "+this.table.toString();return this.columns&&(e+=" SET "+this.columns.toString()),this.where&&(e+=" WHERE "+this.where.toString()),e},D.SetColumn=function(e){return D.extend(this,e)},D.SetColumn.prototype.toString=function(){return this.column.toString()+"="+this.expression.toString()},D.Update.prototype.compile=function(o){o=this.table.databaseid||o;var u=this.table.tableid;if(this.where){this.exists&&(this.existsfn=this.exists.map(function(e){var t=e.compile(o);return t.query.modifier="RECORDSET",t})),this.queries&&(this.queriesfn=this.queries.map(function(e){var t=e.compile(o);return t.query.modifier="RECORDSET",t}));var c=new Function("r,params,alasql","var y;return "+this.where.toJS("r","")).bind(this)}var t=gi.databases[o].tables[u].onupdatefns||"";t+=";",this.columns.forEach(function(e){t+="r['"+e.column.columnid+"']="+e.expression.toJS("r","")+";"});var l=new Function("r,params,alasql","var y;"+t);return function(e,t){var r=gi.databases[o];if(r.engineid&&gi.engines[r.engineid].updateTable)return gi.engines[r.engineid].updateTable(o,u,l,c,e,t);gi.options.autocommit&&r.engineid&&gi.engines[r.engineid].loadTableData(o,u);var n=r.tables[u];if(!n)throw new Error("Table '"+u+"' not exists");for(var a=0,s=0,i=n.data.length;s<i;s++)c&&!c(n.data[s],e,gi)||(n.update?n.update(l,s,e):l(n.data[s],e,gi),a++);return gi.options.autocommit&&r.engineid&&gi.engines[r.engineid].saveTableData(o,u),t&&t(a),a}},D.Update.prototype.execute=function(e,t,r){return this.compile(e)(t,r)},D.Merge=function(e){return D.extend(this,e)},D.Merge.prototype.toString=function(){var t="MERGE ";return t+=this.into.tableid+" ",this.into.as&&(t+="AS "+this.into.as+" "),t+="USING "+this.using.tableid+" ",this.using.as&&(t+="AS "+this.using.as+" "),t+="ON "+this.on.toString()+" ",this.matches.forEach(function(e){t+="WHEN ",e.matched||(t+="NOT "),t+="MATCHED ",e.bytarget&&(t+="BY TARGET "),e.bysource&&(t+="BY SOURCE "),e.expr&&(t+="AND "+e.expr.toString()+" "),t+="THEN ",e.action.delete&&(t+="DELETE "),e.action.insert&&(t+="INSERT ",e.action.columns&&(t+="("+e.action.columns.toString()+") "),e.action.values&&(t+="VALUES ("+e.action.values.toString()+") "),e.action.defaultvalues&&(t+="DEFAULT VALUES ")),e.action.update&&(t+="UPDATE ",t+=e.action.update.map(function(e){return e.toString()}).join(",")+" ")}),t},D.Merge.prototype.execute=function(e,t,r){var n=1;return r&&(n=r(n)),n},D.CreateDatabase=function(e){return D.extend(this,e)},D.CreateDatabase.prototype.toString=function(){var e="CREATE";return this.engineid&&(e+=" "+this.engineid),e+=" DATABASE",this.ifnotexists&&(e+=" IF NOT EXISTS"),e+=" "+this.databaseid,this.args&&0<this.args.length&&(e+="("+this.args.map(function(e){return e.toString()}).join(", ")+")"),this.as&&(e+=" AS "+this.as),e},D.CreateDatabase.prototype.execute=function(e,t,r){if(this.args&&0<this.args.length&&this.args.map(function(e){return new Function("params,alasql","var y;return "+e.toJS())(t,gi)}),this.engineid)return a=gi.engines[this.engineid].createDatabase(this.databaseid,this.args,this.ifnotexists,this.as,r);var n=this.databaseid;if(gi.databases[n])throw new Error("Database '"+n+"' already exists");new gi.Database(n);var a=1;return r?r(a):a},D.AttachDatabase=function(e){return D.extend(this,e)},D.AttachDatabase.prototype.toString=function(e){var t="ATTACH";return this.engineid&&(t+=" "+this.engineid),t+=" DATABASE "+this.databaseid,e&&(t+="(",0<e.length&&(t+=e.map(function(e){return e.toString()}).join(", ")),t+=")"),this.as&&(t+=" AS "+this.as),t},D.AttachDatabase.prototype.execute=function(e,t,r){if(!gi.engines[this.engineid])throw new Error('Engine "'+this.engineid+'" is not defined.');return gi.engines[this.engineid].attachDatabase(this.databaseid,this.as,this.args,t,r)},D.DetachDatabase=function(e){return D.extend(this,e)},D.DetachDatabase.prototype.toString=function(){var e="DETACH";return e+=" DATABASE "+this.databaseid},D.DetachDatabase.prototype.execute=function(e,t,r){if(!gi.databases[this.databaseid].engineid)throw new Error('Cannot detach database "'+this.engineid+'", because it was not attached.');var n,a=this.databaseid;if(a===gi.DEFAULTDATABASEID)throw new Error("Drop of default database is prohibited");if(gi.databases[a])delete gi.databases[a],a===gi.useid&&gi.use(),n=1;else{if(!this.ifexists)throw new Error("Database '"+a+"' does not exist");n=0}return r&&r(n),n},D.UseDatabase=function(e){return D.extend(this,e)},D.UseDatabase.prototype.toString=function(){return"USE DATABASE "+this.databaseid},D.UseDatabase.prototype.execute=function(e,t,r){var n=this.databaseid;if(!gi.databases[n])throw new Error("Database '"+n+"' does not exist");gi.use(n);return r&&r(1),1},D.DropDatabase=function(e){return D.extend(this,e)},D.DropDatabase.prototype.toString=function(){var e="DROP";return this.ifexists&&(e+=" IF EXISTS"),e+=" DATABASE "+this.databaseid},D.DropDatabase.prototype.execute=function(e,t,r){if(this.engineid)return gi.engines[this.engineid].dropDatabase(this.databaseid,this.ifexists,r);var n,a=this.databaseid;if(a===gi.DEFAULTDATABASEID)throw new Error("Drop of default database is prohibited");if(gi.databases[a]){if(gi.databases[a].engineid)throw new Error("Cannot drop database '"+a+"', because it is attached. Detach it.");delete gi.databases[a],a===gi.useid&&gi.use(),n=1}else{if(!this.ifexists)throw new Error("Database '"+a+"' does not exist");n=0}return r&&r(n),n},D.Declare=function(e){return D.extend(this,e)},D.Declare.prototype.toString=function(){var e="DECLARE ";return this.declares&&0<this.declares.length&&(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},D.Declare.prototype.execute=function(e,r,t){var n=1;return this.declares&&0<this.declares.length&&this.declares.map(function(e){var t=e.dbtypeid;gi.fn[t]||(t=t.toUpperCase()),gi.declares[e.variable]={dbtypeid:t,dbsize:e.dbsize,dbprecision:e.dbprecision},e.expression&&(gi.vars[e.variable]=new Function("params,alasql","return "+e.expression.toJS("({})","",null))(r,gi),gi.declares[e.variable]&&(gi.vars[e.variable]=gi.stdfn.CONVERT(gi.vars[e.variable],gi.declares[e.variable])))}),t&&(n=t(n)),n},D.ShowDatabases=function(e){return D.extend(this,e)},D.ShowDatabases.prototype.toString=function(){var e="SHOW DATABASES";return this.like&&(e+="LIKE "+this.like.toString()),e},D.ShowDatabases.prototype.execute=function(e,t,r){if(this.engineid)return gi.engines[this.engineid].showDatabases(this.like,r);var n=this,a=[];for(var s in gi.databases)a.push({databaseid:s});return n.like&&a&&0<a.length&&(a=a.filter(function(e){return gi.utils.like(n.like.value,e.databaseid)})),r&&r(a),a},D.ShowTables=function(e){return D.extend(this,e)},D.ShowTables.prototype.toString=function(){var e="SHOW TABLES";return this.databaseid&&(e+=" FROM "+this.databaseid),this.like&&(e+=" LIKE "+this.like.toString()),e},D.ShowTables.prototype.execute=function(e,t,r){var n=gi.databases[this.databaseid||e],a=this,s=[];for(var i in n.tables)s.push({tableid:i});return a.like&&s&&0<s.length&&(s=s.filter(function(e){return gi.utils.like(a.like.value,e.tableid)})),r&&r(s),s},D.ShowColumns=function(e){return D.extend(this,e)},D.ShowColumns.prototype.toString=function(){var e="SHOW COLUMNS";return this.table.tableid&&(e+=" FROM "+this.table.tableid),this.databaseid&&(e+=" FROM "+this.databaseid),e},D.ShowColumns.prototype.execute=function(e,t,r){var n=gi.databases[this.databaseid||e].tables[this.table.tableid];if(n&&n.columns){var a=n.columns.map(function(e){return{columnid:e.columnid,dbtypeid:e.dbtypeid,dbsize:e.dbsize}});return r&&r(a),a}return r&&r([]),[]},D.ShowIndex=function(e){return D.extend(this,e)},D.ShowIndex.prototype.toString=function(){var e="SHOW INDEX";return this.table.tableid&&(e+=" FROM "+this.table.tableid),this.databaseid&&(e+=" FROM "+this.databaseid),e},D.ShowIndex.prototype.execute=function(e,t,r){var n=gi.databases[this.databaseid||e].tables[this.table.tableid],a=[];if(n&&n.indices)for(var s in n.indices)a.push({hh:s,len:Object.keys(n.indices[s]).length});return r&&r(a),a},D.ShowCreateTable=function(e){return D.extend(this,e)},D.ShowCreateTable.prototype.toString=function(){var e="SHOW CREATE TABLE "+this.table.tableid;return this.databaseid&&(e+=" FROM "+this.databaseid),e},D.ShowCreateTable.prototype.execute=function(e){var t=gi.databases[this.databaseid||e].tables[this.table.tableid];if(t){var r="CREATE TABLE "+this.table.tableid+" (",n=[];return t.columns&&(t.columns.forEach(function(e){var t=e.columnid+" "+e.dbtypeid;e.dbsize&&(t+="("+e.dbsize+")"),e.primarykey&&(t+=" PRIMARY KEY"),n.push(t)}),r+=n.join(", ")),r+=")"}throw new Error('There is no such table "'+this.table.tableid+'"')},D.SetVariable=function(e){return D.extend(this,e)},D.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},D.SetVariable.prototype.execute=function(r,e,t){if(void 0!==this.value){var n=this.value;"ON"==n?n=!0:"OFF"==n&&(n=!1),gi.options[this.variable]=n}else if(this.expression){this.exists&&(this.existsfn=this.exists.map(function(e){var t=e.compile(r);return t.query&&!t.query.modifier&&(t.query.modifier="RECORDSET"),t})),this.queries&&(this.queriesfn=this.queries.map(function(e){var t=e.compile(r);return t.query&&!t.query.modifier&&(t.query.modifier="RECORDSET"),t}));var a=new Function("params,alasql","return "+this.expression.toJS("({})","",null)).bind(this)(e,gi);if(gi.declares[this.variable]&&(a=gi.stdfn.CONVERT(a,gi.declares[this.variable])),this.props&&0<this.props.length){if("@"==this.method)var s="alasql.vars['"+this.variable+"']";else 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,e,gi)}else"@"==this.method?gi.vars[this.variable]=a:e[this.variable]=a}a=1;return t&&(a=t(a)),a},gi.test=function(e,t,r){if(0!==arguments.length){var n=Date.now();if(1===arguments.length)return r(),void gi.con.log(Date.now()-n);2===arguments.length&&(r=t,t=1);for(var a=0;a<t;a++)r();gi.con.results[e]=Date.now()-n}else gi.log(gi.con.results)},gi.log=function(e,t){var r,n=gi.useid,a=gi.options.logtarget;if(c.isNode&&(a="console"),r="string"==typeof e?gi(e,t):e,"console"===a||c.isNode)"string"==typeof e&&gi.options.logprompt&&console.log(n+">",e),Array.isArray(r)&&console.table?console.table(r):console.log(J(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+="<pre><code>"+gi.pretty(e)+"</code></pre>"),Array.isArray(r))if(0===r.length)i+="<p>[ ]</p>";else if("object"!=typeof r[0]||Array.isArray(r[0]))for(var o=0,u=r.length;o<u;o++)i+="<p>"+K(r[o])+"</p>";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('<p style="color:blue">'+(Date.now()-t)+" ms</p>")}catch(e){gi.write("<p>"+olduseid+"&gt;&nbsp;<b>"+sql+"</b></p>"),gi.write('<p style="color:red">'+e+"<p>")}}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('<p style="color:blue">'+(Date.now()-n)+" ms</p>")}catch(e){gi.write("<p>"+r+"&gt;&nbsp;"+gi.pretty(t,!1)+"</p>"),gi.write('<p style="color:red">'+e+"<p>")}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<c;u++)o+="INSERT INTO "+t.tableid+"(",o+=n.map(function(e){return e.columnid}).join(","),o+=") VALUES (",o+=n.map(function(e){var t=r[u][e.columnid];return e.typeid?"STRING"!==e.typeid&&"VARCHAR"!==e.typeid&&"NVARCHAR"!==e.typeid&&"CHAR"!==e.typeid&&"NCHAR"!==e.typeid||(t="'"+l(t)+"'"):"string"==typeof t&&(t="'"+l(t)+"'"),t}),o+=");\n";return e=gi.utils.autoExtFilename(e,"sql",t),s=gi.utils.saveFile(e,o),a&&(s=a(s)),s},gi.into.HTML=function(e,t,r,n,a){var s=1;if("object"!=typeof exports){var i={headers:!0};gi.utils.extend(i,t);var o=document.querySelector(e);if(!o)throw new Error("Selected HTML element is not found");0===n.length&&"object"==typeof r[0]&&(n=Object.keys(r[0]).map(function(e){return{columnid:e}}));var u=document.createElement("table"),c=document.createElement("thead");if(u.appendChild(c),i.headers){for(var l=document.createElement("tr"),h=0;h<n.length;h++){(p=document.createElement("th")).textContent=n[h].columnid,l.appendChild(p)}c.appendChild(l)}var d=document.createElement("tbody");u.appendChild(d);for(var f=0;f<r.length;f++){for(l=document.createElement("tr"),h=0;h<n.length;h++){var p;(p=document.createElement("td")).textContent=r[f][n[h].columnid],l.appendChild(p)}d.appendChild(l)}gi.utils.domEmptyChildren(o),o.appendChild(u)}return a&&(s=a(s)),s},gi.into.JSON=function(e,t,r,n,a){var s=1;"object"==typeof e&&(t=e,e=void 0);var i=JSON.stringify(r);return e=gi.utils.autoExtFilename(e,"json",t),s=gi.utils.saveFile(e,i),a&&(s=a(s)),s},gi.into.TXT=function(e,t,r,n,a){0===n.length&&0<r.length&&(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(0<r.length){var o=n[0].columnid;i+=r.map(function(e){return e[o]}).join("\n")}return e=gi.utils.autoExtFilename(e,"txt",t),s=gi.utils.saveFile(e,i),a&&(s=a(s)),s},gi.into.TAB=gi.into.TSV=function(e,t,r,n,a){var s={};return gi.utils.extend(s,t),s.separator="\t",e=gi.utils.autoExtFilename(e,"tab",t),s.autoExt=!1,gi.into.CSV(e,s,r,n,a)},gi.into.CSV=function(e,t,r,n,a){0===n.length&&0<r.length&&(n=Object.keys(r[0]).map(function(e){return{columnid:e}})),"object"==typeof e&&(t=e,e=void 0);var s={headers:!0,separator:";",quote:'"',utf8Bom:!0};t&&!t.headers&&void 0!==t.headers&&(s.utf8Bom=!1),gi.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(r){o+=n.map(function(e){var t=r[e.columnid];return""!==s.quote&&(t=(t+"").replace(new RegExp("\\"+s.quote,"g"),s.quote+s.quote)),+t!=t&&(t=s.quote+t+s.quote),t}).join(s.separator)+"\r\n"}),e=gi.utils.autoExtFilename(e,"csv",t),i=gi.utils.saveFile(e,o,null,{disableAutoBom:!0}),a&&(i=a(i)),i},gi.into.XLS=function(e,h,t,r,n){"object"==typeof e&&(h=e,e=void 0);var a={};h&&h.sheets&&(a=h.sheets);var d={headers:!0};void 0!==a.Sheet1?d=a[0]:void 0!==h&&(d=h),void 0===d.sheetid&&(d.sheetid="Sheet1");var s=function(){var l='<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" \t\txmlns="http://www.w3.org/TR/REC-html40"><head> \t\t<meta charset="utf-8" /> \t\t\x3c!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets> ';l+=" <x:ExcelWorksheet><x:Name>"+d.sheetid+"</x:Name><x:WorksheetOptions><x:DisplayGridlines/>     </x:WorksheetOptions> \t\t</x:ExcelWorksheet>",l+="</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--\x3e</head>",l+="<body",void 0!==d.style&&(l+=' style="',"function"==typeof d.style?l+=d.style(d):l+=d.style,l+='"');if(l+=">",l+="<table>",void 0!==d.caption){var e=d.caption;"string"==typeof e&&(e={title:e}),l+="<caption",void 0!==e.style&&(l+=' style="',"function"==typeof e.style?l+=e.style(d,e):l+=e.style,l+='" '),l+=">",l+=e.title,l+="</caption>"}void 0!==d.columns?r=d.columns:0==r.length&&0<t.length&&"object"==typeof t[0]&&(r=Array.isArray(t[0])?t[0].map(function(e,t){return{columnid:t}}):Object.keys(t[0]).map(function(e){return{columnid:e}}));r.forEach(function(e,t){void 0!==d.column&&g(e,d.column),void 0===e.width&&(d.column&&"undefined"!=d.column.width?e.width=d.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()),d.headers&&Array.isArray(d.headers)&&(e.title=d.headers[t])}),l+="<colgroups>",r.forEach(function(e){l+='<col style="width: '+e.width+'"></col>'}),l+="</colgroups>",d.headers&&(l+="<thead>",l+="<tr>",r.forEach(function(e,t){l+="<th ",void 0!==e.style&&(l+=' style="',"function"==typeof e.style?l+=e.style(d,e,t):l+=e.style,l+='" '),l+=">",void 0!==e.title&&("function"==typeof e.title?l+=e.title(d,e,t):l+=e.title),l+="</th>"}),l+="</tr>",l+="</thead>");l+="<tbody>",t&&0<t.length&&t.forEach(function(o,u){if(!(u>d.limit)){l+="<tr";var c={};g(c,d.row),d.rows&&d.rows[u]&&g(c,d.rows[u]),void 0!==c&&void 0!==c.style&&(l+=' style="',"function"==typeof c.style?l+=c.style(d,o,u):l+=c.style,l+='" '),l+=">",r.forEach(function(e,t){var r={};g(r,d.cell),g(r,c.cell),void 0!==d.column&&g(r,d.column.cell),g(r,e.cell),d.cells&&d.cells[u]&&d.cells[u][t]&&g(r,d.cells[u][t]);var n=o[e.columnid];"function"==typeof r.value&&(n=r.value(n,d,o,e,r,u,t));var a=r.typeid;"function"==typeof a&&(a=a(n,d,o,e,r,u,t)),void 0===a&&("number"==typeof n?a="number":"string"==typeof n?a="string":"boolean"==typeof n?a="boolean":"object"==typeof n&&n instanceof Date&&(a="date"));var s="";"money"==a?s='mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;':"number"==a?s=" ":"date"==a?s='mso-number-format:"Short Date";':h.types&&h.types[a]&&h.types[a].typestyle&&(s=h.types[a].typestyle),l+="<td style='"+(s=s||'mso-number-format:"\\@";')+"' ",void 0!==r.style&&(l+=' style="',"function"==typeof r.style?l+=r.style(n,d,o,e,u,t):l+=r.style,l+='" '),l+=">";var i=r.format;if(void 0===n)l+="";else if(void 0!==i)if("function"==typeof i)l+=i(n);else{if("string"!=typeof i)throw new Error("Unknown format type. Should be function or string");l+=n}else l+="number"==a||"date"==a?n.toString():"money"==a?(+n).toFixed(2):n;l+="</td>"}),l+="</tr>"}});return l+="</tbody>",l+="</table>",l+="</body>",l+="</html>"}();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 u,c,l={};c=b&&b.sheets?(l=b.sheets,u=t,r):(l.Sheet1=b,u=[t],[r]),e=gi.utils.autoExtFilename(e,"xls",b);var a=gi.utils.saveFile(e,function(){var s="",h=" </Styles>",i={},o=62;function d(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+='<Style ss:ID="s'+o+'">',s+=t,s+="</Style>",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 l){var f=l[r],n=void 0!==f.dataidx?f.dataidx:t++,a=e(u[n]),p=void 0;void 0!==f.columns?p=f.columns:(void 0===(p=c[n])||0==p.length&&0<a.length)&&"object"==typeof a[0]&&(p=Array.isArray(a[0])?a[0].map(function(e,t){return{columnid:t}}):Object.keys(a[0]).map(function(e){return{columnid:e}})),p.forEach(function(e,t){void 0!==f.column&&g(e,f.column),void 0===e.width&&(f.column&&void 0!==f.column.width?e.width=f.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()),f.headers&&Array.isArray(f.headers)&&(e.title=f.headers[t])}),h+='<Worksheet ss:Name="'+r+'"> \t  \t\t\t<Table ss:ExpandedColumnCount="'+p.length+'" ss:ExpandedRowCount="'+((f.headers?1:0)+Math.min(a.length,f.limit||a.length))+'" x:FullColumns="1" \t   \t\t\tx:FullRows="1" ss:DefaultColumnWidth="65" ss:DefaultRowHeight="15">',p.forEach(function(e,t){h+='<Column ss:Index="'+(t+1)+'" ss:AutoFitWidth="0" ss:Width="'+e.width+'"/>'}),f.headers&&(h+='<Row ss:AutoFitHeight="0">',p.forEach(function(e,t){if(h+="<Cell ",void 0!==e.style){var r={};"function"==typeof e.style?g(r,e.style(f,e,t)):g(r,e.style),h+='ss:StyleID="'+d(r)+'"'}h+='><Data ss:Type="String">',void 0!==e.title&&("function"==typeof e.title?h+=e.title(f,e,t):h+=e.title),h+="</Data></Cell>"}),h+="</Row>"),a&&0<a.length&&a.forEach(function(u,c){if(!(c>f.limit)){var l={};if(g(l,f.row),f.rows&&f.rows[c]&&g(l,f.rows[c]),h+="<Row ",void 0!==l){var e={};void 0!==l.style&&("function"==typeof l.style?g(e,l.style(f,u,c)):g(e,l.style),h+='ss:StyleID="'+d(e)+'"')}h+=">",p.forEach(function(e,t){var r={};g(r,f.cell),g(r,l.cell),void 0!==f.column&&g(r,f.column.cell),g(r,e.cell),f.cells&&f.cells[c]&&f.cells[c][t]&&g(r,f.cells[c][t]);var n=u[e.columnid];"function"==typeof r.value&&(n=r.value(n,f,u,e,r,c,t));var a=r.typeid;"function"==typeof a&&(a=a(n,f,u,e,r,c,t)),void 0===a&&("number"==typeof n?a="number":"string"==typeof n?a="string":"boolean"==typeof n?a="boolean":"object"==typeof n&&n instanceof Date&&(a="date"));var s="String";"number"==a?s="Number":"date"==a&&(s="Date");"money"==a||("number"==a||("date"==a||b.types&&b.types[a]&&b.types[a].typestyle&&b.types[a].typestyle)),h+="<Cell ";var i={};void 0!==r.style&&("function"==typeof r.style?g(i,r.style(n,f,u,e,c,t)):g(i,r.style),h+='ss:StyleID="'+d(i)+'"'),h+=">",h+='<Data ss:Type="'+s+'">';var o=r.format;if(void 0===n)h+="";else if(void 0!==o)if("function"==typeof o)h+=o(n);else{if("string"!=typeof o)throw new Error("Unknown format type. Should be function or string");h+=n}else h+="number"==a||"date"==a?n.toString():"money"==a?(+n).toFixed(2):n;h+="</Data></Cell>"}),h+="</Row>"}}),h+="</Table></Worksheet>"}return'<?xml version="1.0"?> \t\t<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" \t\t xmlns:o="urn:schemas-microsoft-com:office:office" \t\t xmlns:x="urn:schemas-microsoft-com:office:excel" \t\t xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" \t\t xmlns:html="http://www.w3.org/TR/REC-html40"> \t\t <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> \t\t </DocumentProperties> \t\t <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> \t\t  <AllowPNG/> \t\t </OfficeDocumentSettings> \t\t <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> \t\t  <ActiveSheet>0</ActiveSheet> \t\t </ExcelWorkbook> \t\t <Styles> \t\t  <Style ss:ID="Default" ss:Name="Normal"> \t\t   <Alignment ss:Vertical="Bottom"/> \t\t   <Borders/> \t\t   <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="12" ss:Color="#000000"/> \t\t   <Interior/> \t\t   <NumberFormat/> \t\t   <Protection/> \t\t  </Style>'+s+(h+="</Workbook>")}());return n&&(a=n(a)),a},gi.into.XLSX=function(r,n,e,t,a){var s=1;N(t,[{columnid:"_"}])&&(e=e.map(function(e){return e._}),t=void 0),r=gi.utils.autoExtFilename(r,"xlsx",n);var i=C();"object"==typeof r&&(n=r,r=void 0);var g={SheetNames:[],Sheets:{}};return n.sourcefilename?gi.utils.loadBinaryFile(n.sourcefilename,!!a,function(e){g=i.read(e,{type:"binary"}),o()}):o(),a&&(s=a(s)),s;function o(){"object"==typeof n&&Array.isArray(n)?e&&0<e.length&&e.forEach(function(e,t){u(n[t],e,void 0,t+1)}):u(n,e,t,1),function(){var e;if(void 0===r)s=g;else if(e=C(),c.isNode||c.isMeteorServer)e.writeFile(g,r);else{var t=e.write(g,{bookType:"xlsx",bookSST:!1,type:"binary"});if(9==h())throw new Error("Cannot save XLSX files in IE9. Please use XLS() export function");ae(new Blob([function(e){for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),n=0;n!=e.length;++n)r[n]=255&e.charCodeAt(n);return t}(t)],{type:"application/octet-stream"}),r)}}()}function u(e,n,t,r){var a={sheetid:"Sheet "+r,headers:!0};gi.utils.extend(a,e);var s=Object.keys(n).length;(!t||0==t.length)&&0<s&&(t=Object.keys(n[0]).map(function(e){return{columnid:e}}));var i={};i=(-1<g.SheetNames.indexOf(a.sheetid)||(g.SheetNames.push(a.sheetid),g.Sheets[a.sheetid]={}),g.Sheets[a.sheetid]);var o="A1";a.range&&(o=a.range);var u=gi.utils.xlscn(o.match(/[A-Z]+/)[0]),c=+o.match(/[0-9]+/)[0]-1;if(g.Sheets[a.sheetid]["!ref"])var l=g.Sheets[a.sheetid]["!ref"],h=gi.utils.xlscn(l.match(/[A-Z]+/)[0]),d=+l.match(/[0-9]+/)[0]-1;else h=1,d=1;var f=Math.max(u+t.length,h),p=Math.max(c+s+2,d),b=1+c;g.Sheets[a.sheetid]["!ref"]="A1:"+gi.utils.xlsnc(f)+p,a.headers&&(t.forEach(function(e,t){i[gi.utils.xlsnc(u+t)+""+b]={v:e.columnid.trim()}}),b++);for(var E=0;E<s;E++)t.forEach(function(e,t){var r={v:n[E][e.columnid]};"number"==typeof n[E][e.columnid]?r.t="n":"string"==typeof n[E][e.columnid]?r.t="s":"boolean"==typeof n[E][e.columnid]?r.t="b":"object"==typeof n[E][e.columnid]&&n[E][e.columnid]instanceof Date&&(r.t="d"),i[gi.utils.xlsnc(u+t)+""+b]=r}),b++}},gi.from.METEOR=function(e,t,r,n,a){var s=e.find(t).fetch();return r&&(s=r(s,n,a)),s},gi.from.TABLETOP=function(e,t,r,n,a){var s=[],i={headers:!0,simpleSheet:!0,key:e};return gi.utils.extend(i,t),i.callback=function(e){s=e,r&&(s=r(s,n,a))},Tabletop.init(i),null},gi.from.HTML=function(e,t,r,n,a){var s={};gi.utils.extend(s,t);var i=document.querySelector(e);if(!i&&"TABLE"!==i.tagName)throw new Error("Selected HTML element is not a TABLE");var o=[],u=s.headers;if(u&&!Array.isArray(u)){u=[];for(var c=i.querySelector("thead tr").children,l=0;l<c.length;l++)c.item(l).style&&"none"===c.item(l).style.display&&s.skipdisplaynone?u.push(void 0):u.push(c.item(l).textContent)}for(var h=i.querySelectorAll("tbody tr"),d=0;d<h.length;d++){var f=h.item(d).children,p={};for(l=0;l<f.length;l++)f.item(l).style&&"none"===f.item(l).style.display&&s.skipdisplaynone||(u?p[u[l]]=f.item(l).textContent:p[l]=f.item(l).textContent);o.push(p)}return r&&(o=r(o,n,a)),o},gi.from.RANGE=function(e,t,r,n,a){for(var s=[],i=e;i<=t;i++)s.push(i);return r&&(s=r(s,n,a)),s},gi.from.FILE=function(e,t,r,n,a){var s;if("string"==typeof e)s=e;else{if(!(e instanceof Event))throw new Error("Wrong usage of FILE() function");s=e.target.files[0].name}var i=s.split("."),o=i[i.length-1].toUpperCase();if(gi.from[o])return gi.from[o](e,t,r,n,a);throw new Error("Cannot recognize file type for loading")},gi.from.JSON=function(e,t,r,n,a){var s;return e=gi.utils.autoExtFilename(e,"json",t),gi.utils.loadFile(e,!!r,function(e){s=JSON.parse(e),r&&(s=r(s,n,a))}),s},gi.from.TXT=function(e,t,n,a,s){var i;return e=gi.utils.autoExtFilename(e,"txt",t),gi.utils.loadFile(e,!!n,function(e){""===(i=e.split(/\r?\n/))[i.length-1]&&i.pop();for(var t=0,r=i.length;t<r;t++)i[t]==+i[t]&&(i[t]=+i[t]),i[t]=[i[t]];n&&(i=n(i,a,s))}),i},gi.from.TAB=gi.from.TSV=function(e,t,r,n,a){return(t=t||{}).separator="\t",e=gi.utils.autoExtFilename(e,"tab",t),t.autoext=!1,gi.from.CSV(e,t,r,n,a)},gi.from.CSV=function(e,t,b,E,g){e=""+e;var m,v={separator:",",quote:'"',headers:!0};gi.utils.extend(v,t);var S=[];function r(a){var e,s,i=v.separator.charCodeAt(0),o=v.quote.charCodeAt(0),u={},c={},t=[],l=a.length,h=0,r=0;function n(){if(l<=h)return c;if(s)return s=!1,u;var e=h;if(a.charCodeAt(e)===o){for(var t=e;t++<l;)if(a.charCodeAt(t)===o){if(a.charCodeAt(t+1)!==o)break;++t}return h=t+2,13===(r=a.charCodeAt(t+1))?(s=!0,10===a.charCodeAt(t+2)&&++h):10===r&&(s=!0),a.substring(e+1,t).replace(/""/g,'"')}for(;h<l;){var r,n=1;if(10===(r=a.charCodeAt(h++)))s=!0;else if(13===r)s=!0,10===a.charCodeAt(h)&&(++h,++n);else if(r!==i)continue;return a.substring(e,h-n)}return a.substring(e)}for(;(e=n())!==c;){for(var d=[];e!==u&&e!==c;)d.push(e.trim()),e=n();if(v.headers){if(0===r){if("boolean"==typeof v.headers)S=d;else if(Array.isArray(v.headers)){S=v.headers;var f={};S.forEach(function(e,t){f[e]=d[t],void 0!==f[e]&&0!==f[e].length&&f[e].trim()==+f[e]&&(f[e]=+f[e])}),t.push(f)}}else{f={};S.forEach(function(e,t){f[e]=d[t],void 0!==f[e]&&0!==f[e].length&&f[e].trim()==+f[e]&&(f[e]=+f[e])}),t.push(f)}r++}else t.push(d)}if(m=t,v.headers&&g&&g.sources&&g.sources[E]){var p=g.sources[E].columns=[];S.forEach(function(e){p.push({columnid:e})})}b&&(m=b(m,E,g))}return new RegExp("\n").test(e)?r(e):(e=gi.utils.autoExtFilename(e,"csv",t),gi.utils.loadFile(e,!!b,r,g.cb)),m},gi.from.XLS=function(e,t,r,n,a){return t=t||{},e=gi.utils.autoExtFilename(e,"xls",t),t.autoExt=!1,z(C(),e,t,r,n,a)},gi.from.XLSX=function(e,t,r,n,a){return t=t||{},e=gi.utils.autoExtFilename(e,"xlsx",t),t.autoExt=!1,z(C(),e,t,r,n,a)},gi.from.ODS=function(e,t,r,n,a){return t=t||{},e=gi.utils.autoExtFilename(e,"ods",t),t.autoExt=!1,z(C(),e,t,r,n,a)},gi.from.XML=function(e,t,r,n,a){var s;return gi.utils.loadFile(e,!!r,function(e){s=function(r){return r=(r=r.trim()).replace(/<!--[\s\S]*?-->/g,""),function(){return{declaration:function(){if(!o(/^<\?xml\s*/))return;var e={attributes:{}};for(;!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)return;var r={name:t[1],attributes:{},children:[]};for(;!(u()||c(">")||c("?>")||c("/>"));){var n=i();if(!n)return r;r.attributes[n.name]=n.value}if(o(/^\s*\/>\s*/))return r;o(/\??>\s*/);r.content=s();var a;for(;a=e();)r.children.push(a);o(/^<\/[\w-:.]+>\s*/);return r}()}}();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<this.exprs.length){var s=this.exprs.map(function(e){var t=new Function("params,alasql,p","var y;return "+e.toJS("({})","",null)).bind(n)(r,gi);return J(t)});console.log.apply(console,s)}else if(this.select){var i=this.select.execute(e,r);console.log(J(i))}else console.log();return t&&(a=t(a)),a},D.Source=function(e){return D.extend(this,e)},D.Source.prototype.toString=function(){var e="SOURCE";return this.url&&(e+=" '"+this.url+" '"),e},D.Source.prototype.execute=function(e,t,r){var n;return o(this.url,!!r,function(e){return n=gi(e),r&&(n=r(n)),n},function(e){throw e}),n},D.Require=function(e){return D.extend(this,e)},D.Require.prototype.toString=function(){var e="REQUIRE";return this.paths&&0<this.paths.length&&(e+=this.paths.map(function(e){return e.toString()}).join(",")),this.plugins&&0<this.plugins.length&&(e+=this.plugins.map(function(e){return e.toUpperCase()}).join(",")),e},D.Require.prototype.execute=function(e,r,n){var a=this,s=0,i="";return this.paths&&0<this.paths.length?this.paths.forEach(function(e){o(e.value,!!n,function(e){i+=e,++s<a.paths.length||(new Function("params,alasql",i)(r,gi),n&&(s=n(s)))})}):this.plugins&&0<this.plugins.length?this.plugins.forEach(function(t){gi.plugins[t]||o(gi.path+"/alasql-"+t.toLowerCase()+".js",!!n,function(e){i+=e,++s<a.plugins.length||(new Function("params,alasql",i)(r,gi),gi.plugins[t]=!0,n&&(s=n(s)))})}):n&&(s=n(s)),s},D.Assert=function(e){return D.extend(this,e)},D.Source.prototype.toString=function(){var e="ASSERT";return this.value&&(e+=" "+JSON.stringify(this.value)),e},D.Assert.prototype.execute=function(e){if(!N(gi.res,this.value))throw new Error((this.message||"Assert wrong")+": "+JSON.stringify(gi.res)+" == "+JSON.stringify(this.value));return 1};var Z=gi.engines.WEBSQL=function(){};Z.createDatabase=function(e,t,r,n){var a=openDatabase(e,t[0],t[1],t[2]);if(this.dbid){var s=gi.createDatabase(this.dbid);s.engineid="WEBSQL",s.wdbid=e,sb.wdb=s}if(!a)throw new Error('Cannot create WebSQL database "'+databaseid+'"');return n&&n(1),1},Z.dropDatabase=function(e){throw new Error("This is impossible to drop WebSQL database.")},Z.attachDatabase=function(e,t,r,n,a){if(gi.databases[t])throw new Error('Unable to attach database as "'+t+'" because it already exists');return alasqlopenDatabase(e,r[0],r[1],r[2]),1};var ee=gi.engines.INDEXEDDB=function(){};c.hasIndexedDB&&("function"==typeof c.global.indexedDB.webkitGetDatabaseNames?ee.getDatabaseNames=c.global.indexedDB.webkitGetDatabaseNames.bind(c.global.indexedDB):(ee.getDatabaseNames=function(){var t={},r={contains:function(e){return!0},notsupported:!0};return setTimeout(function(){var e={target:{result:r}};t.onsuccess(e)},0),t},ee.getDatabaseNamesNotSupported=!0)),ee.showDatabases=function(s,i){ee.getDatabaseNames().onsuccess=function(e){var t=e.target.result;if(ee.getDatabaseNamesNotSupported)throw new Error("SHOW DATABASE is not supported in this browser");var r=[];if(s)var n=new RegExp(s.value.replace(/\%/g,".*"),"g");for(var a=0;a<t.length;a++)s&&!t[a].match(n)||r.push({databaseid:t[a]});i(r)}},ee.createDatabase=function(t,e,r,n,a){var s=c.global.indexedDB;if(r){s.open(t,1).onsuccess=function(e){e.target.result.close(),a&&a(1)}}else{var i=s.open(t,1);i.onupgradeneeded=function(e){e.target.transaction.abort()},i.onsuccess=function(e){if(!r)throw new Error('IndexedDB: Cannot create new database "'+t+'" because it already exists');a&&a(0)}}},ee.createDatabase=function(t,e,r,n,a){var s=c.global.indexedDB;if(ee.getDatabaseNamesNotSupported)if(r){var i=!0,o=s.open(t);o.onupgradeneeded=function(e){i=!1},o.onsuccess=function(e){e.target.result.close(),i?a&&a(0):a&&a(1)}}else{var u;(u=s.open(t)).onupgradeneeded=function(e){e.target.transaction.abort()},u.onabort=function(e){a&&a(1)},u.onsuccess=function(e){throw e.target.result.close(),new Error('IndexedDB: Cannot create new database "'+t+'" because it already exists')}}else(u=ee.getDatabaseNames()).onsuccess=function(e){if(e.target.result.contains(t)){if(r)return void(a&&a(0));throw new Error('IndexedDB: Cannot create new database "'+t+'" because it already exists')}s.open(t,1).onsuccess=function(e){e.target.result.close(),a&&a(1)}}},ee.dropDatabase=function(t,r,n){var a=c.global.indexedDB;ee.getDatabaseNames().onsuccess=function(e){if(!e.target.result.contains(t)){if(r)return void(n&&n(0));throw new Error('IndexedDB: Cannot drop new database "'+t+'" because it does not exist')}a.deleteDatabase(t).onsuccess=function(e){n&&n(1)}}},ee.attachDatabase=function(s,i,e,t,o){if(!c.hasIndexedDB)throw new Error("The current browser does not support IndexedDB");var r=c.global.indexedDB;ee.getDatabaseNames().onsuccess=function(e){if(!e.target.result.contains(s))throw new Error('IndexedDB: Cannot attach database "'+s+'" because it does not exist');r.open(s).onsuccess=function(e){var t=e.target.result,r=new gi.Database(i||s);r.engineid="INDEXEDDB",r.ixdbid=s,r.tables=[];for(var n=t.objectStoreNames,a=0;a<n.length;a++)r.tables[n[a]]={};e.target.result.close(),o&&o(1)}}},ee.createTable=function(n,a,e,s){var i=c.global.indexedDB,o=gi.databases[n].ixdbid;ee.getDatabaseNames().onsuccess=function(e){if(!e.target.result.contains(o))throw new Error('IndexedDB: Cannot create table in database "'+o+'" because it does not exist');var t=i.open(o);t.onversionchange=function(e){e.target.result.close()},t.onsuccess=function(e){var t=e.target.result.version;e.target.result.close();var r=i.open(o,t+1);r.onupgradeneeded=function(e){e.target.result.createObjectStore(a,{autoIncrement:!0})},r.onsuccess=function(e){e.target.result.close(),s&&s(1)},r.onerror=function(e){throw e},r.onblocked=function(e){throw new Error('Cannot create table "'+a+'" because database "'+n+'"  is blocked')}}}},ee.dropTable=function(n,a,s,i){var o=c.global.indexedDB,u=gi.databases[n].ixdbid;ee.getDatabaseNames().onsuccess=function(e){if(!e.target.result.contains(u))throw new Error('IndexedDB: Cannot drop table in database "'+u+'" because it does not exist');var t=o.open(u);t.onversionchange=function(e){e.target.result.close()},t.onsuccess=function(e){var t=e.target.result.version;e.target.result.close();var r=o.open(u,t+1);r.onupgradeneeded=function(e){var t=e.target.result;if(t.objectStoreNames.contains(a))t.deleteObjectStore(a),delete gi.databases[n].tables[a];else if(!s)throw new Error('IndexedDB: Cannot drop table "'+a+'" because it does not exist')},r.onsuccess=function(e){e.target.result.close(),i&&i(1)},r.onerror=function(e){throw e},r.onblocked=function(e){throw new Error('Cannot drop table "'+a+'" because database "'+n+'" is blocked')}}}},ee.intoTable=function(e,i,o,t,u){var r=c.global.indexedDB,n=gi.databases[e].ixdbid;r.open(n).onsuccess=function(e){for(var t=e.target.result,r=t.transaction([i],"readwrite"),n=r.objectStore(i),a=0,s=o.length;a<s;a++)n.add(o[a]);r.oncomplete=function(){t.close(),u&&u(s)}}},ee.fromTable=function(e,a,s,i,o){var t=c.global.indexedDB,r=gi.databases[e].ixdbid;t.open(r).onsuccess=function(e){var r=[],n=e.target.result,t=n.transaction([a]).objectStore(a).openCursor();t.onblocked=function(e){},t.onerror=function(e){},t.onsuccess=function(e){var t=e.target.result;t?(r.push(t.value),t.continue()):(n.close(),s&&s(r,i,o))}}},ee.deleteFromTable=function(e,a,s,i,o){var t=c.global.indexedDB,r=gi.databases[e].ixdbid;t.open(r).onsuccess=function(e){var r=e.target.result,t=r.transaction([a],"readwrite").objectStore(a).openCursor(),n=0;t.onblocked=function(e){},t.onerror=function(e){},t.onsuccess=function(e){var t=e.target.result;t?(s&&!s(t.value,i)||(t.delete(),n++),t.continue()):(r.close(),o&&o(n))}}},ee.updateTable=function(e,r,s,i,o,u){var t=c.global.indexedDB,n=gi.databases[e].ixdbid;t.open(n).onsuccess=function(e){var n=e.target.result,t=n.transaction([r],"readwrite").objectStore(r).openCursor(),a=0;t.onblocked=function(e){},t.onerror=function(e){},t.onsuccess=function(e){var t=e.target.result;if(t){if(!i||i(t.value,o)){var r=t.value;s(r,o),t.update(r),a++}t.continue()}else n.close(),u&&u(a)}}};var te=gi.engines.LOCALSTORAGE=function(){};te.get=function(e){var t=localStorage.getItem(e);if(void 0!==t){var r;try{r=JSON.parse(t)}catch(e){throw new Error("Cannot parse JSON object from localStorage"+t)}return r}},te.set=function(e,t){void 0===t?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify(t))},te.storeTable=function(e,t){var r=gi.databases[e],n=r.tables[t],a={};a.columns=n.columns,a.data=n.data,a.identities=n.identities,te.set(r.lsdbid+"."+t,a)},te.restoreTable=function(e,t){var r=gi.databases[e],n=te.get(r.lsdbid+"."+t),a=new gi.Table;for(var s in n)a[s]=n[s];return(r.tables[t]=a).indexColumns(),a},te.removeTable=function(e,t){var r=gi.databases[e];localStorage.removeItem(r.lsdbid+"."+t)},te.createDatabase=function(e,t,r,n,a){var s=1,i=te.get("alasql");if(r&&i&&i.databases&&i.databases[e])s=0;else{if((i=i||{databases:{}}).databases&&i.databases[e])throw new Error('localStorage: Cannot create new database "'+e+'" because it already exists');i.databases[e]=!0,te.set("alasql",i),te.set(e,{databaseid:e,tables:{}})}return a&&(s=a(s)),s},te.dropDatabase=function(e,t,r){var n=1,a=te.get("alasql");if(t&&a&&a.databases&&!a.databases[e])n=0;else{if(!a){if(t)return r?r(0):0;throw new Error("There is no any AlaSQL databases in localStorage")}if(a.databases&&!a.databases[e])throw new Error('localStorage: Cannot drop database "'+e+'" because there is no such database');delete a.databases[e],te.set("alasql",a);var s=te.get(e);for(var i in s.tables)localStorage.removeItem(e+"."+i);localStorage.removeItem(e)}return r&&(n=r(n)),n},te.attachDatabase=function(e,t,r,n,a){var s=1;if(gi.databases[t])throw new Error('Unable to attach database as "'+t+'" because it already exists');t=t||e;var i=new gi.Database(t);if(i.engineid="LOCALSTORAGE",i.lsdbid=e,i.tables=te.get(e).tables,!gi.options.autocommit&&i.tables)for(var o in i.tables)te.restoreTable(t,o);return a&&(s=a(s)),s},te.showDatabases=function(e,t){var r=[],n=te.get("alasql");if(e)var a=new RegExp(e.value.replace(/%/g,".*"),"g");if(n&&n.databases){for(var s in n.databases)r.push({databaseid:s});e&&r&&0<r.length&&(r=r.filter(function(e){return e.databaseid.match(a)}))}return t&&(r=t(r)),r},te.createTable=function(e,t,r,n){var a=1,s=gi.databases[e].lsdbid;if(te.get(s+"."+t)&&!r)throw new Error('Table "'+t+'" alsready exists in localStorage database "'+s+'"');var i=te.get(s);gi.databases[e].tables[t];return i.tables[t]=!0,te.set(s,i),te.storeTable(e,t),n&&(a=n(a)),a},te.truncateTable=function(e,t,r,n){var a,s=1,i=gi.databases[e].lsdbid;if(a=gi.options.autocommit?te.get(i):gi.databases[e],!r&&!a.tables[t])throw new Error('Cannot truncate table "'+t+'" in localStorage, because it does not exist');return te.restoreTable(e,t).data=[],te.storeTable(e,t),n&&(s=n(s)),s},te.dropTable=function(e,t,r,n){var a,s=1,i=gi.databases[e].lsdbid;if(a=gi.options.autocommit?te.get(i):gi.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],te.set(i,a),te.removeTable(e,t),n&&(s=n(s)),s},te.fromTable=function(e,t,r,n,a){gi.databases[e].lsdbid;var s=te.restoreTable(e,t).data;return r&&(s=r(s,n,a)),s},te.intoTable=function(e,t,r,n,a){gi.databases[e].lsdbid;var s=r.length,i=te.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),te.storeTable(e,t),a&&(s=a(s)),s},te.loadTableData=function(e,t){gi.databases[e],gi.databases[e].lsdbid;te.restoreTable(e,t)},te.saveTableData=function(e,t){var r=gi.databases[e],n=gi.databases[e].lsdbid;te.storeTable(n,t),r.tables[t].data=void 0},te.commit=function(e,t){var r=gi.databases[e],n=gi.databases[e].lsdbid,a={databaseid:n,tables:{}};if(r.tables)for(var s in r.tables)a.tables[s]=!0,te.storeTable(e,s);return te.set(n,a),t?t(1):1},te.begin=te.commit,te.rollback=function(e,t){};var re=gi.engines.SQLITE=function(){};re.createDatabase=function(e,t,r,n,a){throw new Error("Connot create SQLITE database in memory. Attach it.")},re.dropDatabase=function(e){throw new Error("This is impossible to drop SQLite database. Detach it.")},re.attachDatabase=function(r,a,t,e,s){if(gi.databases[a])throw new Error('Unable to attach database as "'+a+'" because it already exists');if(t[0]&&t[0]instanceof D.StringValue||t[0]instanceof D.ParamValue){if(t[0]instanceof D.StringValue)var n=t[0].value;else if(t[0]instanceof D.ParamValue)n=e[t[0].param];return gi.utils.loadBinaryFile(n,!0,function(e){var n=new gi.Database(a||r);n.engineid="SQLITE",n.sqldbid=r;var t=n.sqldb=new SQL.Database(e);n.tables=[],t.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=gi.parse(e[4]).statements[0].columns;r&&0<r.length&&r.forEach(function(e){t.push(e)})}),s(1)},function(e){throw new Error('Cannot open SQLite database file "'+t[0].value+'"')}),1}throw new Error("Cannot attach SQLite database without a file")},re.fromTable=function(e,t,r,n,a){var s=gi.databases[e].sqldb.exec("SELECT * FROM "+t),i=a.sources[n].columns=[];0<s[0].columns.length&&s[0].columns.forEach(function(e){i.push({columnid:e})});var o=[];0<s[0].values.length&&s[0].values.forEach(function(r){var n={};i.forEach(function(e,t){n[e.columnid]=r[t]}),o.push(n)}),r&&r(o,n,a)},re.intoTable=function(e,t,r,n,a){for(var s=gi.databases[e].sqldb,i=0,o=r.length;i<o;i++){var u="INSERT INTO "+t+" (",c=r[i],l=Object.keys(c);u+=l.join(","),u+=") VALUES (",u+=l.map(function(e){return v=c[e],"string"==typeof v&&(v="'"+v+"'"),v}).join(","),u+=")",s.exec(u)}var h=o;return a&&a(h),h};var ne=gi.engines.FILESTORAGE=gi.engines.FILE=function(){};if(ne.createDatabase=function(e,t,r,n,a){var s=1,i=t[0].value;return gi.utils.fileExists(i,function(e){if(e){if(r)return s=0,a&&(s=a(s)),s;throw new Error("Cannot create new database file, because it already exists")}gi.utils.saveFile(i,JSON.stringify({tables:{}}),function(e){a&&(s=a(s))})}),s},ne.dropDatabase=function(e,t,r){var n,a=e.value;return gi.utils.fileExists(a,function(e){if(e)n=1,gi.utils.deleteFile(a,function(){n=1,r&&(n=r(n))});else{if(!t)throw new Error("Cannot drop database file, because it does not exist");n=0,r&&(n=r(n))}}),n},ne.attachDatabase=function(e,t,r,n,a){var s=1;if(gi.databases[t])throw new Error('Unable to attach database as "'+t+'" because it already exists');var i=new gi.Database(t||e);return i.engineid="FILESTORAGE",i.filename=r[0].value,o(i.filename,!!a,function(e){try{i.data=JSON.parse(e)}catch(e){throw new Error("Data in FileStorage database are corrupted")}if(i.tables=i.data.tables,!gi.options.autocommit&&i.tables)for(var t in i.tables)i.tables[t].data=i.data[t];a&&(s=a(s))}),s},ne.createTable=function(e,t,r,n){var a=gi.databases[e];if(a.data[t]&&!r)throw new Error('Table "'+t+'" alsready exists in the database "'+fsdbid+'"');var s=gi.databases[e].tables[t];return a.data.tables[t]={columns:s.columns},a.data[t]=[],ne.updateFile(e),n&&n(1),1},ne.updateFile=function(e){var t=gi.databases[e];t.issaving?t.postsave=!0:(t.issaving=!0,t.postsave=!1,gi.utils.saveFile(t.filename,JSON.stringify(t.data),function(){t.issaving=!1,t.postsave&&setTimeout(function(){ne.updateFile(e)},50)}))},ne.dropTable=function(e,t,r,n){var a=gi.databases[e];if(!r&&!a.tables[t])throw new Error('Cannot drop table "'+t+'" in fileStorage, because it does not exist');return delete a.tables[t],delete a.data.tables[t],delete a.data[t],ne.updateFile(e),n&&n(1),1},ne.fromTable=function(e,t,r,n,a){var s=gi.databases[e].data[t];return r&&(s=r(s,n,a)),s},ne.intoTable=function(e,t,r,n,a){var s=gi.databases[e],i=r.length,o=s.data[t];return o=o||[],s.data[t]=o.concat(r),ne.updateFile(e),a&&a(i),i},ne.loadTableData=function(e,t){var r=gi.databases[e];r.tables[t].data=r.data[t]},ne.saveTableData=function(e,t){var r=gi.databases[e];r.data[t]=r.tables[t].data,r.tables[t].data=null,ne.updateFile(e)},ne.commit=function(e,t){var r=gi.databases[e];if(r.tables)for(var n in r.tables)r.data.tables[n]={columns:r.tables[n].columns},r.data[n]=r.tables[n].data;return ne.updateFile(e),t?t(1):1},ne.begin=ne.commit,ne.rollback=function(n,a){var s=1,i=gi.databases[n];i.dbversion++,function e(){setTimeout(function(){if(i.issaving)return e();gi.loadFile(i.filename,!!a,function(e){for(var t in i.data=e,i.tables={},i.data.tables){var r=new gi.Table({columns:i.data.tables[t].columns});g(r,i.data.tables[t]),i.tables[t]=r,gi.options.autocommit||(i.tables[t].data=i.data[t]),i.tables[t].indexColumns()}delete gi.databases[n],gi.databases[n]=new gi.Database(n),g(gi.databases[n],i),gi.databases[n].engineid="FILESTORAGE",gi.databases[n].filename=i.filename,a&&(s=a(s))})},100)}()},c.isBrowser&&!c.isWebWorker){if(!(gi=gi||!1))throw new Error("alasql was not found");gi.worker=function(){throw new Error("Can find webworker in this enviroment")},"undefined"!=typeof Worker&&(gi.worker=function(e,t,r){if(!0===e&&(e=void 0),void 0===e)for(var n=document.getElementsByTagName("script"),a=0;a<n.length;a++){if("alasql-worker.js"===n[a].src.substr(-16).toLowerCase()){e=n[a].src.substr(0,n[a].src.length-16)+"alasql.js";break}if("alasql-worker.min.js"===n[a].src.substr(-20).toLowerCase()){e=n[a].src.substr(0,n[a].src.length-20)+"alasql.min.js";break}if("alasql.js"===n[a].src.substr(-9).toLowerCase()){e=n[a].src;break}if("alasql.min.js"===n[a].src.substr(-13).toLowerCase()){e=n[a].src.substr(0,n[a].src.length-13)+"alasql.min.js";break}}if(void 0===e)throw new Error("Path to alasql.js is not specified");if(!1!==e){var s="importScripts('";s+=e,s+="');self.onmessage = function(event) {alasql(event.data.sql,event.data.params, function(data){postMessage({id:event.data.id, data:data});});}";var i=new Blob([s],{type:"text/plain"});if(gi.webworker=new Worker(URL.createObjectURL(i)),gi.webworker.onmessage=function(e){var t=e.data.id;gi.buffer[t](e.data.data),delete gi.buffer[t]},gi.webworker.onerror=function(e){throw e},1<arguments.length){var o="REQUIRE "+t.map(function(e){return'"'+e+'"'}).join(",");gi(o,[],r)}}else if(!1===e)return void delete gi.webworker});var ae=ae||function(o){if(!(void 0===o||"undefined"!=typeof navigator&&/MSIE [1-9]\./.test(navigator.userAgent))){var e=o.document,u=function(){return o.URL||o.webkitURL||o},c=e.createElementNS("http://www.w3.org/1999/xhtml","a"),l="download"in c,h=/constructor/i.test(o.HTMLElement)||o.safari,d=/CriOS\/[\d]+/.test(navigator.userAgent),f=function(e){(o.setImmediate||o.setTimeout)(function(){throw e},0)},p=function(e){setTimeout(function(){"string"==typeof e?u().revokeObjectURL(e):e.remove()},4e4)},b=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},n=function(e,t,r){r||(e=b(e));function n(){!function(e,t,r){for(var n=(t=[].concat(t)).length;n--;){var a=e["on"+t[n]];if("function"==typeof a)try{a.call(e,r||e)}catch(e){f(e)}}}(s,"writestart progress write writeend".split(" "))}var a,s=this,i="application/octet-stream"===e.type;if(s.readyState=s.INIT,l)return a=u().createObjectURL(e),void setTimeout(function(){c.href=a,c.download=t,function(e){var t=new MouseEvent("click");e.dispatchEvent(t)}(c),n(),p(a),s.readyState=s.DONE});!function(){if((d||i&&h)&&o.FileReader){var t=new FileReader;return t.onloadend=function(){var e=d?t.result:t.result.replace(/^data:[^;]*;/,"data:attachment/file;");o.open(e,"_blank")||(o.location.href=e),e=void 0,s.readyState=s.DONE,n()},t.readAsDataURL(e),s.readyState=s.INIT}(a=a||u().createObjectURL(e),i)?o.location.href=a:o.open(a,"_blank")||(o.location.href=a);s.readyState=s.DONE,n(),p(a)}()},t=n.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,r){return t=t||e.name||"download",r||(e=b(e)),navigator.msSaveOrOpenBlob(e,t)}:(t.abort=function(){},t.readyState=t.INIT=0,t.WRITING=1,t.DONE=2,t.error=t.onwritestart=t.onprogress=t.onwrite=t.onabort=t.onerror=t.onwriteend=null,function(e,t,r){return new n(e,t||e.name||"download",r)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=ae:"undefined"!=typeof define&&null!==define&&null!==define.amd&&define("FileSaver.js",function(){return ae}),(c.isCordova||c.isMeteorServer||c.isNode)&&console.warn("It looks like you are using the browser version of AlaSQL. Please use the alasql.fs.js file instead."),gi.utils.saveAs=ae}return new s("alasql"),gi.use("alasql"),gi});
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/assets/js/general.js?ver=2.0.4 
'use strict';
var touch_start_x = 0;//for any touch operations

window.addEventListener('load', function () {

    if (typeof DataTable23 === 'undefined') {
        woot_init_actions();
        return;
    }


    DataTable23.selected_lang = woot_helper_vars.selected_lang;


    //init data tables
    document.querySelectorAll('.woot-table-json-data').forEach(function (container) {
        new WOOT_GeneratedTables(JSON.parse(container.innerText), container.getAttribute('data-table-id'));
    });

    //***

    woot_init_actions();

    //***

    document.addEventListener('woot-popup-smth-loaded', e => {

        let what = e.detail.what;

        try {
            if (typeof what === 'string') {
                what = JSON.parse(what);
            }
        } catch (e) {
            console.log(e);
        }

        //***

        if (e.detail.post_id === -1) {
            //for [woot_button id=13280 title="Deus Ex" popup_title="Table in Popup23"]
            let container = e.detail.popup.node.querySelector('.woot-table-json-data');
            if (container) {
                new WOOT_GeneratedTables(JSON.parse(container.innerText), container.getAttribute('data-table-id'));
                woot_cart = new WOOT_Cart();
            }
        }

        //***
        //different calls
        if (typeof what.call_action !== 'undefined') {
            //let container = e.detail.popup.node.querySelector('.woot-table-json-data');
            switch (what.call_action) {
                case 'shortcodes_set':
                    e.detail.popup.node.querySelectorAll('.woot-table-json-data').forEach(function (container) {
                        new WOOT_GeneratedTables(JSON.parse(container.innerText), container.getAttribute('data-table-id'));
                    });
                    break;
            }
        }

        //***

    });

    //***

    window.addEventListener('offline', function (e) {
        woot_helper.message(woot_helper_vars.lang.offline, 'error', -1);
    });

    window.addEventListener('online', function (e) {
        woot_helper.message(woot_helper_vars.lang.online, 'notice');
    });

    if (woot_helper_vars.mode === 'dev') {
        window.addEventListener('error', function (e) {
            //woot_helper.message(`Error: ${e.message}, ${e.filename}, #${e.lineno}`, 'error', -1);
        });
    }

});

/************************************** make interactions more rich **********************************************/

function woot_init_actions() {
    //add keyboard navigation to the gallery, etc...
    document.addEventListener('keydown', e => {

        if (document.querySelectorAll('.woot-gallery-lightbox:target').length > 0) {
            let current = null;

            switch (e.keyCode) {
                case 37:
                    //left
                    current = document.querySelector('.woot-gallery-lightbox:target .woot-gallery-nav-left a');
                    if (current) {
                        location.hash = current.hash;
                    }
                    break;

                case 39:
                    //right
                    current = document.querySelector('.woot-gallery-lightbox:target .woot-gallery-nav-right a');
                    if (current) {
                        location.hash = current.hash;
                    }
                    break;

                case 27:
                    //escape
                    current = document.querySelector('.woot-gallery-lightbox:target a.woot-gallery-close');
                    if (current) {
                        location.hash = current.hash;
                    }
                    break;
            }
        }

        //+++
        //close text popup (content, excerpt)
        if (e.keyCode === 27) {
            if (document.querySelector('.woot-more-less-container-active')) {
                woot_close_txt_container(document.querySelector('.woot-more-less-container-active'));
            }
        }

    });


    //products gallery eventization
    if ('ontouchstart' in document.documentElement) {
        document.addEventListener('touchstart', e => {
            touch_start_x = e.touches[0].clientX;
        });

        document.addEventListener('touchend', e => {
            if (document.querySelectorAll('.woot-gallery-lightbox:target').length > 0) {
                let current = null;

                let end_x = e.changedTouches[0].clientX;

                if (Math.abs(touch_start_x - end_x) > 20) {
                    if (touch_start_x > end_x) {
                        //right
                        current = document.querySelector('.woot-gallery-lightbox:target .woot-gallery-nav-right a');
                    } else {
                        //left
                        current = document.querySelector('.woot-gallery-lightbox:target .woot-gallery-nav-left a');
                    }

                    if (current) {
                        location.hash = current.hash;
                    }
                }
            }
        });
    }
}

function woot_show_filter(self) {
    let filter = self.parentElement.querySelector('.woot-filter-list');
    filter.classList.toggle('woot-hidden');

    if (filter.classList.contains('woot-hidden')) {
        self.classList.remove('woot-filter-show-btn-closed');
    } else {
        self.classList.add('woot-filter-show-btn-closed');
    }

    return false;
}


function woot_show_tab(e, tab_id) {

    e.currentTarget.parentElement.querySelectorAll('.woot-tab-link').forEach(function (item) {
        item.classList.remove('woot-tab-link-current');
    });

    e.currentTarget.parentElement.querySelectorAll('.woot-tab-content').forEach(function (item) {
        item.classList.add('woot-tab-content-hidden');
        item.classList.remove('woot-tab-content-current');
    });

    e.currentTarget.classList.add('woot-tab-link-current');
    let container = e.currentTarget.parentElement.querySelector('#' + tab_id);
    container.classList.remove('woot-tab-content-hidden');
    container.classList.add('woot-tab-content-current');

    //***

    if (container.closest('.woot-content-in-popup')) {
        if (container.querySelector('table') && container.querySelector('table').classList.contains('woot-table')) {
            let t = DataTable23.tables[container.querySelector('table').parentElement.parentElement.id];
            if (t.scrollbar23) {
                t.scrollbar23.set_the_topmost();
            } else {
                document.querySelectorAll('.horizontal-scrollbar23-wrapper').forEach(function (scroll_bar) {
                    scroll_bar.style.display = 'none';
                });
            }
        }
    }

    window.dispatchEvent(new Event('scroll'));
}

function woot_open_txt_container(self) {
    if (!self.classList.contains('woot-more-less-container-active')) {
        self.classList.add('woot-more-less-container-active');
    }

    for (var link of self.getElementsByTagName('a')) {
        link.setAttribute('target', '_blank');
    }

    return true;
}

function woot_close_txt_container(self, event = null) {
    if (event) {
        event.stopPropagation();
    }

    self.closest('.woot-more-less-container').classList.remove('woot-more-less-container-active');
    return false;
};
// source --> https://lgx.com.ua/wp-content/plugins/woot-compare/assets/js/compare.js?ver=1.0.1 
'use strict';

class WOOT_Compare {
    constructor() {
        this.popup = null;
        this.table = null;

        document.addEventListener('woot-draw-compare', e => {
            e.preventDefault();
            this.popup = e.detail.popup;
            let ids = '';

            if (typeof e.detail.ids !== 'undefined') {
                ids = e.detail.ids;
            }

            this.fill(e.detail.post_type, ids, e.detail.skin);
        });

        document.addEventListener('table23-html-drawn', e => {
            DataTable23.do_not_print.push('compare');//compare is cell data-key
        }, false);

        //***

        document.addEventListener('woot-do-after-draw', function (e) {

            e.detail.otable.table.querySelectorAll("[data-key='compare']").forEach(function (item) {
                if (!item.hasAttribute('data-inited') && !['TD', 'DIV'].includes(item.tagName)) {
                    item.setAttribute('data-inited', 1);

                    item.addEventListener('click', function (e) {

                        e.preventDefault();
                        e.stopPropagation();

                        let answer = new Object();
                        document.dispatchEvent(new CustomEvent('table23-get', {detail: {
                                table_html_id: item.closest('div.woot-data-table').id,
                                answer: answer
                            }}));


                        let skin = item.closest('div.data-table-23').getAttribute('data-skin');
                        new Popup23({title: '<span>' + woot_helper_vars.lang.compare_products + '</span> ' + woot_helper_vars.lang.products, action: 'woot-draw-compare', skin: skin, post_type: answer.table.request_data.post_type});

                    }, false);
                }
            });

            //+++
            /*
             * in generated-tables.js we have scroll bar init
             if (e.detail.otable.container.classList.contains('woot_compare')) {
             if (!e.detail.otable.wrapper.classList.contains('horizontal-scrollbar23-attached')) {
             e.detail.otable.wrapper.classList.add('horizontal-scrollbar23-attached');
             new HorizontalScrollbar23(e.detail.otable.wrapper);
             }
             }
             */

            return true;
        });

        //***

        document.addEventListener('woot-compare-product', e => {

            if (Number(e.detail.value)) {
                this.add(Number(e.detail.post_id));
            } else {
                this.delete(Number(e.detail.post_id));
            }

            document.dispatchEvent(new CustomEvent('table23-reset-cache', {detail: {
                    table_html_id: e.detail.self.closest('div.woot-data-table').id
                }}));
        });

    }

    fill(post_type, ids = '', skin) {

        let table_id = woot_helper.create_id('cc_');

        fetch(woot_helper_vars.ajax_url, {
            method: 'POST',
            credentials: 'same-origin',
            body: woot_helper.prepare_ajax_form_data({
                action: 'woot_get_table_compare',
                post_type: post_type,
                table_id: table_id,
                ids: ids,
                skin: skin,
                lang: woot_helper_vars.selected_lang
            })
        }).then((response) => response.json()).then((data) => {

            let div = document.createElement('div');
            div.className = 'data-table-23 woot-data-table woot-data-table-compare data-table-23-separated';
            div.setAttribute('id', table_id);
            div.setAttribute('data-skin', skin);
            div.appendChild(document.createElement('table'));
            this.popup.set_content('');
            this.popup.append_content(div);

            this.table = new WOOT_GeneratedTables(data, table_id);
        }).catch((err) => {
            woot_helper.message(err, 'error', 5000);
        });

    }

    add(post_id) {
        woot_helper.message(woot_helper_vars.lang.adding, 'warning');
        fetch(woot_helper_vars.ajax_url, {
            method: 'POST',
            credentials: 'same-origin',
            body: woot_helper.prepare_ajax_form_data({
                action: 'woot_add_to_compare',
                post_id: post_id
            })
        }).then((response) => response.text()).then((data) => {
            woot_helper.message(woot_helper_vars.lang.added);
        }).catch((err) => {
            woot_helper.message(err, 'error', 5000);
        });
    }

    remove(post_id) {
        if (confirm(woot_helper_vars.lang.sure)) {
            this.delete(post_id);
        }
    }

    delete(post_id) {

        if (this.table !== null) {
            this.table.delete_column(`product_compare_${post_id}`);
        } else {
            if (document.querySelector('.woot_compare')) {
                DataTable23.tables[document.querySelector('.woot_compare').id].delete_column(`product_compare_${post_id}`);
            }
        }

        woot_helper.message(woot_helper_vars.lang.deleting, 'warning');

        fetch(woot_helper_vars.ajax_url, {
            method: 'POST',
            credentials: 'same-origin',
            body: woot_helper.prepare_ajax_form_data({
                action: 'woot_delete_from_compare',
                post_id: post_id
            })
        }).then((response) => response.text()).then((data) => {
            woot_helper.message(woot_helper_vars.lang.deleted);
        }).catch((err) => {
            woot_helper.message(err, 'error', 5000);
        });

    }

    call_popup(ids = '', title = '', help_title = '', help_link = '', skin = '') {
        if (title.length === 0) {
            title = '<span>' + woot_helper_vars.lang.compare_products + '</span> ' + woot_helper_vars.lang.products;
        }
        new Popup23({title: title, action: 'woot-draw-compare', post_type: 'product', ids: ids, help_title: help_title, help_link: help_link, skin: skin});
    }
}

var woot_compare = new WOOT_Compare();
// source --> https://lgx.com.ua/wp-content/plugins/woot-favourites/assets/js/favourites.js?ver=1.0.1 
'use strict';

class WOOT_Favourites {
    constructor() {
        this.popup = null;
        this.table = null;
        document.addEventListener('woot-draw-favourites', e => {
            e.preventDefault();
            this.popup = e.detail.popup;
            this.fill(e.detail.post_type, e.detail.skin);
        });

        document.addEventListener('table23-html-drawn', e => {
            DataTable23.do_not_print.push('favourites');//favourites is cell data-key
        }, false);

        //***

        document.addEventListener('woot-do-after-draw', function (e) {

            e.detail.otable.table.querySelectorAll("[data-key='favourites']").forEach(function (item) {
                if (!item.hasAttribute('data-inited') && !['TD', 'DIV'].includes(item.tagName)) {
                    item.setAttribute('data-inited', 1);                    
                    
                    item.addEventListener('click', function (e) {
                        e.preventDefault();
                        e.stopPropagation();

                        let answer = new Object();
                        document.dispatchEvent(new CustomEvent('table23-get', {detail: {
                                table_html_id: item.closest('div.woot-data-table').id,
                                answer: answer
                            }}));

                        let skin = item.closest('div.data-table-23').getAttribute('data-skin');
                        new Popup23({title: '<span>' + woot_helper_vars.lang.my_favourites + '</span> ' + woot_helper_vars.lang.products, action: 'woot-draw-favourites', skin: skin, post_type: answer.table.request_data.post_type});

                    }, false);
                }
            });


            return true;
        });

    }

    click_action(title = '', help_title = '', help_link = '', skin = '') {
        if (title.length === 0) {
            title = '<span>' + woot_helper_vars.lang.my_favourites + '</span> ' + woot_helper_vars.lang.products;
        }

        new Popup23({title: title, action: 'woot-draw-favourites', post_type: 'product', help_title: help_title, help_link: help_link, skin: skin});
    }

    fill(post_type, skin) {

        if (!post_type) {
            post_type = 'product';
        }

        let table_html_id = woot_helper.create_id('tt_');
        fetch(woot_helper_vars.ajax_url, {
            method: 'POST',
            credentials: 'same-origin',
            body: woot_helper.prepare_ajax_form_data({
                action: 'woot_get_table_favourites',
                post_type: post_type,
                table_html_id: table_html_id,
                skin: skin,
                lang: woot_helper_vars.selected_lang
            })
        }).then((response) => response.json()).then((data) => {

            let div = document.createElement('div');
            div.className = 'data-table-23 woot-data-table woot-data-table-favourites';
            div.setAttribute('id', table_html_id);
            div.setAttribute('data-skin', skin);
            div.appendChild(document.createElement('table'));
            this.popup.set_content('');
            this.popup.append_content(div);

            this.table = new WOOT_GeneratedTables(data, table_html_id);

        }).catch((err) => {
            woot_helper.message(err, 'error', 5000);
        });

    }

    //https://codepen.io/OxyDesign/pen/avXVbo
    toggle(heart, post_id) {
        heart.classList.toggle('woot-favourites-active');

        if (heart.classList.contains('woot-favourites-active')) {
            heart.classList.add('woot-favourites-active2');//for animation
            this.add(post_id);
        } else {
            if (confirm(woot_helper_vars.lang.sure)) {
                heart.classList.remove('woot-favourites-active2');
                this.delete(post_id);
            } else {
                heart.classList.toggle('woot-favourites-active');
            }
        }

        if (heart.closest('div.woot-data-table')) {
            document.dispatchEvent(new CustomEvent('table23-reset-cache', {detail: {
                    table_html_id: heart.closest('div.woot-data-table').id
                }}));
        }

        return false;
    }

    add(post_id) {
        //woot_helper.message(woot_helper_vars.lang.adding, 'warning');
        fetch(woot_helper_vars.ajax_url, {
            method: 'POST',
            credentials: 'same-origin',
            body: woot_helper.prepare_ajax_form_data({
                action: 'woot_add_to_favourites',
                post_id: post_id
            })
        }).then((response) => response.text()).then((data) => {
            //woot_helper.message(woot_helper_vars.lang.added);
        }).catch((err) => {
            woot_helper.message(err, 'error', 5000);
        });
    }

    remove(post_id) {
        if (confirm(woot_helper_vars.lang.sure)) {
            this.delete(post_id);
        }
    }

    delete(post_id) {

        if (this.table !== null) {
            this.table.delete_row(post_id);
        } else {
            if (document.querySelector('.woot_favourites')) {
                DataTable23.tables[document.querySelector('.woot_favourites').id].delete_row(post_id);
            }
        }

        if (document.querySelector('.woot-favourites-heart-wrapper-' + post_id) !== null) {
            document.querySelector('.woot-favourites-heart-wrapper-' + post_id).classList.remove('woot-favourites-active');
            document.querySelector('.woot-favourites-heart-wrapper-' + post_id).classList.remove('woot-favourites-active2');
        }

        woot_helper.message(woot_helper_vars.lang.deleting, 'warning');
        fetch(woot_helper_vars.ajax_url, {
            method: 'POST',
            credentials: 'same-origin',
            body: woot_helper.prepare_ajax_form_data({
                action: 'woot_delete_from_favourites',
                post_id: post_id
            })
        }).then((response) => response.text()).then((data) => {
            woot_helper.message(woot_helper_vars.lang.deleted);
        }).catch((err) => {
            woot_helper.message(err, 'error', 5000);
        });



    }
}

var woot_favourites = new WOOT_Favourites();
// source --> https://lgx.com.ua/wp-content/plugins/woot-products-tables/profiles/woocommerce/js/woocommerce-cart.js?ver=2.0.4 
'use strict';

var woot_cart;

document.addEventListener('table23-html-drawn', function (e) {
    e.detail.otable.table.querySelectorAll("[data-key='add_to_cart']").forEach(function (item) {
        if (!item.hasAttribute('data-inited')) {
            item.setAttribute('data-inited', 1);
            item.addEventListener('click', function (e) {
                //e.preventDefault();
                e.stopPropagation();

                if (e.target === item) {
                    woot_cart.call_popup(woot_helper.get_closest_skin(this));
                }

                return false;
            }, false);
        }
    });

    return true;
});

document.addEventListener('table23-html-drawn', function (e) {
    e.detail.otable.table.querySelectorAll("th[data-key='add_to_cart']").forEach(function (item) {

        let button = document.createElement('a');
        button.innerHTML = woot_helper_vars.lang.add_to_cart_selected;
        button.setAttribute('href', '#');
        button.className = 'woot-add-to-cart-all-btn';
        item.appendChild(button);

        button.addEventListener('click', function (e) {
            e.preventDefault();

            let checks = button.closest('table').querySelectorAll('.woot-add-to-cart-check:checked');
            let products = [];
            if (checks.length) {
                checks.forEach(function (ch) {
                    products.push({product_id: ch.getAttribute('data-post-id'), count: ch.closest('td').querySelector('input').value});
                    ch.checked = false;
                });

                button.style.display = 'none';
                button.parentElement.querySelector('.woot-add-to-cart-all-checkbox').checked = false;

                woot_helper.message(woot_helper_vars.lang.updating, 'warning');
                fetch(woot_helper_vars.ajax_url, {
                    method: 'POST',
                    credentials: 'same-origin',
                    body: woot_helper.prepare_ajax_form_data({
                        action: 'woot_woocommerce_add_to_cart_some',
                        products: JSON.stringify(products),
                        lang: woot_helper_vars.selected_lang
                    })
                }).then(response => response.json()).then(data => {
                    woot_helper.message(woot_helper_vars.lang.c_updated, 'notice');
                    woot_cart.__refresh(data);
                }).catch((err) => {
                    //woot_helper.message(err, 'error', 5000);
                });

            }

            return false;
        }, false);

        //***

        let checkbox = document.createElement('input');
        checkbox.setAttribute('type', 'checkbox');
        checkbox.className = 'woot-add-to-cart-all-checkbox';

        let label = document.createElement('label');
        label.className = 'woot-checkmark-container';
        label.setAttribute('title', woot_helper_vars.lang.select_all_prod);

        let span = document.createElement('span');
        span.className = 'woot-checkmark';

        label.appendChild(checkbox);
        label.appendChild(span);
        item.appendChild(label);

        let _this = this;
        checkbox.addEventListener('click', function (e) {

            let selectors = this.closest('table').querySelectorAll('.table23_td_add_to_cart .woot-add-to-cart-check');

            if (selectors.length) {
                let display = 'block';

                if (this.checked === true) {
                    selectors.forEach(function (ch) {
                        ch.checked = true;
                    });
                } else {
                    selectors.forEach(function (ch) {
                        ch.checked = false;
                        display = 'none';
                    });
                }

                //+++

                if (this.closest('table').querySelectorAll('.woot-add-to-cart-all-btn').length > 0) {
                    button.style.display = display;
                }
            }

            return true;
        }, false);

    });

    return true;

});

window.addEventListener('load', function () {
    woot_cart = new WOOT_Cart();

    //for shortcode
    if (document.querySelectorAll('.woot-cart-shortcode').length) {
        woot_cart.timer = setInterval(function () {
            if (typeof woot_cart.table_data !== 'undefined') {
                woot_cart.__draw_tables();
                clearInterval(woot_cart.timer);
            }
        }, 200);
    }

    //+++

    jQuery(document.body).on('removed_from_cart', (e) => {
        woot_cart.refresh_info();
    });

});



document.addEventListener('woot-woo-cart-refreshed', (e) => {
    woot_cart.rewrite_buttons_counter();
});

//***


document.addEventListener('table23-after-build-rows', function (e) {

    let skin = e.detail.otable.table.closest('div.data-table-23').getAttribute('data-skin');

    e.detail.otable.table.querySelectorAll('.woot-button-buy-pack').forEach(function (pack) {
        let data = pack.getAttribute('data-about');
        data = data.split(',');

        var type = data[0];
        var id = woot_helper.create_id('tt');

        switch (type) {
            case 'simple':

                var product_id = data[1];
                var quantity = data[2];
                var sku = data[3];

                //this attribute should not be empty
                if (quantity.length === 0) {
                    quantity = 9999;
                }

                let checkbox = document.createElement('input');
                checkbox.className = 'woot-add-to-cart-check';
                checkbox.setAttribute('type', 'checkbox');
                checkbox.setAttribute('data-post-id', product_id);
                checkbox.setAttribute('onclick', 'woot_cart.toggle_add_all_btn(this);');

                let label = document.createElement('label');
                label.className = 'woot-checkmark-container';
                let label_span = document.createElement('span');
                label_span.className = 'woot-checkmark';
                label.appendChild(checkbox);
                label.appendChild(label_span);

                let input = document.createElement('input');
                input.className = 'woot-add-to-cart-input';
                input.value = 1;
                input.setAttribute('min', 1);
                input.setAttribute('step', 1);
                input.setAttribute('max', quantity);
                input.setAttribute('size', 4);
                input.setAttribute('type', 'number');
                input.setAttribute('inputmode', 'numeric');
                input.setAttribute('sku', sku);
                input.setAttribute('id', id);
                input.setAttribute('data-instant-redirect', pack.getAttribute('data-instant-redirect'));
                input.setAttribute('data-product-id', product_id);

                let sold_individually = parseInt(pack.getAttribute('data-sold-individually'), 10);
                if (sold_individually) {
                    input.setAttribute('readonly', true);
                }

                var link = document.createElement('a');
                link.setAttribute('href', `javascript: woot_cart.add(${product_id},\'${id}\');void(0);`);
                link.className = 'woot-btn woot-add-to-cart-btn';
                link.innerHTML = '<span><i class="woot-icon">&#xe806;</i></span>&nbsp;' + woot_helper_vars.lang.add_to_cart;

                var span = document.createElement('span');
                span.className = `woot_count_in_cart woot_count_in_cart_${product_id}`;
                span.style.display = 'none';
                span.setAttribute('data-product-id', product_id);

                link.appendChild(span);
                pack.parentElement.appendChild(input);
                pack.parentElement.appendChild(label);
                pack.parentElement.appendChild(link);

                pack.remove();

                break;

            case 'variable':
                var product_id = data[1];
                var product_title = data[2];
                var vars_count = data[3];

                var link = document.createElement('a');
                link.setAttribute('href', `javascript: woot_helper.call_popup(\"woot_woocommerce_get_variations_table\",{product_id: ${product_id}, skin: \"${skin}\", not_paste:1},\"${id}\", \"${product_title}\"); void(0);`);

                link.setAttribute('title', product_title);
                link.className = 'woot-btn woot-add-to-cart-btn';
                link.innerHTML = `<span></span>&nbsp;${woot_helper_vars.lang.select} [${vars_count}]`;

                pack.parentElement.appendChild(link);
                pack.remove();


                break;


            case 'grouped':
                var product_id = data[1];
                var product_title = data[2];
                var vars_count = data[3];

                var link = document.createElement('a');
                link.setAttribute('href', `javascript: woot_helper.call_popup(\"woot_woocommerce_get_grouped_table\",{product_id: ${product_id}, skin: \"${skin}\", not_paste:1},\"${id}\", \"#${product_title}\"); void(0);`);
                link.setAttribute('title', product_title);
                link.className = 'woot-btn woot-add-to-cart-btn';
                link.innerHTML = `<span></span>&nbsp;${woot_helper_vars.lang.select} [${vars_count}]`;

                pack.parentElement.appendChild(link);
                pack.remove();


                break;


            case 'external':
                var add_to_cart_url = data[1];
                var add_to_cart_text = data[2];

                var link = document.createElement('a');
                link.setAttribute('href', add_to_cart_url);
                link.setAttribute('target', '_blank');
                link.className = 'woot-btn woot-add-to-cart-btn';
                link.innerHTML = add_to_cart_text;

                pack.parentElement.appendChild(link);
                pack.remove();

                break;

        }


    });

    //***   

    if (woot_cart) {
        woot_cart.rewrite_buttons_counter();
    }

    return true;
});


//***

class WOOT_Cart {
    constructor() {

        if (document.querySelectorAll('.woot-data-table').length || document.querySelectorAll('.woot-cart-shortcode').length) {

            this.tables = [];
            this.carts = [];

            //***

            this.quantity = 0;
            this.subtotal = 0;
            this.popup = null;

            this.refresh_info();
            this.rewrite_buttons_counter();

            document.querySelectorAll('.woot-woocommerces-show-cart').forEach(item => {

                let cart = document.createElement('div');
                cart.className = 'woot-woocommerce-cart';
                let a = document.createElement('a');
                a.className = 'woot_cart_info woot-btn';
                a.setAttribute('href', '#');
                a.setAttribute('onclick', 'return woot_cart.call_popup(woot_helper.get_closest_skin(this));void(0);');
                a.innerHTML = woot_helper_vars.lang.in_cart;
                cart.appendChild(a);
                this.carts.push(cart);

                item.querySelector('.woot-woocommerce-cart-zone').innerHTML='';
                item.querySelector('.woot-woocommerce-cart-zone').appendChild(cart);
                //item.appendChild(clearfix);
            });

            //***

            document.addEventListener('woot-added-to-cart', e => {
                e.stopPropagation();
                this.refresh_info();

                //***

                document.querySelectorAll('th[data-key="add_to_cart"]').forEach(item => {
                    item.style.animationName = 'woot-bounce';
                    setTimeout(function () {
                        item.style.animationName = '';
                    }, 1000);
                });

            }, false);

        }


    }

    rewrite_buttons_counter() {
        if (this.table_data) {
            let table_data = this.table_data.table_data;
            document.querySelectorAll('.woot_count_in_cart').forEach((span) => {
                let product_id = parseInt(span.getAttribute('data-product-id'));
                span.innerHTML = '';
                span.style.display = 'none';

                for (let key in table_data) {
                    if (parseInt(table_data[key]['id']) === product_id) {
                        if (table_data[key]['q'] > 0) {
                            span.style.display = 'block';
                            span.innerHTML = table_data[key]['q'];
                        }
                    }
                }

            });
        }
    }

    refresh_info() {
        fetch(woot_helper_vars.ajax_url, {
            method: 'POST',
            credentials: 'same-origin',
            body: woot_helper.prepare_ajax_form_data({
                action: 'woot_woocommerce_get_cart_info',
                //skin: 'skin-1',
                lang: woot_helper_vars.selected_lang
            })
        }).then(response => response.json()).then(data => {
            this.__refresh(data);
        }).catch((err) => {
            //woot_helper.message(err, 'error', 5000);
        });
    }

    __refresh(data) {
        this.table_data = JSON.parse(data.table);
        document.dispatchEvent(new CustomEvent('woot-woo-cart-refreshed'));
        this.quantity = parseInt(data.quantity, 10);
        this.subtotal = data.subtotal;
        this.set_cart_info();
    }

    call_popup(skin = '') {
        this.skin=skin;
        this.popup = new Popup23();
        this.popup.set_title(this.set_cart_info());
        let info = `<a href="javascript: woot_cart.clear(this);void(0);" class="woot-btn">${woot_helper_vars.lang.clear_cart}</a>`;

        if (!parseInt(woot_helper_vars.hide_shop_cart_btn)) {
            info += `<a href="${woot_woo_js_vars.cart_link}" target="_blank" class="woot-btn">${woot_helper_vars.lang.view_cart}</a>`;
        }

        if (!parseInt(woot_helper_vars.hide_checkout_btn)) {
            info += `<a href="${woot_woo_js_vars.checkout_link}" target="_blank" class="woot-btn">${woot_helper_vars.lang.checkout}</a>`;
        }

        this.popup.set_title_info(info);
        this.__draw_tables(true);

        return false;
    }

    __generate_table_html(table_html_id) {
        let t = document.createElement('div');
        t.className = 'data-table-23 woot-data-table woot-woocommerce-cart-table';
        t.setAttribute('id', table_html_id);
        t.appendChild(document.createElement('table'));

        return t;
    }

    __draw_tables(popup_only = false) {

        let prev_table = null;

        if (typeof this.tables !== 'undefined') {
            if (typeof this.tables[0] !== 'undefined') {
                prev_table = this.tables[0];
            }
        }

        this.tables = [];

        //***

        if (this.popup) {
            let table_html_id = woot_helper.create_id('cart-');
            let t = this.__generate_table_html(table_html_id);
            this.popup.set_content('');
            this.popup.append_content(t);

            if (prev_table && this.table_data) {
                this.table_data.request_data.orderby = prev_table.request_data.orderby;
                this.table_data.request_data.order = prev_table.request_data.order;
            }

            this.tables.push(new WOOT_GeneratedTables(this.table_data, table_html_id));

            //+++

            //set skin of the parent table
            this.attach_skin(table_html_id);
        }

        //***
        //for shortcode
        if (!popup_only) {
            let _this = this;
            document.querySelectorAll('.woot-cart-shortcode').forEach(function (item) {
                item.innerHTML = '';
                let table_html_id = woot_helper.create_id('cart-');
                let t = _this.__generate_table_html(table_html_id);
                item.appendChild(t);

                if (prev_table) {
                    _this.table_data.request_data.orderby = prev_table.request_data.orderby;
                    _this.table_data.request_data.order = prev_table.request_data.order;
                }

                _this.tables.push(new WOOT_GeneratedTables(_this.table_data, table_html_id));
            });
    }
    }

    set_cart_info() {
        let info = woot_helper_vars.lang.in_cart + ': ' + this.quantity + '; ' + this.subtotal;

        //***

        document.querySelectorAll('a.woot_cart_info').forEach(item => {
            item.innerHTML = info;
        });

        //***

        if (this.popup) {
            this.popup.node.querySelector('h3.woot-modal-title').innerHTML = info;
        }

        if (this.carts.length) {
            this.carts.forEach(cart => {

                if (!cart.querySelector('a.woot-checkout-btn')) {

                    if (!parseInt(woot_helper_vars.hide_shop_cart_btn)) {
                        let view_cart = document.createElement('a');
                        view_cart.setAttribute('href', woot_woo_js_vars.cart_link);
                        view_cart.setAttribute('target', '_blank');
                        view_cart.className = 'woot-btn woot-view-cart-btn';
                        view_cart.innerHTML = woot_helper_vars.lang.view_cart;
                        cart.appendChild(view_cart);
                    }

                    if (!parseInt(woot_helper_vars.hide_checkout_btn)) {
                        let checkout = document.createElement('a');
                        checkout.setAttribute('href', woot_woo_js_vars.checkout_link);
                        checkout.setAttribute('target', '_blank');
                        checkout.className = 'woot-btn woot-checkout-btn';
                        checkout.innerHTML = woot_helper_vars.lang.checkout;
                        cart.appendChild(checkout);
                    }
                }

            });

        }





        //***

        if (this.popup) {
            //this.popup.set_content(info);
            this.__draw_tables(true);
        }

        return info;
    }

    add(product_id, count_input_id) {
        product_id = parseInt(product_id, 10);
        let sku = '';
        let quantity = 1;

        let count_input = document.getElementById(count_input_id);

        if (count_input) {
            sku = count_input.getAttribute('sku');
            quantity = parseInt(count_input.value, 10);

            if (quantity < 1) {
                quantity = 1;
            }
            if (quantity > count_input.getAttribute('max')) {
                quantity = count_input.getAttribute('max');
                woot_helper.message(woot_helper_vars.lang.max_add_to_cart + ' ' + quantity, 'error');
                return;
            }
        }

        //wp-content\plugins\woocommerce\assets\js\frontend\add-to-cart.js #81
        let ajax_url = '?wc-ajax=add_to_cart';
        if (typeof wc_add_to_cart_params !== 'undefined') {
            ajax_url = wc_add_to_cart_params.wc_ajax_url.toString().replace('%%endpoint%%', 'add_to_cart');
        }

        woot_helper.message(woot_helper_vars.lang.c_adding, 'warning', -1);
        fetch(ajax_url, {
            method: 'POST',
            credentials: 'same-origin',
            body: woot_helper.prepare_ajax_form_data({
                product_id: product_id,
                product_sku: sku,
                quantity: quantity
            })
        }).then(response => response.text()).then(data => {
            data = JSON.parse(data);
            if (typeof data.error === 'undefined') {
                woot_helper.message(woot_helper_vars.lang.c_added, 'notice');
                document.dispatchEvent(new CustomEvent('woot-added-to-cart', {detail: {product_id: product_id}}));

                if (parseInt(count_input.getAttribute('data-instant-redirect')) === 1) {
                    document.location.href = woot_woo_js_vars.cart_link;
                }

                if (parseInt(count_input.getAttribute('data-instant-redirect')) === 2) {
                    document.location.href = woot_woo_js_vars.checkout_link;
                }


                //fix for woocommerce native cart
                //document.body.dispatchEvent(new CustomEvent('woot-added-to-cart'));
                jQuery(document.body).trigger('woot-added-to-cart', [null, null, null]);
		jQuery(document.body).trigger('wc_fragment_refresh');
		
            } else {
                woot_helper.message(woot_helper_vars.lang.cant_add_to_cart, 'error', 7000);
            }
        }).catch((err) => {
            woot_helper.message(err, 'error', 5000);
        });

    }

    remove(product_id) {
        if (confirm(woot_helper_vars.lang.sure)) {
            this.delete(product_id);
        }
    }

    delete(product_id) {
        woot_helper.message(woot_helper_vars.lang.deleting + ' ...', 'warning');
        fetch(woot_helper_vars.ajax_url, {
            method: 'POST',
            credentials: 'same-origin',
            body: woot_helper.prepare_ajax_form_data({
                action: 'woot_remove_product_from_cart',
                product_id: product_id
            })
        }).then(response => response.text()).then(data => {
            woot_helper.message(woot_helper_vars.lang.deleted, 'notice');

            data = JSON.parse(data);
            this.table_data = JSON.parse(data.table);
            document.dispatchEvent(new CustomEvent('woot-woo-cart-refreshed'));
            this.quantity = parseInt(data.quantity, 10);
            this.subtotal = data.subtotal;
            this.set_cart_info();
            this.__draw_tables();

        }).catch((err) => {
            //woot_helper.message(err, 'error', 5000);
        });
    }

    update(product_id, link_self) {
        woot_helper.message(woot_helper_vars.lang.updating + ' ...', 'warning');
        fetch(woot_helper_vars.ajax_url, {
            method: 'POST',
            credentials: 'same-origin',
            body: woot_helper.prepare_ajax_form_data({
                action: 'woot_update_product_count_in_cart',
                product_id: product_id,
                quantity: link_self.parentElement.querySelector('input[type="number"]').value
            })
        }).then(response => response.json()).then(data => {
            woot_helper.message(woot_helper_vars.lang.c_updated, 'notice');

            let td = JSON.parse(data.table);
            this.table_data = td;
            document.dispatchEvent(new CustomEvent('woot-woo-cart-refreshed'));
            this.quantity = parseInt(data.quantity, 10);
            this.subtotal = data.subtotal;
            this.set_cart_info();
            this.__draw_tables();
            document.querySelector(`tr[data-pid="${product_id}"]`).scrollIntoView(true);
        }).catch((err) => {
            //woot_helper.message(err, 'error', 5000);
        });

    }

    count_update(event, product_id, self) {
        if (event.keyCode === 13) {
            this.update(product_id, self.nextElementSibling);
        }
    }

    clear() {
        if (confirm(woot_helper_vars.lang.sure)) {
            if (this.tables.length > 0) {
                for (let i = 0; i < this.tables.length; i++) {
                    if (document.querySelector('.woot-data-table#' + this.tables[i].table_html_id)) {
                        let ids = [];
                        this.tables[i].table.querySelectorAll('tbody tr').forEach(function (tr) {
                            ids.push(parseInt(tr.getAttribute('data-pid'), 10));
                        });

                        //***

                        fetch(woot_helper_vars.ajax_url, {
                            method: 'POST',
                            credentials: 'same-origin',
                            body: woot_helper.prepare_ajax_form_data({
                                action: 'woot_remove_all_products_from_cart',
                                products_ids: ids
                            })
                        }).then(response => response.json()).then(data => {

                            let td = JSON.parse(data.table);
                            this.table_data = td;
                            document.dispatchEvent(new CustomEvent('woot-woo-cart-refreshed'));
                            this.tables[i].table_data = td.table_data;
                            this.quantity = parseInt(data.quantity, 10);
                            this.subtotal = data.subtotal;
                            this.set_cart_info();
                            this.__draw_tables();

                        }).catch((err) => {
                            //woot_helper.message(err, 'error', 5000);
                        });

                    }
                }
            }
        }
    }

    toggle_add_all_btn(ch) {
        let button = ch.closest('table').querySelector('.woot-add-to-cart-all-btn');

        if (ch.closest('table').querySelectorAll('.woot-add-to-cart-check:checked').length > 0) {
            button.style.display = 'block';
        } else {
            button.style.display = 'none';
        }
    }

    attach_skin(table_html_id) {
        if (this.skin.length > 0) {
            if (document.querySelector(`style[data-table23-skin="${this.skin}"]`)) {

                let table_styles = document.querySelector(`style[data-table23-skin="${this.skin}"]`).innerText;
                let parent_table_html_id = document.querySelector(`style[data-table23-skin="${this.skin}"]`).getAttribute('data-table23-skin-of');

                let styles = document.createElement('style');
                styles.innerText = table_styles.split(parent_table_html_id).join(table_html_id);
                document.querySelector('#' + table_html_id).appendChild(styles);
            }
        }
    }
};
// source --> https://lgx.com.ua/wp-content/plugins/vc-super-bundle/features/text-gradient/script.js?ver=text-gradient-vc 
(function() {
	var ready = function() {
		var gradientTexts = document.querySelectorAll( '.cg_color_gradient > * > [style*="text-align:"]' );
		Array.prototype.forEach.call( gradientTexts, function(el) {
			var wrapper = document.createElement('div');
			wrapper.style.textAlign = el.style.textAlign;
			wrapper.classList.add( 'cg_wrapper' );
			wrapper.style.display = 'block';
			el.parentNode.replaceChild(wrapper, el);
			wrapper.appendChild(el);
		} )
	}
  if (document.attachEvent ? document.readyState === 'complete' : document.readyState !== 'loading'){
	ready();
  } else {
	document.addEventListener('DOMContentLoaded', ready);
  }
})();