(function(e, t) {
    'object' == typeof exports && 'undefined' != typeof module ? t(require('jquery'), require('popper.js')) : 'function' == typeof define && define.amd ? define(['jquery', 'popper.js'], t) : t(e.jQuery, e.Popper)
})(this, function(e, t) {
    'use strict';

    function n(e, t) {
        for (var n, o = 0; o < t.length; o++) n = t[o], n.enumerable = n.enumerable || !1, n.configurable = !0, 'value' in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
    }

    function o(e, t, o) {
        return t && n(e.prototype, t), o && n(e, o), e
    }

    function a() {
        return a = Object.assign || function(e) {
            for (var t, n = 1; n < arguments.length; n++)
                for (var o in t = arguments[n], t) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
            return e
        }, a.apply(this, arguments)
    }

    function r(e, t) {
        e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e.__proto__ = t
    }
    var i = Math.max;
    e = e && e.hasOwnProperty('default') ? e['default'] : e, t = t && t.hasOwnProperty('default') ? t['default'] : t;
    var l = function(e) {
            function t(e) {
                return {}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase()
            }

            function n() {
                return {
                    bindType: r.end,
                    delegateType: r.end,
                    handle: function(t) {
                        return e(t.target).is(this) ? t.handleObj.handler.apply(this, arguments) : void 0
                    }
                }
            }

            function o() {
                return 'undefined' != typeof window && window.QUnit ? !1 : {
                    end: 'transitionend'
                }
            }

            function a(t) {
                var n = this,
                    o = !1;
                return e(this).one(i.TRANSITION_END, function() {
                    o = !0
                }), setTimeout(function() {
                    o || i.triggerTransitionEnd(n)
                }, t), this
            }
            var r = !1,
                i = {
                    TRANSITION_END: 'bsTransitionEnd',
                    getUID: function(e) {
                        do e += ~~(Math.random() * 1e6); while (document.getElementById(e));
                        return e
                    },
                    getSelectorFromElement: function(t) {
                        var n = t.getAttribute('data-target');
                        n && '#' !== n || (n = t.getAttribute('href') || '');
                        try {
                            var o = e(document).find(n);
                            return 0 < o.length ? n : null
                        } catch (e) {
                            return null
                        }
                    },
                    reflow: function(e) {
                        return e.offsetHeight
                    },
                    triggerTransitionEnd: function(t) {
                        e(t).trigger(r.end)
                    },
                    supportsTransitionEnd: function() {
                        return !!r
                    },
                    isElement: function(e) {
                        return (e[0] || e).nodeType
                    },
                    typeCheckConfig: function(e, n, o) {
                        for (var a in o)
                            if (Object.prototype.hasOwnProperty.call(o, a)) {
                                var r = o[a],
                                    l = n[a],
                                    s = l && i.isElement(l) ? 'element' : t(l);
                                if (!new RegExp(r).test(s)) throw new Error(e.toUpperCase() + ': ' + ('Option "' + a + '" provided type "' + s + '" ') + ('but expected type "' + r + '".'))
                            }
                    }
                };
            return function() {
                r = o(), e.fn.emulateTransitionEnd = a, i.supportsTransitionEnd() && (e.event.special[i.TRANSITION_END] = n())
            }(), i
        }(e),
        s = function(e) {
            var t = 'alert',
                n = 'bs.alert',
                a = '.' + n,
                r = e.fn[t],
                i = {
                    CLOSE: 'close' + a,
                    CLOSED: 'closed' + a,
                    CLICK_DATA_API: 'click' + a + '.data-api'
                },
                s = {
                    ALERT: 'alert',
                    FADE: 'fade',
                    SHOW: 'show'
                },
                d = function() {
                    function t(e) {
                        this._element = e
                    }
                    var a = t.prototype;
                    return a.close = function(e) {
                        e = e || this._element;
                        var t = this._getRootElement(e),
                            n = this._triggerCloseEvent(t);
                        n.isDefaultPrevented() || this._removeElement(t)
                    }, a.dispose = function() {
                        e.removeData(this._element, n), this._element = null
                    }, a._getRootElement = function(t) {
                        var n = l.getSelectorFromElement(t),
                            o = !1;
                        return n && (o = e(n)[0]), o || (o = e(t).closest('.' + s.ALERT)[0]), o
                    }, a._triggerCloseEvent = function(t) {
                        var n = e.Event(i.CLOSE);
                        return e(t).trigger(n), n
                    }, a._removeElement = function(t) {
                        var n = this;
                        return e(t).removeClass(s.SHOW), l.supportsTransitionEnd() && e(t).hasClass(s.FADE) ? void e(t).one(l.TRANSITION_END, function(e) {
                            return n._destroyElement(t, e)
                        }).emulateTransitionEnd(150) : void this._destroyElement(t)
                    }, a._destroyElement = function(t) {
                        e(t).detach().trigger(i.CLOSED).remove()
                    }, t._jQueryInterface = function(o) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            r || (r = new t(this), a.data(n, r)), 'close' === o && r[o](this)
                        })
                    }, t._handleDismiss = function(e) {
                        return function(t) {
                            t && t.preventDefault(), e.close(this)
                        }
                    }, o(t, null, [{
                        key: 'VERSION',
                        get: function() {
                            return '4.0.0'
                        }
                    }]), t
                }();
            return e(document).on(i.CLICK_DATA_API, {
                DISMISS: '[data-dismiss="alert"]'
            }.DISMISS, d._handleDismiss(new d)), e.fn[t] = d._jQueryInterface, e.fn[t].Constructor = d, e.fn[t].noConflict = function() {
                return e.fn[t] = r, d._jQueryInterface
            }, d
        }(e),
        d = function(e) {
            var t = 'button',
                n = 'bs.button',
                a = '.' + n,
                r = '.data-api',
                i = e.fn[t],
                l = {
                    ACTIVE: 'active',
                    BUTTON: 'btn',
                    FOCUS: 'focus'
                },
                s = {
                    DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
                    DATA_TOGGLE: '[data-toggle="buttons"]',
                    INPUT: 'input',
                    ACTIVE: '.active',
                    BUTTON: '.btn'
                },
                d = {
                    CLICK_DATA_API: 'click' + a + r,
                    FOCUS_BLUR_DATA_API: 'focus' + a + r + ' ' + ('blur' + a + r)
                },
                c = function() {
                    function t(e) {
                        this._element = e
                    }
                    var a = t.prototype;
                    return a.toggle = function() {
                        var t = !0,
                            n = !0,
                            o = e(this._element).closest(s.DATA_TOGGLE)[0];
                        if (o) {
                            var a = e(this._element).find(s.INPUT)[0];
                            if (a) {
                                if ('radio' === a.type)
                                    if (a.checked && e(this._element).hasClass(l.ACTIVE)) t = !1;
                                    else {
                                        var r = e(o).find(s.ACTIVE)[0];
                                        r && e(r).removeClass(l.ACTIVE)
                                    }
                                if (t) {
                                    if (a.hasAttribute('disabled') || o.hasAttribute('disabled') || a.classList.contains('disabled') || o.classList.contains('disabled')) return;
                                    a.checked = !e(this._element).hasClass(l.ACTIVE), e(a).trigger('change')
                                }
                                a.focus(), n = !1
                            }
                        }
                        n && this._element.setAttribute('aria-pressed', !e(this._element).hasClass(l.ACTIVE)), t && e(this._element).toggleClass(l.ACTIVE)
                    }, a.dispose = function() {
                        e.removeData(this._element, n), this._element = null
                    }, t._jQueryInterface = function(o) {
                        return this.each(function() {
                            var a = e(this).data(n);
                            a || (a = new t(this), e(this).data(n, a)), 'toggle' === o && a[o]()
                        })
                    }, o(t, null, [{
                        key: 'VERSION',
                        get: function() {
                            return '4.0.0'
                        }
                    }]), t
                }();
            return e(document).on(d.CLICK_DATA_API, s.DATA_TOGGLE_CARROT, function(t) {
                t.preventDefault();
                var n = t.target;
                e(n).hasClass(l.BUTTON) || (n = e(n).closest(s.BUTTON)), c._jQueryInterface.call(e(n), 'toggle')
            }).on(d.FOCUS_BLUR_DATA_API, s.DATA_TOGGLE_CARROT, function(t) {
                var n = e(t.target).closest(s.BUTTON)[0];
                e(n).toggleClass(l.FOCUS, /^focus(in)?$/.test(t.type))
            }), e.fn[t] = c._jQueryInterface, e.fn[t].Constructor = c, e.fn[t].noConflict = function() {
                return e.fn[t] = i, c._jQueryInterface
            }, c
        }(e),
        c = function(e) {
            var t = 'carousel',
                n = 'bs.carousel',
                a = '.' + n,
                r = '.data-api',
                i = e.fn[t],
                s = {
                    interval: 5e3,
                    keyboard: !0,
                    slide: !1,
                    pause: 'hover',
                    wrap: !0
                },
                d = {
                    interval: '(number|boolean)',
                    keyboard: 'boolean',
                    slide: '(boolean|string)',
                    pause: '(string|boolean)',
                    wrap: 'boolean'
                },
                c = {
                    NEXT: 'next',
                    PREV: 'prev',
                    LEFT: 'left',
                    RIGHT: 'right'
                },
                _ = {
                    SLIDE: 'slide' + a,
                    SLID: 'slid' + a,
                    KEYDOWN: 'keydown' + a,
                    MOUSEENTER: 'mouseenter' + a,
                    MOUSELEAVE: 'mouseleave' + a,
                    TOUCHEND: 'touchend' + a,
                    LOAD_DATA_API: 'load' + a + r,
                    CLICK_DATA_API: 'click' + a + r
                },
                p = {
                    CAROUSEL: 'carousel',
                    ACTIVE: 'active',
                    SLIDE: 'slide',
                    RIGHT: 'carousel-item-right',
                    LEFT: 'carousel-item-left',
                    NEXT: 'carousel-item-next',
                    PREV: 'carousel-item-prev',
                    ITEM: 'carousel-item'
                },
                m = {
                    ACTIVE: '.active',
                    ACTIVE_ITEM: '.active.carousel-item',
                    ITEM: '.carousel-item',
                    NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
                    INDICATORS: '.carousel-indicators',
                    DATA_SLIDE: '[data-slide], [data-slide-to]',
                    DATA_RIDE: '[data-ride="carousel"]'
                },
                g = function() {
                    function r(t, n) {
                        this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this._config = this._getConfig(n), this._element = e(t)[0], this._indicatorsElement = e(this._element).find(m.INDICATORS)[0], this._addEventListeners()
                    }
                    var i = r.prototype;
                    return i.next = function() {
                        this._isSliding || this._slide(c.NEXT)
                    }, i.nextWhenVisible = function() {
                        document.hidden || this.next()
                    }, i.prev = function() {
                        this._isSliding || this._slide(c.PREV)
                    }, i.pause = function(t) {
                        t || (this._isPaused = !0), e(this._element).find(m.NEXT_PREV)[0] && l.supportsTransitionEnd() && (l.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
                    }, i.cycle = function(e) {
                        e || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
                    }, i.to = function(t) {
                        var n = this;
                        this._activeElement = e(this._element).find(m.ACTIVE_ITEM)[0];
                        var o = this._getItemIndex(this._activeElement);
                        if (!(t > this._items.length - 1 || 0 > t)) {
                            if (this._isSliding) return void e(this._element).one(_.SLID, function() {
                                return n.to(t)
                            });
                            if (o === t) return this.pause(), void this.cycle();
                            var a = t > o ? c.NEXT : c.PREV;
                            this._slide(a, this._items[t])
                        }
                    }, i.dispose = function() {
                        e(this._element).off(a), e.removeData(this._element, n), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
                    }, i._getConfig = function(n) {
                        return n = e.extend({}, s, n), l.typeCheckConfig(t, n, d), n
                    }, i._addEventListeners = function() {
                        var t = this;
                        this._config.keyboard && e(this._element).on(_.KEYDOWN, function(e) {
                            return t._keydown(e)
                        }), 'hover' === this._config.pause && (e(this._element).on(_.MOUSEENTER, function(e) {
                            return t.pause(e)
                        }).on(_.MOUSELEAVE, function(e) {
                            return t.cycle(e)
                        }), 'ontouchstart' in document.documentElement && e(this._element).on(_.TOUCHEND, function() {
                            t.pause(), t.touchTimeout && clearTimeout(t.touchTimeout), t.touchTimeout = setTimeout(function(e) {
                                return t.cycle(e)
                            }, 500 + t._config.interval)
                        }))
                    }, i._keydown = function(e) {
                        if (!/input|textarea/i.test(e.target.tagName)) switch (e.which) {
                            case 37:
                                e.preventDefault(), this.prev();
                                break;
                            case 39:
                                e.preventDefault(), this.next();
                                break;
                            default:
                        }
                    }, i._getItemIndex = function(t) {
                        return this._items = e.makeArray(e(t).parent().find(m.ITEM)), this._items.indexOf(t)
                    }, i._getItemByDirection = function(e, t) {
                        var n = e === c.NEXT,
                            o = e === c.PREV,
                            a = this._getItemIndex(t),
                            r = this._items.length - 1;
                        if ((o && 0 === a || n && a === r) && !this._config.wrap) return t;
                        var i = e === c.PREV ? -1 : 1,
                            l = (a + i) % this._items.length;
                        return -1 == l ? this._items[this._items.length - 1] : this._items[l]
                    }, i._triggerSlideEvent = function(t, n) {
                        var o = this._getItemIndex(t),
                            a = this._getItemIndex(e(this._element).find(m.ACTIVE_ITEM)[0]),
                            r = e.Event(_.SLIDE, {
                                relatedTarget: t,
                                direction: n,
                                from: a,
                                to: o
                            });
                        return e(this._element).trigger(r), r
                    }, i._setActiveIndicatorElement = function(t) {
                        if (this._indicatorsElement) {
                            e(this._indicatorsElement).find(m.ACTIVE).removeClass(p.ACTIVE);
                            var n = this._indicatorsElement.children[this._getItemIndex(t)];
                            n && e(n).addClass(p.ACTIVE)
                        }
                    }, i._slide = function(t, n) {
                        var o, a, r, i = this,
                            s = e(this._element).find(m.ACTIVE_ITEM)[0],
                            d = this._getItemIndex(s),
                            g = n || s && this._getItemByDirection(t, s),
                            f = this._getItemIndex(g),
                            u = !!this._interval;
                        if (t === c.NEXT ? (o = p.LEFT, a = p.NEXT, r = c.LEFT) : (o = p.RIGHT, a = p.PREV, r = c.RIGHT), g && e(g).hasClass(p.ACTIVE)) return void(this._isSliding = !1);
                        var E = this._triggerSlideEvent(g, r);
                        if (!E.isDefaultPrevented() && s && g) {
                            this._isSliding = !0, u && this.pause(), this._setActiveIndicatorElement(g);
                            var h = e.Event(_.SLID, {
                                relatedTarget: g,
                                direction: r,
                                from: d,
                                to: f
                            });
                            l.supportsTransitionEnd() && e(this._element).hasClass(p.SLIDE) ? (e(g).addClass(a), l.reflow(g), e(s).addClass(o), e(g).addClass(o), e(s).one(l.TRANSITION_END, function() {
                                e(g).removeClass(o + ' ' + a).addClass(p.ACTIVE), e(s).removeClass(p.ACTIVE + ' ' + a + ' ' + o), i._isSliding = !1, setTimeout(function() {
                                    return e(i._element).trigger(h)
                                }, 0)
                            }).emulateTransitionEnd(600)) : (e(s).removeClass(p.ACTIVE), e(g).addClass(p.ACTIVE), this._isSliding = !1, e(this._element).trigger(h)), u && this.cycle()
                        }
                    }, r._jQueryInterface = function(t) {
                        return this.each(function() {
                            var o = e(this).data(n),
                                a = e.extend({}, s, e(this).data());
                            'object' == typeof t && e.extend(a, t);
                            var i = 'string' == typeof t ? t : a.slide;
                            if (o || (o = new r(this, a), e(this).data(n, o)), 'number' == typeof t) o.to(t);
                            else if ('string' == typeof i) {
                                if (void 0 === o[i]) throw new Error('No method named "' + i + '"');
                                o[i]()
                            } else a.interval && (o.pause(), o.cycle())
                        })
                    }, r._dataApiClickHandler = function(t) {
                        var o = l.getSelectorFromElement(this);
                        if (o) {
                            var a = e(o)[0];
                            if (a && e(a).hasClass(p.CAROUSEL)) {
                                var i = e.extend({}, e(a).data(), e(this).data()),
                                    s = this.getAttribute('data-slide-to');
                                s && (i.interval = !1), r._jQueryInterface.call(e(a), i), s && e(a).data(n).to(s), t.preventDefault()
                            }
                        }
                    }, o(r, null, [{
                        key: 'VERSION',
                        get: function() {
                            return '4.0.0-beta'
                        }
                    }, {
                        key: 'Default',
                        get: function() {
                            return s
                        }
                    }]), r
                }();
            return e(document).on(_.CLICK_DATA_API, m.DATA_SLIDE, g._dataApiClickHandler), e(window).on(_.LOAD_DATA_API, function() {
                e(m.DATA_RIDE).each(function() {
                    var t = e(this);
                    g._jQueryInterface.call(t, t.data())
                })
            }), e.fn[t] = g._jQueryInterface, e.fn[t].Constructor = g, e.fn[t].noConflict = function() {
                return e.fn[t] = i, g._jQueryInterface
            }, g
        }(jQuery),
        _ = function(e) {
            var t = 'collapse',
                n = 'bs.collapse',
                r = '.' + n,
                i = e.fn[t],
                s = 600,
                d = {
                    toggle: !0,
                    parent: ''
                },
                c = {
                    toggle: 'boolean',
                    parent: '(string|element)'
                },
                _ = {
                    SHOW: 'show' + r,
                    SHOWN: 'shown' + r,
                    HIDE: 'hide' + r,
                    HIDDEN: 'hidden' + r,
                    CLICK_DATA_API: 'click' + r + '.data-api'
                },
                p = {
                    SHOW: 'show',
                    COLLAPSE: 'collapse',
                    COLLAPSING: 'collapsing',
                    COLLAPSED: 'collapsed'
                },
                m = {
                    WIDTH: 'width',
                    HEIGHT: 'height'
                },
                g = {
                    ACTIVES: '.show, .collapsing',
                    DATA_TOGGLE: '[data-toggle="collapse"]'
                },
                f = function() {
                    function r(t, n) {
                        this._isTransitioning = !1, this._element = t, this._config = this._getConfig(n), this._triggerArray = e.makeArray(e('[data-toggle="collapse"][href="#' + t.id + '"],' + ('[data-toggle="collapse"][data-target="#' + t.id + '"]')));
                        for (var o = e(g.DATA_TOGGLE), a = 0; a < o.length; a++) {
                            var r = o[a],
                                i = l.getSelectorFromElement(r);
                            null !== i && 0 < e(i).filter(t).length && (this._selector = i, this._triggerArray.push(r))
                        }
                        this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle()
                    }
                    var i = r.prototype;
                    return i.toggle = function() {
                        e(this._element).hasClass(p.SHOW) ? this.hide() : this.show()
                    }, i.show = function() {
                        var t = this;
                        if (!(this._isTransitioning || e(this._element).hasClass(p.SHOW))) {
                            var o, a;
                            if (this._parent && (o = e.makeArray(e(this._parent).find(g.ACTIVES).filter('[data-parent="' + this._config.parent + '"]')), 0 === o.length && (o = null)), !(o && (a = e(o).not(this._selector).data(n), a && a._isTransitioning))) {
                                var i = e.Event(_.SHOW);
                                if (e(this._element).trigger(i), !i.isDefaultPrevented()) {
                                    o && (r._jQueryInterface.call(e(o).not(this._selector), 'hide'), !a && e(o).data(n, null));
                                    var d = this._getDimension();
                                    e(this._element).removeClass(p.COLLAPSE).addClass(p.COLLAPSING), this._element.style[d] = 0, 0 < this._triggerArray.length && e(this._triggerArray).removeClass(p.COLLAPSED).attr('aria-expanded', !0), this.setTransitioning(!0);
                                    var c = function() {
                                        e(t._element).removeClass(p.COLLAPSING).addClass(p.COLLAPSE).addClass(p.SHOW), t._element.style[d] = '', t.setTransitioning(!1), e(t._element).trigger(_.SHOWN)
                                    };
                                    if (!l.supportsTransitionEnd()) return void c();
                                    var m = d[0].toUpperCase() + d.slice(1);
                                    e(this._element).one(l.TRANSITION_END, c).emulateTransitionEnd(s), this._element.style[d] = this._element['scroll' + m] + 'px'
                                }
                            }
                        }
                    }, i.hide = function() {
                        var t = this;
                        if (!this._isTransitioning && e(this._element).hasClass(p.SHOW)) {
                            var n = e.Event(_.HIDE);
                            if (e(this._element).trigger(n), !n.isDefaultPrevented()) {
                                var o = this._getDimension();
                                if (this._element.style[o] = this._element.getBoundingClientRect()[o] + 'px', l.reflow(this._element), e(this._element).addClass(p.COLLAPSING).removeClass(p.COLLAPSE).removeClass(p.SHOW), 0 < this._triggerArray.length)
                                    for (var a = 0; a < this._triggerArray.length; a++) {
                                        var r = this._triggerArray[a],
                                            i = l.getSelectorFromElement(r);
                                        if (null !== i) {
                                            var d = e(i);
                                            d.hasClass(p.SHOW) || e(r).addClass(p.COLLAPSED).attr('aria-expanded', !1)
                                        }
                                    }
                                this.setTransitioning(!0);
                                var c = function() {
                                    t.setTransitioning(!1), e(t._element).removeClass(p.COLLAPSING).addClass(p.COLLAPSE).trigger(_.HIDDEN)
                                };
                                return this._element.style[o] = '', l.supportsTransitionEnd() ? void e(this._element).one(l.TRANSITION_END, c).emulateTransitionEnd(s) : void c()
                            }
                        }
                    }, i.setTransitioning = function(e) {
                        this._isTransitioning = e
                    }, i.dispose = function() {
                        e.removeData(this._element, n), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null
                    }, i._getConfig = function(e) {
                        return e = a({}, d, e), e.toggle = !!e.toggle, l.typeCheckConfig(t, e, c), e
                    }, i._getDimension = function() {
                        var t = e(this._element).hasClass(m.WIDTH);
                        return t ? m.WIDTH : m.HEIGHT
                    }, i._getParent = function() {
                        var t = this,
                            n = null;
                        l.isElement(this._config.parent) ? (n = this._config.parent, 'undefined' != typeof this._config.parent.jquery && (n = this._config.parent[0])) : n = e(this._config.parent)[0];
                        var o = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]';
                        return e(n).find(o).each(function(e, n) {
                            t._addAriaAndCollapsedClass(r._getTargetFromElement(n), [n])
                        }), n
                    }, i._addAriaAndCollapsedClass = function(t, n) {
                        if (t) {
                            var o = e(t).hasClass(p.SHOW);
                            0 < n.length && e(n).toggleClass(p.COLLAPSED, !o).attr('aria-expanded', o)
                        }
                    }, r._getTargetFromElement = function(t) {
                        var n = l.getSelectorFromElement(t);
                        return n ? e(n)[0] : null
                    }, r._jQueryInterface = function(t) {
                        return this.each(function() {
                            var o = e(this),
                                i = o.data(n),
                                l = a({}, d, o.data(), 'object' == typeof t && t);
                            if (!i && l.toggle && /show|hide/.test(t) && (l.toggle = !1), i || (i = new r(this, l), o.data(n, i)), 'string' == typeof t) {
                                if ('undefined' == typeof i[t]) throw new TypeError('No method named "' + t + '"');
                                i[t]()
                            }
                        })
                    }, o(r, null, [{
                        key: 'VERSION',
                        get: function() {
                            return '4.0.0'
                        }
                    }, {
                        key: 'Default',
                        get: function() {
                            return d
                        }
                    }]), r
                }();
            return e(document).on(_.CLICK_DATA_API, g.DATA_TOGGLE, function(t) {
                'A' === t.currentTarget.tagName && t.preventDefault();
                var o = e(this),
                    a = l.getSelectorFromElement(this);
                e(a).each(function() {
                    var t = e(this),
                        a = t.data(n),
                        r = a ? 'toggle' : o.data();
                    f._jQueryInterface.call(t, r)
                })
            }), e.fn[t] = f._jQueryInterface, e.fn[t].Constructor = f, e.fn[t].noConflict = function() {
                return e.fn[t] = i, f._jQueryInterface
            }, f
        }(e),
        p = function(e) {
            var t = 'modal',
                n = 'bs.modal',
                r = '.' + n,
                i = e.fn[t],
                s = 300,
                d = 150,
                c = {
                    backdrop: !0,
                    keyboard: !0,
                    focus: !0,
                    show: !0
                },
                _ = {
                    backdrop: '(boolean|string)',
                    keyboard: 'boolean',
                    focus: 'boolean',
                    show: 'boolean'
                },
                p = {
                    HIDE: 'hide' + r,
                    HIDDEN: 'hidden' + r,
                    SHOW: 'show' + r,
                    SHOWN: 'shown' + r,
                    FOCUSIN: 'focusin' + r,
                    RESIZE: 'resize' + r,
                    CLICK_DISMISS: 'click.dismiss' + r,
                    KEYDOWN_DISMISS: 'keydown.dismiss' + r,
                    MOUSEUP_DISMISS: 'mouseup.dismiss' + r,
                    MOUSEDOWN_DISMISS: 'mousedown.dismiss' + r,
                    CLICK_DATA_API: 'click' + r + '.data-api'
                },
                m = {
                    SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
                    BACKDROP: 'modal-backdrop',
                    OPEN: 'modal-open',
                    FADE: 'fade',
                    SHOW: 'show'
                },
                g = {
                    DIALOG: '.modal-dialog',
                    DATA_TOGGLE: '[data-toggle="modal"]',
                    DATA_DISMISS: '[data-dismiss="modal"]',
                    FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
                    STICKY_CONTENT: '.sticky-top',
                    NAVBAR_TOGGLER: '.navbar-toggler'
                },
                f = function() {
                    function i(t, n) {
                        this._config = this._getConfig(n), this._element = t, this._dialog = e(t).find(g.DIALOG)[0], this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._originalBodyPadding = 0, this._scrollbarWidth = 0
                    }
                    var f = i.prototype;
                    return f.toggle = function(e) {
                        return this._isShown ? this.hide() : this.show(e)
                    }, f.show = function(t) {
                        var n = this;
                        if (!(this._isTransitioning || this._isShown)) {
                            l.supportsTransitionEnd() && e(this._element).hasClass(m.FADE) && (this._isTransitioning = !0);
                            var o = e.Event(p.SHOW, {
                                relatedTarget: t
                            });
                            e(this._element).trigger(o), this._isShown || o.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), e(document.body).addClass(m.OPEN), this._setEscapeEvent(), this._setResizeEvent(), e(this._element).on(p.CLICK_DISMISS, g.DATA_DISMISS, function(e) {
                                return n.hide(e)
                            }), e(this._dialog).on(p.MOUSEDOWN_DISMISS, function() {
                                e(n._element).one(p.MOUSEUP_DISMISS, function(t) {
                                    e(t.target).is(n._element) && (n._ignoreBackdropClick = !0)
                                })
                            }), this._showBackdrop(function() {
                                return n._showElement(t)
                            }))
                        }
                    }, f.hide = function(t) {
                        var n = this;
                        if (t && t.preventDefault(), !this._isTransitioning && this._isShown) {
                            var o = e.Event(p.HIDE);
                            if (e(this._element).trigger(o), this._isShown && !o.isDefaultPrevented()) {
                                this._isShown = !1;
                                var a = l.supportsTransitionEnd() && e(this._element).hasClass(m.FADE);
                                a && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), e(document).off(p.FOCUSIN), e(this._element).removeClass(m.SHOW), e(this._element).off(p.CLICK_DISMISS), e(this._dialog).off(p.MOUSEDOWN_DISMISS), a ? e(this._element).one(l.TRANSITION_END, function(e) {
                                    return n._hideModal(e)
                                }).emulateTransitionEnd(s) : this._hideModal()
                            }
                        }
                    }, f.dispose = function() {
                        e.removeData(this._element, n), e(window, document, this._element, this._backdrop).off(r), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._scrollbarWidth = null
                    }, f.handleUpdate = function() {
                        this._adjustDialog()
                    }, f._getConfig = function(e) {
                        return e = a({}, c, e), l.typeCheckConfig(t, e, _), e
                    }, f._showElement = function(t) {
                        var n = this,
                            o = l.supportsTransitionEnd() && e(this._element).hasClass(m.FADE);
                        this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = 'block', this._element.removeAttribute('aria-hidden'), this._element.scrollTop = 0, o && l.reflow(this._element), e(this._element).addClass(m.SHOW), this._config.focus && this._enforceFocus();
                        var a = e.Event(p.SHOWN, {
                                relatedTarget: t
                            }),
                            r = function() {
                                n._config.focus && n._element.focus(), n._isTransitioning = !1, e(n._element).trigger(a)
                            };
                        o ? e(this._dialog).one(l.TRANSITION_END, r).emulateTransitionEnd(s) : r()
                    }, f._enforceFocus = function() {
                        var t = this;
                        e(document).off(p.FOCUSIN).on(p.FOCUSIN, function(n) {
                            document !== n.target && t._element !== n.target && 0 === e(t._element).has(n.target).length && t._element.focus()
                        })
                    }, f._setEscapeEvent = function() {
                        var t = this;
                        this._isShown && this._config.keyboard ? e(this._element).on(p.KEYDOWN_DISMISS, function(e) {
                            e.which === 27 && (e.preventDefault(), t.hide())
                        }) : !this._isShown && e(this._element).off(p.KEYDOWN_DISMISS)
                    }, f._setResizeEvent = function() {
                        var t = this;
                        this._isShown ? e(window).on(p.RESIZE, function(e) {
                            return t.handleUpdate(e)
                        }) : e(window).off(p.RESIZE)
                    }, f._hideModal = function() {
                        var t = this;
                        this._element.style.display = 'none', this._element.setAttribute('aria-hidden', !0), this._isTransitioning = !1, this._showBackdrop(function() {
                            e(document.body).removeClass(m.OPEN), t._resetAdjustments(), t._resetScrollbar(), e(t._element).trigger(p.HIDDEN)
                        })
                    }, f._removeBackdrop = function() {
                        this._backdrop && (e(this._backdrop).remove(), this._backdrop = null)
                    }, f._showBackdrop = function(t) {
                        var n = this,
                            o = e(this._element).hasClass(m.FADE) ? m.FADE : '';
                        if (this._isShown && this._config.backdrop) {
                            var a = l.supportsTransitionEnd() && o;
                            if (this._backdrop = document.createElement('div'), this._backdrop.className = m.BACKDROP, o && e(this._backdrop).addClass(o), e(this._backdrop).appendTo(document.body), e(this._element).on(p.CLICK_DISMISS, function(e) {
                                    return n._ignoreBackdropClick ? void(n._ignoreBackdropClick = !1) : void(e.target !== e.currentTarget || ('static' === n._config.backdrop ? n._element.focus() : n.hide()))
                                }), a && l.reflow(this._backdrop), e(this._backdrop).addClass(m.SHOW), !t) return;
                            if (!a) return void t();
                            e(this._backdrop).one(l.TRANSITION_END, t).emulateTransitionEnd(d)
                        } else if (!this._isShown && this._backdrop) {
                            e(this._backdrop).removeClass(m.SHOW);
                            var r = function() {
                                n._removeBackdrop(), t && t()
                            };
                            l.supportsTransitionEnd() && e(this._element).hasClass(m.FADE) ? e(this._backdrop).one(l.TRANSITION_END, r).emulateTransitionEnd(d) : r()
                        } else t && t()
                    }, f._adjustDialog = function() {
                        var e = this._element.scrollHeight > document.documentElement.clientHeight;
                        !this._isBodyOverflowing && e && (this._element.style.paddingLeft = this._scrollbarWidth + 'px'), this._isBodyOverflowing && !e && (this._element.style.paddingRight = this._scrollbarWidth + 'px')
                    }, f._resetAdjustments = function() {
                        this._element.style.paddingLeft = '', this._element.style.paddingRight = ''
                    }, f._checkScrollbar = function() {
                        var e = document.body.getBoundingClientRect();
                        this._isBodyOverflowing = e.left + e.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
                    }, f._setScrollbar = function() {
                        var t = this;
                        if (this._isBodyOverflowing) {
                            e(g.FIXED_CONTENT).each(function(n, o) {
                                var a = e(o)[0].style.paddingRight,
                                    r = e(o).css('padding-right');
                                e(o).data('padding-right', a).css('padding-right', parseFloat(r) + t._scrollbarWidth + 'px')
                            }), e(g.STICKY_CONTENT).each(function(n, o) {
                                var a = e(o)[0].style.marginRight,
                                    r = e(o).css('margin-right');
                                e(o).data('margin-right', a).css('margin-right', parseFloat(r) - t._scrollbarWidth + 'px')
                            }), e(g.NAVBAR_TOGGLER).each(function(n, o) {
                                var a = e(o)[0].style.marginRight,
                                    r = e(o).css('margin-right');
                                e(o).data('margin-right', a).css('margin-right', parseFloat(r) + t._scrollbarWidth + 'px')
                            });
                            var n = document.body.style.paddingRight,
                                o = e('body').css('padding-right');
                            e('body').data('padding-right', n).css('padding-right', parseFloat(o) + this._scrollbarWidth + 'px')
                        }
                    }, f._resetScrollbar = function() {
                        e(g.FIXED_CONTENT).each(function(t, n) {
                            var o = e(n).data('padding-right');
                            'undefined' != typeof o && e(n).css('padding-right', o).removeData('padding-right')
                        }), e(g.STICKY_CONTENT + ', ' + g.NAVBAR_TOGGLER).each(function(t, n) {
                            var o = e(n).data('margin-right');
                            'undefined' != typeof o && e(n).css('margin-right', o).removeData('margin-right')
                        });
                        var t = e('body').data('padding-right');
                        'undefined' != typeof t && e('body').css('padding-right', t).removeData('padding-right')
                    }, f._getScrollbarWidth = function() {
                        var e = document.createElement('div');
                        e.className = m.SCROLLBAR_MEASURER, document.body.appendChild(e);
                        var t = e.getBoundingClientRect().width - e.clientWidth;
                        return document.body.removeChild(e), t
                    }, i._jQueryInterface = function(t, o) {
                        return this.each(function() {
                            var r = e(this).data(n),
                                l = a({}, i.Default, e(this).data(), 'object' == typeof t && t);
                            if (r || (r = new i(this, l), e(this).data(n, r)), 'string' == typeof t) {
                                if ('undefined' == typeof r[t]) throw new TypeError('No method named "' + t + '"');
                                r[t](o)
                            } else l.show && r.show(o)
                        })
                    }, o(i, null, [{
                        key: 'VERSION',
                        get: function() {
                            return '4.0.0'
                        }
                    }, {
                        key: 'Default',
                        get: function() {
                            return c
                        }
                    }]), i
                }();
            return e(document).on(p.CLICK_DATA_API, g.DATA_TOGGLE, function(t) {
                var o, r = this,
                    i = l.getSelectorFromElement(this);
                i && (o = e(i)[0]);
                var s = e(o).data(n) ? 'toggle' : a({}, e(o).data(), e(this).data());
                ('A' === this.tagName || 'AREA' === this.tagName) && t.preventDefault();
                var d = e(o).one(p.SHOW, function(t) {
                    t.isDefaultPrevented() || d.one(p.HIDDEN, function() {
                        e(r).is(':visible') && r.focus()
                    })
                });
                f._jQueryInterface.call(e(o), s, this)
            }), e.fn[t] = f._jQueryInterface, e.fn[t].Constructor = f, e.fn[t].noConflict = function() {
                return e.fn[t] = i, f._jQueryInterface
            }, f
        }(e),
        m = function(e) {
            var n = 'tooltip',
                r = 'bs.tooltip',
                i = '.' + r,
                s = e.fn[n],
                d = /(^|\s)bs-tooltip\S+/g,
                c = {
                    animation: 'boolean',
                    template: 'string',
                    title: '(string|element|function)',
                    trigger: 'string',
                    delay: '(number|object)',
                    html: 'boolean',
                    selector: '(string|boolean)',
                    placement: '(string|function)',
                    offset: '(number|string)',
                    container: '(string|element|boolean)',
                    fallbackPlacement: '(string|array)',
                    boundary: '(string|element)'
                },
                _ = {
                    AUTO: 'auto',
                    TOP: 'top',
                    RIGHT: 'right',
                    BOTTOM: 'bottom',
                    LEFT: 'left'
                },
                p = {
                    animation: !0,
                    template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
                    trigger: 'hover focus',
                    title: '',
                    delay: 0,
                    html: !1,
                    selector: !1,
                    placement: 'top',
                    offset: 0,
                    container: !1,
                    fallbackPlacement: 'flip',
                    boundary: 'scrollParent'
                },
                m = {
                    SHOW: 'show',
                    OUT: 'out'
                },
                g = {
                    HIDE: 'hide' + i,
                    HIDDEN: 'hidden' + i,
                    SHOW: 'show' + i,
                    SHOWN: 'shown' + i,
                    INSERTED: 'inserted' + i,
                    CLICK: 'click' + i,
                    FOCUSIN: 'focusin' + i,
                    FOCUSOUT: 'focusout' + i,
                    MOUSEENTER: 'mouseenter' + i,
                    MOUSELEAVE: 'mouseleave' + i
                },
                f = {
                    FADE: 'fade',
                    SHOW: 'show'
                },
                u = {
                    TOOLTIP: '.tooltip',
                    TOOLTIP_INNER: '.tooltip-inner',
                    ARROW: '.arrow'
                },
                E = {
                    HOVER: 'hover',
                    FOCUS: 'focus',
                    CLICK: 'click',
                    MANUAL: 'manual'
                },
                h = function() {
                    function s(e, n) {
                        if ('undefined' == typeof t) throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
                        this._isEnabled = !0, this._timeout = 0, this._hoverState = '', this._activeTrigger = {}, this._popper = null, this.element = e, this.config = this._getConfig(n), this.tip = null, this._setListeners()
                    }
                    var h = s.prototype;
                    return h.enable = function() {
                        this._isEnabled = !0
                    }, h.disable = function() {
                        this._isEnabled = !1
                    }, h.toggleEnabled = function() {
                        this._isEnabled = !this._isEnabled
                    }, h.toggle = function(t) {
                        if (this._isEnabled)
                            if (t) {
                                var n = this.constructor.DATA_KEY,
                                    o = e(t.currentTarget).data(n);
                                o || (o = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(n, o)), o._activeTrigger.click = !o._activeTrigger.click, o._isWithActiveTrigger() ? o._enter(null, o) : o._leave(null, o)
                            } else {
                                if (e(this.getTipElement()).hasClass(f.SHOW)) return void this._leave(null, this);
                                this._enter(null, this)
                            }
                    }, h.dispose = function() {
                        clearTimeout(this._timeout), e.removeData(this.element, this.constructor.DATA_KEY), e(this.element).off(this.constructor.EVENT_KEY), e(this.element).closest('.modal').off('hide.bs.modal'), this.tip && e(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, null !== this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null
                    }, h.show = function() {
                        var n = this;
                        if ('none' === e(this.element).css('display')) throw new Error('Please use show on visible elements');
                        var o = e.Event(this.constructor.Event.SHOW);
                        if (this.isWithContent() && this._isEnabled) {
                            e(this.element).trigger(o);
                            var a = e.contains(this.element.ownerDocument.documentElement, this.element);
                            if (o.isDefaultPrevented() || !a) return;
                            var r = this.getTipElement(),
                                i = l.getUID(this.constructor.NAME);
                            r.setAttribute('id', i), this.element.setAttribute('aria-describedby', i), this.setContent(), this.config.animation && e(r).addClass(f.FADE);
                            var d = 'function' == typeof this.config.placement ? this.config.placement.call(this, r, this.element) : this.config.placement,
                                c = this._getAttachment(d);
                            this.addAttachmentClass(c);
                            var _ = !1 === this.config.container ? document.body : e(this.config.container);
                            e(r).data(this.constructor.DATA_KEY, this), e.contains(this.element.ownerDocument.documentElement, this.tip) || e(r).appendTo(_), e(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new t(this.element, r, {
                                placement: c,
                                modifiers: {
                                    offset: {
                                        offset: this.config.offset
                                    },
                                    flip: {
                                        behavior: this.config.fallbackPlacement
                                    },
                                    arrow: {
                                        element: u.ARROW
                                    },
                                    preventOverflow: {
                                        boundariesElement: this.config.boundary
                                    }
                                },
                                onCreate: function(e) {
                                    e.originalPlacement !== e.placement && n._handlePopperPlacementChange(e)
                                },
                                onUpdate: function(e) {
                                    n._handlePopperPlacementChange(e)
                                }
                            }), e(r).addClass(f.SHOW), 'ontouchstart' in document.documentElement && e('body').children().on('mouseover', null, e.noop);
                            var p = function() {
                                n.config.animation && n._fixTransition();
                                var t = n._hoverState;
                                n._hoverState = null, e(n.element).trigger(n.constructor.Event.SHOWN), t === m.OUT && n._leave(null, n)
                            };
                            l.supportsTransitionEnd() && e(this.tip).hasClass(f.FADE) ? e(this.tip).one(l.TRANSITION_END, p).emulateTransitionEnd(s._TRANSITION_DURATION) : p()
                        }
                    }, h.hide = function(t) {
                        var n = this,
                            o = this.getTipElement(),
                            a = e.Event(this.constructor.Event.HIDE),
                            r = function() {
                                n._hoverState !== m.SHOW && o.parentNode && o.parentNode.removeChild(o), n._cleanTipClass(), n.element.removeAttribute('aria-describedby'), e(n.element).trigger(n.constructor.Event.HIDDEN), null !== n._popper && n._popper.destroy(), t && t()
                            };
                        e(this.element).trigger(a), a.isDefaultPrevented() || (e(o).removeClass(f.SHOW), 'ontouchstart' in document.documentElement && e('body').children().off('mouseover', null, e.noop), this._activeTrigger[E.CLICK] = !1, this._activeTrigger[E.FOCUS] = !1, this._activeTrigger[E.HOVER] = !1, l.supportsTransitionEnd() && e(this.tip).hasClass(f.FADE) ? e(o).one(l.TRANSITION_END, r).emulateTransitionEnd(150) : r(), this._hoverState = '')
                    }, h.update = function() {
                        null !== this._popper && this._popper.scheduleUpdate()
                    }, h.isWithContent = function() {
                        return !!this.getTitle()
                    }, h.addAttachmentClass = function(t) {
                        e(this.getTipElement()).addClass('bs-tooltip' + '-' + t)
                    }, h.getTipElement = function() {
                        return this.tip = this.tip || e(this.config.template)[0], this.tip
                    }, h.setContent = function() {
                        var t = e(this.getTipElement());
                        this.setElementContent(t.find(u.TOOLTIP_INNER), this.getTitle()), t.removeClass(f.FADE + ' ' + f.SHOW)
                    }, h.setElementContent = function(t, n) {
                        var o = this.config.html;
                        'object' == typeof n && (n.nodeType || n.jquery) ? o ? !e(n).parent().is(t) && t.empty().append(n) : t.text(e(n).text()) : t[o ? 'html' : 'text'](n)
                    }, h.getTitle = function() {
                        var e = this.element.getAttribute('data-original-title');
                        return e || (e = 'function' == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), e
                    }, h._getAttachment = function(e) {
                        return _[e.toUpperCase()]
                    }, h._setListeners = function() {
                        var t = this,
                            n = this.config.trigger.split(' ');
                        n.forEach(function(n) {
                            if ('click' === n) e(t.element).on(t.constructor.Event.CLICK, t.config.selector, function(e) {
                                return t.toggle(e)
                            });
                            else if (n !== E.MANUAL) {
                                var o = n === E.HOVER ? t.constructor.Event.MOUSEENTER : t.constructor.Event.FOCUSIN,
                                    a = n === E.HOVER ? t.constructor.Event.MOUSELEAVE : t.constructor.Event.FOCUSOUT;
                                e(t.element).on(o, t.config.selector, function(e) {
                                    return t._enter(e)
                                }).on(a, t.config.selector, function(e) {
                                    return t._leave(e)
                                })
                            }
                            e(t.element).closest('.modal').on('hide.bs.modal', function() {
                                return t.hide()
                            })
                        }), this.config.selector ? this.config = a({}, this.config, {
                            trigger: 'manual',
                            selector: ''
                        }) : this._fixTitle()
                    }, h._fixTitle = function() {
                        var e = typeof this.element.getAttribute('data-original-title');
                        (this.element.getAttribute('title') || 'string' != e) && (this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''), this.element.setAttribute('title', ''))
                    }, h._enter = function(t, n) {
                        var o = this.constructor.DATA_KEY;
                        return (n = n || e(t.currentTarget).data(o), n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(o, n)), t && (n._activeTrigger['focusin' === t.type ? E.FOCUS : E.HOVER] = !0), e(n.getTipElement()).hasClass(f.SHOW) || n._hoverState === m.SHOW) ? void(n._hoverState = m.SHOW) : (clearTimeout(n._timeout), n._hoverState = m.SHOW, n.config.delay && n.config.delay.show ? void(n._timeout = setTimeout(function() {
                            n._hoverState === m.SHOW && n.show()
                        }, n.config.delay.show)) : void n.show())
                    }, h._leave = function(t, n) {
                        var o = this.constructor.DATA_KEY;
                        if (n = n || e(t.currentTarget).data(o), n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(o, n)), t && (n._activeTrigger['focusout' === t.type ? E.FOCUS : E.HOVER] = !1), !n._isWithActiveTrigger()) return clearTimeout(n._timeout), n._hoverState = m.OUT, n.config.delay && n.config.delay.hide ? void(n._timeout = setTimeout(function() {
                            n._hoverState === m.OUT && n.hide()
                        }, n.config.delay.hide)) : void n.hide()
                    }, h._isWithActiveTrigger = function() {
                        for (var e in this._activeTrigger)
                            if (this._activeTrigger[e]) return !0;
                        return !1
                    }, h._getConfig = function(t) {
                        return t = a({}, this.constructor.Default, e(this.element).data(), t), 'number' == typeof t.delay && (t.delay = {
                            show: t.delay,
                            hide: t.delay
                        }), 'number' == typeof t.title && (t.title = t.title.toString()), 'number' == typeof t.content && (t.content = t.content.toString()), l.typeCheckConfig(n, t, this.constructor.DefaultType), t
                    }, h._getDelegateConfig = function() {
                        var e = {};
                        if (this.config)
                            for (var t in this.config) this.constructor.Default[t] !== this.config[t] && (e[t] = this.config[t]);
                        return e
                    }, h._cleanTipClass = function() {
                        var t = e(this.getTipElement()),
                            n = t.attr('class').match(d);
                        null !== n && 0 < n.length && t.removeClass(n.join(''))
                    }, h._handlePopperPlacementChange = function(e) {
                        this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(e.placement))
                    }, h._fixTransition = function() {
                        var t = this.getTipElement(),
                            n = this.config.animation;
                        null !== t.getAttribute('x-placement') || (e(t).removeClass(f.FADE), this.config.animation = !1, this.hide(), this.show(), this.config.animation = n)
                    }, s._jQueryInterface = function(t) {
                        return this.each(function() {
                            var n = e(this).data(r);
                            if ((n || !/dispose|hide/.test(t)) && (n || (n = new s(this, 'object' == typeof t && t), e(this).data(r, n)), 'string' == typeof t)) {
                                if ('undefined' == typeof n[t]) throw new TypeError('No method named "' + t + '"');
                                n[t]()
                            }
                        })
                    }, o(s, null, [{
                        key: 'VERSION',
                        get: function() {
                            return '4.0.0'
                        }
                    }, {
                        key: 'Default',
                        get: function() {
                            return p
                        }
                    }, {
                        key: 'NAME',
                        get: function() {
                            return n
                        }
                    }, {
                        key: 'DATA_KEY',
                        get: function() {
                            return r
                        }
                    }, {
                        key: 'Event',
                        get: function() {
                            return g
                        }
                    }, {
                        key: 'EVENT_KEY',
                        get: function() {
                            return i
                        }
                    }, {
                        key: 'DefaultType',
                        get: function() {
                            return c
                        }
                    }]), s
                }();
            return e.fn[n] = h._jQueryInterface, e.fn[n].Constructor = h, e.fn[n].noConflict = function() {
                return e.fn[n] = s, h._jQueryInterface
            }, h
        }(e, t),
        g = function(e) {
            var t = 'popover',
                n = 'bs.popover',
                i = '.' + n,
                l = e.fn[t],
                s = /(^|\s)bs-popover\S+/g,
                d = a({}, m.Default, {
                    placement: 'right',
                    trigger: 'click',
                    content: '',
                    template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
                }),
                c = a({}, m.DefaultType, {
                    content: '(string|element|function)'
                }),
                _ = {
                    FADE: 'fade',
                    SHOW: 'show'
                },
                p = {
                    TITLE: '.popover-header',
                    CONTENT: '.popover-body'
                },
                g = {
                    HIDE: 'hide' + i,
                    HIDDEN: 'hidden' + i,
                    SHOW: 'show' + i,
                    SHOWN: 'shown' + i,
                    INSERTED: 'inserted' + i,
                    CLICK: 'click' + i,
                    FOCUSIN: 'focusin' + i,
                    FOCUSOUT: 'focusout' + i,
                    MOUSEENTER: 'mouseenter' + i,
                    MOUSELEAVE: 'mouseleave' + i
                },
                f = function(a) {
                    function l() {
                        return a.apply(this, arguments) || this
                    }
                    r(l, a);
                    var m = l.prototype;
                    return m.isWithContent = function() {
                        return this.getTitle() || this._getContent()
                    }, m.addAttachmentClass = function(t) {
                        e(this.getTipElement()).addClass('bs-popover' + '-' + t)
                    }, m.getTipElement = function() {
                        return this.tip = this.tip || e(this.config.template)[0], this.tip
                    }, m.setContent = function() {
                        var t = e(this.getTipElement());
                        this.setElementContent(t.find(p.TITLE), this.getTitle());
                        var n = this._getContent();
                        'function' == typeof n && (n = n.call(this.element)), this.setElementContent(t.find(p.CONTENT), n), t.removeClass(_.FADE + ' ' + _.SHOW)
                    }, m._getContent = function() {
                        return this.element.getAttribute('data-content') || this.config.content
                    }, m._cleanTipClass = function() {
                        var t = e(this.getTipElement()),
                            n = t.attr('class').match(s);
                        null !== n && 0 < n.length && t.removeClass(n.join(''))
                    }, l._jQueryInterface = function(t) {
                        return this.each(function() {
                            var o = e(this).data(n),
                                a = 'object' == typeof t ? t : null;
                            if ((o || !/destroy|hide/.test(t)) && (o || (o = new l(this, a), e(this).data(n, o)), 'string' == typeof t)) {
                                if ('undefined' == typeof o[t]) throw new TypeError('No method named "' + t + '"');
                                o[t]()
                            }
                        })
                    }, o(l, null, [{
                        key: 'VERSION',
                        get: function() {
                            return '4.0.0'
                        }
                    }, {
                        key: 'Default',
                        get: function() {
                            return d
                        }
                    }, {
                        key: 'NAME',
                        get: function() {
                            return t
                        }
                    }, {
                        key: 'DATA_KEY',
                        get: function() {
                            return n
                        }
                    }, {
                        key: 'Event',
                        get: function() {
                            return g
                        }
                    }, {
                        key: 'EVENT_KEY',
                        get: function() {
                            return i
                        }
                    }, {
                        key: 'DefaultType',
                        get: function() {
                            return c
                        }
                    }]), l
                }(m);
            return e.fn[t] = f._jQueryInterface, e.fn[t].Constructor = f, e.fn[t].noConflict = function() {
                return e.fn[t] = l, f._jQueryInterface
            }, f
        }(e),
        f = function(e) {
            var t = 'scrollspy',
                n = 'bs.scrollspy',
                r = '.' + n,
                s = e.fn[t],
                d = {
                    offset: 10,
                    method: 'auto',
                    target: ''
                },
                c = {
                    offset: 'number',
                    method: 'string',
                    target: '(string|element)'
                },
                _ = {
                    ACTIVATE: 'activate' + r,
                    SCROLL: 'scroll' + r,
                    LOAD_DATA_API: 'load' + r + '.data-api'
                },
                p = {
                    DROPDOWN_ITEM: 'dropdown-item',
                    DROPDOWN_MENU: 'dropdown-menu',
                    ACTIVE: 'active'
                },
                m = {
                    DATA_SPY: '[data-spy="scroll"]',
                    ACTIVE: '.active',
                    NAV_LIST_GROUP: '.nav, .list-group',
                    NAV_LINKS: '.nav-link',
                    NAV_ITEMS: '.nav-item',
                    LIST_ITEMS: '.list-group-item',
                    DROPDOWN: '.dropdown',
                    DROPDOWN_ITEMS: '.dropdown-item',
                    DROPDOWN_TOGGLE: '.dropdown-toggle'
                },
                g = {
                    OFFSET: 'offset',
                    POSITION: 'position'
                },
                f = function() {
                    function s(t, n) {
                        var o = this;
                        this._element = t, this._scrollElement = 'BODY' === t.tagName ? window : t, this._config = this._getConfig(n), this._selector = this._config.target + ' ' + m.NAV_LINKS + ',' + (this._config.target + ' ' + m.LIST_ITEMS + ',') + (this._config.target + ' ' + m.DROPDOWN_ITEMS), this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, e(this._scrollElement).on(_.SCROLL, function(e) {
                            return o._process(e)
                        }), this.refresh(), this._process()
                    }
                    var f = s.prototype;
                    return f.refresh = function() {
                        var t = this,
                            n = this._scrollElement === this._scrollElement.window ? g.OFFSET : g.POSITION,
                            o = 'auto' === this._config.method ? n : this._config.method,
                            a = o === g.POSITION ? this._getScrollTop() : 0;
                        this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight();
                        var r = e.makeArray(e(this._selector));
                        r.map(function(t) {
                            var n, r = l.getSelectorFromElement(t);
                            if (r && (n = e(r)[0]), n) {
                                var i = n.getBoundingClientRect();
                                if (i.width || i.height) return [e(n)[o]().top + a, r]
                            }
                            return null
                        }).filter(function(e) {
                            return e
                        }).sort(function(e, t) {
                            return e[0] - t[0]
                        }).forEach(function(e) {
                            t._offsets.push(e[0]), t._targets.push(e[1])
                        })
                    }, f.dispose = function() {
                        e.removeData(this._element, n), e(this._scrollElement).off(r), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null
                    }, f._getConfig = function(n) {
                        if (n = a({}, d, n), 'string' != typeof n.target) {
                            var o = e(n.target).attr('id');
                            o || (o = l.getUID(t), e(n.target).attr('id', o)), n.target = '#' + o
                        }
                        return l.typeCheckConfig(t, n, c), n
                    }, f._getScrollTop = function() {
                        return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
                    }, f._getScrollHeight = function() {
                        return this._scrollElement.scrollHeight || i(document.body.scrollHeight, document.documentElement.scrollHeight)
                    }, f._getOffsetHeight = function() {
                        return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
                    }, f._process = function() {
                        var e = this._getScrollTop() + this._config.offset,
                            t = this._getScrollHeight(),
                            n = this._config.offset + t - this._getOffsetHeight();
                        if (this._scrollHeight !== t && this.refresh(), e >= n) {
                            var o = this._targets[this._targets.length - 1];
                            return void(this._activeTarget !== o && this._activate(o))
                        }
                        if (this._activeTarget && e < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear();
                        for (var a, r = this._offsets.length; r--;) a = this._activeTarget !== this._targets[r] && e >= this._offsets[r] && ('undefined' == typeof this._offsets[r + 1] || e < this._offsets[r + 1]), a && this._activate(this._targets[r])
                    }, f._activate = function(t) {
                        this._activeTarget = t, this._clear();
                        var n = this._selector.split(',');
                        n = n.map(function(e) {
                            return e + '[data-target="' + t + '"],' + (e + '[href="' + t + '"]')
                        });
                        var o = e(n.join(','));
                        o.hasClass(p.DROPDOWN_ITEM) ? (o.closest(m.DROPDOWN).find(m.DROPDOWN_TOGGLE).addClass(p.ACTIVE), o.addClass(p.ACTIVE)) : (o.addClass(p.ACTIVE), o.parents(m.NAV_LIST_GROUP).prev(m.NAV_LINKS + ', ' + m.LIST_ITEMS).addClass(p.ACTIVE), o.parents(m.NAV_LIST_GROUP).prev(m.NAV_ITEMS).children(m.NAV_LINKS).addClass(p.ACTIVE)), e(this._scrollElement).trigger(_.ACTIVATE, {
                            relatedTarget: t
                        })
                    }, f._clear = function() {
                        e(this._selector).filter(m.ACTIVE).removeClass(p.ACTIVE)
                    }, s._jQueryInterface = function(t) {
                        return this.each(function() {
                            var o = e(this).data(n);
                            if (o || (o = new s(this, 'object' == typeof t && t), e(this).data(n, o)), 'string' == typeof t) {
                                if ('undefined' == typeof o[t]) throw new TypeError('No method named "' + t + '"');
                                o[t]()
                            }
                        })
                    }, o(s, null, [{
                        key: 'VERSION',
                        get: function() {
                            return '4.0.0'
                        }
                    }, {
                        key: 'Default',
                        get: function() {
                            return d
                        }
                    }]), s
                }();
            return e(window).on(_.LOAD_DATA_API, function() {
                for (var t, n = e.makeArray(e(m.DATA_SPY)), o = n.length; o--;) t = e(n[o]), f._jQueryInterface.call(t, t.data())
            }), e.fn[t] = f._jQueryInterface, e.fn[t].Constructor = f, e.fn[t].noConflict = function() {
                return e.fn[t] = s, f._jQueryInterface
            }, f
        }(e),
        u = function(e) {
            var t = 'tab',
                n = 'bs.tab',
                a = '.' + n,
                r = e.fn[t],
                i = {
                    HIDE: 'hide' + a,
                    HIDDEN: 'hidden' + a,
                    SHOW: 'show' + a,
                    SHOWN: 'shown' + a,
                    CLICK_DATA_API: 'click' + a + '.data-api'
                },
                s = {
                    DROPDOWN_MENU: 'dropdown-menu',
                    ACTIVE: 'active',
                    DISABLED: 'disabled',
                    FADE: 'fade',
                    SHOW: 'show'
                },
                d = {
                    DROPDOWN: '.dropdown',
                    NAV_LIST_GROUP: '.nav, .list-group',
                    ACTIVE: '.active',
                    ACTIVE_UL: '> li > .active',
                    DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
                    DROPDOWN_TOGGLE: '.dropdown-toggle',
                    DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
                },
                c = function() {
                    function t(e) {
                        this._element = e
                    }
                    var a = t.prototype;
                    return a.show = function() {
                        var t = this;
                        if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && e(this._element).hasClass(s.ACTIVE) || e(this._element).hasClass(s.DISABLED))) {
                            var n, o, a = e(this._element).closest(d.NAV_LIST_GROUP)[0],
                                r = l.getSelectorFromElement(this._element);
                            if (a) {
                                var c = 'UL' === a.nodeName ? d.ACTIVE_UL : d.ACTIVE;
                                o = e.makeArray(e(a).find(c)), o = o[o.length - 1]
                            }
                            var _ = e.Event(i.HIDE, {
                                    relatedTarget: this._element
                                }),
                                p = e.Event(i.SHOW, {
                                    relatedTarget: o
                                });
                            if (o && e(o).trigger(_), e(this._element).trigger(p), !(p.isDefaultPrevented() || _.isDefaultPrevented())) {
                                r && (n = e(r)[0]), this._activate(this._element, a);
                                var m = function() {
                                    var n = e.Event(i.HIDDEN, {
                                            relatedTarget: t._element
                                        }),
                                        a = e.Event(i.SHOWN, {
                                            relatedTarget: o
                                        });
                                    e(o).trigger(n), e(t._element).trigger(a)
                                };
                                n ? this._activate(n, n.parentNode, m) : m()
                            }
                        }
                    }, a.dispose = function() {
                        e.removeData(this._element, n), this._element = null
                    }, a._activate = function(t, n, o) {
                        var a, r = this;
                        a = 'UL' === n.nodeName ? e(n).find(d.ACTIVE_UL) : e(n).children(d.ACTIVE);
                        var i = a[0],
                            c = o && l.supportsTransitionEnd() && i && e(i).hasClass(s.FADE),
                            _ = function() {
                                return r._transitionComplete(t, i, o)
                            };
                        i && c ? e(i).one(l.TRANSITION_END, _).emulateTransitionEnd(150) : _()
                    }, a._transitionComplete = function(t, n, o) {
                        if (n) {
                            e(n).removeClass(s.SHOW + ' ' + s.ACTIVE);
                            var a = e(n.parentNode).find(d.DROPDOWN_ACTIVE_CHILD)[0];
                            a && e(a).removeClass(s.ACTIVE), 'tab' === n.getAttribute('role') && n.setAttribute('aria-selected', !1)
                        }
                        if (e(t).addClass(s.ACTIVE), 'tab' === t.getAttribute('role') && t.setAttribute('aria-selected', !0), l.reflow(t), e(t).addClass(s.SHOW), t.parentNode && e(t.parentNode).hasClass(s.DROPDOWN_MENU)) {
                            var r = e(t).closest(d.DROPDOWN)[0];
                            r && e(r).find(d.DROPDOWN_TOGGLE).addClass(s.ACTIVE), t.setAttribute('aria-expanded', !0)
                        }
                        o && o()
                    }, t._jQueryInterface = function(o) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            if (r || (r = new t(this), a.data(n, r)), 'string' == typeof o) {
                                if ('undefined' == typeof r[o]) throw new TypeError('No method named "' + o + '"');
                                r[o]()
                            }
                        })
                    }, o(t, null, [{
                        key: 'VERSION',
                        get: function() {
                            return '4.0.0'
                        }
                    }]), t
                }();
            return e(document).on(i.CLICK_DATA_API, d.DATA_TOGGLE, function(t) {
                t.preventDefault(), c._jQueryInterface.call(e(this), 'show')
            }), e.fn[t] = c._jQueryInterface, e.fn[t].Constructor = c, e.fn[t].noConflict = function() {
                return e.fn[t] = r, c._jQueryInterface
            }, c
        }(e),
        E = function() {
            function e() {
                if (window.QUnit) return !1;
                var e = document.createElement('bmd');
                for (var t in o)
                    if (void 0 !== e.style[t]) return o[t];
                return !1
            }
            var t = !1,
                n = '',
                o = {
                    WebkitTransition: 'webkitTransitionEnd',
                    MozTransition: 'transitionend',
                    OTransition: 'oTransitionEnd otransitionend',
                    transition: 'transitionend'
                };
            return function() {
                for (var a in t = e(), o) n += ' ' + o[a]
            }(), {
                transitionEndSupported: function() {
                    return t
                },
                transitionEndSelector: function() {
                    return n
                },
                isChar: function(e) {
                    return !('undefined' != typeof e.which) || 'number' == typeof e.which && 0 < e.which && !e.ctrlKey && !e.metaKey && !e.altKey && 8 !== e.which && 9 !== e.which && 13 !== e.which && 16 !== e.which && 17 !== e.which && 20 !== e.which && 27 !== e.which
                },
                assert: function(e, t, n) {
                    if (t) throw void 0 === !e && e.css('border', '1px solid red'), console.error(n, e), n
                },
                describe: function(e) {
                    return void 0 === e ? 'undefined' : 0 === e.length ? '(no matching elements)' : e[0].outerHTML.split('>')[0] + '>'
                }
            }
        }(jQuery),
        h = function(e) {
            var t = {
                    BMD_FORM_GROUP: 'bmd-form-group',
                    IS_FILLED: 'is-filled',
                    IS_FOCUSED: 'is-focused'
                },
                n = {
                    BMD_FORM_GROUP: '.' + t.BMD_FORM_GROUP
                },
                o = {},
                a = function() {
                    function a(t, n, a) {
                        for (var r in void 0 === a && (a = {}), this.$element = t, this.config = e.extend(!0, {}, o, n), a) this[r] = a[r]
                    }
                    var r = a.prototype;
                    return r.dispose = function(e) {
                        this.$element.data(e, null), this.$element = null, this.config = null
                    }, r.addFormGroupFocus = function() {
                        this.$element.prop('disabled') || this.$bmdFormGroup.addClass(t.IS_FOCUSED)
                    }, r.removeFormGroupFocus = function() {
                        this.$bmdFormGroup.removeClass(t.IS_FOCUSED)
                    }, r.removeIsFilled = function() {
                        this.$bmdFormGroup.removeClass(t.IS_FILLED)
                    }, r.addIsFilled = function() {
                        this.$bmdFormGroup.addClass(t.IS_FILLED)
                    }, r.findMdbFormGroup = function(t) {
                        void 0 === t && (t = !0);
                        var o = this.$element.closest(n.BMD_FORM_GROUP);
                        return 0 === o.length && t && e.error('Failed to find ' + n.BMD_FORM_GROUP + ' for ' + E.describe(this.$element)), o
                    }, a
                }();
            return a
        }(jQuery),
        A = function(e) {
            var t = {
                    FORM_GROUP: 'form-group',
                    BMD_FORM_GROUP: 'bmd-form-group',
                    BMD_LABEL: 'bmd-label',
                    BMD_LABEL_STATIC: 'bmd-label-static',
                    BMD_LABEL_PLACEHOLDER: 'bmd-label-placeholder',
                    BMD_LABEL_FLOATING: 'bmd-label-floating',
                    HAS_DANGER: 'has-danger',
                    IS_FILLED: 'is-filled',
                    IS_FOCUSED: 'is-focused',
                    INPUT_GROUP: 'input-group'
                },
                n = {
                    FORM_GROUP: '.' + t.FORM_GROUP,
                    BMD_FORM_GROUP: '.' + t.BMD_FORM_GROUP,
                    BMD_LABEL_WILDCARD: 'label[class^=\'' + t.BMD_LABEL + '\'], label[class*=\' ' + t.BMD_LABEL + '\']'
                },
                o = {
                    validate: !1,
                    formGroup: {
                        required: !1
                    },
                    bmdFormGroup: {
                        template: '<span class=\'' + t.BMD_FORM_GROUP + '\'></span>',
                        create: !0,
                        required: !0
                    },
                    label: {
                        required: !1,
                        selectors: ['.form-control-label', '> label'],
                        className: t.BMD_LABEL_STATIC
                    },
                    requiredClasses: [],
                    invalidComponentMatches: [],
                    convertInputSizeVariations: !0
                },
                a = {
                    "form-control-lg": 'bmd-form-group-lg',
                    "form-control-sm": 'bmd-form-group-sm'
                },
                i = function(i) {
                    function l(t, n, a) {
                        var r;
                        return void 0 === a && (a = {}), r = i.call(this, t, e.extend(!0, {}, o, n), a) || this, r._rejectInvalidComponentMatches(), r.rejectWithoutRequiredStructure(), r._rejectWithoutRequiredClasses(), r.$formGroup = r.findFormGroup(r.config.formGroup.required), r.$bmdFormGroup = r.resolveMdbFormGroup(), r.$bmdLabel = r.resolveMdbLabel(), r.resolveMdbFormGroupSizing(), r.addFocusListener(), r.addChangeListener(), '' != r.$element.val() && r.addIsFilled(), r
                    }
                    r(l, i);
                    var s = l.prototype;
                    return s.dispose = function(e) {
                        i.prototype.dispose.call(this, e), this.$bmdFormGroup = null, this.$formGroup = null
                    }, s.rejectWithoutRequiredStructure = function() {}, s.addFocusListener = function() {
                        var e = this;
                        this.$element.on('focus', function() {
                            e.addFormGroupFocus()
                        }).on('blur', function() {
                            e.removeFormGroupFocus()
                        })
                    }, s.addChangeListener = function() {
                        var e = this;
                        this.$element.on('keydown paste', function(t) {
                            E.isChar(t) && e.addIsFilled()
                        }).on('keyup change', function() {
                            if (e.isEmpty() ? e.removeIsFilled() : e.addIsFilled(), e.config.validate) {
                                var t = 'undefined' == typeof e.$element[0].checkValidity || e.$element[0].checkValidity();
                                t ? e.removeHasDanger() : e.addHasDanger()
                            }
                        })
                    }, s.addHasDanger = function() {
                        this.$bmdFormGroup.addClass(t.HAS_DANGER)
                    }, s.removeHasDanger = function() {
                        this.$bmdFormGroup.removeClass(t.HAS_DANGER)
                    }, s.isEmpty = function() {
                        return null === this.$element.val() || void 0 === this.$element.val() || '' === this.$element.val()
                    }, s.resolveMdbFormGroup = function() {
                        var e = this.findMdbFormGroup(!1);
                        return (void 0 === e || 0 === e.length) && (this.config.bmdFormGroup.create && (void 0 === this.$formGroup || 0 === this.$formGroup.length) ? this.outerElement().parent().hasClass(t.INPUT_GROUP) ? this.outerElement().parent().wrap(this.config.bmdFormGroup.template) : this.outerElement().wrap(this.config.bmdFormGroup.template) : this.$formGroup.addClass(t.BMD_FORM_GROUP), e = this.findMdbFormGroup(this.config.bmdFormGroup.required)), e
                    }, s.outerElement = function() {
                        return this.$element
                    }, s.resolveMdbLabel = function() {
                        var e = this.$bmdFormGroup.find(n.BMD_LABEL_WILDCARD);
                        return (void 0 === e || 0 === e.length) && (e = this.findMdbLabel(this.config.label.required), void 0 === e || 0 === e.length || e.addClass(this.config.label.className)), e
                    }, s.findMdbLabel = function(t) {
                        void 0 === t && (t = !0);
                        for (var o = null, a = this.config.label.selectors, r = Array.isArray(a), i = 0, a = r ? a : a[Symbol.iterator]();;) {
                            var l;
                            if (r) {
                                if (i >= a.length) break;
                                l = a[i++]
                            } else {
                                if (i = a.next(), i.done) break;
                                l = i.value
                            }
                            var s = l;
                            if (o = e.isFunction(s) ? s(this) : this.$bmdFormGroup.find(s), void 0 !== o && 0 < o.length) break
                        }
                        return 0 === o.length && t && e.error('Failed to find ' + n.BMD_LABEL_WILDCARD + ' within form-group for ' + E.describe(this.$element)), o
                    }, s.findFormGroup = function(t) {
                        void 0 === t && (t = !0);
                        var o = this.$element.closest(n.FORM_GROUP);
                        return 0 === o.length && t && e.error('Failed to find ' + n.FORM_GROUP + ' for ' + E.describe(this.$element)), o
                    }, s.resolveMdbFormGroupSizing = function() {
                        if (this.config.convertInputSizeVariations)
                            for (var e in a) this.$element.hasClass(e) && this.$bmdFormGroup.addClass(a[e])
                    }, s._rejectInvalidComponentMatches = function() {
                        for (var e = this.config.invalidComponentMatches, t = Array.isArray(e), n = 0, e = t ? e : e[Symbol.iterator]();;) {
                            var o;
                            if (t) {
                                if (n >= e.length) break;
                                o = e[n++]
                            } else {
                                if (n = e.next(), n.done) break;
                                o = n.value
                            }
                            var a = o;
                            a.rejectMatch(this.constructor.name, this.$element)
                        }
                    }, s._rejectWithoutRequiredClasses = function() {
                        for (var t = this.config.requiredClasses, n = Array.isArray(t), o = 0, t = n ? t : t[Symbol.iterator]();;) {
                            var a;
                            if (n) {
                                if (o >= t.length) break;
                                a = t[o++]
                            } else {
                                if (o = t.next(), o.done) break;
                                a = o.value
                            }
                            var r = a,
                                i = !1;
                            if (-1 !== r.indexOf('||'))
                                for (var l = r.split('||'), s = l, d = Array.isArray(s), c = 0, s = d ? s : s[Symbol.iterator]();;) {
                                    var _;
                                    if (d) {
                                        if (c >= s.length) break;
                                        _ = s[c++]
                                    } else {
                                        if (c = s.next(), c.done) break;
                                        _ = c.value
                                    }
                                    var p = _;
                                    if (this.$element.hasClass(p)) {
                                        i = !0;
                                        break
                                    }
                                } else this.$element.hasClass(r) && (i = !0);
                            i || e.error(this.constructor.name + ' element: ' + E.describe(this.$element) + ' requires class: ' + r)
                        }
                    }, l
                }(h);
            return i
        }(jQuery),
        C = function(e) {
            var t = {
                    label: {
                        required: !1
                    }
                },
                n = {
                    LABEL: 'label'
                },
                o = function(o) {
                    function a(n, a, r) {
                        var i;
                        return i = o.call(this, n, e.extend(!0, {}, t, a), r) || this, i.decorateMarkup(), i
                    }
                    r(a, o);
                    var i = a.prototype;
                    return i.decorateMarkup = function() {
                        var t = e(this.config.template);
                        this.$element.after(t), !1 !== this.config.ripples && t.bmdRipples()
                    }, i.outerElement = function() {
                        return this.$element.parent().closest('.' + this.outerClass)
                    }, i.rejectWithoutRequiredStructure = function() {
                        E.assert(this.$element, 'label' === !this.$element.parent().prop('tagName'), this.constructor.name + '\'s ' + E.describe(this.$element) + ' parent element should be <label>.'), E.assert(this.$element, !this.outerElement().hasClass(this.outerClass), this.constructor.name + '\'s ' + E.describe(this.$element) + ' outer element should have class ' + this.outerClass + '.')
                    }, i.addFocusListener = function() {
                        var e = this;
                        this.$element.closest(n.LABEL).hover(function() {
                            e.addFormGroupFocus()
                        }, function() {
                            e.removeFormGroupFocus()
                        })
                    }, i.addChangeListener = function() {
                        var e = this;
                        this.$element.change(function() {
                            e.$element.blur()
                        })
                    }, a
                }(A);
            return o
        }(jQuery),
        I = function(e) {
            var t = 'checkbox',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                i = {
                    template: '<span class=\'checkbox-decorator\'><span class=\'check\'></span></span>'
                },
                l = function(o) {
                    function a(n, a, r) {
                        return void 0 === r && (r = {
                            inputType: t,
                            outerClass: t
                        }), o.call(this, n, e.extend(!0, i, a), r) || this
                    }
                    r(a, o);
                    var l = a.prototype;
                    return l.dispose = function(e) {
                        void 0 === e && (e = n), o.prototype.dispose.call(this, e)
                    }, a.matches = function(e) {
                        return 'checkbox' === e.attr('type')
                    }, a.rejectMatch = function(e, t) {
                        E.assert(this.$element, this.matches(t), e + ' component element ' + E.describe(t) + ' is invalid for type=\'checkbox\'.')
                    }, a._jQueryInterface = function(t) {
                        return this.each(function() {
                            var o = e(this),
                                r = o.data(n);
                            r || (r = new a(o, t), o.data(n, r))
                        })
                    }, a
                }(C);
            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
                return e.fn[o] = a, l._jQueryInterface
            }, l
        }(jQuery),
        T = function(e) {
            var t = 'checkboxInline',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                i = {
                    bmdFormGroup: {
                        create: !1,
                        required: !1
                    }
                },
                l = function(t) {
                    function o(n, o, a) {
                        return void 0 === a && (a = {
                            inputType: 'checkbox',
                            outerClass: 'checkbox-inline'
                        }), t.call(this, n, e.extend(!0, {}, i, o), a) || this
                    }
                    r(o, t);
                    var a = o.prototype;
                    return a.dispose = function() {
                        t.prototype.dispose.call(this, n)
                    }, o._jQueryInterface = function(t) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            r || (r = new o(a, t), a.data(n, r))
                        })
                    }, o
                }(I);
            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
                return e.fn[o] = a, l._jQueryInterface
            }, l
        }(jQuery),
        N = function(e) {
            var t = 'collapseInline',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                i = {
                    ANY_INPUT: 'input, select, textarea'
                },
                l = {
                    IN: 'in',
                    COLLAPSE: 'collapse',
                    COLLAPSING: 'collapsing',
                    COLLAPSED: 'collapsed',
                    WIDTH: 'width'
                },
                s = {},
                d = function(t) {
                    function o(n, o) {
                        var a;
                        a = t.call(this, n, e.extend(!0, {}, s, o)) || this, a.$bmdFormGroup = a.findMdbFormGroup(!0);
                        var r = n.data('target');
                        a.$collapse = e(r), E.assert(n, 0 === a.$collapse.length, 'Cannot find collapse target for ' + E.describe(n)), E.assert(a.$collapse, !a.$collapse.hasClass(l.COLLAPSE), E.describe(a.$collapse) + ' is expected to have the \'' + l.COLLAPSE + '\' class.  It is being targeted by ' + E.describe(n));
                        var d = a.$bmdFormGroup.find(i.ANY_INPUT);
                        return 0 < d.length && (a.$input = d.first()), a.$collapse.hasClass(l.WIDTH) || a.$collapse.addClass(l.WIDTH), a.$input && (a.$collapse.on('shown.bs.collapse', function() {
                            a.$input.focus()
                        }), a.$input.blur(function() {
                            a.$collapse.collapse('hide')
                        })), a
                    }
                    r(o, t);
                    var a = o.prototype;
                    return a.dispose = function() {
                        t.prototype.dispose.call(this, n), this.$bmdFormGroup = null, this.$collapse = null, this.$input = null
                    }, o._jQueryInterface = function(t) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            r || (r = new o(a, t), a.data(n, r))
                        })
                    }, o
                }(h);
            return e.fn[o] = d._jQueryInterface, e.fn[o].Constructor = d, e.fn[o].noConflict = function() {
                return e.fn[o] = a, d._jQueryInterface
            }, d
        }(jQuery),
        b = function(e) {
            var t = 'file',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                i = {},
                l = {
                    FILE: t,
                    IS_FILE: 'is-file'
                },
                s = {
                    FILENAMES: 'input.form-control[readonly]'
                },
                d = function(t) {
                    function o(n, o) {
                        var a;
                        return a = t.call(this, n, e.extend(!0, i, o)) || this, a.$bmdFormGroup.addClass(l.IS_FILE), a
                    }
                    r(o, t);
                    var a = o.prototype;
                    return a.dispose = function() {
                        t.prototype.dispose.call(this, n)
                    }, o.matches = function(e) {
                        return 'file' === e.attr('type')
                    }, o.rejectMatch = function(e, t) {
                        E.assert(this.$element, this.matches(t), e + ' component element ' + E.describe(t) + ' is invalid for type=\'file\'.')
                    }, a.outerElement = function() {
                        return this.$element.parent().closest('.' + l.FILE)
                    }, a.rejectWithoutRequiredStructure = function() {
                        E.assert(this.$element, 'label' === !this.outerElement().prop('tagName'), this.constructor.name + '\'s ' + E.describe(this.$element) + ' parent element ' + E.describe(this.outerElement()) + ' should be <label>.'), E.assert(this.$element, !this.outerElement().hasClass(l.FILE), this.constructor.name + '\'s ' + E.describe(this.$element) + ' parent element ' + E.describe(this.outerElement()) + ' should have class .' + l.FILE + '.')
                    }, a.addFocusListener = function() {
                        var e = this;
                        this.$bmdFormGroup.on('focus', function() {
                            e.addFormGroupFocus()
                        }).on('blur', function() {
                            e.removeFormGroupFocus()
                        })
                    }, a.addChangeListener = function() {
                        var t = this;
                        this.$element.on('change', function() {
                            var n = '';
                            e.each(t.$element.files, function(e, t) {
                                n += t.name + '  , '
                            }), n = n.substring(0, n.length - 2), n ? t.addIsFilled() : t.removeIsFilled(), t.$bmdFormGroup.find(s.FILENAMES).val(n)
                        })
                    }, o._jQueryInterface = function(t) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            r || (r = new o(a, t), a.data(n, r))
                        })
                    }, o
                }(A);
            return e.fn[o] = d._jQueryInterface, e.fn[o].Constructor = d, e.fn[o].noConflict = function() {
                return e.fn[o] = a, d._jQueryInterface
            }, d
        }(jQuery),
        O = function(e) {
            var t = 'radio',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                i = {
                    template: '<span class=\'bmd-radio\'></span>'
                },
                l = function(o) {
                    function a(n, a, r) {
                        return void 0 === r && (r = {
                            inputType: t,
                            outerClass: t
                        }), o.call(this, n, e.extend(!0, i, a), r) || this
                    }
                    r(a, o);
                    var l = a.prototype;
                    return l.dispose = function(e) {
                        void 0 === e && (e = n), o.prototype.dispose.call(this, e)
                    }, a.matches = function(e) {
                        return 'radio' === e.attr('type')
                    }, a.rejectMatch = function(e, t) {
                        E.assert(this.$element, this.matches(t), e + ' component element ' + E.describe(t) + ' is invalid for type=\'radio\'.')
                    }, a._jQueryInterface = function(t) {
                        return this.each(function() {
                            var o = e(this),
                                r = o.data(n);
                            r || (r = new a(o, t), o.data(n, r))
                        })
                    }, a
                }(C);
            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
                return e.fn[o] = a, l._jQueryInterface
            }, l
        }(jQuery),
        D = function(e) {
            var t = 'radioInline',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                i = {
                    bmdFormGroup: {
                        create: !1,
                        required: !1
                    }
                },
                l = function(t) {
                    function o(n, o, a) {
                        return void 0 === a && (a = {
                            inputType: 'radio',
                            outerClass: 'radio-inline'
                        }), t.call(this, n, e.extend(!0, {}, i, o), a) || this
                    }
                    r(o, t);
                    var a = o.prototype;
                    return a.dispose = function() {
                        t.prototype.dispose.call(this, n)
                    }, o._jQueryInterface = function(t) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            r || (r = new o(a, t), a.data(n, r))
                        })
                    }, o
                }(O);
            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
                return e.fn[o] = a, l._jQueryInterface
            }, l
        }(jQuery),
        y = function(e) {
            var t = {
                    requiredClasses: ['form-control']
                },
                n = function(n) {
                    function o(o, a) {
                        var r;
                        return r = n.call(this, o, e.extend(!0, t, a)) || this, r.isEmpty() && r.removeIsFilled(), r
                    }
                    return r(o, n), o
                }(A);
            return n
        }(jQuery),
        S = function(e) {
            var t = 'select',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                i = {
                    requiredClasses: ['form-control||custom-select']
                },
                l = function(t) {
                    function o(n, o) {
                        var a;
                        return a = t.call(this, n, e.extend(!0, i, o)) || this, a.addIsFilled(), a
                    }
                    r(o, t);
                    var a = o.prototype;
                    return a.dispose = function() {
                        t.prototype.dispose.call(this, n)
                    }, o.matches = function(e) {
                        return 'select' === e.prop('tagName')
                    }, o.rejectMatch = function(e, t) {
                        E.assert(this.$element, this.matches(t), e + ' component element ' + E.describe(t) + ' is invalid for <select>.')
                    }, o._jQueryInterface = function(t) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            r || (r = new o(a, t), a.data(n, r))
                        })
                    }, o
                }(y);
            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
                return e.fn[o] = a, l._jQueryInterface
            }, l
        }(jQuery),
        v = function(e) {
            var t = 'switch',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                i = {
                    template: '<span class=\'bmd-switch-track\'></span>'
                },
                l = function(t) {
                    function o(n, o, a) {
                        return void 0 === a && (a = {
                            inputType: 'checkbox',
                            outerClass: 'switch'
                        }), t.call(this, n, e.extend(!0, {}, i, o), a) || this
                    }
                    r(o, t);
                    var a = o.prototype;
                    return a.dispose = function() {
                        t.prototype.dispose.call(this, n)
                    }, o._jQueryInterface = function(t) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            r || (r = new o(a, t), a.data(n, r))
                        })
                    }, o
                }(I);
            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
                return e.fn[o] = a, l._jQueryInterface
            }, l
        }(jQuery),
        R = function(e) {
            var t = 'text',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                i = {},
                l = function(t) {
                    function o(n, o) {
                        return t.call(this, n, e.extend(!0, i, o)) || this
                    }
                    r(o, t);
                    var a = o.prototype;
                    return a.dispose = function(e) {
                        void 0 === e && (e = n), t.prototype.dispose.call(this, e)
                    }, o.matches = function(e) {
                        return 'text' === e.attr('type')
                    }, o.rejectMatch = function(e, t) {
                        E.assert(this.$element, this.matches(t), e + ' component element ' + E.describe(t) + ' is invalid for type=\'text\'.')
                    }, o._jQueryInterface = function(t) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            r || (r = new o(a, t), a.data(n, r))
                        })
                    }, o
                }(y);
            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
                return e.fn[o] = a, l._jQueryInterface
            }, l
        }(jQuery),
        M = function(e) {
            var t = 'textarea',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                i = {},
                l = function(t) {
                    function o(n, o) {
                        return t.call(this, n, e.extend(!0, i, o)) || this
                    }
                    r(o, t);
                    var a = o.prototype;
                    return a.dispose = function() {
                        t.prototype.dispose.call(this, n)
                    }, o.matches = function(e) {
                        return 'textarea' === e.prop('tagName')
                    }, o.rejectMatch = function(e, t) {
                        E.assert(this.$element, this.matches(t), e + ' component element ' + E.describe(t) + ' is invalid for <textarea>.')
                    }, o._jQueryInterface = function(t) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            r || (r = new o(a, t), a.data(n, r))
                        })
                    }, o
                }(y);
            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
                return e.fn[o] = a, l._jQueryInterface
            }, l
        }(jQuery),
        L = function(e) {
            if ('undefined' == typeof Popper) throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
            var t = 'dropdown',
                n = 'bs.dropdown',
                a = '.' + n,
                r = '.data-api',
                i = e.fn[t],
                s = 27,
                d = 32,
                c = 9,
                _ = /38|40|27/,
                p = {
                    HIDE: 'hide' + a,
                    HIDDEN: 'hidden' + a,
                    SHOW: 'show' + a,
                    SHOWN: 'shown' + a,
                    CLICK: 'click' + a,
                    CLICK_DATA_API: 'click' + a + r,
                    KEYDOWN_DATA_API: 'keydown' + a + r,
                    KEYUP_DATA_API: 'keyup' + a + r,
                    TRANSITION_END: 'transitionend webkitTransitionEnd oTransitionEnd animationend webkitAnimationEnd oAnimationEnd'
                },
                m = {
                    DISABLED: 'disabled',
                    SHOW: 'show',
                    SHOWING: 'showing',
                    HIDING: 'hiding',
                    DROPUP: 'dropup',
                    MENURIGHT: 'dropdown-menu-right',
                    MENULEFT: 'dropdown-menu-left'
                },
                g = {
                    DATA_TOGGLE: '[data-toggle="dropdown"]',
                    FORM_CHILD: '.dropdown form',
                    MENU: '.dropdown-menu',
                    NAVBAR_NAV: '.navbar-nav',
                    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
                },
                f = {
                    TOP: 'top-start',
                    TOPEND: 'top-end',
                    BOTTOM: 'bottom-start',
                    BOTTOMEND: 'bottom-end'
                },
                u = {
                    placement: f.BOTTOM,
                    offset: 0,
                    flip: !0
                },
                E = {
                    placement: 'string',
                    offset: '(number|string)',
                    flip: 'boolean'
                },
                h = function() {
                    function r(e, t) {
                        this._element = e, this._popper = null, this._config = this._getConfig(t), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners()
                    }
                    var i = r.prototype;
                    return i.toggle = function() {
                        var t = this;
                        if (!(this._element.disabled || e(this._element).hasClass(m.DISABLED))) {
                            var n = r._getParentFromElement(this._element),
                                o = e(this._menu).hasClass(m.SHOW);
                            if (r._clearMenus(), !o) {
                                var a = {
                                        relatedTarget: this._element
                                    },
                                    i = e.Event(p.SHOW, a);
                                if (e(n).trigger(i), !i.isDefaultPrevented()) {
                                    var l = this._element;
                                    e(n).hasClass(m.DROPUP) && (e(this._menu).hasClass(m.MENULEFT) || e(this._menu).hasClass(m.MENURIGHT)) && (l = n), this._popper = new Popper(l, this._menu, this._getPopperConfig()), 'ontouchstart' in document.documentElement && !e(n).closest(g.NAVBAR_NAV).length && e('body').children().on('mouseover', null, e.noop), this._element.focus(), this._element.setAttribute('aria-expanded', !0), e(this._menu).one(p.TRANSITION_END, function() {
                                        e(n).trigger(e.Event(p.SHOWN, a)), e(t._menu).removeClass(m.SHOWING)
                                    }), e(this._menu).addClass(m.SHOW + ' ' + m.SHOWING), e(n).addClass(m.SHOW)
                                }
                            }
                        }
                    }, i.dispose = function() {
                        e.removeData(this._element, n), e(this._element).off(a), this._element = null, this._menu = null, null !== this._popper && this._popper.destroy(), this._popper = null
                    }, i.update = function() {
                        this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate()
                    }, i._addEventListeners = function() {
                        var t = this;
                        e(this._element).on(p.CLICK, function(e) {
                            e.preventDefault(), e.stopPropagation(), t.toggle()
                        })
                    }, i._getConfig = function(n) {
                        var o = e(this._element).data();
                        return void 0 !== o.placement && (o.placement = f[o.placement.toUpperCase()]), n = e.extend({}, this.constructor.Default, e(this._element).data(), n), l.typeCheckConfig(t, n, this.constructor.DefaultType), n
                    }, i._getMenuElement = function() {
                        if (!this._menu) {
                            var t = r._getParentFromElement(this._element);
                            this._menu = e(t).find(g.MENU)[0]
                        }
                        return this._menu
                    }, i._getPlacement = function() {
                        var t = e(this._element).parent(),
                            n = this._config.placement;
                        return t.hasClass(m.DROPUP) || this._config.placement === f.TOP ? (n = f.TOP, e(this._menu).hasClass(m.MENURIGHT) && (n = f.TOPEND)) : e(this._menu).hasClass(m.MENURIGHT) && (n = f.BOTTOMEND), n
                    }, i._detectNavbar = function() {
                        return 0 < e(this._element).closest('.navbar').length
                    }, i._getPopperConfig = function() {
                        var e = {
                            placement: this._getPlacement(),
                            modifiers: {
                                offset: {
                                    offset: this._config.offset
                                },
                                flip: {
                                    enabled: this._config.flip
                                }
                            }
                        };
                        return this._inNavbar && (e.modifiers.applyStyle = {
                            enabled: !this._inNavbar
                        }), e
                    }, r._jQueryInterface = function(t) {
                        return this.each(function() {
                            var o = e(this).data(n),
                                a = 'object' == typeof t ? t : null;
                            if (o || (o = new r(this, a), e(this).data(n, o)), 'string' == typeof t) {
                                if (void 0 === o[t]) throw new Error('No method named "' + t + '"');
                                o[t]()
                            }
                        })
                    }, r._clearMenus = function(t) {
                        if (!(t && (t.which === 3 || 'keyup' === t.type && t.which !== c)))
                            for (var o, a = e.makeArray(e(g.DATA_TOGGLE)), l = function(o) {
                                    var i = r._getParentFromElement(a[o]),
                                        l = e(a[o]).data(n),
                                        s = {
                                            relatedTarget: a[o]
                                        };
                                    if (!l) return 'continue';
                                    var d = l._menu;
                                    if (!e(i).hasClass(m.SHOW)) return 'continue';
                                    if (t && ('click' === t.type && /input|textarea/i.test(t.target.tagName) || 'keyup' === t.type && t.which === c) && e.contains(i, t.target)) return 'continue';
                                    var _ = e.Event(p.HIDE, s);
                                    return e(i).trigger(_), _.isDefaultPrevented() ? 'continue' : void(('ontouchstart' in document.documentElement) && e('body').children().off('mouseover', null, e.noop), a[o].setAttribute('aria-expanded', 'false'), e(d).addClass(m.HIDING).removeClass(m.SHOW), e(i).removeClass(m.SHOW), e(d).one(p.TRANSITION_END, function() {
                                        e(i).trigger(e.Event(p.HIDDEN, s)), e(d).removeClass(m.HIDING)
                                    }))
                                }, s = 0; s < a.length; s++) o = l(s), 'continue' === o
                    }, r._getParentFromElement = function(t) {
                        var n, o = l.getSelectorFromElement(t);
                        return o && (n = e(o)[0]), n || t.parentNode
                    }, r._dataApiKeydownHandler = function(t) {
                        if (!(!_.test(t.which) || /button/i.test(t.target.tagName) && t.which === d || /input|textarea/i.test(t.target.tagName)) && (t.preventDefault(), t.stopPropagation(), !(this.disabled || e(this).hasClass(m.DISABLED)))) {
                            var n = r._getParentFromElement(this),
                                o = e(n).hasClass(m.SHOW);
                            if (!o && (t.which !== s || t.which !== d) || o && (t.which === s || t.which === d)) {
                                if (t.which === s) {
                                    var a = e(n).find(g.DATA_TOGGLE)[0];
                                    e(a).trigger('focus')
                                }
                                return void e(this).trigger('click')
                            }
                            var i = e(n).find(g.VISIBLE_ITEMS).get();
                            if (i.length) {
                                var l = i.indexOf(t.target);
                                t.which === 38 && 0 < l && l--, t.which === 40 && l < i.length - 1 && l++, 0 > l && (l = 0), i[l].focus()
                            }
                        }
                    }, o(r, null, [{
                        key: 'VERSION',
                        get: function() {
                            return '4.0.0-beta'
                        }
                    }, {
                        key: 'Default',
                        get: function() {
                            return u
                        }
                    }, {
                        key: 'DefaultType',
                        get: function() {
                            return E
                        }
                    }]), r
                }();
            return e(document).on(p.KEYDOWN_DATA_API, g.DATA_TOGGLE, h._dataApiKeydownHandler).on(p.KEYDOWN_DATA_API, g.MENU, h._dataApiKeydownHandler).on(p.CLICK_DATA_API + ' ' + p.KEYUP_DATA_API, h._clearMenus).on(p.CLICK_DATA_API, g.DATA_TOGGLE, function(t) {
                t.preventDefault(), t.stopPropagation(), h._jQueryInterface.call(e(this), 'toggle')
            }).on(p.CLICK_DATA_API, g.FORM_CHILD, function(t) {
                t.stopPropagation()
            }), e.fn[t] = h._jQueryInterface, e.fn[t].Constructor = h, e.fn[t].noConflict = function() {
                return e.fn[t] = i, h._jQueryInterface
            }, h
        }(jQuery),
        U = function(e) {
            var t = {
                    CANVAS: 'bmd-layout-canvas',
                    CONTAINER: 'bmd-layout-container',
                    BACKDROP: 'bmd-layout-backdrop'
                },
                n = {
                    CANVAS: '.' + t.CANVAS,
                    CONTAINER: '.' + t.CONTAINER,
                    BACKDROP: '.' + t.BACKDROP
                },
                o = {
                    canvas: {
                        create: !0,
                        required: !0,
                        template: '<div class="' + t.CANVAS + '"></div>'
                    },
                    backdrop: {
                        create: !0,
                        required: !0,
                        template: '<div class="' + t.BACKDROP + '"></div>'
                    }
                },
                a = function(t) {
                    function a(n, a, r) {
                        var i;
                        return void 0 === r && (r = {}), i = t.call(this, n, e.extend(!0, {}, o, a), r) || this, i.$container = i.findContainer(!0), i.$backdrop = i.resolveBackdrop(), i.resolveCanvas(), i
                    }
                    r(a, t);
                    var i = a.prototype;
                    return i.dispose = function(e) {
                        t.prototype.dispose.call(this, e), this.$container = null, this.$backdrop = null
                    }, i.resolveCanvas = function() {
                        var e = this.findCanvas(!1);
                        return (void 0 === e || 0 === e.length) && (this.config.canvas.create && this.$container.wrap(this.config.canvas.template), e = this.findCanvas(this.config.canvas.required)), e
                    }, i.findCanvas = function(t, o) {
                        void 0 === t && (t = !0), void 0 === o && (o = this.$container);
                        var a = o.closest(n.CANVAS);
                        return 0 === a.length && t && e.error('Failed to find ' + n.CANVAS + ' for ' + E.describe(o)), a
                    }, i.resolveBackdrop = function() {
                        var e = this.findBackdrop(!1);
                        return (void 0 === e || 0 === e.length) && (this.config.backdrop.create && this.$container.append(this.config.backdrop.template), e = this.findBackdrop(this.config.backdrop.required)), e
                    }, i.findBackdrop = function(t, o) {
                        void 0 === t && (t = !0), void 0 === o && (o = this.$container);
                        var a = o.find('> ' + n.BACKDROP);
                        return 0 === a.length && t && e.error('Failed to find ' + n.BACKDROP + ' for ' + E.describe(o)), a
                    }, i.findContainer = function(t, o) {
                        void 0 === t && (t = !0), void 0 === o && (o = this.$element);
                        var a = o.closest(n.CONTAINER);
                        return 0 === a.length && t && e.error('Failed to find ' + n.CONTAINER + ' for ' + E.describe(o)), a
                    }, a
                }(h);
            return a
        }(jQuery),
        P = function(e) {
            var t = 'drawer',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                i = {
                    ESCAPE: 27
                },
                l = {
                    IN: 'in',
                    DRAWER_IN: 'bmd-drawer-in',
                    DRAWER_OUT: 'bmd-drawer-out',
                    DRAWER: 'bmd-layout-drawer',
                    CONTAINER: 'bmd-layout-container'
                },
                s = {
                    focusSelector: 'a, button, input'
                },
                d = function(t) {
                    function o(n, o) {
                        var a;
                        return a = t.call(this, n, e.extend(!0, {}, s, o)) || this, a.$toggles = e('[data-toggle="drawer"][href="#' + a.$element[0].id + '"], [data-toggle="drawer"][data-target="#' + a.$element[0].id + '"]'), a._addAria(), a.$backdrop.keydown(function(e) {
                            e.which === i.ESCAPE && a.hide()
                        }).click(function() {
                            a.hide()
                        }), a.$element.keydown(function(e) {
                            e.which === i.ESCAPE && a.hide()
                        }), a.$toggles.click(function() {
                            a.toggle()
                        }), a
                    }
                    r(o, t);
                    var a = o.prototype;
                    return a.dispose = function() {
                        t.prototype.dispose.call(this, n), this.$toggles = null
                    }, a.toggle = function() {
                        this._isOpen() ? this.hide() : this.show()
                    }, a.show = function() {
                        if (!(this._isForcedClosed() || this._isOpen())) {
                            this.$toggles.attr('aria-expanded', !0), this.$element.attr('aria-expanded', !0), this.$element.attr('aria-hidden', !1);
                            var e = this.$element.find(this.config.focusSelector);
                            0 < e.length && e.first().focus(), this.$container.addClass(l.DRAWER_IN), this.$backdrop.addClass(l.IN)
                        }
                    }, a.hide = function() {
                        this._isOpen() && (this.$toggles.attr('aria-expanded', !1), this.$element.attr('aria-expanded', !1), this.$element.attr('aria-hidden', !0), this.$container.removeClass(l.DRAWER_IN), this.$backdrop.removeClass(l.IN))
                    }, a._isOpen = function() {
                        return this.$container.hasClass(l.DRAWER_IN)
                    }, a._isForcedClosed = function() {
                        return this.$container.hasClass(l.DRAWER_OUT)
                    }, a._addAria = function() {
                        var e = this._isOpen();
                        this.$element.attr('aria-expanded', e), this.$element.attr('aria-hidden', e), this.$toggles.length && this.$toggles.attr('aria-expanded', e)
                    }, o._jQueryInterface = function(t) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            r || (r = new o(a, t), a.data(n, r))
                        })
                    }, o
                }(U);
            return e.fn[o] = d._jQueryInterface, e.fn[o].Constructor = d, e.fn[o].noConflict = function() {
                return e.fn[o] = a, d._jQueryInterface
            }, d
        }(jQuery),
        w = function(e) {
            var t = 'ripples',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                r = {
                    CONTAINER: 'ripple-container',
                    DECORATOR: 'ripple-decorator'
                },
                l = {
                    CONTAINER: '.' + r.CONTAINER,
                    DECORATOR: '.' + r.DECORATOR
                },
                s = {
                    container: {
                        template: '<div class=\'' + r.CONTAINER + '\'></div>'
                    },
                    decorator: {
                        template: '<div class=\'' + r.DECORATOR + '\'></div>'
                    },
                    trigger: {
                        start: 'mousedown touchstart',
                        end: 'mouseup mouseleave touchend'
                    },
                    touchUserAgentRegex: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i,
                    duration: 500
                },
                d = function() {
                    function t(t, n) {
                        var o = this;
                        this.$element = t, this.config = e.extend(!0, {}, s, n), this.$element.on(this.config.trigger.start, function(e) {
                            o._onStartRipple(e)
                        })
                    }
                    var o = t.prototype;
                    return o.dispose = function() {
                        this.$element.data(n, null), this.$element = null, this.$container = null, this.$decorator = null, this.config = null
                    }, o._onStartRipple = function(e) {
                        var t = this;
                        if (!(this._isTouch() && 'mousedown' === e.type)) {
                            this._findOrCreateContainer();
                            var n = this._getRelY(e),
                                o = this._getRelX(e);
                            (n || o) && (this.$decorator.css({
                                left: o,
                                top: n,
                                "background-color": this._getRipplesColor()
                            }), this._forceStyleApplication(), this.rippleOn(), setTimeout(function() {
                                t.rippleEnd()
                            }, this.config.duration), this.$element.on(this.config.trigger.end, function() {
                                t.$decorator && (t.$decorator.data('mousedown', 'off'), 'off' === t.$decorator.data('animating') && t.rippleOut())
                            }))
                        }
                    }, o._findOrCreateContainer = function() {
                        (!this.$container || 0 < !this.$container.length) && (this.$element.append(this.config.container.template), this.$container = this.$element.find(l.CONTAINER)), this.$container.append(this.config.decorator.template), this.$decorator = this.$container.find(l.DECORATOR)
                    }, o._forceStyleApplication = function() {
                        return window.getComputedStyle(this.$decorator[0]).opacity
                    }, o._getRelX = function(e) {
                        var t = this.$container.offset(),
                            n = null;
                        return this._isTouch() ? (e = e.originalEvent, n = 1 === e.touches.length && e.touches[0].pageX - t.left) : n = e.pageX - t.left, n
                    }, o._getRelY = function(e) {
                        var t = this.$container.offset(),
                            n = null;
                        return this._isTouch() ? (e = e.originalEvent, n = 1 === e.touches.length && e.touches[0].pageY - t.top) : n = e.pageY - t.top, n
                    }, o._getRipplesColor = function() {
                        var e = this.$element.data('ripple-color') ? this.$element.data('ripple-color') : window.getComputedStyle(this.$element[0]).color;
                        return e
                    }, o._isTouch = function() {
                        return this.config.touchUserAgentRegex.test(navigator.userAgent)
                    }, o.rippleEnd = function() {
                        this.$decorator && (this.$decorator.data('animating', 'off'), 'off' === this.$decorator.data('mousedown') && this.rippleOut(this.$decorator))
                    }, o.rippleOut = function() {
                        var e = this;
                        this.$decorator.off(), E.transitionEndSupported() ? this.$decorator.addClass('ripple-out') : this.$decorator.animate({
                            opacity: 0
                        }, 100, function() {
                            e.$decorator.trigger('transitionend')
                        }), this.$decorator.on(E.transitionEndSelector(), function() {
                            e.$decorator && (e.$decorator.remove(), e.$decorator = null)
                        })
                    }, o.rippleOn = function() {
                        var e = this,
                            t = this._getNewSize();
                        E.transitionEndSupported() ? this.$decorator.css({
                            "-ms-transform": 'scale(' + t + ')',
                            "-moz-transform": 'scale(' + t + ')',
                            "-webkit-transform": 'scale(' + t + ')',
                            transform: 'scale(' + t + ')'
                        }).addClass('ripple-on').data('animating', 'on').data('mousedown', 'on') : this.$decorator.animate({
                            width: 2 * i(this.$element.outerWidth(), this.$element.outerHeight()),
                            height: 2 * i(this.$element.outerWidth(), this.$element.outerHeight()),
                            "margin-left": -1 * i(this.$element.outerWidth(), this.$element.outerHeight()),
                            "margin-top": -1 * i(this.$element.outerWidth(), this.$element.outerHeight()),
                            opacity: 0.2
                        }, this.config.duration, function() {
                            e.$decorator.trigger('transitionend')
                        })
                    }, o._getNewSize = function() {
                        return 2.5 * (i(this.$element.outerWidth(), this.$element.outerHeight()) / this.$decorator.outerWidth())
                    }, t._jQueryInterface = function(o) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            r || (r = new t(a, o), a.data(n, r))
                        })
                    }, t
                }();
            return e.fn[o] = d._jQueryInterface, e.fn[o].Constructor = d, e.fn[o].noConflict = function() {
                return e.fn[o] = a, d._jQueryInterface
            }, d
        }(jQuery),
        k = function(e) {
            var t = 'autofill',
                n = 'bmd.' + t,
                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
                a = e.fn[o],
                i = {},
                l = function(t) {
                    function o(n, o) {
                        var a;
                        return a = t.call(this, n, e.extend(!0, {}, i, o)) || this, a._watchLoading(), a._attachEventHandlers(), a
                    }
                    r(o, t);
                    var a = o.prototype;
                    return a.dispose = function() {
                        t.prototype.dispose.call(this, n)
                    }, a._watchLoading = function() {
                        var e = this;
                        setTimeout(function() {
                            clearInterval(e._onLoading)
                        }, 1e4)
                    }, a._onLoading = function() {
                        setInterval(function() {
                            e('input[type!=checkbox]').each(function(t, n) {
                                var o = e(n);
                                o.val() && o.val() !== o.attr('value') && o.trigger('change')
                            })
                        }, 100)
                    }, a._attachEventHandlers = function() {
                        var t = null;
                        e(document).on('focus', 'input', function(n) {
                            var o = e(n.currentTarget).closest('form').find('input').not('[type=file]');
                            t = setInterval(function() {
                                o.each(function(t, n) {
                                    var o = e(n);
                                    o.val() !== o.attr('value') && o.trigger('change')
                                })
                            }, 100)
                        }).on('blur', '.form-group input', function() {
                            clearInterval(t)
                        })
                    }, o._jQueryInterface = function(t) {
                        return this.each(function() {
                            var a = e(this),
                                r = a.data(n);
                            r || (r = new o(a, t), a.data(n, r))
                        })
                    }, o
                }(h);
            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
                return e.fn[o] = a, l._jQueryInterface
            }, l
        }(jQuery);
    Popper.Defaults.modifiers.computeStyle.gpuAcceleration = !1;
    (function(t) {
        var e = 'bootstrapMaterialDesign',
            n = 'bmd.' + e,
            o = e,
            a = t.fn[o],
            r = {
                global: {
                    validate: !1,
                    label: {
                        className: 'bmd-label-static'
                    }
                },
                autofill: {
                    selector: 'body'
                },
                checkbox: {
                    selector: '.checkbox > label > input[type=checkbox]'
                },
                checkboxInline: {
                    selector: 'label.checkbox-inline > input[type=checkbox]'
                },
                collapseInline: {
                    selector: '.bmd-collapse-inline [data-toggle="collapse"]'
                },
                drawer: {
                    selector: '.bmd-layout-drawer'
                },
                file: {
                    selector: 'input[type=file]'
                },
                radio: {
                    selector: '.radio > label > input[type=radio]'
                },
                radioInline: {
                    selector: 'label.radio-inline > input[type=radio]'
                },
                ripples: {
                    selector: ['.btn:not(.ripple-none)', '.card-image:not(.ripple-none)', '.navbar a:not(.ripple-none)', '.dropdown-menu a:not(.ripple-none)', '.nav-tabs a:not(.ripple-none)', '.pagination li:not(.active):not(.disabled) a:not(.ripple-none)', '.ripple']
                },
                select: {
                    selector: ['select']
                },
                switch: {
                    selector: '.switch > label > input[type=checkbox]'
                },
                text: {
                    selector: ['input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=button]):not([type=submit]):not([type=reset])']
                },
                textarea: {
                    selector: ['textarea']
                },
                arrive: !0,
                instantiation: ['ripples', 'checkbox', 'checkboxInline', 'collapseInline', 'drawer', 'radio', 'radioInline', 'switch', 'text', 'textarea', 'autofill']
            },
            i = function() {
                function e(e, n) {
                    var o = this;
                    this.$element = e, this.config = t.extend(!0, {}, r, n);
                    for (var a = t(document), i = function(e) {
                            var n = o.config[e];
                            if (n) {
                                var r = o._resolveSelector(n);
                                n = t.extend(!0, {}, o.config.global, n);
                                var i = '' + (e.charAt(0).toUpperCase() + e.slice(1)),
                                    l = 'bmd' + i;
                                try {
                                    t(r)[l](n), document.arrive && o.config.arrive && a.arrive(r, function() {
                                        t(this)[l](n)
                                    })
                                } catch (o) {
                                    var s = 'Failed to instantiate component: $(\'' + r + '\')[' + l + '](' + n + ')';
                                    throw console.error(s, o, '\nSelected elements: ', t(r)), o
                                }
                            }
                        }, l = this.config.instantiation, s = Array.isArray(l), d = 0, l = s ? l : l[Symbol.iterator]();;) {
                        var c;
                        if (s) {
                            if (d >= l.length) break;
                            c = l[d++]
                        } else {
                            if (d = l.next(), d.done) break;
                            c = d.value
                        }
                        var _ = c;
                        i(_)
                    }
                }
                var o = e.prototype;
                return o.dispose = function() {
                    this.$element.data(n, null), this.$element = null, this.config = null
                }, o._resolveSelector = function(e) {
                    var t = e.selector;
                    return Array.isArray(t) && (t = t.join(', ')), t
                }, e._jQueryInterface = function(o) {
                    return this.each(function() {
                        var a = t(this),
                            r = a.data(n);
                        r || (r = new e(a, o), a.data(n, r))
                    })
                }, e
            }();
        return t.fn[o] = i._jQueryInterface, t.fn[o].Constructor = i, t.fn[o].noConflict = function() {
            return t.fn[o] = a, i._jQueryInterface
        }, i
    })(jQuery)
});