/*! For license information please see main.js.LICENSE.txt */
(function() {
    var __webpack_modules__ = {
        78079: function() {
            !function() {
                function e() {
                    angular.bootstrap(document.body, ["xenaApp"])
                }
                "complete" === document.readyState || "loading" !== document.readyState && !document.documentElement.doScroll ? e() : angular.element(document.body).ready((function() {
                    e()
                }
                ))
            }()
        },
        64025: function() {
            "use strict";
            angular.module("xenaApp").controller("BookingAncillariesEnterDetailsController", ["$scope", "AncillaryService", "BookingPriceService", function(e, t, i) {
                window.ancillarieDataModule && (t.updateAncillaryData(window.ancillarieDataModule.ancillaryData),
                e.$watch(t.getAncillaries, (function(t) {
                    return e.ancillariesChanged()
                }
                ), !0),
                e.$watch(t.orderHasAncillaryWithDeliveryTime, (function(t) {
                    return e.showAncillaryOrderMessage = t
                }
                ), !0)),
                e.hiddenInputKey = "BookingModule.Rooms[0].AncillaryOrder.",
                e.hiddenInputCollection = {},
                e.showAncillaryOrderMessage = !0,
                e.bookingPrice = i.priceObject,
                e.init = function() {
                    return e.showAncillaryOrderMessage = t.orderHasAncillaryWithDeliveryTime()
                }
                ,
                e.ancillariesChanged = function() {
                    e.hiddenInputCollection = {};
                    var i = 0
                      , n = 0;
                    t.ancillaryData.ancillaries.forEach((function(t) {
                        t.Variants.forEach((function(t) {
                            t.Quantity && (e.addHiddenInput(n, i, t.Id, t.Quantity, t.PriceString),
                            i++)
                        }
                        )),
                        i > 0 && n++,
                        i = 0
                    }
                    ))
                }
                ,
                e.addHiddenInput = function(t, i, n, a, o) {
                    var r = e.hiddenInputKey + "Ancillaries[" + t + "].Variants[" + i + "].Id"
                      , s = e.hiddenInputKey + "Ancillaries[" + t + "].Variants[" + i + "].Quantity"
                      , l = e.hiddenInputKey + "Ancillaries[" + t + "].Variants[" + i + "].Price";
                    e.hiddenInputCollection[r] = n,
                    e.hiddenInputCollection[s] = a,
                    e.hiddenInputCollection[l] = o
                }
                ,
                e.setFirstRoomPrice = function(e) {
                    i.priceObject.roomPriceHtmlString = e
                }
            }
            ])
        },
        17618: function(e, t, i) {
            var n = i(19755)
              , a = i(19755);
            function o(e, t) {
                var i = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var n = Object.getOwnPropertySymbols(e);
                    t && (n = n.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }
                    ))),
                    i.push.apply(i, n)
                }
                return i
            }
            function r(e) {
                for (var t = 1; t < arguments.length; t++) {
                    var i = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? o(Object(i), !0).forEach((function(t) {
                        s(e, t, i[t])
                    }
                    )) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : o(Object(i)).forEach((function(t) {
                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))
                    }
                    ))
                }
                return e
            }
            function s(e, t, i) {
                return t in e ? Object.defineProperty(e, t, {
                    value: i,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0
                }) : e[t] = i,
                e
            }
            var l = i(93748)
              , c = i(17970);
            !function() {
                "use strict";
                function e(e, t, i) {
                    function o() {
                        n("body").toggleClass("popover-is-open")
                    }
                    e.showQuantityPickerTakeOwer = !1,
                    e.ancillary = void 0,
                    e.ancillaryTrackingObject = void 0,
                    e.bookingId = "",
                    e.quantityObject = {
                        maxQuantity: 6,
                        pointsQuantity: 0,
                        fiatQuantity: 0
                    },
                    e.isMyBookingPage = !1,
                    e.isConfirmationPage = !1,
                    e.productViewTrackingObj = {
                        trackingInformation: {
                            productid: ""
                        },
                        trackingEvent: "productview",
                        trackEvent: !1
                    },
                    e.productViewTrackingObjString = function() {
                        return JSON.stringify(e.productViewTrackingObj)
                    }
                    ,
                    e.onLoginLinkClick = l.onClickFunction,
                    e.init = function(t, i, n) {
                        var a, o, s, l;
                        e.hotelReservationTrackingData = hotelReservationDataObj,
                        e.ancillary = t,
                        e.isMyBookingPage = i,
                        e.isConfirmationPage = n,
                        e.quantityObject = (a = e.ancillary.QuantityInStock < e.quantityObject.maxQuantity,
                        e.quantityObject.maxQuantity = a ? e.ancillary.QuantityInStock : e.quantityObject.maxQuantity,
                        e.ancillary.Variants.reduce((function(e, t) {
                            return t.Id.includes("_LOY") ? e.pointsQuantity = t.Quantity : e.fiatQuantity = t.Quantity,
                            e
                        }
                        ), r({}, e.quantityObject))),
                        e.productViewTrackingObj = (o = e.productViewTrackingObj,
                        s = t.Id,
                        l = i,
                        r(r({}, o), {}, {
                            trackingInformation: r(r({}, o.trackingInformation), {}, {
                                productid: s
                            }),
                            trackEvent: l
                        })),
                        e.ancillaryTrackingObject = {
                            trackEvent: !1,
                            trackingEvent: "scchange",
                            trackingInformation: {}
                        }
                    }
                    ,
                    e.ancillaryTrackingObjectString = function() {
                        return JSON.stringify(e.ancillaryTrackingObject)
                    }
                    ,
                    e.showAncillary = function() {
                        a(".navigation-bar").addClass("force-to-bottom"),
                        navigator.userAgent.toLowerCase().indexOf("iphone") > -1 && a(".navigation-bar").addClass("absolute-position"),
                        o(),
                        e.showQuantityPickerTakeOwer = !0,
                        e.updateTrackingInformation(),
                        e.$broadcast("updateQuantityPickerBroadcast"),
                        setTimeout((function() {
                            a(".quantity-picker .custom-select:visible").focus()
                        }
                        ), 200)
                    }
                    ,
                    e.hideAncillary = function() {
                        a(".navigation-bar").removeClass("force-to-bottom"),
                        a(".navigation-bar .absolute-position") && a(".navigation-bar").removeClass("absolute-position"),
                        i.notifyUpdateAncillaryOptionsObservers(e.ancillary.Id),
                        o(),
                        e.showQuantityPickerTakeOwer = !1
                    }
                    ,
                    e.updateSelectedAncillaries = function() {
                        e.$broadcast("updateSelectedAncillariesBroadcast"),
                        o(),
                        e.showQuantityPickerTakeOwer = !1
                    }
                    ,
                    e.redirectToAncillaryPage = function() {
                        if (e.$broadcast("updateSelectedAncillariesBroadcast"),
                        e.totalQuantity() > 0) {
                            var n = function() {
                                var t = "";
                                t = "True" === i.ancillaryData.bookingInformation.urlEncryptionEnabled ? "" === i.ancillaryData.bookingInformation.refId ? "?bookingId=" + i.ancillaryData.bookingInformation.bookingId : "?RefId=" + i.ancillaryData.bookingInformation.refId : "?bookingId=" + i.ancillaryData.bookingInformation.bookingId;
                                t += "&hotel=" + i.ancillaryData.bookingInformation.hotelOperaId,
                                e.ancillary.Variants.forEach((function(e) {
                                    if (e.Quantity > 0) {
                                        var i = e.Id.includes("_LOY");
                                        t += (i ? "&variantIdLoy=" : "&variantId=") + e.Id,
                                        t += (i ? "&quantityLoy=" : "&quantity=") + e.Quantity
                                    }
                                }
                                )),
                                e.isConfirmationPage && (t += "&isConfirmationPage=" + e.isConfirmationPage);
                                return e.$parent.ancillaryPagePathName + t
                            }();
                            c.toggle((function() {
                                t.location.href = n
                            }
                            ))
                        }
                        o(),
                        e.showQuantityPickerTakeOwer = !1
                    }
                    ,
                    e.ancillaryIsSelected = function() {
                        return e.totalQuantity() > 0
                    }
                    ,
                    e.totalQuantity = function() {
                        return e.ancillary.Variants.reduce((function(e, t) {
                            return e + t.Quantity
                        }
                        ), 0)
                    }
                    ,
                    e.updateTrackingInformation = function() {
                        var t = i.getCurrentTrackingInfo(e.ancillary.Id)
                          , n = {
                            trackEvent: !1,
                            trackingEvent: "scchange",
                            trackingInformation: {}
                        };
                        n.trackingInformation = t.trackingInfo,
                        n.trackingInformation.productcategory = e.$parent.trackingFilterName,
                        n.trackingInformation.hotelbnr = i.ancillaryData.bookingInformation ? i.ancillaryData.bookingInformation.bookingId : "",
                        n.trackingInformation.hotelid = i.ancillaryData.bookingInformation ? i.ancillaryData.bookingInformation.hotelOperaId : "",
                        n.trackEvent = t.trackEvent,
                        Object.keys(e.hotelReservationTrackingData).forEach((function(t) {
                            var i = t.toLowerCase();
                            n.trackingInformation[i] = e.hotelReservationTrackingData[t]
                        }
                        )),
                        n.trackingInformation.hotelpagetype = e.isConfirmationPage ? "hotelconfirmationpage" : "addonpurchase",
                        e.ancillaryTrackingObject = n
                    }
                }
                angular.module("xenaApp").controller("BookingAncillaryController", e),
                e.$inject = ["$scope", "$window", "AncillaryService"]
            }()
        },
        82672: function(e, t, i) {
            var n = i(19755)
              , a = i(17970)
              , o = i(86455);
            !function() {
                "use strict";
                function e(e, t, i) {
                    e.circularLoader = '<div class="circular-loader"></div>',
                    e.warningIcon = '<span class="icon icon--info"></span>',
                    e.priceHtmlStringOnError = "Error, please reload this page",
                    e.hiddenIds = [],
                    e.hiddenInDom = !1,
                    e.showAncillaryOrderMessage = !0,
                    e.init = function(i) {
                        e.ancillary = t.getAncillaryById(i),
                        null !== window.sweetAlertJson && (e.cancelAlertData = window.sweetAlertJson)
                    }
                    ,
                    e.totalQuantity = function() {
                        return this.ancillary.Variants.reduce((function(e, t) {
                            return e + t.Quantity
                        }
                        ), 0)
                    }
                    ,
                    e.isHidden = function(t) {
                        return e.hiddenIds.indexOf(t) > -1
                    }
                    ,
                    e.totalAncillaryPriceString = function(e, t) {
                        if (this.ancillary.Variants.length < 1)
                            return "";
                        var i = this.ancillary.Variants.filter((function(e) {
                            return e.Quantity > 0
                        }
                        ))
                          , n = i.filter((function(e) {
                            return e.Price.Points > 0
                        }
                        ))
                          , a = i.filter((function(e) {
                            return e.Price.Amount >= 0
                        }
                        ))
                          , o = "";
                        return o += n.length > 0 ? n[0].Price.Points * n[0].Quantity + " " + e : "",
                        o += i.length > 1 ? " + " : "",
                        o += a.length && t.length > 0 ? a[0].Price.Amount * a[0].Quantity + " " + t : ""
                    }
                    ,
                    e.deleteAncillary = function(n) {
                        o.fire({
                            title: e.cancelAlertData.Title,
                            html: e.cancelAlertData.Text,
                            showCancelButton: !0,
                            confirmButtonText: e.cancelAlertData.ConfirmButtonText,
                            confirmButtonColor: null,
                            cancelButtonText: e.cancelAlertData.CancelButtonText,
                            animation: "slide-from-top",
                            customClass: "remove-ancillary",
                            allowOutsideClick: !0,
                            preconfirm: function() {
                                e.showSpinner()
                            }
                        }).then((function(r) {
                            if (r.value)
                                if (e.thisIsTheLastAncillary()) {
                                    var s = document.getElementById("my-booking-page-url");
                                    s ? a.toggle((function() {
                                        window.location.href = s.value
                                    }
                                    )) : t.ClearAncillariesFromUrlAndReload()
                                } else
                                    e.thisIsTheLastAncillaryForCash(n) ? (t.ClearAncillaryVariantFromUrlById(n),
                                    a.toggle((function() {
                                        window.location.reload()
                                    }
                                    ))) : (!function(i) {
                                        t.clearAncillaryById(i),
                                        t.ClearAncillaryVariantFromUrlById(i),
                                        t.saveToSessionStorage(),
                                        function(t) {
                                            e.hiddenIds.push(t),
                                            e.ancillary.Variants.some((function(e) {
                                                return !!e.Quantity
                                            }
                                            )) || (e.hiddenInDom = !0)
                                        }(i),
                                        e.showAncillaryOrderMessage = t.orderHasAncillaryWithDeliveryTime()
                                    }(n),
                                    t.ancillaryData.isPostBooking ? (e.hideSpinner(),
                                    o.close()) : (i.priceObject.totalPriceHtmlString = e.circularLoader,
                                    i.getTotEnterDetailsPrice(window.location.search).then((function(t) {
                                        e.hideSpinner(),
                                        t.data.Success ? (i.priceObject.totalPriceHtmlString = t.data.FormattedPrice,
                                        i.priceObject.firstRoomPriceHtmlString = t.data.FormattedRoomPrice,
                                        o.close()) : (i.priceObject.totalPriceHtmlString = e.priceHtmlStringOnError,
                                        o.fire({
                                            title: e.cancelAlertData.ErrorTitle,
                                            text: e.cancelAlertData.ErrorText
                                        }))
                                    }
                                    ), (function(t) {
                                        e.hideSpinner(),
                                        i.priceObject.totalPriceHtmlString = e.priceHtmlStringOnError,
                                        o.fire({
                                            title: e.cancelAlertData.ErrorTitle,
                                            text: e.cancelAlertData.ErrorText
                                        })
                                    }
                                    ))),
                                    a.toggle((function() {
                                        window.location.reload()
                                    }
                                    )))
                        }
                        ))
                    }
                    ,
                    e.thisIsTheLastAncillary = function() {
                        return 1 === t.getNumberOfSelectedVariants()
                    }
                    ,
                    e.thisIsTheLastAncillaryForCash = function(e) {
                        return !e.includes("_LOY") && 1 === t.getNumberOfAncillariesForCash()
                    }
                    ,
                    e.showSpinner = function() {
                        window.Scandic.DisableEnableButton.disable(n("button.swal2-confirm")),
                        n("button.swal2-cancel").attr("disabled", !0)
                    }
                    ,
                    e.hideSpinner = function() {
                        window.Scandic.DisableEnableButton.enable(n("button.swal2-confirm")),
                        n("button.swal2-cancel").attr("disabled", !1)
                    }
                }
                angular.module("xenaApp").controller("BookingAncillaryEnterDetailsController", e),
                e.$inject = ["$scope", "AncillaryService", "BookingPriceService"]
            }()
        },
        93951: function() {
            !function() {
                "use strict";
                function e(e, t) {
                    function i() {
                        if (void 0 !== e.options && e.options.length >= e.quantityObject.maxQuantity)
                            for (var t = e.isPointsQuantityPicker ? e.quantityObject.fiatQuantity : e.quantityObject.pointsQuantity, i = 0; i < e.quantityObject.maxQuantity + 1; i++)
                                i > e.quantityObject.maxQuantity - t ? e.options[i].disabled = !0 : e.isPointsQuantityPicker && i <= e.pointsOptionsToShow ? e.options[i].disabled = !1 : e.isPointsQuantityPicker || (e.options[i].disabled = !1)
                    }
                    function n(t) {
                        if (e.ancillaryVariant.Id.includes(t)) {
                            var i = e.options.selectedOption.name;
                            return {
                                productId: e.ancillaryVariant.Id,
                                productPriceOut: e.ancillaryVariant.Price.Amount * i,
                                productPointsOut: e.ancillaryVariant.Price.Points * i,
                                productUnitsOut: i,
                                productPriceIn: e.ancillaryVariant.Price.Amount * e.ancillaryVariant.Quantity,
                                productPointsIn: e.ancillaryVariant.Price.Points * e.ancillaryVariant.Quantity,
                                productUnitsIn: e.ancillaryVariant.Quantity,
                                productcurrency: e.ancillaryVariant.CurrencyTracking,
                                quantityHasChanged: e.ancillaryVariant.Quantity !== i
                            }
                        }
                        return null
                    }
                    e.ancillaryVariant = void 0,
                    e.options = [],
                    e.notEnoughPointsLeft = !1,
                    e.quantityOfAncillaryICanAfford = 0,
                    e.emphasizeDropDown = !1,
                    e.isPointsQuantityPicker = !1,
                    e.userIsAuthenticated = !1,
                    e.isLoggedIn = !1,
                    e.isBookingOfLoggedInProfile = !1,
                    e.isMemberBooking = !1,
                    e.showPointsSectionForMember = !1,
                    e.showPointsSectionForGuest = !1,
                    e.isRoomCancellable = !1,
                    e.ancillariesPointsTracker = t.ancillariesPointsTracker,
                    e.quantityObject = e.$parent.quantityObject,
                    e.$on("updateSelectedAncillariesBroadcast", (function() {
                        var i = e.ancillaryVariant.Quantity * e.ancillaryVariant.Price.Points;
                        t.setAncillaryQuantity(e.options.selectedOption.id, e.ancillaryVariant.Id),
                        e.setEmphasizeDropDown(e.options.selectedOption.id),
                        e.updateMyTotalPointsLeft(i)
                    }
                    )),
                    e.$on("updateQuantityPickerBroadcast", (function() {
                        if (e.isPointsQuantityPicker) {
                            e.quantityOfAncillaryICanAfford = e.getQuantityOfAncillaryICanAfford(),
                            e.notEnoughPointsLeft = e.quantityOfAncillaryICanAfford <= 0;
                            var n = t.ancillariesPointsTracker.totalPointsLeft
                              , a = e.ancillaryVariant.Quantity * e.ancillaryVariant.Price.Points
                              , o = n + a;
                            e.pointsOptionsToShow = Math.floor(o / e.ancillaryVariant.Price.Points),
                            e.pointsOptionsToShow = e.pointsOptionsToShow < 6 ? e.pointsOptionsToShow : 6;
                            for (var r = 6; r >= e.pointsOptionsToShow; r--)
                                e.options[r].disabled = r > e.quantityOfAncillaryICanAfford;
                            i()
                        }
                    }
                    )),
                    e.initQuantityPicker = function(i, a, o) {
                        e.isPointsQuantityPicker = i.Id.includes("_LOY"),
                        e.isRoomCancellable = o.IsRoomCancellable,
                        e.userIsAuthenticated = a,
                        e.isLoggedIn = o.IsLoggedIn,
                        e.isBookingOfLoggedInProfile = o.IsBookingOfLoggedInProfile,
                        e.isMemberBooking = o.IsMemberBooking,
                        e.showPointsSectionForMember = e.isLoggedIn && e.isMemberBooking && e.isBookingOfLoggedInProfile,
                        e.showPointsSectionForGuest = !e.isLoggedIn && e.isMemberBooking,
                        e.ancillaryVariant = i,
                        e.setOptions(),
                        e.setEmphasizeDropDown(e.ancillaryVariant.Quantity),
                        t.registerVariantQuantityCallback(n, e.ancillaryVariant.Id),
                        t.registerUpdateAncillaryOptionsObservers(e.updateSelectedOptionCallback)
                    }
                    ,
                    e.onOptionChanged = function(t) {
                        e.updateOptionQuantityTracker(t),
                        e.$parent.updateTrackingInformation()
                    }
                    ,
                    e.$watch("quantityObject.fiatQuantity", i),
                    e.$watch("quantityObject.pointsQuantity", i),
                    e.variantIsDisabled = function() {
                        return e.notEnoughPointsLeft || e.isPointsQuantityPicker && !e.userIsAuthenticated
                    }
                    ,
                    e.notLogedInAndVariantIsForPoints = function() {
                        return e.isPointsQuantityPicker && !e.userIsAuthenticated
                    }
                    ,
                    e.showPointsSection = function() {
                        return !e.isPointsQuantityPicker || !(!e.showPointsSectionForMember && !e.showPointsSectionForGuest)
                    }
                    ,
                    e.updateOptionQuantityTracker = function(t) {
                        e.isPointsQuantityPicker ? e.quantityObject.pointsQuantity = t.id : e.quantityObject.fiatQuantity = t.id
                    }
                    ,
                    e.setEmphasizeDropDown = function(t) {
                        e.emphasizeDropDown = !!t
                    }
                    ,
                    e.setOptions = function() {
                        var t = !1;
                        e.quantityOfAncillaryICanAfford = e.isPointsQuantityPicker ? e.getQuantityOfAncillaryICanAfford() : e.quantityObject.maxQuantity,
                        e.notEnoughPointsLeft = e.quantityOfAncillaryICanAfford <= 0;
                        for (var i = 0; i < e.quantityObject.maxQuantity + 1; i++)
                            i > e.quantityOfAncillaryICanAfford && (t = !0),
                            e.options.push({
                                id: i,
                                name: i,
                                disabled: t
                            });
                        e.options.selectedOption = e.options[e.ancillaryVariant.Quantity]
                    }
                    ,
                    e.setAncillaryQuantity = function() {
                        t.setAncillaryQuantity(e.options.selectedOption.id, e.ancillaryVariant.Id),
                        e.setEmphasizeDropDown(e.options.selectedOption.id)
                    }
                    ,
                    e.updateSelectedOptionCallback = function(t) {
                        e.ancillaryVariant.Id.indexOf(t) > -1 && (e.options.selectedOption = e.options[e.ancillaryVariant.Quantity])
                    }
                    ,
                    e.getQuantityOfAncillaryICanAfford = function() {
                        var i = 0;
                        if (e.ancillaryVariant.Price.Points) {
                            var n = e.ancillaryVariant.Quantity * e.ancillaryVariant.Price.Points
                              , a = t.ancillariesPointsTracker.totalPointsLeft + n;
                            i = (i = Math.floor(a / e.ancillaryVariant.Price.Points)) > e.$parent.quantityObject.maxQuantity ? e.$parent.quantityObject.maxQuantity : i
                        }
                        return i
                    }
                    ,
                    e.updateMyTotalPointsLeft = function(i) {
                        var n = e.ancillaryVariant.Quantity * e.ancillaryVariant.Price.Points - i;
                        t.ancillariesPointsTracker.totalPointsLeft -= n
                    }
                    ,
                    e.getAncillary = function(t) {
                        e.ancillaryVariant = t,
                        e.setOptions(),
                        e.setEmphasizeDropDown(e.ancillaryVariant.Quantity)
                    }
                }
                angular.module("xenaApp").controller("BookingAncillaryQuantityPickerController", e),
                e.$inject = ["$scope", "AncillaryService"]
            }()
        },
        26953: function(e, t, i) {
            var n = i(19755);
            function a(e) {
                return function(e) {
                    if (Array.isArray(e))
                        return o(e)
                }(e) || function(e) {
                    if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"])
                        return Array.from(e)
                }(e) || function(e, t) {
                    if (!e)
                        return;
                    if ("string" == typeof e)
                        return o(e, t);
                    var i = Object.prototype.toString.call(e).slice(8, -1);
                    "Object" === i && e.constructor && (i = e.constructor.name);
                    if ("Map" === i || "Set" === i)
                        return Array.from(e);
                    if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))
                        return o(e, t)
                }(e) || function() {
                    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
                }()
            }
            function o(e, t) {
                (null == t || t > e.length) && (t = e.length);
                for (var i = 0, n = new Array(t); i < t; i++)
                    n[i] = e[i];
                return n
            }
            angular.module("xenaApp").controller("BookingEnterDetailsController", ["$scope", "BookingPriceService", "AncillaryService", function(e, t, o) {
                e.bookingPrice = t.priceObject,
                e.bookingHasNoAncillaries = function() {
                    return !o.ancillaryData.ancillaries || !o.ancillaryData.ancillaries.some((function(e) {
                        return e.Variants.some((function(e) {
                            return !!e.Quantity
                        }
                        ))
                    }
                    ))
                }
                ,
                e.bookingHasAncillaryForCash = function() {
                    return e.bookingPrice.totalCash() >= 0
                }
                ,
                e.bookingHasAncillaryForCashLabelSection = function() {
                    return e.bookingPrice.totalCash() > 0
                }
                ,
                e.bookingHasAncillaryForPoints = function() {
                    return e.bookingPrice.totalPoints() > 0
                }
                ,
                e.init = function(e) {
                    return t.priceObject.totalPriceHtmlString = e
                }
                ;
                var r = i(86455)
                  , s = /^30812(?!(0|1|2))[0-9]{9}$/;
                window.Scandic.runOnDocumentReady.push((function() {
                    document.querySelector(".signup-form-section") && !document.querySelector(".signup-form-section").classList.contains("hidden") && document.querySelector("#member-input-group input") && (document.querySelector("#member-input-group input").value = "",
                    document.getElementById("memebershipNumber").checked = !1),
                    document.querySelector(".membership-input-hidden") && function(e) {
                        var t = document.querySelector(".membership-top-input-placehoder").value
                          , i = document.querySelector(".membership-bottom-input-placehoder").value
                          , a = document.querySelector(".memberShipNumberInput");
                        if ("memberTopInputField" === e)
                            var o = document.querySelector("#member-input-group .small-text");
                        else
                            o = document.querySelector(".membership-input-hidden");
                        o.parentNode.insertBefore(a, o),
                        "memberTopInputField" === e ? n("#member-input-group input").attr("placeholder", t) : n(".form-section .memberShipNumberInput input").attr("placeholder", i)
                    }("memberTopInputField"),
                    document.querySelector("#member-input-group input") && document.querySelector("#member-input-group input").value && (document.getElementById("memebershipNumber").checked = !0,
                    n("#member-input-group").removeClass("hidden"),
                    n(".member-input .member-subtext").addClass("hidden")),
                    document.querySelector('input[name="memebershipNumber"]') && document.querySelector('input[name="memebershipNumber"]').checked && s.test(document.querySelector("#member-input-group input").value) && d(),
                    document.querySelector(".booking-summary-list__totalPrice__item") && document.querySelector(".booking-summary-list__totalPrice__item .price--offer span > span:first-child").classList.contains("bc") && document.querySelector(".booking-summary-list__totalPrice__item .price--offer").classList.add("price--offer-bonus"),
                    document.querySelector(".booking-member-price-details__container .price--offer span.price__currency") && document.querySelector(".booking-member-price-details__container .price--offer span > span:first-child").classList.contains("voucher") && document.querySelector(".booking-member-price-details__container .price--offer").classList.add("price--offer-voucher"),
                    document.querySelector(".booking-member-price-details .price--offer span.voucher") && document.querySelector(".booking-member-price-details .price--offer span > span:first-child").classList.contains("voucher") && document.querySelector(".booking-member-price-details").classList.add("voucher--price"),
                    document.querySelector(".booking-member-price-details .price--offer span.bc") && document.querySelector(".booking-member-price-details .price--offer span > span:first-child").classList.contains("bc") && document.querySelector(".booking-member-price-details").classList.add("bonus--price")
                }
                )),
                n('input[name="memebershipNumber"]').on("click", (function() {
                    document.querySelector('input[name="memebershipNumber"]').checked ? (document.querySelector(".joinScandicFriendsCheck-checkbox").checked && n(".joinScandicFriendsCheck-checkbox").trigger("click"),
                    document.querySelector("#member-input-group").classList.contains("hidden") && (n("#member-input-group").removeClass("hidden"),
                    n(".member-input .member-subtext").addClass("hidden"))) : (c(),
                    m())
                }
                ));
                var l = null;
                function c() {
                    document.querySelector("#member-input-group input").value = "",
                    n("#member-input-group").addClass("hidden"),
                    n(".member-input .member-subtext").removeClass("hidden"),
                    n("#member-input-group #membership-number-0").trigger("change")
                }
                function d() {
                    document.querySelector("#booking-member-price--details") && document.querySelector("#booking-member-price--details").classList.contains("hidden") && (n("#booking-member-price--details").removeClass("hidden"),
                    document.querySelector("#booking--price--details").classList.add("hidden"),
                    document.querySelector("#booking-member-price--details .price--offer span > span:first-child").classList.contains("bc") && n("#booking-member-price--details .price--offer").addClass("price--offer-bonus")),
                    function() {
                        u || (n(".room-price-info__rate-ribbon").toggleClass("hidden"),
                        n(".room__body .pipe-separated-list-item .price").toggleClass("price--switch"),
                        n(".room-price-info__rate").toggleClass("hidden"),
                        n(".terms--list").toggleClass("hidden"),
                        n(".room__rates .room__long-price").toggleClass("price--switch"),
                        u = !0,
                        p = !1);
                        document.querySelector(".booking-details-footer") && h("add")
                    }(),
                    document.querySelector(".join-scandic-form-section") && document.querySelector(".joinScandicFriendsCheck-checkbox").checked && document.querySelector(".join-scandic-form-section").classList.remove("hidden"),
                    document.querySelector("#booking-total-price") && (n("#booking-total-price.price.price--logout-member-price").addClass("price--offer"),
                    n(".strike-logout-member-total-price").removeClass("hidden")),
                    document.querySelector(".price--logout-member-price.price--offer span.price__currency") && document.querySelector(".price--logout-member-price.price--offer span > span:first-child").classList.contains("voucher") && document.querySelector(".price--logout-member-price.price--offer").classList.add("price--offer-voucher")
                }
                if (n(document).on("blur", "#member-input-group input", (function() {
                    if (s.test(document.querySelector("#member-input-group input").value) && document.querySelector('input[name="memebershipNumber"]').checked) {
                        var e = n("#member-input-group input").val();
                        l !== e && (document.querySelector("#multipleRoomsMemberDiscountAppliedModal") ? b() : g()),
                        d(),
                        l = e
                    } else
                        m()
                }
                )),
                n(".joinScandicFriendsCheck-checkbox").on("click", (function() {
                    document.querySelector(".joinScandicFriendsCheck-checkbox").checked ? (document.querySelector('input[name="memebershipNumber"]') && (document.querySelector('input[name="memebershipNumber"]').checked = !1,
                    c()),
                    document.querySelector(".joinScandicFriendsCheck-checkbox").previousElementSibling.setAttribute("disabled", ""),
                    document.querySelector(".userWantsToJoinScandicFriendsValue") && a(document.querySelectorAll(".userWantsToJoinScandicFriendsValue")).forEach((function(e) {
                        e.value = "true"
                    }
                    )),
                    document.querySelector("#multipleRoomsMemberDiscountAppliedModal") ? v() : f(),
                    d()) : (document.querySelector(".joinScandicFriendsCheck-checkbox").previousElementSibling.removeAttribute("disabled"),
                    document.querySelector(".userWantsToJoinScandicFriendsValue") && a(document.querySelectorAll(".userWantsToJoinScandicFriendsValue")).forEach((function(e) {
                        e.value = "false"
                    }
                    )),
                    m())
                }
                )),
                window.addEventListener("pageshow", (function(e) {
                    if ((e.persisted || void 0 !== window.performance && 2 === window.performance.navigation.type || this.sessionStorage.getItem("loginTrackData")) && ("logged in" == JSON.parse(this.sessionStorage.getItem("loginTrackData")).LoginStatus && document.querySelector(".price--offer span:nth-child(1)") && document.querySelector(".price--offer span:nth-child(2)"))) {
                        var t = document.querySelector(".price--offer > span:nth-child(1)")
                          , i = document.querySelector(".price--offer > span:nth-child(2)")
                          , n = "#text" == t.childNodes[0].nodeName ? t.childNodes[0].nodeValue.trim() : t.childNodes[3].nodeValue.trim();
                        if (null != i) {
                            var a = "#text" == i.childNodes[0].nodeName ? i.childNodes[0].nodeValue.trim() : i.childNodes[3].nodeValue.trim();
                            if (parseInt(n) > parseInt(a)) {
                                for (var o = new URLSearchParams(window.location.search), r = decodeURI(window.location.href), s = 0; s < 4 && null != o.get("room[" + s + "].ratecode"); ) {
                                    if (o.get("room[" + s + "].ratecode") && o.get("room[" + s + "].counterratecode")) {
                                        o.get("room[" + s + "].ratecode");
                                        r = (r = r.replace("room[" + s + "].ratecode=" + o.get("room[" + s + "].ratecode"), "room[" + s + "].ratecode=" + o.get("room[" + s + "].counterratecode"))).replace("room[" + s + "].counterratecode=" + o.get("room[" + s + "].counterratecode"), "room[" + s + "].counterratecode=" + o.get("room[" + s + "].ratecode"))
                                    }
                                    s++
                                }
                                r = r.replace("#modal", ""),
                                window.location.href = r
                            }
                        }
                    }
                }
                )),
                document.querySelector(".member-price-shown"))
                    var u = document.querySelector(".member-price-shown").value;
                var p = !u;
                function m() {
                    p || (n(".room-price-info__rate-ribbon").toggleClass("hidden"),
                    n(".room__body .pipe-separated-list-item .price").toggleClass("price--switch"),
                    n(".room-price-info__rate").toggleClass("hidden"),
                    n(".terms--list").toggleClass("hidden"),
                    n(".room__rates .room__long-price").toggleClass("price--switch"),
                    p = !0,
                    u = !1),
                    document.querySelector("#booking--price--details") && document.querySelector("#booking--price--details").classList.remove("hidden"),
                    document.querySelector("#booking-member-price--details") && document.querySelector("#booking-member-price--details").classList.add("hidden"),
                    document.querySelector(".join-scandic-form-section") && document.querySelector(".join-scandic-form-section").classList.add("hidden"),
                    h("remove"),
                    document.querySelector("#booking-total-price") && (n("#booking-total-price.price.price--logout-member-price").removeClass("price--offer"),
                    n(".strike-logout-member-total-price").addClass("hidden")),
                    document.querySelector(".price--logout-member-price.price--offer-voucher span.price__currency") && document.querySelector(".price--logout-member-price.price--offer-voucher span > span:first-child").classList.contains("voucher") && document.querySelector(".price--logout-member-price").classList.remove("price--offer-voucher")
                }
                function h(e) {
                    "add" === e ? a(document.querySelectorAll(".booking-details-footer li.booking-price-details__item .price.price--member")).forEach((function(e) {
                        2 === e.children.length && e.classList.add("price--offer")
                    }
                    )) : "remove" === e && document.querySelector(".booking-details-footer") && a(document.querySelectorAll(".booking-details-footer li.booking-price-details__item .price.price--member")).forEach((function(e) {
                        e.classList.remove("price--offer")
                    }
                    ))
                }
                var f = function(e) {
                    r.fire({
                        title: n("#memberDiscountAppliedModal").attr("data-js-confirm"),
                        html: n("#memberDiscountAppliedModal").attr("data-confirm-text") + '<p class="newPriceText"><strong>' + n("#memberDiscountAppliedModal").attr("data-confirm-price-text") + '</p></strong><div class="inline-block"><p class="newPrice">' + n(".booking-member-price-details .price--offer").html() + '</p><p class="oldPrice"><strong>' + n(".booking-member-price-details .price--offer-original").html() + "</strong></p></div>",
                        imageUrl: "/_static/img/icons/checkmark-circle.svg",
                        showConfirmButton: !0,
                        buttonsStyling: !0,
                        confirmButtonColor: null,
                        customClass: n("#memberDiscountAppliedModal").attr("data-class"),
                        allowOutsideClick: !0,
                        animation: !1
                    })
                }
                  , g = function(e) {
                    r.fire({
                        title: n("#memberShipNumberDiscountAppliedModal").attr("data-js-confirm"),
                        html: '<p class="newPriceText u-margin-top-5"><strong>' + n("#memberDiscountAppliedModal").attr("data-confirm-price-text") + '</p></strong><div class="inline-block"><p class="newPrice">' + n(".booking-member-price-details .price--offer").html() + '</p><p class="oldPrice"><strong>' + n(".booking-member-price-details .price--offer-original").html() + "</strong></p></div>",
                        imageUrl: "/_static/img/icons/checkmark-circle.svg",
                        showConfirmButton: !0,
                        buttonsStyling: !0,
                        confirmButtonColor: null,
                        customClass: n("#memberShipNumberDiscountAppliedModal").attr("data-class"),
                        allowOutsideClick: !0,
                        animation: !1
                    })
                }
                  , v = function(e) {
                    r.fire({
                        title: n("#multipleRoomsMemberDiscountAppliedModal").attr("data-js-confirm"),
                        html: n("#multipleRoomsMemberDiscountAppliedModal").attr("data-confirm-text") + '<p class="newPriceText"><strong>' + n("#multipleRoomsMemberDiscountAppliedModal").attr("data-confirm-price-text") + '</p></strong><div class="inline-block"><p class="newPrice">' + n(".booking-member-price-details .price--offer").html() + '</p><p class="oldPrice"><strong>' + n(".booking-member-price-details .price--offer-original").html() + '</strong></p></div><p class="multiRoomNote u-text-align-left"><strong>' + n("#multipleRoomsMemberDiscountAppliedModal").attr("data-conform-multiroom-note-label") + " </strong>" + n("#multipleRoomsMemberDiscountAppliedModal").attr("data-conform-multiroom-note-text") + "</p>",
                        imageUrl: "/_static/img/icons/checkmark-circle.svg",
                        showConfirmButton: !0,
                        buttonsStyling: !0,
                        confirmButtonColor: null,
                        customClass: n("#multipleRoomsMemberDiscountAppliedModal").attr("data-class"),
                        allowOutsideClick: !0,
                        animation: !1
                    })
                }
                  , b = function(e) {
                    r.fire({
                        title: n("#multipleRoomsmemberShipNumberDiscountAppliedModal").attr("data-js-confirm"),
                        html: '<p class="newPriceText u-margin-top-5"><strong>' + n("#multipleRoomsMemberDiscountAppliedModal").attr("data-confirm-price-text") + '</p></strong><div class="inline-block"><p class="newPrice">' + n(".booking-member-price-details .price--offer").html() + '</p><p class="oldPrice"><strong>' + n(".booking-member-price-details .price--offer-original").html() + '</strong></p></div><p class="multiRoomNote u-text-align-left"><strong>' + n("#multipleRoomsMemberDiscountAppliedModal").attr("data-conform-multiroom-note-label") + " </strong>" + n("#multipleRoomsmemberShipNumberDiscountAppliedModal").attr("data-conform-multiroom-note-text") + "</p>",
                        imageUrl: "/_static/img/icons/checkmark-circle.svg",
                        showConfirmButton: !0,
                        buttonsStyling: !0,
                        confirmButtonColor: null,
                        customClass: n("#multipleRoomsMemberDiscountAppliedModal").attr("data-class"),
                        allowOutsideClick: !0,
                        animation: !1
                    })
                }
            }
            ])
        },
        50972: function() {
            angular.module("xenaApp").controller("BookingModuleController", ["$scope", "$http", "BookingPriceService", function(e, t, i) {
                e.priceObject = i.priceObject,
                e.init = function(e) {
                    "" !== e && (i.priceObject.totalPriceHtmlString = e)
                }
            }
            ])
        },
        27903: function(e, t, i) {
            var n = i(19755);
            angular.module("xenaApp").controller("BookingRoomsAndRatesController", ["$scope", "$sce", "$timeout", function(e, t, i) {
                function a(t) {
                    return void 0 !== e.legData[t]
                }
                function o(t, i) {
                    var a = Number(i.currentTarget.dataset.dtmAvailableRooms)
                      , o = t.rate.roomType;
                    if (window.Scandic.roomAvailableData["room" + e.currentLegNumber] !== o) {
                        var r = document.querySelectorAll(".booking__room__box")
                          , s = t.roomTypeName.toLowerCase().replace(/[^a-z0-9]+/g, "_");
                        if (document.querySelector("input[name='singleAvailableRoom']"))
                            var l = document.querySelector("input[name='singleAvailableRoom']").value;
                        if (document.querySelector("input[name='pluralAvailableRooms']"))
                            var c = document.querySelector("input[name='pluralAvailableRooms']").value;
                        window.Scandic.roomAvailableData[o] || (window.Scandic.roomAvailableData[o] = a);
                        var d = window.Scandic.roomAvailableData["room" + e.currentLegNumber];
                        d && d != o && (window.Scandic.roomAvailableData[d] = window.Scandic.roomAvailableData[d] + 1),
                        window.Scandic.roomAvailableData["room" + e.currentLegNumber] = o;
                        var u = window.Scandic.roomAvailableData["room" + e.currentLegNumber + "_roomType"];
                        window.Scandic.roomAvailableData["room" + e.currentLegNumber + "_roomType"] = s,
                        window.Scandic.roomAvailableData[o] = window.Scandic.roomAvailableData[o] - 1,
                        e.legNumbers.forEach((function(e) {
                            var t = n(r[e]).find("#" + s + " .room-pay__btn");
                            if (s)
                                var i = r[e].querySelector("#" + s + " .room__available-rooms");
                            window.Scandic.roomAvailableData[o] >= 0 && i && (1 === window.Scandic.roomAvailableData[o] ? i.innerHTML = l.replace(/\d/g, window.Scandic.roomAvailableData[o]) : (i.innerHTML = c.replace(/\d/g, window.Scandic.roomAvailableData[o]),
                            0 === window.Scandic.roomAvailableData[o] && t.each((function(e) {
                                n(this).attr("disabled", "disabled")
                            }
                            ))));
                            var a = n(r[e]).find("#" + u + " .room-pay__btn");
                            if (u)
                                var p = r[e].querySelector("#" + u + " .room__available-rooms");
                            d && d != o && p && (1 === window.Scandic.roomAvailableData[d] ? p.innerHTML = l.replace(/\d/g, window.Scandic.roomAvailableData[d]) : p.innerHTML = c.replace(/\d/g, window.Scandic.roomAvailableData[d]),
                            a.each((function(e) {
                                n(this).removeAttr("disabled")
                            }
                            )))
                        }
                        ))
                    }
                }
                e.currentLegNumber = 0,
                e.legNumbers = [],
                e.legData = [],
                e.allRoomsSelected = !1,
                e.registerSelectableRoom = function(t) {
                    -1 === e.legNumbers.indexOf(t) && e.legNumbers.push(t),
                    e.isMultiRoomBooking() && (e.currentLegNumber = null)
                }
                ,
                e.selectRate = function(t, r) {
                    e.legData[e.currentLegNumber] = t,
                    function(t) {
                        n("#room-ribbon-image-" + e.currentLegNumber).html(n("#room-media-" + t.roomDomId).html()),
                        e.legData[e.currentLegNumber].roomTypeHeading = n("#room-heading-" + t.roomDomId).text(),
                        e.legData[e.currentLegNumber].rateTooltipId = t.rateConditionsTooltip
                    }(t),
                    e.isSingleRoomBooking() ? i((function() {
                        n("#rooms-and-rates-form").submit()
                    }
                    )) : e.legNumbers.every((function(e) {
                        return a(e)
                    }
                    )) ? (o(t, r),
                    e.currentLegNumber = null,
                    e.allRoomsSelected = !0,
                    e.allRoomsSelected && (n(window).width() < 950 ? n("body, html").animate({
                        scrollTop: n("#hotel_body").offset().top - 60
                    }, "slow") : n("body, html").animate({
                        scrollTop: n("#hotel_body").offset().top
                    }, "slow"))) : (o(t, r),
                    e.currentLegNumber = function() {
                        var t = e.legNumbers.filter((function(e) {
                            return !a(e)
                        }
                        ));
                        if (t.sort(),
                        e.currentLegNumber < Math.max.apply(this, t))
                            for (; t[0] < e.currentLegNumber; )
                                t.push(t.shift());
                        return t[0]
                    }(),
                    i((function() {
                        window.Scandic.ensureElementIsVisible(n("#booking-leg-" + e.currentLegNumber))
                    }
                    )))
                }
                ,
                e.hasSelectedRateForCurrentRoom = function() {
                    return void 0 !== e.legData[e.currentLegNumber]
                }
                ,
                e.getSelectedRateCode = function() {
                    return e.hasSelectedRateForCurrentRoom() ? e.legData[e.currentLegNumber].rate.rateCode : void 0
                }
                ,
                e.getSelectedRoomType = function() {
                    return e.hasSelectedRateForCurrentRoom() ? e.legData[e.currentLegNumber].rate.roomType : void 0
                }
                ,
                e.selectedRoomTypeIn = function(t) {
                    return t.indexOf(e.getSelectedRoomType()) > -1
                }
                ,
                e.multiRoomFormData = function() {
                    var t = {};
                    return e.legData.forEach((function(e) {
                        for (var i in e.params)
                            e.params.hasOwnProperty(i) && (t[i] = e.params[i])
                    }
                    )),
                    t
                }
                ,
                e.toggleLeg = function(t) {
                    e.currentLegNumber === t ? e.currentLegNumber = null : e.currentLegNumber = t
                }
                ,
                e.formattedPriceForLeg = function(t) {
                    if (!e.legData[t])
                        return "";
                    var i = e.legData[t].rate
                      , n = i.price + " " + i.currency;
                    return i.numberOfBonusCheques > 0 ? i.numberOfBonusCheques + " BC + " + n : n
                }
                ,
                e.totalPrice = function() {
                    return e.legData.reduce((function(e, t) {
                        return e + t.rate.price
                    }
                    ), 0)
                }
                ,
                e.formattedTotalPrice = function() {
                    var i = {
                        numberOfBonusCheques: 0,
                        price: 0,
                        currency: void 0
                    };
                    e.legData.forEach((function(e) {
                        e && (i.numberOfBonusCheques += e.rate.numberOfBonusCheques,
                        i.price += e.rate.price,
                        i.currency = i.currency || e.rate.currency)
                    }
                    ));
                    var n = i.price + ' <span class="price__currency">' + i.currency + "</span>";
                    return i.numberOfBonusCheques > 0 ? t.trustAsHtml(i.numberOfBonusCheques + ' <span class="price__currency">BC</span> <span class="price__plus">+</span> ' + n) : t.trustAsHtml(n)
                }
                ,
                e.rateConditionsText = function() {
                    var t, i = e.legData.map((function(e) {
                        return e.rate.rateConditions
                    }
                    ));
                    return (t = i).every((function(e) {
                        return e === t[0]
                    }
                    )) ? i[0] : e.termsDifferCondition || ""
                }
                ,
                e.isSingleRoomBooking = function() {
                    return 1 === e.legNumbers.length
                }
                ,
                e.isMultiRoomBooking = function() {
                    return e.legNumbers.length > 1
                }
                ,
                e.submitBooking = function() {
                    i((function() {
                        n("#rooms-and-rates-form").submit()
                    }
                    ))
                }
                ,
                window.Scandic.roomAvailableData = {}
            }
            ])
        },
        62865: function() {
            angular.module("xenaApp").controller("BookingRoomsAndRatesLegController", ["$scope", function(e) {
                e.legNumber = void 0,
                e.isSelected = !1,
                e.showRates = !1,
                e.roomRateData = {
                    params: []
                },
                e.rateModel = {
                    index: null
                },
                e.$parent.$watch("currentLegNumber", (function(t) {
                    e.editingLeg = t === e.legNumber
                }
                )),
                e.selectRate = function(t, i) {
                    e.isSelected = !0,
                    e.data = t,
                    e.$parent.selectRate(t, i)
                }
                ,
                e.toggleLegEditing = function() {
                    e.$parent.toggleLeg(e.legNumber),
                    e.editingLeg = !e.editingLeg
                }
                ,
                e.shouldShowSpeechBubble = function() {
                    return null === e.currentLegNumber ? 0 === e.legNumber && !e.isSelected : e.editingLeg && !e.isSelected
                }
                ,
                e.toggleRates = function() {
                    return e.showRates = !e.showRates
                }
                ,
                e.initSetPreSelected = function(t, i) {
                    e.roomRateData.params = t,
                    e.rateModel.index = i
                }
                ,
                e.roomRatesChanged = function(t) {
                    return e.roomRateData.params = t
                }
                ,
                e.submitPartialPaymentBooking = function() {
                    e.$parent.legData[0] = e.roomRateData,
                    e.$parent.submitBooking()
                }
            }
            ])
        },
        3620: function(e, t, i) {
            var n = i(19755);
            !function() {
                "use strict";
                function e(e, t, i) {
                    e.circularLoader = '<div class="circular-loader__centering-container"><div class="modal__circular-loader-container"><div class="circular-loader circular-loader--light circular-loader--large"></div></div></div>',
                    e.userPoints = new Number(i.userData.points).formatNumberThousandDelimiter(),
                    e.donationWasSuccess = !1,
                    e.donationHasError = !1,
                    e.donationAmount = 0,
                    e.sendingDonation = !1,
                    e.charity = {
                        id: null
                    },
                    e.init = function() {
                        i.registerResetCharityObserver(e.resetCharity)
                    }
                    ,
                    e.setDonationAmount = function(t) {
                        e.donationAmount = t
                    }
                    ,
                    e.setDonation = function() {
                        i.chosenCharity.id = e.charity.id
                    }
                    ,
                    e.addHashToUrlForHistoryNavigation = function() {
                        var e = window.location.href + "#";
                        window.history.pushState(null, "", e)
                    }
                    ,
                    e.resetAll = function() {
                        e.donationWasSuccess = !1,
                        e.donationHasError = !1,
                        i.chosenCharity.id = null,
                        i.notifyResetCharityObservers()
                    }
                    ,
                    e.resetCharity = function() {
                        e.charity.id = null
                    }
                    ,
                    e.postDonation = function() {
                        e.sendingDonation = !0,
                        t.post("/ajax/donate", e.charity).then((function(t) {
                            e.sendingDonation = !1,
                            e.updatePoints(),
                            e.donationWasSuccess = t.data.Success,
                            e.donationHasError = !t.data.Success,
                            i.donationsData.donationWasSuccess = t.data.Success
                        }
                        ), (function(t) {
                            e.sendingDonation = !1,
                            e.donationHasError = !0
                        }
                        ))
                    }
                    ,
                    e.updatePoints = function() {
                        n("#my-pages-hero-area__points-section").html(e.circularLoader),
                        i.getAvailablePoints().then((function(e) {
                            var t = new Number(e.data.Points).formatNumberThousandDelimiter();
                            n("#my-pages-hero-area__points-section").html(t)
                        }
                        ), (function() {
                            i.userData.points = ""
                        }
                        ))
                    }
                    ,
                    e.notEnoughPoints = function(e) {
                        return i.userData.points < e
                    }
                    ,
                    e.noCharitySelected = function() {
                        return null === e.charity.id
                    }
                    ,
                    e.otherCharityIsChosen = function() {
                        return null !== i.chosenCharity.id && !e.thisCharityIsChosen()
                    }
                    ,
                    e.thisCharityIsChosen = function() {
                        return null !== e.charity.id && e.charity.id === i.chosenCharity.id
                    }
                    ,
                    e.getPointsLeft = function() {
                        return i.userData.points - e.donationAmount
                    }
                }
                angular.module("xenaApp").controller("CharityController", e),
                e.$inject = ["$scope", "$http", "DonationsService"]
            }()
        },
        88154: function() {
            angular.module("xenaApp").controller("CreditCardController", ["$scope", "creditCardService", function(e, t) {
                function i(t) {
                    e.creditCardRequired = a(),
                    n(t)
                }
                function n(t) {
                    var i = !e.creditCardRequired || !e.cardIsExpired();
                    t.MonthField && (t.MonthField.$setValidity("expiration", i),
                    t.YearField.$setValidity("expiration", i))
                }
                function a() {
                    return e.creditCardData.creditCardIsInRequiredContext && "saved" !== e.useFlexCard && e.captureCreditCardDetails
                }
                e.creditCardData = t.data,
                e.useFlexCard = void 0,
                e.creditCardRequired = a(),
                e.currentFormData = function() {
                    return {
                        YearField: e.creditCardForm[e.expirationYearFieldName],
                        MonthField: e.creditCardForm[e.expirationMonthFieldName],
                        ExpirationYear: e.expirationYear,
                        ExpirationMonth: e.expirationMonth
                    }
                }
                ,
                e.$watch("guaranteeForLateArrival", (function() {
                    e.creditCardData.creditCardIsInRequiredContext = void 0 === e.guaranteeForLateArrival || e.guaranteeForLateArrival,
                    i(e.currentFormData())
                }
                )),
                e.$watch("useFlexCard", (function() {
                    return i(e.currentFormData)
                }
                )),
                e.$watch("expirationMonth", (function() {
                    return n(e.currentFormData())
                }
                )),
                e.$watch("expirationYear", (function() {
                    return n(e.currentFormData())
                }
                )),
                e.cardIsExpired = function() {
                    var t = new Date
                      , i = t.getMonth() + 1;
                    return e.expirationYear < t.getFullYear() || parseInt(e.expirationYear) === t.getFullYear() && e.expirationMonth < i
                }
            }
            ])
        },
        76114: function() {
            !function() {
                "use strict";
                function e(e, t) {
                    e.donationPageTitle = "",
                    e.donationConfirmTitle = "",
                    e.donationReciptTitle = "",
                    e.init = function(i, n, a, o) {
                        e.donationPageTitle = i,
                        e.donationConfirmTitle = n,
                        e.donationReciptTitle = a,
                        t.userData.points = o
                    }
                    ,
                    e.noCharityIsChosen = function() {
                        return null === t.chosenCharity.id
                    }
                    ,
                    e.donationWasSuccess = function() {
                        return t.donationsData.donationWasSuccess
                    }
                    ,
                    e.getDonationsTitle = function() {
                        return e.noCharityIsChosen() ? e.donationPageTitle : t.donationsData.donationWasSuccess ? e.donationReciptTitle : e.donationConfirmTitle
                    }
                    ,
                    e.charityIsChosen = function() {
                        return null !== t.chosenCharity.id
                    }
                }
                angular.module("xenaApp").controller("DonationsPageController", e),
                e.$inject = ["$scope", "DonationsService"]
            }()
        },
        73986: function(e, t, i) {
            var n = i(19755)
              , a = i(86455);
            angular.module("xenaApp").controller("MyBookingAncillaryController", ["$scope", "$http", "AncillaryService", "BookingPriceService", "$window", function(e, t, i, o, r) {
                e.spinner = '<div class="circular-loader"></div>',
                e.ancillaryId = 0,
                e.ancillariesToShow = i.ShowAncillariesObject.ancillaries,
                e.cancelAlertData = {},
                e.ancillaryTrackingData = {},
                e.ancillaryVariantIds = [],
                e.init = function(e) {
                    i.ShowAncillariesObject.ancillaries.indexOf(e) < 0 && i.ShowAncillariesObject.ancillaries.push(e),
                    this.ancillaryId = e,
                    this.cancelAlertData = r.sweetAlertJson
                }
                ,
                e.initSetTrackingData = function(e, t, n, a, o, s, l) {
                    this.ancillaryVariantIds = e.split(","),
                    angular.forEach(this.ancillaryVariantIds, (function(e) {
                        i.ShowAncillariesObject.ancillaries.indexOf(e) < 0 && i.ShowAncillariesObject.ancillaries.push(e)
                    }
                    )),
                    this.ancillaryId = this.ancillaryVariantIds[0],
                    this.cancelAlertData = r.sweetAlertJson;
                    var c = {};
                    c = {
                        hotelId: s,
                        hotelbnr: o,
                        productid: e,
                        productunits: t,
                        productprice: n,
                        productcurrencycode: a,
                        event: "scremove"
                    },
                    (c = Object.assign(c, hotelReservationDataObj)).HotelPageType = l ? "hotelconfirmationpage" : "addonpurchase";
                    var d = this;
                    Object.keys(c).forEach((function(e) {
                        var t = e.toLowerCase();
                        d.ancillaryTrackingData[t] = c[e]
                    }
                    ))
                }
                ,
                e.showAncillary = function() {
                    return e.ancillariesToShow.indexOf(e.ancillaryId) > -1
                }
                ,
                e.cancelAncillary = function(t, s) {
                    a.fire({
                        title: e.cancelAlertData.Title,
                        html: e.cancelAlertData.Text,
                        confirmButtonText: e.cancelAlertData.ConfirmButtonText,
                        confirmButtonColor: null,
                        showCancelButton: !0,
                        cancelButtonText: e.cancelAlertData.CancelButtonText,
                        animation: "slide-from-top",
                        allowOutsideClick: function() {
                            return !a.isLoading()
                        },
                        customClass: "remove-ancillary",
                        preConfirm: function() {
                            return e.showSpinner(),
                            i.cancelAncillaryFromBookingPut(t, e.ancillaryVariantIds, s).then((function(e) {
                                return e
                            }
                            ), (function(t) {
                                e.hideSpinner(),
                                a.fire({
                                    title: e.cancelAlertData.ErrorTitle,
                                    text: e.cancelAlertData.ErrorText,
                                    customClass: "remove-ancillary"
                                })
                            }
                            ))
                        }
                    }).then((function(l) {
                        if (l.value)
                            if (l.value.data.Success) {
                                e.hideSpinner(),
                                r.datalayer.push(e.ancillaryTrackingData),
                                a.fire({
                                    title: e.cancelAlertData.SuccessTitle,
                                    text: e.cancelAlertData.SuccessText,
                                    customClass: "remove-ancillary"
                                }),
                                o.priceObject.totalPriceHtmlString = e.spinner,
                                angular.forEach(e.ancillaryVariantIds, (function(e) {
                                    var t = i.ShowAncillariesObject.ancillaries.indexOf(e);
                                    i.ShowAncillariesObject.ancillaries[t] = ""
                                }
                                )),
                                o.getTotalPrice(t, s).then((function(e) {
                                    o.priceObject.totalPriceHtmlString = e.data.FormattedPrice
                                }
                                ));
                                var c = n(".l-booking-panel.l-booking-panel--my-booking");
                                c && c.hide()
                            } else
                                a.fire({
                                    title: e.cancelAlertData.ErrorTitle,
                                    text: e.cancelAlertData.ErrorText,
                                    customClass: "remove-ancillary"
                                })
                    }
                    ))
                }
                ,
                e.showSpinner = function() {
                    window.Scandic.DisableEnableButton.disable(n("button.swal2-confirm")),
                    n("button.swal2-cancel").attr("disabled", !0)
                }
                ,
                e.hideSpinner = function() {
                    window.Scandic.DisableEnableButton.enable(n("button.swal2-confirm")),
                    n("button.swal2-cancel").attr("disabled", !1)
                }
            }
            ])
        },
        81222: function(e, t, i) {
            var n = i(86455);
            angular.module("xenaApp").controller("ProfileMembershipCardsController", ["$scope", function(e) {
                function t(t) {
                    e.profileMembershipCardsDetails.splice(t, 1),
                    e.$apply()
                }
                e.maxCards = 9,
                e.profileMembershipCardsDetails = [],
                e.$watch("profileMembershipCardsDetails", (function(t) {
                    e.profileMembershipCardsDetailsJson = angular.toJson(e.profileMembershipCardsDetails)
                }
                ), !0),
                e.loadCardDetails = function(t) {
                    t && t.length > 0 && t.forEach((function(t) {
                        e.profileMembershipCardsDetails.push({
                            cardtype: t.cardtype,
                            cardnumber: t.cardnumber,
                            operaid: t.operaid
                        })
                    }
                    ))
                }
                ,
                e.addNewCard = function() {
                    if (e.profileMembershipCardsDetails.length < e.maxCards) {
                        e.profileMembershipCardsDetails.push({
                            cardtype: "",
                            cardnumber: "",
                            operaid: ""
                        })
                    }
                }
                ,
                e.isCardtypeMissing = function(e) {
                    return "" === e.cardtype && "" !== e.cardnumber
                }
                ,
                e.isCardnumberMissing = function(e) {
                    return "" !== e.cardtype && "" === e.cardnumber
                }
                ,
                e.removeCardWithConfirmation = function(e, i, a) {
                    var o = a.currentTarget;
                    "" !== e.cardtype || "" !== e.cardnumber ? n.fire({
                        title: o.getAttribute("data-js-confirm-title"),
                        html: o.getAttribute("data-confirm-text"),
                        showCancelButton: !0,
                        confirmButtonText: o.getAttribute("data-confirm-ok"),
                        cancelButtonText: o.getAttribute("data-confirm-cancel"),
                        confirmButtonColor: "#00838e",
                        animation: "slide-from-top",
                        allowOutsideClick: !0,
                        buttonsStyling: !0,
                        customClass: "remove-card",
                        showLoaderOnConfirm: !1
                    }).then((function(e) {
                        e.value && t(i)
                    }
                    )) : t(i)
                }
            }
            ])
        },
        10712: function(e, t, i) {
            var n = i(19755);
            !function() {
                "use strict";
                function e(e, t) {
                    e.showInformationMessage = !1,
                    e.init = function(t) {
                        e.showMoreShowLessLabel = t
                    }
                    ,
                    e.toggleCreditCardInformation = function(i, a) {
                        e.showInformationMessage = !e.showInformationMessage;
                        var o = n("[data-expandable]")
                          , r = o.outerHeight();
                        e.showInformationMessage || o.parent().css("height", r),
                        o.parent().css({
                            height: e.showInformationMessage ? r : 0,
                            opacity: e.showInformationMessage ? 1 : 0
                        }),
                        e.showMoreShowLessLabel = e.showInformationMessage ? a : i,
                        e.showInformationMessage && t((function() {
                            o.parent().css("height", "")
                        }
                        ), 200)
                    }
                }
                angular.module("xenaApp").controller("ScandicInformationAlertController", e),
                e.$inject = ["$scope", "$timeout"]
            }()
        },
        95454: function() {
            !function() {
                "use strict";
                function e(e) {
                    e.showMoreText = "",
                    e.showLessText = "",
                    e.showAll = !1,
                    e.showMoreShowLessText = e.showMoreText,
                    e.isExpandedClass = "",
                    e.ShowMoreClick = function(t) {
                        t.stopPropagation(),
                        e.showAll = !e.showAll,
                        e.showMoreShowLessText = e.showAll ? e.showLessText : e.showMoreText,
                        e.isExpandedClass = e.showAll ? "is-expanded" : ""
                    }
                    ,
                    e.init = function(t, i) {
                        e.showMoreText = t,
                        e.showLessText = i,
                        e.showMoreShowLessText = e.showMoreText
                    }
                }
                angular.module("xenaApp").controller("ShowMoreController", e),
                e.$inject = ["$scope"]
            }()
        },
        1466: function(e, t, i) {
            var n = i(19755);
            !function() {
                "use strict";
                function e(e) {
                    e.isOpen = !1,
                    e.toggleContainer = function() {
                        e.isOpen = !e.isOpen,
                        setTimeout((function() {
                            n(".hotel-slider.royalSlider").data("royalSlider").updateSliderSize()
                        }
                        ), 30)
                    }
                    ,
                    e.toggleContainerDown = function(t) {
                        e.isOpen = !e.isOpen;
                        var i = n("#" + t).offset()
                          , a = "none" == n(".navigation-bar__main__expander").css("display") ? i.top : i.top - n(".navigation-bar__main").height();
                        n("html, body").animate({
                            scrollTop: a
                        }, 800)
                    }
                    ,
                    e.toggleContainerHotelBlock = function() {
                        e.toggleContainer();
                        var t = n("#hotel_block").offset()
                          , i = "none" == n(".navigation-bar__main__expander").css("display") ? t.top : t.top - n(".navigation-bar__main").height();
                        setTimeout((function() {
                            n("html, body").animate({
                                scrollTop: i
                            }, 500)
                        }
                        ), 100)
                    }
                    ,
                    e.init = function(t) {
                        e.roomLabel = t
                    }
                }
                angular.module("xenaApp").controller("ToggleController", e),
                e.$inject = ["$scope"]
            }()
        },
        91519: function() {
            angular.module("xenaApp").directive("blacklist", (function() {
                return {
                    require: "ngModel",
                    link: function(e, t, i, n) {
                        var a = i.blacklist.split(",");
                        n.$parsers.unshift((function(e) {
                            var t = i.blacklistIdentifier ? !a.includes(e[i.blacklistIdentifier]) : !a.includes(e);
                            return n.$setValidity("blacklist", t),
                            t ? e : void 0
                        }
                        )),
                        n.$formatters.unshift((function(e) {
                            return n.$setValidity("blacklist", i.blacklistIdentifier && e ? !a.includes(e[i.blacklistIdentifier]) : !a.includes(e)),
                            e
                        }
                        ))
                    }
                }
            }
            ))
        },
        99492: function() {
            angular.module("xenaApp").directive("errorMessageFor", (function() {
                return {
                    link: function(e, t, i) {
                        var n = i.errorMessageFor.split(/,\s+/)
                          , a = t.closest("[data-ng-form]")
                          , o = "";
                        function r() {
                            return e.showAllValidations || c((function(e) {
                                return e.$touched
                            }
                            ))
                        }
                        function s() {
                            return i.error.match(/\(\)/) ? e.$eval(i.error) : c((function(e) {
                                return !!e.$error[i.error]
                            }
                            ))
                        }
                        function l() {
                            r() && s() ? t.show() : t.hide()
                        }
                        function c(t) {
                            return n.some((function(i) {
                                return t(e[o][i])
                            }
                            ))
                        }
                        o = 0 !== a.length ? a.attr("data-ng-form") : t.closest("form").attr("name"),
                        e.$watch((function() {
                            return r()
                        }
                        ), (function() {
                            l()
                        }
                        )),
                        e.$watch((function() {
                            return s()
                        }
                        ), (function() {
                            l()
                        }
                        ))
                    }
                }
            }
            ))
        },
        36185: function() {
            angular.module("xenaApp").directive("legNumber", (function() {
                return {
                    link: function(e, t, i) {}
                }
            }
            ))
        },
        17163: function(e, t, i) {
            var n = i(19755);
            angular.module("xenaApp").directive("scrollTo", [function() {
                return {
                    restrict: "A",
                    link: function(e, t, i) {
                        t.click(function(e) {
                            return function() {
                                n("html, body").animate({
                                    scrollTop: n(e.scrollTo).offset().top - 100
                                }, 300)
                            }
                        }(i))
                    }
                }
            }
            ])
        },
        21306: function() {
            angular.module("xenaApp").directive("showWithEventTrigger", (function() {
                return {
                    link: function(e, t, i) {
                        var n = i.showWithEventTrigger;
                        e.$watch(n, (function(e, i) {
                            e ? (t.show(),
                            t.trigger("show")) : t.hide()
                        }
                        ))
                    }
                }
            }
            ))
        },
        6762: function() {
            angular.module("xenaApp").directive("slideable", (function() {
                return {
                    restrict: "C",
                    compile: function(e, t) {
                        var i = e.html();
                        return e.html('<div class="slideable_content" style="margin:0 !important; padding:0 !important" >' + i + "</div>"),
                        function(e, t, i) {
                            i.duration = i.duration ? i.duration : "1s",
                            i.easing = i.easing ? i.easing : "ease-in-out",
                            t.css({
                                overflow: "hidden",
                                height: "0px",
                                transitionProperty: "height",
                                transitionDuration: i.duration,
                                transitionTimingFunction: i.easing
                            })
                        }
                    }
                }
            }
            )).directive("slideToggle", (function() {
                return {
                    restrict: "A",
                    link: function(e, t, i) {
                        var n, a;
                        i.expanded = !1,
                        t.bind("click", (function() {
                            if (n || (n = document.querySelector(i.slideToggle)),
                            a || (a = n.querySelector(".slideable_content")),
                            i.expanded)
                                n.style.height = "0px";
                            else {
                                a.style.border = "1px solid rgba(0,0,0,0)";
                                var e = a.clientHeight;
                                a.style.border = 0,
                                n.style.height = e + "px"
                            }
                            i.expanded = !i.expanded
                        }
                        ))
                    }
                }
            }
            ))
        },
        50867: function(e, t, i) {
            var n = i(19755);
            angular.module("xenaApp").directive("tabLoop", ["$log", "$templateCache", "$compile", function(e, t, i) {
                return {
                    restrict: "A",
                    link: function(e, t, i) {
                        !function(e) {
                            var t = e.slice(0, 2)
                              , i = e.slice(-2)
                              , a = t.first()
                              , o = i.last()
                              , r = t.last()
                              , s = i.first();
                            n(o).focus((function() {
                                n(r).focus()
                            }
                            )),
                            n(a).focus((function() {
                                n(s).focus()
                            }
                            ))
                        }(n("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]", t))
                    }
                }
            }
            ])
        },
        60979: function(e, t, i) {
            var n = i(19755);
            angular.module("xenaApp").directive("toolTip", ["$log", "$templateCache", "$compile", function(e, t, i) {
                return {
                    restrict: "A",
                    link: function(e, t, i) {
                        i.$$element.click(function(e, t) {
                            return function() {
                                n(".custom-select option:enabled").each((function() {
                                    var e = n(this);
                                    "" !== e.attr("title") && e.attr("title", "")
                                }
                                )),
                                n(".custom-select option[disabled]").each((function() {
                                    var e = n(this);
                                    e.attr("title") !== t.toolTip && e.attr("title", t.toolTip)
                                }
                                ))
                            }
                        }(0, i))
                    }
                }
            }
            ])
        },
        20905: function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
            var $ = __webpack_require__(19755);
            angular.module("xenaApp").directive("form", (function() {
                "use strict";
                function scrollToFirstError(e) {
                    var t = getHighestPosition(e.closest("form").find(".ng-invalid"));
                    void 0 === t || withinViewportHeight(t) || $("html, body").animate({
                        scrollTop: t - 120 + "px"
                    })
                }
                function getHighestPosition(e) {
                    var t;
                    return $.each(e, (function(e, i) {
                        var n = $(i).offset().top;
                        (void 0 === t || n < t) && (t = n)
                    }
                    )),
                    t
                }
                function withinViewportHeight(e) {
                    var t = $(window);
                    return !(e < t.scrollTop()) && e <= t.scrollTop() + t.height()
                }
                return {
                    restrict: "E",
                    require: "?ngController",
                    link: function link(scope, elm, attrs) {
                        var onSubmitHandler = attrs.onsubmit;
                        elm.attr("onsubmit", null),
                        elm.attr("data-angular-validation", !0),
                        void 0 !== elm.attr("name") && elm.on("submit", (function(event) {
                            return scope[elm.attr("name")].$valid ? (void 0 !== onSubmitHandler && eval(onSubmitHandler),
                            elm.trigger("submitValidForm"),
                            !0) : void 0 !== elm.closest("form").attr("data-skip-validation") && "false" !== elm.closest("form").attr("data-skip-validation") ? (elm.trigger("submitValidForm"),
                            !0) : (event.preventDefault(),
                            event.stopPropagation(),
                            scope.showAllValidations = !0,
                            scope.$apply(),
                            void scrollToFirstError(elm))
                        }
                        ))
                    }
                }
            }
            ))
        },
        70579: function() {
            angular.module("xenaApp").directive("validateUniqueness", ["uniquenessService", function(e) {
                return {
                    require: "ngModel",
                    link: function(t, i, n, a) {
                        a.$validators.unique = function(i, o) {
                            return !!a.$isEmpty(i) || e.isUnique(t, n.ngModel, o)
                        }
                    }
                }
            }
            ])
        },
        62485: function() {
            angular.module("xenaApp").directive("valueType", (function() {
                var e = {
                    string: function(e) {
                        return e.value
                    },
                    int: function(e) {
                        return parseInt(e.value)
                    },
                    float: function(e) {
                        return parseFloat(e.value)
                    },
                    date: function(e) {
                        return Date.parse(e.value)
                    },
                    checkbox: function(e) {
                        return !!e.checked
                    },
                    select: function(e, t) {
                        return t.val()
                    }
                };
                function t(t, i, n) {
                    return "function" == typeof e[t] ? e[t](i, n) : (console.warn('No parser available for type "' + t + '", assuming type "string"'),
                    e.string(i, n))
                }
                return {
                    require: "ngModel",
                    restrict: "A",
                    link: function(e, i, n, a) {
                        void 0 !== n.pickADate ? e[n.pickADate] = t(n.valueType, n, i) : e[n.ngModel] = t(n.valueType, n, i)
                    }
                }
            }
            ))
        },
        68095: function(e, t, i) {
            var n = i(19755);
            function a(e, t) {
                var i = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var n = Object.getOwnPropertySymbols(e);
                    t && (n = n.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }
                    ))),
                    i.push.apply(i, n)
                }
                return i
            }
            function o(e) {
                for (var t = 1; t < arguments.length; t++) {
                    var i = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? a(Object(i), !0).forEach((function(t) {
                        r(e, t, i[t])
                    }
                    )) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : a(Object(i)).forEach((function(t) {
                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))
                    }
                    ))
                }
                return e
            }
            function r(e, t, i) {
                return t in e ? Object.defineProperty(e, t, {
                    value: i,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0
                }) : e[t] = i,
                e
            }
            !function() {
                "use strict";
                function e(e, t) {
                    var i = this;
                    function a(e) {
                        return e.reduce((function(e, t) {
                            return e + t.Variants.reduce((function(e, t) {
                                return e + t.Price.Points * t.Quantity
                            }
                            ), 0)
                        }
                        ), 0)
                    }
                    function r() {
                        var e = null;
                        if ("sessionStorage"in window && null !== window.sessionStorage) {
                            var t = window.sessionStorage.getItem("ancillaryData");
                            t && (e = JSON.parse(t))
                        }
                        return e
                    }
                    this.ancillaryData = {
                        ancillaries: []
                    },
                    this.setAncillaryData = function(e) {
                        return i.ancillaryData = e ? JSON.parse(JSON.stringify(e)) : {}
                    }
                    ,
                    this.ShowAncillariesObject = {
                        ancillaries: []
                    },
                    this.ancillariesPointsTracker = {
                        totalPointsLeft: 0,
                        totalInitialPoints: 0
                    },
                    this.getVariantQuantityCallbacks = [],
                    this.updateAncillaryOptionsObservers = [],
                    this.registerVariantQuantityCallback = function(e, t) {
                        for (var n = 0; n < i.getVariantQuantityCallbacks.length; n++) {
                            i.getVariantQuantityCallbacks[n].id === t && i.getVariantQuantityCallbacks.splice(n, 1)
                        }
                        var a = {
                            callback: e,
                            id: t
                        };
                        i.getVariantQuantityCallbacks.push(a)
                    }
                    ,
                    this.getCurrentTrackingInfo = function(e) {
                        var t = {
                            trackingInfo: {
                                productid: "",
                                productpriceout: "",
                                productpointsout: "",
                                productunitsout: "",
                                productpricein: "",
                                productpointsin: "",
                                productunitsin: "",
                                productcurrency: ""
                            },
                            trackEvent: !1
                        };
                        return angular.forEach(i.getVariantQuantityCallbacks, (function(i) {
                            var n = i.callback(e)
                              , a = ",";
                            null != n && (t.trackingInfo.productid && (a = ""),
                            t.trackingInfo.productid += n.productId + a,
                            t.trackingInfo.productpriceout += n.productPriceOut.toString() + a,
                            t.trackingInfo.productpointsout += n.productPointsOut.toString() + a,
                            t.trackingInfo.productunitsout += n.productUnitsOut.toString() + a,
                            t.trackingInfo.productpricein += n.productPriceIn.toString() + a,
                            t.trackingInfo.productpointsin += n.productPointsIn.toString() + a,
                            t.trackingInfo.productunitsin += n.productUnitsIn.toString() + a,
                            t.trackingInfo.productcurrency += n.productcurrency,
                            t.trackEvent = t.trackEvent || n.quantityHasChanged)
                        }
                        )),
                        t
                    }
                    ,
                    this.registerUpdateAncillaryOptionsObservers = function(e) {
                        return i.updateAncillaryOptionsObservers.push(e)
                    }
                    ,
                    this.notifyUpdateAncillaryOptionsObservers = function(e) {
                        return angular.forEach(i.updateAncillaryOptionsObservers, (function(t) {
                            t(e)
                        }
                        ))
                    }
                    ,
                    this.setAncillaryQuantity = function(e, t) {
                        i.ancillaryData.ancillaries.forEach((function(i) {
                            i.Variants.forEach((function(i) {
                                return i.Quantity = i.Id === t ? e : i.Quantity
                            }
                            ))
                        }
                        ))
                    }
                    ,
                    this.calculateTotalPointsLeftFromAncillaryData = function() {
                        var e = i.ancillariesPointsTracker.totalInitialPoints - a(i.ancillaryData.ancillaries);
                        e >= 0 ? i.ancillariesPointsTracker.totalPointsLeft = e : (i.ancillaryData.ancillaries = i.ancillaryData.ancillaries.map((function(e) {
                            return e.Variants.map((function(e) {
                                return e.Id.includes("LOY") ? o(o({}, e), {}, {
                                    Quantity: 0
                                }) : e
                            }
                            ))
                        }
                        )),
                        i.ancillariesPointsTracker.totalPointsLeft = i.ancillariesPointsTracker.totalInitialPoints)
                    }
                    ,
                    this.getTotalSelectedPoints = function() {
                        return a(i.ancillaryData.ancillaries)
                    }
                    ,
                    this.getTotalSelectedCash = function() {
                        return i.ancillaryData.ancillaries.reduce((function(e, t) {
                            return e + t.Variants.reduce((function(e, t) {
                                return e + t.Price.Amount * t.Quantity
                            }
                            ), 0)
                        }
                        ), 0)
                    }
                    ,
                    this.setAncillaryDataFromSessionStorage = function(e) {
                        var t = r();
                        null !== t ? null === t.isAuthenticated || t.isAuthenticated !== e.isAuthenticated ? (i.setAncillaryData(e),
                        i.saveToSessionStorage()) : i.setAncillaryData(t) : i.setAncillaryData(e)
                    }
                    ,
                    this.updateAncillaryData = function(e) {
                        var t, n, a = r();
                        null != a ? (t = e,
                        function(e) {
                            e.ancillaries = e.ancillaries.map((function(e) {
                                return e.Variants = e.Variants.map((function(e) {
                                    return o(o({}, e), {}, {
                                        Quantity: 0
                                    })
                                }
                                )),
                                e
                            }
                            ))
                        }(n = a),
                        n = n.ancillaries.map((function(e) {
                            var i = t.ancillaries.find((function(t) {
                                return t.Id === e.Id
                            }
                            ));
                            return i && (e.Variants = e.Variants.map((function(e) {
                                var t = i.Variants.find((function(t) {
                                    return t.Id === e.Id
                                }
                                ));
                                return t ? o(o({}, e), {}, {
                                    Quantity: t.Quantity
                                }) : e
                            }
                            ))),
                            e
                        }
                        )),
                        i.setAncillaryData(a),
                        i.saveToSessionStorage()) : i.setAncillaryData(e)
                    }
                    ,
                    this.getNumberOfSelectedVariants = function() {
                        return i.ancillaryData.ancillaries.flatMap((function(e) {
                            return e.Variants
                        }
                        )).filter((function(e) {
                            return !!e.Quantity
                        }
                        )).length
                    }
                    ,
                    this.getNumberOfAncillariesForCash = function() {
                        return i.ancillaryData.ancillaries.reduce((function(e, t) {
                            return t.Variants.some((function(e) {
                                return !!e.Quantity && !!e.Price.Amount
                            }
                            )) ? e + 1 : e
                        }
                        ), 0)
                    }
                    ,
                    this.orderHasAncillaryWithDeliveryTime = function() {
                        return i.ancillaryData.ancillaries.some((function(e) {
                            return function(e) {
                                return !e.DeliveryTimeOptional && e.Variants.some((function(e) {
                                    return !!e.Quantity
                                }
                                ))
                            }(e)
                        }
                        ))
                    }
                    ,
                    this.cancelAncillaryFromBookingPut = function(e, i, n) {
                        var a = "/ajax/bookings/" + e + "/ancillary/cancel"
                          , o = {
                            Ids: i,
                            LastName: n
                        };
                        return t.post(a, o)
                    }
                    ,
                    this.getAncillary = function(e) {
                        return i.ancillaryData.ancillaries[e]
                    }
                    ,
                    this.getAncillaryById = function(e) {
                        return i.ancillaryData.ancillaries.find((function(t) {
                            return t.Id === e
                        }
                        ))
                    }
                    ,
                    this.getAncillaries = function() {
                        return i.ancillaryData.ancillaries
                    }
                    ,
                    this.saveToSessionStorage = function() {
                        "sessionStorage"in window && null !== window.sessionStorage && window.sessionStorage.setItem("ancillaryData", JSON.stringify(i.ancillaryData))
                    }
                    ,
                    this.deleteFromSessionStorage = function() {
                        "sessionStorage"in window && null !== window.sessionStorage && window.sessionStorage.removeItem("ancillaryData")
                    }
                    ,
                    this.clearAncillaryById = function(e) {
                        i.ancillaryData.ancillaries = function(e, t) {
                            return e.map((function(e) {
                                return e.Variants = e.Variants.map((function(e) {
                                    return e.Id === t ? o(o({}, e), {}, {
                                        Quantity: 0
                                    }) : e
                                }
                                )),
                                e
                            }
                            ))
                        }(i.ancillaryData.ancillaries, e)
                    }
                    ,
                    this.ClearAncillaryVariantFromUrlById = function(e) {
                        var t = window.location.search.split("&")
                          , i = ""
                          , a = t.find((function(t) {
                            return t.endsWith(e)
                        }
                        ));
                        if (a) {
                            var o = a.indexOf(e);
                            i = a.slice(0, o - 3) + "quantity"
                        }
                        i && (t = t.map((function(e) {
                            return e.includes(i) ? e.slice(0, e.indexOf("=")) + "=0" : e
                        }
                        )));
                        var r, s, l = window.location.pathname + t.join("&"), c = window.location.protocol + "//" + window.location.host + l;
                        window.history.replaceState({
                            path: c
                        }, "", c),
                        r = l,
                        (s = n("#loginform-returnurl")) && s.val(r)
                    }
                    ,
                    this.ClearAncillariesFromUrlAndReload = function() {
                        var e = window.location.search.split("&").filter((function(e) {
                            return !e.includes("ancillaries")
                        }
                        ))
                          , t = window.location.protocol + "//" + window.location.host + window.location.pathname + e.join("&");
                        window.location.href = t
                    }
                }
                angular.module("xenaApp").service("AncillaryService", e),
                e.$inject = ["$rootScope", "$http"],
                document.querySelector("#adm-ancillaries") && (window.ancillarieDataModule = function() {
                    var e = JSON.parse(document.querySelector("#adm-ancillaries").value)
                      , t = {};
                    if (e = e || [],
                    document.querySelector("#adm-bookingId"))
                        t = {
                            ancillaries: e,
                            bookingInformation: {
                                bookingId: JSON.parse(document.querySelector("#adm-bookingId").value),
                                hotelOperaId: JSON.parse(document.querySelector("#adm-hotelOperaId").value),
                                refId: document.querySelector("#adm-refId").value,
                                urlEncryptionEnabled: document.querySelector("#adm-urlEncryptionEnabled").value
                            }
                        };
                    else {
                        var i = document.querySelector("#adm-deliveryTimeOptions") ? JSON.parse(document.querySelector("#adm-deliveryTimeOptions").value) : []
                          , n = document.querySelector("#adm-ancillariesFilterCategories") ? JSON.parse(document.querySelector("#adm-ancillariesFilterCategories").value) : "";
                        t = {
                            ancillaries: e,
                            message: "",
                            deliveryTimes: {
                                options: i || [],
                                selectedDeliveryTime: JSON.parse(document.querySelector("#adm-selectedDeliveryTime").value)
                            },
                            isAuthenticated: JSON.parse(document.querySelector("#adm-isAuthenticated").value),
                            isPostBooking: JSON.parse(document.querySelector("#adm-isPostBooking").value),
                            ancillariesFilterCategories: n
                        }
                    }
                    return {
                        ancillaryData: t
                    }
                }()),
                document.querySelector("#hotel-reservation-data") && (window.hotelReservationDataObj = JSON.parse(document.querySelector("#hotel-reservation-data").value)),
                document.querySelector("#HRD-hotelbnr") && hotelReservationDataObj && (hotelReservationDataObj.hotelbnr = document.querySelector("#HRD-hotelbnr").value),
                document.querySelector("#HRD-hotelid") && hotelReservationDataObj && (hotelReservationDataObj.hotelid = document.querySelector("#HRD-hotelid").value),
                window.sweetAlertJson = document.querySelector("#sweetAlertLbls") ? JSON.parse(document.querySelector("#sweetAlertLbls").value) : ""
            }()
        },
        84887: function() {
            !function() {
                "use strict";
                function e(e, t, i) {
                    this.spinner = '<div class="circular-loader"></div>',
                    this.priceObject = {
                        totalPriceHtmlString: this.spinner,
                        firstRoomPriceHtmlString: this.spinner,
                        totalPoints: i.getTotalSelectedPoints,
                        totalCash: i.getTotalSelectedCash
                    },
                    this.getTotalPrice = function(e, i) {
                        var n = "/ajax/bookings/" + e + "/totalprice"
                          , a = {
                            Id: 0,
                            LastName: i
                        };
                        return t.post(n, a)
                    }
                    ,
                    this.getTotEnterDetailsPrice = function(e) {
                        var i = "/ajax/enterdetails/totalprice/" + e;
                        return t.get(i)
                    }
                }
                angular.module("xenaApp").service("BookingPriceService", e),
                e.$inject = ["$rootScope", "$http", "AncillaryService"]
            }()
        },
        60530: function(e, t, i) {
            var n = i(19755)
              , a = i(19755);
            window.xenaApp.factory("calendarService", (function() {
                var e = {};
                function t(e) {
                    return 60 * e * 1e3
                }
                return e.data = {
                    maxFromDate: new Date,
                    minToDate: new Date,
                    maxToDate: new Date,
                    today: new Date((new Date).getTime() + t((new Date).getTimezoneOffset()))
                },
                e.init = function(i, n, a, o, r) {
                    e.initCalendarLanguage(),
                    e.addcalendarOpenCallback();
                    var s = t(new Date(a || e.data.today).getTimezoneOffset())
                      , l = t(new Date(o || e.data.today).getTimezoneOffset());
                    r && (i.fromDate = a ? new Date(new Date(a).getTime() + s) : e.data.today,
                    i.toDate = o ? new Date(new Date(o).getTime() + l) : e.data.today),
                    n.fromDate = i.fromDate,
                    e.setDateRangeValues(new Date(i.fromDate))
                }
                ,
                e.getDateDayDifference = function(e, t) {
                    var i = Math.abs(t.getTime() - e.getTime());
                    return Math.ceil(i / 864e5)
                }
                ,
                e.setDateRangeValues = function(t) {
                    e.data.maxFromDate = (new Date).addDays(395),
                    e.furthestLimit = e.data.maxFromDate.addDays(1),
                    e.data.minToDate = t.addDays(1),
                    e.data.maxToDate = t.addDays(99),
                    e.data.maxToDate > e.furthestLimit && (e.data.maxToDate = new Date(e.furthestLimit.getTime()))
                }
                ,
                e.initCalendarLanguage = function() {
                    n.fn.pickadate = n.fn.pickadate || {
                        defaults: {}
                    };
                    var e = n("html").attr("lang");
                    void 0 !== PICKADATE_TRANSLATIONS[e] && a.extend(a.fn.pickadate.defaults, PICKADATE_TRANSLATIONS[e])
                }
                ,
                e.addcalendarOpenCallback = function() {
                    a.extend(a.fn.pickadate.defaults, {
                        onOpen: function() {
                            var e = n(this.$holder[0]);
                            e.one("transitionend", (function() {
                                e.focus()
                            }
                            ))
                        }
                    })
                }
                ,
                e.adjustDates = function(t, i, n) {
                    var a;
                    t !== i && (e.setDateRangeValues(new Date(t)),
                    a = e.getDateDayDifference(i, n.toDate),
                    n.toDate = t.addDays(a),
                    n.toDate < e.data.minToDate && (n.toDate = new Date(e.data.minToDate.getTime())),
                    n.toDate > e.data.maxToDate && (n.toDate = new Date(e.data.maxToDate.getTime())),
                    n.fromDate = t)
                }
                ,
                e
            }
            ))
        },
        6430: function() {
            window.xenaApp.factory("creditCardService", (function() {
                var e = {
                    data: {
                        creditCardIsInRequiredContext: !0
                    }
                };
                return e
            }
            ))
        },
        46934: function() {
            !function() {
                "use strict";
                function e(e, t) {
                    this.resetCharitytObserverCallbacks = [],
                    this.chosenCharity = {
                        id: null
                    },
                    this.userData = {
                        points: 0
                    },
                    this.donationsData = {
                        donationWasSuccess: !1
                    },
                    this.registerResetCharityObserver = function(e) {
                        this.resetCharitytObserverCallbacks.push(e)
                    }
                    ,
                    this.notifyResetCharityObservers = function() {
                        angular.forEach(this.resetCharitytObserverCallbacks, (function(e) {
                            e()
                        }
                        ))
                    }
                    ,
                    this.getAvailablePoints = function() {
                        return t.get("/ajax/getPoints/")
                    }
                }
                angular.module("xenaApp").service("DonationsService", e),
                e.$inject = ["$rootScope", "$http"]
            }()
        },
        53129: function() {
            window.xenaApp.factory("uniquenessService", (function() {
                var e = {}
                  , t = {};
                return e.isUnique = function(e, i, n) {
                    return function(e, i) {
                        t[i] = t[i] || [],
                        -1 === t[i].indexOf(e) && t[i].push(e)
                    }(e, i),
                    !t[i].some((function(t) {
                        return t !== e && "" !== t.$eval(i) && t.$eval(i) === n
                    }
                    ))
                }
                ,
                e
            }
            ))
        },
        20419: function() {
            "use strict";
            angular.module("xenaApp").service("UserService", ["$rootScope", "$http", function() {
                this.UserData = {
                    userIsAuthenticated: !1
                },
                this.setUserData = function(e) {
                    this.UserData = e
                }
            }
            ])
        },
        17970: function(e, t, i) {
            "use strict";
            i.r(t),
            i.d(t, {
                init: function() {
                    return r
                },
                toggle: function() {
                    return s
                },
                show: function() {
                    return l
                },
                hide: function() {
                    return c
                }
            });
            var n = i(19755)
              , a = !1
              , o = !1
              , r = function() {
                n("#loader".length < 1) && n("body").append('\n            <div id="loader" class="modal">\n                <div class="modal__circular-loader-container">\n                    <div class="circular-loader circular-loader--light circular-loader--large"></div>\n                </div>\n                <div class="modal__background-layer"></div>\n            </div>\n        '),
                n(document).on("keyup", (function(e) {
                    27 === e.keyCode && c()
                }
                )),
                o = !0
            }
              , s = function(e) {
                o || r(),
                (a = !a) ? l() : c(),
                "function" == typeof e && (-1 != navigator.userAgent.indexOf("Safari") && -1 == navigator.userAgent.indexOf("Chrome") ? setTimeout((function() {
                    e()
                }
                ), 500) : e())
            }
              , l = function() {
                a = !0,
                n("#loader").show()
            }
              , c = function() {
                a = !1,
                n("#loader").hide()
            }
        },
        93748: function(e, t, i) {
            "use strict";
            i.r(t),
            i.d(t, {
                init: function() {
                    return p
                },
                initLoginPopup: function() {
                    return C
                },
                onClickFunction: function() {
                    return m
                }
            });
            var n, a, o, r = i(15898), s = i(98780), l = i(19755), c = "#js-login-modal", d = "js-login";
            l(window).on("load", (function() {
                var e = decodeURIComponent(window.location.href).split("?registration=");
                e[1] && ("" !== e[1] && "success" === e[1] || "success" === e[1]) && (0,
                s.fR)()
            }
            ));
            var u = function() {
                window.sessionStorage.removeItem("userHtmlForLoggedInOrLoggedOut"),
                window.sessionStorage.removeItem("loginTrackData"),
                window.localStorage.removeItem("loginTrackData"),
                window.localStorage.removeItem("userLoggedInId")
            }
              , p = function() {
                l('*[data-js="login-modal-open"]').off("click"),
                l('*[data-js="login-modal-open"]').on("click", m);
                var e = (o = l(c)).data("js-action");
                if (e)
                    switch (e) {
                    case "activate-login":
                        u(),
                        window.location.search.indexOf("uppd=1") > -1 ? b() : h();
                        break;
                    case "activate-verify-email":
                        f(),
                        u()
                    }
                l('*[data-js="unlock-profile-modal-open"]').on("click", (function(e) {
                    e.preventDefault();
                    var t = e.target
                      , i = l("#js-mfa-modal").data("js-unlock-profile");
                    v(i, t)
                }
                ))
            }
              , m = function(e) {
                l(e.currentTarget).attr("data-js-trigger-promotion") && localStorage.setItem("data-js-trigger-promotion", !0),
                e.target.classList.contains("nav-secondary__item__link") ? (0,
                s.ay)("member-login-top") : e.target.classList.contains("member-banner-login-btn") && (0,
                s.ay)("member-login-banner"),
                e.preventDefault(),
                g(e),
                u(),
                l.ajax({
                    type: "POST",
                    url: "/ajax/startpage/setsessionredirecturl"
                })
            }
              , h = function() {
                var e = o.data(d);
                v(e)
            }
              , f = function() {
                setTimeout((function() {
                    var e = o.data("js-verify-email");
                    v(e)
                }
                ), 1e3)
            }
              , g = function(e) {
                var t = e.target
                  , i = l(c).data(d);
                v(i, t)
            }
              , v = function(e, t) {
                t = t || null;
                var i = '<iframe src="' + e + '" id="login-iframe" width="100%" height="100%"></iframe>';
                n = new r.Z({
                    width: 454,
                    height: 657,
                    content: i,
                    contentBackground: !1,
                    triggerObject: t,
                    showLoadingSpinner: !0,
                    fullscreenInSmallDown: !0,
                    closeOnBackgroundClick: !1
                }),
                window.addEventListener("message", y, !1)
            }
              , b = function() {
                var e = document.querySelector(".pwd-change-msg");
                e.classList.remove("hidden"),
                a = new r.Z({
                    width: 400,
                    height: 380,
                    content: e,
                    contentBackground: !1,
                    showLoadingSpinner: !0,
                    fullscreenInSmallDown: !0,
                    closeOnBackBtn: !1,
                    closeOnBackgroundClick: !1
                }),
                l(".pwd-change-msg button.login-button").on("click", (function() {
                    a.close(),
                    h()
                }
                )),
                l(".pwd-change-msg .close").on("click", (function() {
                    a.close()
                }
                ))
            }
              , y = function(e) {
                if (e.data && "function" == typeof e.data.split)
                    switch (e.data.split(":")[0]) {
                    case "setFrameHeight":
                        var t = e.data.split(":")[1];
                        S(t);
                        break;
                    case "closeLoginModal":
                        w(),
                        l("body").removeClass("scrollable-body");
                        break;
                    case "showLoginPage":
                        _();
                        break;
                    case "authenticating":
                        l("body").addClass("scrollable-body");
                        var i = l("body").find(".modal.modal--fullscreen-in-small-down")[0];
                        l(i).addClass("scrollable");
                        break;
                    case "error":
                        var n = e.data.replace("error", "loginfailure");
                        n = (n = -1 != n.indexOf(". ") ? n.split(". ")[0] : n).replace(/\s/g, ""),
                        (0,
                        s.ay)("loginfail", {
                            errorcode: n,
                            loginaction: "login fail"
                        })
                    }
            }
              , w = function(e) {
                window.removeEventListener("message", y, !1),
                n.close(),
                null !== localStorage.getItem("data-js-trigger-promotion") && localStorage.removeItem("data-js-trigger-promotion")
            }
              , S = function(e) {
                n.setHeight(e)
            }
              , _ = function() {
                var e = o.data(d);
                l("#login-iframe").attr("src", e)
            }
              , C = function(e) {
                g(e),
                u()
            }
        },
        15898: function(e, t, i) {
            "use strict";
            i.d(t, {
                Z: function() {
                    return a
                }
            });
            var n = i(19755);
            function a(e) {
                var t, i, a, o;
                e = n.extend({
                    width: 500,
                    height: 250,
                    content: null,
                    contentBackground: !0,
                    contentBackgroundColor: "#FFF",
                    overlay: !0,
                    autoOpen: !0,
                    triggerObject: null,
                    closeOnBackBtn: !0,
                    showLoadingSpinner: !1,
                    closeOnBackgroundClick: !0,
                    fullscreenInSmallDown: !1,
                    customClass: ""
                }, e);
                function r(e) {
                    o.html(e)
                }
                function s() {
                    var i, a, r;
                    e.closeOnBackBtn && history.pushState(null, null, "#modal"),
                    e.parentElement ? parentElement.append(t) : n("body").append(t),
                    i = o.find("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]"),
                    a = i.first(),
                    r = i.last(),
                    a.focus(),
                    r.on("keydown", (function(e) {
                        9 !== e.which || e.shiftKey || (e.preventDefault(),
                        a.focus())
                    }
                    )),
                    a.on("keydown", (function(e) {
                        9 === e.which && e.shiftKey && (e.preventDefault(),
                        r.focus())
                    }
                    )),
                    t.fadeIn("fast", l)
                }
                function l() {
                    n(document).on("keyup.modal", c),
                    e.closeOnBackBtn && Modernizr.history && n(window).one("popstate.modal", d),
                    n("body").addClass("modal-is-open"),
                    o.focus()
                }
                function c(e) {
                    27 === e.keyCode && (e.preventDefault(),
                    e.stopPropagation(),
                    u())
                }
                function d() {
                    h(),
                    p()
                }
                function u() {
                    if (h(),
                    e.closeOnBackBtn && Modernizr.history) {
                        "" === window.location.search || window.location.search;
                        history.back()
                    }
                    p()
                }
                function p() {
                    t.fadeOut("fast", m)
                }
                function m() {
                    n("body").removeClass("modal-is-open"),
                    t.trigger("modalIsClosed"),
                    t.remove(),
                    null !== e.triggerObject && e.triggerObject.focus()
                }
                function h() {
                    i.off("click", u),
                    n(document).off("keyup.modal", c)
                }
                t = n('<div class="modal" />'),
                e.fullscreenInSmallDown && t.addClass("modal--fullscreen-in-small-down"),
                a = n('<div class="modal__inner-container" />'),
                t.append(a),
                e.showLoadingSpinner && t.append('<div class="modal__circular-loader-container"><div class="circular-loader circular-loader--light circular-loader--large" /></div>'),
                i = n('<div class="modal__background-layer" />'),
                e.overlay || i.addClass("u-bg-color-none"),
                e.closeOnBackgroundClick && i.on("click", u),
                t.append(i),
                (o = n('<div class="modal__content-container"></div>')).width(e.width),
                o.height(e.height),
                e.contentBackground && o.css("background-color", e.contentBackgroundColor),
                a.append(o),
                e.content && r(e.content),
                e.customClass && t.addClass(e.customClass),
                e.autoOpen && s(),
                this.setWidth = function(e) {
                    o.width(e)
                }
                ,
                this.setHeight = function(e) {
                    o.height(e)
                }
                ,
                this.getElement = function() {
                    return t
                }
                ,
                this.setContent = r,
                this.open = s,
                this.close = u
            }
        },
        54648: function(e, t, i) {
            "use strict";
            i.r(t),
            i.d(t, {
                emailRegexp: function() {
                    return n
                },
                phone: function() {
                    return a
                },
                companyCode: function() {
                    return o
                },
                membershipNumber: function() {
                    return r
                },
                alphanumeric: function() {
                    return s
                },
                noHtmlTags: function() {
                    return l
                }
            });
            var n = /^[-0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\.[a-zA-Z]{2,12}$/
              , a = Object.freeze({
                strict: /^(?![0\D]+$)[\s\d()\\-]{1,20}$/,
                loose: /^\+?[0-9 \-\(\)]+$/
            })
              , o = /^d\d+$/i
              , r = /^30812(?!(0|1|2))[0-9]{9}$/
              , s = Object.freeze({
                noSpecialCharacters: /^[A-Za-z¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ0-9-\s]*$/,
                noSpecialCharactersExceptPeriod: /^[A-Za-z¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ0-9-\.\s]*$/,
                streetAddress: /^[[A-Za-z¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ0-9-\.,\s/]*$/,
                password: /^[A-Za-z0-9@#%\*]*$/
            })
              , l = /^[^<>]*$/
        },
        52071: function(e, t, i) {
            var n = i(19755);
            !function() {
                "use strict";
                n(".skip-to-content").click((function() {
                    var e = "#" + this.href.split("#")[1];
                    n(e).attr("tabindex", -1).on("blur focusout", (function() {
                        n(this).removeAttr("tabindex")
                    }
                    )).focus()
                }
                ))
            }()
        },
        27927: function(e, t, i) {
            "use strict";
            i(26981),
            i(40851),
            i(56997),
            i(57147),
            i(83587),
            i(50533),
            i(94092),
            i(13711),
            i(69219),
            i(95648),
            i(5091),
            i(42004);
            var n = i(19755);
            var a = i(19755);
            var o = i(19755);
            function r(e) {
                "true" === o(e).attr("aria-pressed") ? o(e).attr("aria-pressed", "false") : o(e).attr("aria-pressed", "true")
            }
            var s = i(19755)
              , l = function() {
                var e = !1
                  , t = this;
                s(t).on("click", (function i(n) {
                    n.stopPropagation(),
                    e = !e,
                    s(t).parents(".dropdown-container").toggleClass("open"),
                    r(s(this)),
                    e ? s(document).on("click", i) : s(document).off("click", i)
                }
                )),
                s(t).parent().on("focusout", (function(e) {
                    t.parentElement.contains(e.relatedTarget) || s(document).trigger("click")
                }
                ))
            }
              , c = i(19755);
            function d(e) {
                this.$trigger = e,
                this.eventHandlers = []
            }
            d.find = function(e) {
                return e.data("tooltip-info-instance") || e.data("tooltip-info-instance", new d(e)),
                e.data("tooltip-info-instance")
            }
            ,
            d.closeAll = function() {
                c("[data-js-tooltip]").each((function(e, t) {
                    d.find(c(t)).close()
                }
                ))
            }
            ,
            d.mouseOutEventHandler = function() {
                clearTimeout(d.find(c(this)).thresholdTimer)
            }
            ,
            d.registerMouseOutEventHandler = function(e) {
                d.unregisterMouseOutEventHandler(e),
                c(e).on("mouseout", d.mouseOutEventHandler)
            }
            ,
            d.unregisterMouseOutEventHandler = function(e) {
                c(e).off("mouseout", d.mouseOutEventHandler)
            }
            ,
            d.prototype = {
                ANIMATION_TIME: 250,
                threshold_TIME: 500,
                ESCAPE_KEY: 27,
                open: function() {
                    return this.$tooltip = c("#" + this.$trigger.attr("aria-describedby")),
                    this.visible() || d.closeAll(),
                    this.$tooltip.addClass("visible"),
                    this.escapeRelativePositioning(),
                    this.closeOnEscapeKey(),
                    this
                },
                hoverOpen: function(e) {
                    this.thresholdTimer = setTimeout(function() {
                        this.open(),
                        e.call(this)
                    }
                    .bind(this), this.threshold_TIME)
                },
                close: function() {
                    return this.visible() && (this.animateOut(),
                    this.unregisterEventHandlers()),
                    this
                },
                visible: function() {
                    return this.$tooltip && this.$tooltip.hasClass("visible")
                },
                animateOut: function() {
                    var e = this;
                    this.$tooltip.addClass("hiding"),
                    setTimeout((function() {
                        e.$tooltip.removeClass("visible").removeClass("hiding"),
                        e.removePositioning()
                    }
                    ), this.ANIMATION_TIME)
                },
                closeOnEscapeKey: function() {
                    var e = this;
                    this.escapeKeyHandler = function(t) {
                        t.which === e.ESCAPE_KEY && e.close()
                    }
                    ,
                    c("body").on("keyup", this.escapeKeyHandler)
                },
                closeOnMouseout: function() {
                    var e = this;
                    if (!this.hasActiveCloseEvent()) {
                        this.registerDefaultEventHandler("mousemove", (function(t) {
                            e.outsideBoundingBox(t.pageX, t.pageY) && e.close()
                        }
                        ));
                        var t = function() {
                            e.close()
                        };
                        c("body").on("click", t),
                        this.eventHandlers.push({
                            eventType: "click",
                            handler: t
                        })
                    }
                },
                closeOnClick: function() {
                    var e = this;
                    c("body").attr("onclick", ""),
                    this.registerDefaultEventHandler("click", (function(t) {
                        e.close()
                    }
                    ))
                },
                closeOnBlur: function(e) {
                    var t = this;
                    c(document).on("blur", e, (function(e) {
                        t.close()
                    }
                    ))
                },
                registerDefaultEventHandler: function(e, t) {
                    this.unregisterDefaultEventHandler(),
                    c("body").on(e, t),
                    this.eventHandlers.push({
                        eventType: e,
                        handler: t
                    })
                },
                registerResizeEventHandler: function() {
                    var e = this;
                    this.resizeEventHandler = function() {
                        e.updatePosition()
                    }
                    ,
                    c(window).on("resize", this.resizeEventHandler)
                },
                unregisterEventHandlers: function() {
                    this.unregisterEscapeKeyHandler(),
                    this.unregisterDefaultEventHandler(),
                    this.unregisterResizeEventHandler()
                },
                unregisterDefaultEventHandler: function() {
                    this.eventHandlers && (this.eventHandlers.forEach((function(e) {
                        c("body").off(e.eventType, e.handler)
                    }
                    )),
                    this.eventHandlers = [])
                },
                unregisterEscapeKeyHandler: function() {
                    this.escapeKeyHandler && (c("body").off("keyup", this.escapeKeyHandler),
                    this.escapeKeyHandler = null)
                },
                unregisterResizeEventHandler: function() {
                    this.resizeEventHandler && c(window).off("resize", this.resizeEventHandler)
                },
                outsideBoundingBox: function(e, t) {
                    var i = this.boundingBox();
                    return e < i.left || e > i.right || t < i.top || t > i.bottom
                },
                boundingBox: function() {
                    return {
                        left: Math.min(this.$trigger.offset().left - 10, this.$tooltip.offset().left),
                        right: Math.max(this.$trigger.offset().left + this.$trigger.width() + 10, this.$tooltip.offset().left + this.$tooltip.width()),
                        top: Math.min(this.$trigger.offset().top - 10, this.$tooltip.offset().top),
                        bottom: Math.max(this.$trigger.offset().top + this.$trigger.height() + 10, this.$tooltip.offset().top + this.$tooltip.height())
                    }
                },
                hasActiveCloseEvent: function() {
                    return !!this.eventHandlers.length
                },
                escapeRelativePositioning: function() {
                    c("body").append(this.$tooltip),
                    this.updatePosition(),
                    this.registerResizeEventHandler()
                },
                updatePosition: function() {
                    this.normalizePosition();
                    var e = {
                        top: this.$trigger.offset().top - 5 - this.$tooltip.outerHeight() / 2,
                        left: this.$trigger.offset().left - (window.ScreenHelper.mediaMediumUp() ? this.$tooltip.outerWidth() / 2 : this.$tooltip.outerWidth())
                    }
                      , t = c(window).scrollTop() + this.getReservedHeight() + 5;
                    e.top < t && (e.top = t),
                    e.left < c(window).scrollLeft() && (e.left = c(window).scrollLeft()),
                    this.$tooltip.css(e)
                },
                getReservedHeight: function() {
                    var e = c(".navigation-bar");
                    return e.hasClass("is-expanded") ? 0 : e.height()
                },
                normalizePosition: function() {
                    this.$tooltip.css({
                        top: 0,
                        left: 0
                    })
                },
                removePositioning: function() {
                    this.$tooltip.css({
                        top: "",
                        left: ""
                    })
                }
            };
            var u = i(19755)
              , p = "[data-js-tooltip]"
              , m = i(98780)
              , h = [{
                featureType: "administrative",
                elementType: "labels.text.fill",
                stylers: [{
                    color: "#ada6a0"
                }]
            }, {
                featureType: "administrative.country",
                elementType: "labels.text.fill",
                stylers: [{
                    color: "#483729"
                }]
            }, {
                featureType: "administrative.province",
                elementType: "labels.text.fill",
                stylers: [{
                    color: "#483729"
                }]
            }, {
                featureType: "administrative.locality",
                elementType: "labels.text.fill",
                stylers: [{
                    color: "#483729"
                }]
            }, {
                featureType: "administrative.neighborhood",
                elementType: "geometry.fill",
                stylers: [{
                    color: "#483729"
                }]
            }, {
                featureType: "administrative.land_parcel",
                elementType: "geometry.fill",
                stylers: [{
                    color: "#483729"
                }]
            }, {
                featureType: "landscape",
                elementType: "all",
                stylers: [{
                    visibility: "simplified"
                }]
            }, {
                featureType: "landscape",
                elementType: "labels.text.fill",
                stylers: [{
                    visibility: "on"
                }, {
                    color: "#ada6a0"
                }]
            }, {
                featureType: "landscape.man_made",
                elementType: "geometry.fill",
                stylers: [{
                    visibility: "on"
                }, {
                    saturation: "-100"
                }, {
                    weight: "1.39"
                }, {
                    hue: "#ff9500"
                }, {
                    lightness: "45"
                }]
            }, {
                featureType: "landscape.natural",
                elementType: "geometry.fill",
                stylers: [{
                    color: "#f2f2f2"
                }]
            }, {
                featureType: "landscape.natural.landcover",
                elementType: "geometry.fill",
                stylers: [{
                    color: "#fcfcfc"
                }]
            }, {
                featureType: "poi",
                elementType: "all",
                stylers: [{
                    visibility: "simplified"
                }]
            }, {
                featureType: "poi",
                elementType: "geometry.fill",
                stylers: [{
                    color: "#e4e4e2"
                }]
            }, {
                featureType: "poi",
                elementType: "labels.text.fill",
                stylers: [{
                    color: "#483729"
                }]
            }, {
                featureType: "poi",
                elementType: "labels.icon",
                stylers: [{
                    visibility: "off"
                }]
            }, {
                featureType: "poi.park",
                elementType: "geometry.fill",
                stylers: [{
                    color: "#dbe9ce"
                }]
            }, {
                featureType: "road",
                elementType: "labels",
                stylers: [{
                    visibility: "simplified"
                }]
            }, {
                featureType: "road",
                elementType: "labels.icon",
                stylers: [{
                    visibility: "off"
                }]
            }, {
                featureType: "road.highway",
                elementType: "all",
                stylers: [{
                    visibility: "off"
                }, {
                    color: "#ad9b8d"
                }]
            }, {
                featureType: "road.highway",
                elementType: "geometry",
                stylers: [{
                    visibility: "on"
                }]
            }, {
                featureType: "road.highway",
                elementType: "geometry.fill",
                stylers: [{
                    color: "#c7c3be"
                }]
            }, {
                featureType: "road.highway",
                elementType: "geometry.stroke",
                stylers: [{
                    visibility: "on"
                }, {
                    color: "#bab4ad"
                }]
            }, {
                featureType: "road.arterial",
                elementType: "geometry.stroke",
                stylers: [{
                    visibility: "off"
                }]
            }, {
                featureType: "road.local",
                elementType: "all",
                stylers: [{
                    visibility: "on"
                }]
            }, {
                featureType: "road.local",
                elementType: "geometry.fill",
                stylers: [{
                    color: "#ffffff"
                }]
            }, {
                featureType: "road.local",
                elementType: "geometry.stroke",
                stylers: [{
                    visibility: "off"
                }]
            }, {
                featureType: "road.local",
                elementType: "labels.text.fill",
                stylers: [{
                    color: "#555555"
                }]
            }, {
                featureType: "transit",
                elementType: "all",
                stylers: [{
                    visibility: "simplified"
                }]
            }, {
                featureType: "transit",
                elementType: "geometry.fill",
                stylers: [{
                    color: "#d2d0cd"
                }]
            }, {
                featureType: "transit",
                elementType: "labels.text.fill",
                stylers: [{
                    color: "#aba6a1"
                }]
            }, {
                featureType: "transit",
                elementType: "labels.icon",
                stylers: [{
                    visibility: "off"
                }]
            }, {
                featureType: "transit.station",
                elementType: "labels.icon",
                stylers: [{
                    visibility: "off"
                }]
            }, {
                featureType: "water",
                elementType: "all",
                stylers: [{
                    visibility: "simplified"
                }, {
                    color: "#abbaa4"
                }]
            }, {
                featureType: "water",
                elementType: "geometry.fill",
                stylers: [{
                    saturation: "-100"
                }, {
                    lightness: "52"
                }, {
                    color: "#d4dddd"
                }]
            }]
              , f = i(19755);
            document.querySelector("#globalHotel") && (document.hotel = JSON.parse(document.querySelector("#globalHotel").textContent.toString()));
            var g, v = window;
            document,
            document.mapSettings,
            document.hotel;
            function b(e, t) {
                this.$canvas = e,
                this.primaryPOI = t,
                this.autoPanDirection = e.attr("data-auto-pan"),
                this.controlPosition = e.attr("data-controls") || "left",
                this.maxAutoZoom = parseInt(e.attr("data-max-auto-zoom")),
                this.setInitialZoom = parseInt(e.attr("data-set-initial-zoom")),
                this.markers = {},
                this.createMap(),
                this.createPrimaryMarker(),
                this.attachEvents()
            }
            b.prototype = {
                ICON_BASE_URL: "/_static/img/icons/map/map-pin-",
                ICON_SIZE: 34,
                createMap: function() {
                    var e = f('<div id="mapElement" style="position: absolute; width: 100%; height: 100%;"></div>')
                      , t = {
                        center: this.defaultCenterLocation(),
                        zoom: 14,
                        maxZoom: 17,
                        minZoom: 3,
                        clickableIcons: !1,
                        draggable: !!this.$canvas.data("touchEvents") && this.$canvas.data("touchEvents"),
                        scrollwheel: !0 === this.$canvas.data("scrollable"),
                        panControl: !0,
                        panControlOptions: {
                            style: google.maps.ZoomControlStyle.LARGE,
                            position: this.panControlPosition()
                        },
                        zoomControlOptions: {
                            style: google.maps.ZoomControlStyle.LARGE,
                            position: this.zoomControlPosition()
                        },
                        scaleControl: !1,
                        streetViewControl: !1,
                        overviewMapControl: !0,
                        mapTypeControl: !1,
                        disableDefaultUI: !0
                    };
                    this.$canvas.append(e),
                    this.map = new google.maps.Map(e[0],t),
                    this.map.set("styles", h);
                    var n = document.createElement("div");
                    this.ZoomControl(n, this.map);
                    n.index = 1,
                    "right" === this.controlPosition ? this.map.controls[google.maps.ControlPosition.TOP_RIGHT].push(n) : this.map.controls[google.maps.ControlPosition.TOP_LEFT].push(n),
                    this.updateCanvasSize(),
                    this.autoPan(),
                    g = i(61223)(google.maps)
                },
                ZoomControl: function(e, t) {
                    e.style.padding = "5px";
                    var i = f("<div>", {
                        id: "mapZoomControlsWrapper",
                        class: "zoom-controls"
                    });
                    e.appendChild(i[0]);
                    var n = f("<button>", {
                        id: "mapZoomInBtn",
                        class: "zoom-controls__zoom-in"
                    });
                    i.append(n);
                    var a = f("<hr />", {
                        class: "zoom-controls__delimiter"
                    });
                    i.append(a);
                    var o = f("<button>", {
                        id: "mapZoomOutBtn",
                        class: "zoom-controls__zoom-out"
                    });
                    i.append(o),
                    google.maps.event.addDomListener(n[0], "click", (function() {
                        t.setZoom(t.getZoom() + 1)
                    }
                    )),
                    google.maps.event.addDomListener(o[0], "click", (function() {
                        t.setZoom(t.getZoom() - 1)
                    }
                    ))
                },
                attachEvents: function() {
                    var e = this;
                    this.$canvas.on("scroll-with:resize", (function() {
                        google.maps.event.trigger(e.map, "resize")
                    }
                    )),
                    this.$canvas.on("tab.activated", (function() {
                        google.maps.event.trigger(e.map, "resize")
                    }
                    )),
                    google.maps.event.addDomListener(v, "resize", (function() {
                        e.recenterMapAfterResize()
                    }
                    ))
                },
                resizeMap: function() {
                    google.maps.event.trigger(this.map, "resize")
                },
                defaultCenterLocation: function() {
                    return this.primaryPOI ? new google.maps.LatLng(this.primaryPOI.location.latitude,this.primaryPOI.location.longitude) : new google.maps.LatLng(0,0)
                },
                panControlPosition: function() {
                    return "right" === this.controlPosition ? google.maps.ControlPosition.RIGHT_BOTTOM : google.maps.ControlPosition.LEFT_BOTTOM
                },
                zoomControlPosition: function() {
                    return "right" === this.controlPosition ? google.maps.ControlPosition.TOP_RIGHT : google.maps.ControlPosition.TOP_LEFT
                },
                autoPan: function() {
                    ScreenHelper.isLargeScreen() && ("left" === this.autoPanDirection ? this.map.panBy(150, 0) : "right" === this.autoPanDirection && this.map.panBy(-200, 0))
                },
                createPrimaryMarker: function() {
                    this.primaryPOI && (this.markers[":primary"] = this.addMarker({
                        lat: this.primaryPOI.location.latitude,
                        long: this.primaryPOI.location.longitude,
                        name: this.primaryPOI.name,
                        icon: document.querySelector(".hotel-theme-scandic-go") ? "scandic-go" : this.primaryPOI.icon || "hotel",
                        category: "hotel-pin"
                    }))
                },
                getPrimaryMarker: function() {
                    return this.findMarkerByName(":primary")
                },
                shouldCenterOnPrimaryMarker: function() {
                    return this.primaryPOI && !1 !== this.primaryPOI.autoCenter
                },
                allGrayed: !1,
                trackEvent: !1,
                isAnyVisited: !1,
                isInfoWindowOpen: !1,
                addMarker: function(e) {
                    var t, i, n, a = this;
                    if (!e.element || "hidden" != e.element.getAttribute("data-category"))
                        return e.label ? (f(e.element).find(".webtest-main-price").text().length > 0 && (e.label = f(e.element).find(".webtest-main-price").text(),
                        -1 != e.label.indexOf("/") && (e.label = e.label.substr(0, e.label.indexOf("/")))),
                        e.label = e.label.replace(/,|\/.+/g, ""),
                        e.label = e.label.replace(/\B(?=(\d{3})+(?!\d))/g, " "),
                        a.allGrayed = !1,
                        a.isAnyVisited = !1,
                        a.isInfoWindowOpen = !1,
                        t = new g({
                            position: new google.maps.LatLng(e.lat,e.long),
                            draggable: !1,
                            raiseOnDrag: !1,
                            map: this.map,
                            icon: {
                                path: google.maps.SymbolPath.CIRCLE,
                                scale: 0
                            },
                            labelContent: e.label,
                            zIndex: this.markers ? Object.keys(this.markers).length : 0,
                            labelAnchor: new google.maps.Point(4 * e.label.length,30),
                            labelClass: "map-label",
                            labelInBackground: !1
                        }),
                        google.maps.event.addListener(t, "mouseover", this.highlightMarker(e.name)),
                        google.maps.event.addListener(t, "mouseout", this.highlightMarker(e.name)),
                        f(e.element).on("mouseover mouseout", this.highlightMarker(e.name))) : (t = new google.maps.Marker({
                            position: new google.maps.LatLng(e.lat,e.long),
                            map: this.map,
                            zIndex: this.markers ? Object.keys(this.markers).length : 0
                        }),
                        "hidden" === e.category ? t.setVisible(!1) : t.setIcon(this.icon(e.icon))),
                        e.link ? i = '<div class="info-window"><a href="' + e.link + '">' + e.name + "&nbsp;</a>" : e.infoWindowDetail ? (i = this.getHotelInfo(e.element),
                        a.trackEvent = !0) : i = '<div class="info-window info-' + e.category + '">' + e.name + "&nbsp;",
                        e.distance && (i += '<span class="distance">' + e.distance + "</span>"),
                        i += "</div>",
                        n = new google.maps.InfoWindow({
                            content: i,
                            maxWidth: 300
                        }),
                        google.maps.event.addListener(n, "domready", (function() {
                            if (e.infoWindowDetail) {
                                f(".l-section.map-section__wrapper").addClass("map-section__custom-info-window"),
                                f(".gm-style").addClass("custom-info-card");
                                var t = f(".gm-style-iw");
                                t.prev().addClass("info-window__background"),
                                f(".gm-style-iw-c").addClass("infoWindowCard"),
                                f(".infoWindowCard > button[type=button]").addClass("info-window__close-btn"),
                                t && t.find(".info-window__btn-holder").find(".btn.btn--primary")[0].addEventListener("click", (function() {
                                    (0,
                                    m.UQ)(e.element)
                                }
                                ))
                            }
                        }
                        )),
                        google.maps.event.addListener(t, "click", (function() {
                            a.closeAllInfoWindows(),
                            e.infoWindowDetail && a.map.panTo(t.getPosition()),
                            a.openInfoWindow(e.name),
                            e.label && a.scrollToElement(e.name)
                        }
                        )),
                        google.maps.event.addListener(n, "closeclick", (function() {
                            if (e.label) {
                                for (var i = Object.keys(a.markers), n = i.length - 1; n >= 0; n--)
                                    -1 !== a.markers[i[n]].marker.get("labelClass").indexOf("visited") && a.markers[i[n]].marker.set("labelClass", "map-label grayed");
                                f(e.element).find(".hotel-teaser").removeClass("hotel-teaser--hover"),
                                t.set("labelClass", "map-label visited"),
                                t.set("zIndex", t.get("zIndex") + 99),
                                a.isInfoWindowOpen = !1
                            }
                        }
                        )),
                        this.markers[e.name] = {
                            marker: t,
                            label: e.label,
                            infoWindow: n,
                            element: e.element
                        },
                        this.markers[e.name]
                },
                scrollToElement: function(e) {
                    var t = this.markers[e].element
                      , i = f(t).offset().top - 50
                      , n = Object.keys(this.markers);
                    n[n.length - 1] !== e && n[n.length - 2] !== e || (i = i - (window.innerHeight - t.offsetHeight) + 130),
                    document.querySelector(".list-pois") && (i = f(".list-pois").parent().parent().offset().top - 65),
                    f("html, body").stop().animate({
                        scrollTop: i
                    }, 400)
                },
                highlightMarker: function(e) {
                    var t = this;
                    return function(i) {
                        var n = t.markers[e].marker;
                        "-1" == n.get("labelClass").indexOf("hidden") && (t.isInfoWindowOpen || t.isAnyVisited || !t.markers || t.grayOutMarkers(n),
                        f(t.markers[e].element).find(".hotel-teaser").toggleClass("hotel-teaser--hover"),
                        t.updateMarkerStatus(n))
                    }
                },
                grayOutMarkers: function(e) {
                    var t = this
                      , i = Object.keys(t.markers);
                    if (t.allGrayed) {
                        for (a = i.length - 1; a >= 0; a--) {
                            var n = t.markers[i[a]].marker;
                            n != e && (t.isVisited(n) ? n.set("labelClass", "map-label visited") : n.set("labelClass", "map-label"))
                        }
                        t.allGrayed = !1
                    } else {
                        for (var a = i.length - 1; a >= 0; a--) {
                            var o = t.markers[i[a]].marker;
                            t.isVisited(o) ? o.set("labelClass", "map-label visited grayed") : o.set("labelClass", "map-label grayed")
                        }
                        t.allGrayed = !0
                    }
                },
                isVisited: function(e) {
                    if (e.get("labelClass"))
                        return -1 != e.get("labelClass").indexOf("visited")
                },
                updateMarkerStatus: function(e) {
                    var t = this
                      , i = e.get("labelClass");
                    -1 == i.indexOf("active") ? (i = "map-label active" + (t.isVisited(e) ? " visited" : ""),
                    e.set("labelClass", i),
                    e.set("zIndex", e.get("zIndex") + 999)) : (i = "map-label" + (t.isVisited(e) ? " visited" : ""),
                    i += t.isInfoWindowOpen ? " lost-focus" : t.isAnyVisited ? " grayed" : "",
                    e.set("labelClass", i),
                    e.set("zIndex", e.get("zIndex") - 999))
                },
                getHotelInfo: function(e) {
                    var t, i = f(e).find(".hotel-teaser__btn-holder"), n = "";
                    f(e).find(".viewRoom")[0] && (n = f(e).find(".viewRoom")[0].value ? f(e).find(".viewRoom")[0].value : "",
                    t = f(e).find(".view-rooms-link")[0].value || f(e).attr("href"));
                    var a = i.length > 0 && !i.find(".btn").hasClass("disabled") ? i.html() : '\n\t\t\t<a class="btn btn--primary" href="'.concat(t, '">\n\t\t\t\t').concat(n, "\n\t\t\t</a>")
                      , o = f(e).find(".webtest-main-price").html() || f(e).find(".available-rates-price .price").first().html() || e.getAttribute("data-room-availability");
                    (f(e).find(".webtest-main-price").html() || f(e).find(".available-rates-price .price").first().html()) && ((o = o.split(/ (.*)/))[0] = o[0].replace(/\B(?=(\d{3})+(?!\d))/g, " "),
                    o = o[0] + " " + o[1]);
                    var r = f(e).find(".webtest-main-price").text() || f(e).find(".available-rates-price .price").first().text() ? "" : "no-availability"
                      , s = "";
                    f(e).find(".recommendedBy")[0] && (s = '<div class="info-window__trip-advisor">'.concat(f(e).find(".recommendedBy")[0].value ? f(e).find(".recommendedBy")[0].value : "", ' <img src="').concat(f(e).find(".tripadvisor-rating > img").attr("src"), '" /></div>'));
                    var l = f(e).find(".tripadvisor-rating > img").attr("src") ? s : ""
                      , c = f(e).find(".hotel-teaser .rsContent").first().html() ? f(e).find(".hotel-teaser .rsContent").first().html() : ""
                      , d = f(e).find(".hotelNameLink").attr("href") || e.href
                      , u = f(e).find("h3.hotel-teaser__body__header a").text() || f(e).find("h3.hotel-teaser__body__header").text()
                      , p = o ? '<div class="info-window__price-holder '.concat(r, '">').concat(o, "</div>") : "";
                    return '\n\t\t\t<div class="info-window hotel-card">\n\t\t\t\t<div class="info-window__hotel-slider">'.concat(c, '</div>\n\t\t\t\t<div class="info-window__header"><a href="').concat(d, '">').concat(u, "</a></div>\n\t\t\t\t").concat(l, "\n\t\t\t\t").concat(p, '\n\t\t\t\t<div class="info-window__btn-holder">').concat(a, "</div>\n\t\t\t</div>\n\t\t")
                },
                setInfoWindowStyles: function(e) {
                    google.maps.event.addListener(e, "domready", (function() {
                        f(".l-section.map-section__wrapper").addClass("map-section__custom-info-window"),
                        f(".gm-style").addClass("custom-info-card"),
                        f(".gm-style-iw").prev().addClass("info-window__background"),
                        f("button[title|='Close']").addClass("info-window__close-btn"),
                        f(".gm-style-iw-c").addClass("infoWindowCard")
                    }
                    ))
                },
                mapInfoWindowClose: function(e) {
                    var t = "map-label grayed " + (-1 != e.get("labelClass").indexOf("visited") ? "visited" : "");
                    e.set("labelClass", t),
                    -1 != e.get("labelClass").indexOf("visited") && e.set("zIndex", e.get("zIndex") + 99)
                },
                scaleToFitMarkers: function(e) {
                    if (0 !== e.length) {
                        for (var t = new google.maps.LatLngBounds, i = 0, n = e.length; i < n; ++i)
                            t.extend(e[i].marker.position);
                        this.primaryPOI && t.extend(this.getPrimaryMarker().marker.position),
                        ScreenHelper.isLargeScreen() && this.autoPanDirection && t.extend(this.autoPanBoundsExtension(t)),
                        this.map.fitBounds(t),
                        1 === e.length && (this.autoPan(),
                        ScreenHelper.isLargeScreen() && document.querySelector(".map-controls__pois--right") && this.map.fitBounds(t, {
                            top: 25,
                            right: window.innerWidth - document.querySelector(".map-controls__pois--right").offsetLeft,
                            bottom: 25,
                            left: 25
                        }))
                    }
                },
                getMarkers: function() {
                    for (var e, t = [], i = Object.keys(this.markers), n = 0, a = i.length; n < a; ++n)
                        e = i[n],
                        this.markers.hasOwnProperty(e) && t.push(this.markers[e]);
                    return t
                },
                autoPanBoundsExtension: function(e) {
                    var t = e.getCenter();
                    return "left" === this.autoPanDirection || "right" === this.autoPanDirection ? new google.maps.LatLng(t.lat(),t.lng()) : void 0
                },
                restrictAutoZoom: function() {
                    var e, t = this;
                    e = google.maps.event.addListener(this.map, "zoom_changed", (function() {
                        t.map.getZoom() > t.maxAutoZoom ? t.map.setZoom(t.maxAutoZoom) : t.map.getZoom() < t.setInitialZoom && t.map.setZoom(t.setInitialZoom),
                        google.maps.event.removeListener(e)
                    }
                    ))
                },
                zoomOut: function() {
                    this.map.setZoom(this.map.getZoom() - 1)
                },
                recenterMapAfterResize: function() {
                    this.map.panBy(-(this.$canvas.width() - this.previousCanvasSize.width) / 2, -(this.$canvas.height() - this.previousCanvasSize.height) / 2),
                    this.updateCanvasSize()
                },
                findMarkerByName: function(e) {
                    return this.markers[e]
                },
                closeAllInfoWindows: function() {
                    for (var e, t = Object.keys(this.markers), i = 0, n = t.length; i < n; ++i) {
                        e = t[i];
                        var a = this.markers[e];
                        a && (a.infoWindow.close(),
                        a.label && -1 != a.marker.get("labelClass").indexOf("hidden") && this.mapInfoWindowClose(a.marker))
                    }
                },
                openInfoWindow: function(e) {
                    var t = this.markers[e]
                      , i = t.marker;
                    if (t.label) {
                        i.set("zIndex", i.get("zIndex") - 999);
                        for (var n = Object.keys(this.markers), a = n.length - 1; a >= 0; a--) {
                            var o = this.markers[n[a]].marker;
                            o.get("labelClass") && -1 == o.get("labelClass").indexOf("visited") && o.set("labelClass", "map-label lost-focus"),
                            f(this.markers[n[a]].element).find(".hotel-teaser").removeClass("hotel-teaser--hover")
                        }
                        this.allGrayed = !1,
                        this.isInfoWindowOpen = !0,
                        this.isAnyVisited = !0,
                        i.set("labelClass", "map-label visited hidden"),
                        f(t.element).find(".hotel-teaser").addClass("hotel-teaser--hover")
                    }
                    t.infoWindow.open(this.map, t.marker),
                    this.trackEvent && (0,
                    m.Jf)(t.element)
                },
                updateCanvasSize: function() {
                    this.previousCanvasSize = {
                        width: this.$canvas.width(),
                        height: this.$canvas.height()
                    }
                },
                icon: function(e) {
                    return "scandic-go" == e ? {
                        url: this.ICON_BASE_URL + e + "-v2.svg",
                        anchor: new google.maps.Point(49,70),
                        scaledSize: new google.maps.Size(87,86)
                    } : "hotel" !== e ? {
                        url: this.ICON_BASE_URL + (-1 !== ["airport", "bus", "taxi", "trains", "transportation"].indexOf(e) ? e + "-v2" : e) + ".png",
                        anchor: new google.maps.Point(17,32),
                        scaledSize: new google.maps.Size(this.ICON_SIZE,this.ICON_SIZE)
                    } : {
                        url: this.ICON_BASE_URL + e + ".png",
                        anchor: new google.maps.Point(49,70),
                        scaledSize: new google.maps.Size(97,97)
                    }
                }
            };
            var y, w = i(19755);
            function S(e) {
                return S = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                    return typeof e
                }
                : function(e) {
                    return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                }
                ,
                S(e)
            }
            function _() {
                var e = '[data-js="location-map-canvas"]'
                  , t = !1
                  , i = !1
                  , n = w(e);
                if (n && 0 !== n.length) {
                    var a = function(e) {
                        if (e.preventDefault(),
                        e.stopPropagation(),
                        "keypress" != e.type || "Enter" == e.key) {
                            if (w("#hotelPage").length && w('*[data-js="hotelnav-widget-toggle"]').hasClass("active") && v(),
                            w("#hotelPage").length && (window.Scandic.isMapClickOnHotelPage = !0,
                            document.body.querySelector(".navigation-bar[data-js=main-nav-bar]").style.zIndex = "-1"),
                            i) {
                                u();
                                var t = w(this).parents("[data-lat], [data-long]")
                                  , n = t.attr("data-name") || t.find(".poi").html()
                                  , a = y.findMarkerByName(n);
                                y.scaleToFitMarkers([a]),
                                y.closeAllInfoWindows(),
                                y.openInfoWindow(n)
                            } else {
                                f({
                                    $poiElement: w(this),
                                    openMap: !0,
                                    touchEvents: !0
                                })
                            }
                            o("show")
                        }
                    }
                      , o = function(e) {
                        (window.ScreenHelper.isLargeScreen() || w(".filter-page").length) && (e && "show" == e ? w(".filter-page .map-section__wrapper").addClass("map-opened") : w(".filter-page .map-section__wrapper").removeClass("map-opened"),
                        window.dispatchEvent(new CustomEvent("resize")))
                    };
                    !function() {
                        if (!(w(e).length <= 0)) {
                            if (!ScreenHelper.isLargeScreen() && w(".map__pois-container ul li").length > 3) {
                                var t = w('*[data-js="pois-container"]');
                                t.addClass("pois-container--threeRowsHeight"),
                                w('*[data-js="pois-container__toggle"]').on("click", (function() {
                                    var e = w(this);
                                    w(this).hasClass("expanded") ? (t.removeClass("pois-container--full").addClass("pois-container--threeRowsHeight"),
                                    e.removeClass("expanded")) : (t.addClass("pois-container--full").removeClass("pois-container--threeRowsHeight"),
                                    e.addClass("expanded"))
                                }
                                ))
                            }
                            w(e).is(":hidden") ? (w(e).data().noHashChange || (w(window).on("hashchange", g),
                            w(window).trigger("hashchange")),
                            w('[data-js="open-map"]').on("click", (function(e) {
                                e.preventDefault(),
                                e.stopPropagation(),
                                w("#hotelPage").length && w('*[data-js="hotelnav-widget-toggle"]').hasClass("active") && v(),
                                i ? (w(".filter-page").length > 0 ? u() : (u(),
                                y.closeAllInfoWindows(),
                                y.shouldCenterOnPrimaryMarker() ? y.scaleToFitMarkers([y.getPrimaryMarker()]) : y.scaleToFitMarkers(y.getMarkers())),
                                w("#hotelPage").length && (window.Scandic.isMapClickOnHotelPage = !0,
                                document.body.querySelector(".navigation-bar[data-js=main-nav-bar]").style.zIndex = "-1")) : (f({
                                    openMap: !0,
                                    touchEvents: !0
                                }),
                                w("#hotelPage").length && (window.Scandic.isMapClickOnHotelPage = !0,
                                document.body.querySelector(".navigation-bar[data-js=main-nav-bar]").style.zIndex = "-1")),
                                document.querySelector(".booking-widget-bar") && document.querySelector(".booking-widget-bar").classList.toggle("force-to-top"),
                                o("show")
                            }
                            )),
                            w('[data-js="poi-goto"]').on("click", a),
                            w(window).on("resize", (function() {
                                w('[data-js="poi-goto"]').off("click keypress", a),
                                w('[data-js="poi-goto"]').on("click keypress", a)
                            }
                            ))) : f()
                        }
                    }()
                }
                function r(e) {
                    if (!i) {
                        ((e = w.extend({
                            $poiElement: !1,
                            openMap: !1,
                            touchEvents: !1
                        }, e)).touchEvents || ScreenHelper.isLargeScreen()) && n.data("touchEvents", !0),
                        y = new b(n,document.hotel);
                        var a = w("[data-lat][data-long]").not((function(e, t) {
                            return "0" === t.getAttribute("data-lat") && "0" === t.getAttribute("data-long") || t.classList.contains("hidden")
                        }
                        )).map((function(e, t) {
                            return y.addMarker({
                                lat: t.getAttribute("data-lat"),
                                long: t.getAttribute("data-long"),
                                icon: t.getAttribute("data-category") || "hotel-pin",
                                iconHighlight: t.getAttribute("data-category-highlight"),
                                element: t,
                                category: t.getAttribute("data-category"),
                                infoWindowDetail: t.getAttribute("data-info-window-show-detail"),
                                name: t.getAttribute("data-name") || w(t).find(".poi").html(),
                                distance: w(t).find(".distance").html(),
                                label: t.getAttribute("data-label"),
                                link: t.getAttribute("data-href")
                            })
                        }
                        )).get();
                        if (y.shouldCenterOnPrimaryMarker() || y.scaleToFitMarkers(a),
                        w('*[data-js="pois-container"] li a').on("click", (function(e) {
                            e.preventDefault();
                            var t = w(this).find(".poi").html();
                            ScreenHelper.isLargeScreen() ? c() : l(),
                            y.closeAllInfoWindows(),
                            y.scaleToFitMarkers([y.getPrimaryMarker(), y.findMarkerByName(t)]),
                            y.openInfoWindow(t)
                        }
                        )),
                        w('*[data-js="pois-container__toggle"], *[data-js="map-expand"]').on("click", (function() {
                            t ? d() : c()
                        }
                        )),
                        ScreenHelper.isLargeScreen() && (s(),
                        function() {
                            function e() {
                                var e = w(this).parent().attr("data-name");
                                y.findMarkerByName(e);
                                y.openInfoWindow(e)
                            }
                            function t() {
                                y.closeAllInfoWindows()
                            }
                            w('*[data-js="poi-show-on-map"]').on("mouseenter focusin", e).on("mouseleave focusout", t)
                        }(),
                        d(!0),
                        window.Scandic.ltie9)) {
                            var o = w('*[data-js="map-expand"]');
                            o.find("span").text(o.text() + " / " + o.data("collapse-map"))
                        }
                        if (!ScreenHelper.isLargeScreen() && n.hasClass("map__canvas--non-full-screen") && s(),
                        n.on("tab.activated", (function(e, t) {
                            y.scaleToFitMarkers(a),
                            y.recenterMapAfterResize(a)
                        }
                        )),
                        n.hasClass("map__canvas--non-full-screen") && w(window).on("resize", (function() {
                            d(!0),
                            y.map.setOptions({
                                draggable: ScreenHelper.isLargeScreen()
                            })
                        }
                        )),
                        e.$poiElement) {
                            var r = e.$poiElement.parents("[data-lat], [data-long]")
                              , p = r.attr("data-name") || r.find(".poi").html()
                              , m = y.findMarkerByName(p);
                            y.closeAllInfoWindows(),
                            y.scaleToFitMarkers([m]),
                            y.openInfoWindow(p)
                        }
                        e.openMap && u(),
                        i = !0
                    }
                }
                function s() {
                    w("*[data-js='poi-goto'] .hotel-teaser__address__goto").on("keypress", (function(e) {
                        "Enter" == e.key && w(e.currentTarget).parents("[data-js='poi-goto']").trigger("click")
                    }
                    )),
                    w('*[data-js="poi-goto"]').on("click", (function(e) {
                        if (e.preventDefault(),
                        e.stopPropagation(),
                        i) {
                            var t = w(e.currentTarget).parents("[data-lat], [data-long]")
                              , n = t.attr("data-name") || t.find(".poi").html()
                              , a = y.findMarkerByName(n);
                            y.scaleToFitMarkers([a]),
                            y.closeAllInfoWindows(),
                            y.scrollToElement(n),
                            y.openInfoWindow(n),
                            "block" === w(".tab-panel").css("display") && l()
                        }
                    }
                    ))
                }
                function l() {
                    w("html, body").animate({
                        scrollTop: y.$canvas.offset().top - 105
                    }, 200)
                }
                function c() {
                    if (0 !== w("[data-js=map-expand]").length && !t) {
                        var e = document.documentElement.clientHeight
                          , i = w('*[data-js="sub-nav-inner"]').height();
                        ScreenHelper.isLargeScreen() && (w('*[data-js="location-map-canvas"]').height(e - i),
                        google.maps.event.trigger(y.map, "resize"),
                        l(),
                        w('*[data-js="pois-container"]').addClass("pois-container--full").css("height", e - i),
                        w('*[data-js="map-expand"]').addClass("-expanded").css("top", e - i - 46)),
                        t = !0
                    }
                }
                function d(e, i) {
                    0 !== w("[data-js=map-expand]").length && (t || e) && (ScreenHelper.isLargeScreen() && (w('*[data-js="location-map-canvas"]').height(360),
                    google.maps.event.trigger(y.map, "resize"),
                    t && l(),
                    w('*[data-js="pois-container"]').removeClass("pois-container--full").css("height", 360),
                    w('*[data-js="map-expand"]').removeClass("-expanded").css("top", 314)),
                    t = !1)
                }
                function u() {
                    w("body").addClass("is-map-fullscreen-open");
                    var t = w(e)
                      , i = w(".navigation-bar").hasClass("is-expanded");
                    t.addClass("is-visible").toggleClass("topMenuExpanded", i);
                    var n = t.data("btn-close-label") ? t.data("btn-close-label") : ""
                      , a = w("<p class='map__close-map'><button role='button' data-js-close-map class='btn btn--medium btn--primary-deemphasized'>" + n + "</button></p>");
                    w(".filter-page").length && (a.find("button").removeClass("btn--medium"),
                    window.ScreenHelper.mediaLargeUp() || w("body").css("overflow", "hidden")),
                    w(".filter-page").length && window.ScreenHelper.mediaLargeUp() ? w(".filter-page .map__close-map").length || w(".filter-page .section-heading-wrapper").after(a) : t.append(a),
                    y.resizeMap(),
                    a.on("click", "button", p),
                    "#map" === window.location.hash || w(e).data().noHashChange || history.pushState(null, null, "#map"),
                    w(window).on("popstate.fullscreen-map", (function() {
                        h(a, t)
                    }
                    )),
                    w(document).on("close-fullscreen-map", (function(e) {
                        h(a, t)
                    }
                    )),
                    w(".section-heading-wrapper ~ p.map__close-map").length > 0 && w(window).on("resize", m)
                }
                function p(e) {
                    e.preventDefault(),
                    h(w("p.map__close-map"), n, !0),
                    document.querySelector(".booking-widget-bar") && document.querySelector(".booking-widget-bar").classList.toggle("force-to-top"),
                    w("#hotelPage").length && (window.Scandic.isMapClickOnHotelPage = !1,
                    document.body.querySelector(".navigation-bar[data-js=main-nav-bar]").style.zIndex = ""),
                    o("hide")
                }
                function m(e) {
                    !window.ScreenHelper.mediaLargeUp() && w("p.map__close-map").length > 0 && p(e),
                    0 == w("p.map__close-map").length && w(window).off("resize", m)
                }
                function h(t, i, n) {
                    w(window).off("popstate.fullscreen-map"),
                    w(document).off("close-fullscreen-map"),
                    i.removeClass("is-visible"),
                    w("body").removeClass("is-map-fullscreen-open"),
                    w(".filter-page").length && !window.ScreenHelper.mediaLargeUp() && w("body").css("overflow", ""),
                    t.remove(),
                    n && !w(e).data().noHashChange && history.back()
                }
                function f(e) {
                    i || (!function(e) {
                        "object" === S(window.google) && "object" === ("undefined" == typeof google ? "undefined" : S(google)) && "object" === S(google.maps) ? r(e) : w.getScript("https://maps.googleapis.com/maps/api/js?v=3&callback=googleMapsLoaded&key=AIzaSyDcO9xiB9d3NBSJ3qevjXu_TSjcrUyW1yI")
                    }(e),
                    window.googleMapsLoaded = function() {
                        r(e),
                        setTimeout((function() {
                            y && y.resizeMap && y.resizeMap()
                        }
                        ), 500)
                    }
                    )
                }
                function g() {
                    "#map" === window.location.hash && i ? u() : "#map" === window.location.hash && f({
                        openMap: !0,
                        touchEvents: !0
                    })
                }
                function v() {
                    w('*[data-js="hotelnav-widget-toggle"]').removeClass("active"),
                    w('*[data-js="booking-widget-form"]').css("display", "none"),
                    w(".hotel-menu-wrapper").removeClass("has-open-widget"),
                    w(window).scroll(),
                    document.body.querySelector(".navigation-bar[data-js=main-nav-bar]").style.zIndex = "-1"
                }
            }
            function C() {
                return y
            }
            var k = i(19755);
            function T(e, t) {
                this.$gluedElement = e,
                this.$gluedTo = t,
                this.clingToScrolledElement()
            }
            T.prototype = {
                MIN_HEIGHT: 350,
                clingToScrolledElement: function() {
                    var e = this;
                    k(window).resize((function() {
                        e.onResize()
                    }
                    )),
                    k(window).scroll((function() {
                        e.onScroll()
                    }
                    )),
                    this.$gluedTo.on("eqResize", (function() {
                        e.onResize()
                    }
                    )),
                    ScreenHelper.isLargeScreen() && (this.adaptHeightToScrolledElement(),
                    this.revalidatePosition())
                },
                onResize: function() {
                    ScreenHelper.isLargeScreen() ? this.adaptHeightToScrolledElement() : this.reset()
                },
                onScroll: function() {
                    ScreenHelper.isLargeScreen() && this.revalidatePosition()
                },
                adaptHeightToScrolledElement: function() {
                    var e = this.desiredHeight();
                    e < this.MIN_HEIGHT && (e = this.MIN_HEIGHT),
                    this.$gluedElement.height(e),
                    this.$gluedElement.trigger("scroll-with:resize")
                },
                revalidatePosition: function() {
                    this.scrolledAboveFixedElement() ? this.fixAtScrollElementTop() : this.scrolledBelowFixedElement() ? this.fixAtScrollElementBottom() : this.fixAtWindowTop()
                },
                desiredHeight: function() {
                    var e = parseInt(this.$gluedTo.css("height"));
                    return Math.min(e, k(window).height())
                },
                scrolledAboveFixedElement: function() {
                    return k(window).scrollTop() < this.$gluedTo.offset().top
                },
                scrolledBelowFixedElement: function() {
                    return k(window).scrollTop() + k(window).height() > this.$gluedTo.offset().top + this.$gluedTo.height()
                },
                fixAtScrollElementTop: function() {
                    this.$gluedElement.css({
                        position: "absolute",
                        top: 0
                    })
                },
                fixAtScrollElementBottom: function() {
                    this.$gluedElement.css({
                        position: "absolute",
                        top: this.$gluedTo.height() - this.$gluedElement.height()
                    })
                },
                fixAtWindowTop: function() {
                    this.$gluedElement.css({
                        position: "fixed",
                        top: 0
                    })
                },
                reset: function() {
                    "static" !== this.$gluedElement.css("position") && (this.$gluedElement.css({
                        position: "static",
                        top: "",
                        height: ""
                    }),
                    this.$gluedElement.trigger("scroll-with:resize"))
                }
            };
            var x = i(19755)
              , A = i(19755)
              , I = function() {
                var e, t, i, n = "hotelSortBy";
                function a(i, n) {
                    (t = e.find("[data-js-sortable-hotel-list__hotel]").get()).sort(r[i]),
                    t.forEach((function(t) {
                        e.append(t),
                        "function" == typeof n && n(A(t))
                    }
                    ))
                }
                function o(e) {
                    "function" == typeof history.replaceState ? history.replaceState({}, window.title, "#" + e) : document.location.hash = e
                }
                A(document).on("change", "select[name=sort-order]", (function(t) {
                    var r = A(t.target).val();
                    i = !(!A(t.target).data() || !A(t.target).data().urlHash) && A(t.target).data().urlHash,
                    e = A("[data-js-sortable-hotel-list]"),
                    i || (o("sort=" + r),
                    sessionStorage.setItem(n, r)),
                    a(r, (function(e) {
                        var t;
                        (t = e).addClass("animated--flash-in"),
                        t.one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend", (function() {
                            t.removeClass("animated--flash-in")
                        }
                        ))
                    }
                    ))
                }
                ));
                var r = {
                    distance: function(e, t) {
                        return s(e, t) || (i = t,
                        n = "data-distance",
                        a = parseInt(c(e, n)),
                        o = parseInt(c(i, n)),
                        d(a, o));
                        var i, n, a, o
                    },
                    name: function(e, t) {
                        return s(e, t) || (i = t,
                        a = c(e, n = "data-name"),
                        o = c(i, n),
                        d(a, o));
                        var i, n, a, o
                    },
                    price: function(e, t) {
                        return s(e, t) || l(e, t, "data-price")
                    },
                    "tripadvisor-rating": function(e, t) {
                        return s(e, t) || l(t, e, "data-tripadvisor-rating")
                    }
                };
                function s(e, t) {
                    var i = e.hasAttribute("data-available")
                      , n = e.hasAttribute("data-available-for-booking-code")
                      , a = t.hasAttribute("data-available")
                      , o = t.hasAttribute("data-available-for-booking-code");
                    return i && !a ? -1 : a && !i ? 1 : n && !o ? -1 : o && !n ? 1 : 0
                }
                function l(e, t, i) {
                    return d(parseFloat(c(e, i)) || 0, parseFloat(c(t, i)) || 0)
                }
                function c(e, t) {
                    if (e.hasAttribute(t))
                        return e.getAttribute(t);
                    var i = "[" + t + "]";
                    return null !== e.querySelector(i) && e.querySelector(i).hasAttribute(t) ? e.querySelector(i).getAttribute(t) : 0
                }
                function d(e, t) {
                    return e === t ? 0 : e < t ? -1 : 1
                }
                var u = window.location.hash.match(/sort=([\w-]+)/)
                  , p = u ? u[1] : sessionStorage.getItem(n)
                  , m = A("select[name=sort-order]");
                (e = e || A("[data-js-sortable-hotel-list]")).length && p && void 0 !== r[p] && m.find('option[value="' + p + '"]').length && (m.val(p),
                a(p),
                i = !(!m.data() || !m.data().urlHash) && m.data().urlHash,
                u || i || o("sort=" + p))
            }
              , P = i(19755)
              , D = i(19755)
              , O = i(19755);
            function E(e) {
                this.moduleName = "formDataStore",
                this.element = e,
                this.init()
            }
            E.prototype.init = function() {
                this.identifier = O(this.element).attr("id") || O(this.element).attr("name"),
                this.identifier ? (this.populateForm(),
                O(this.element).on("submit", function() {
                    this.saveFormData()
                }
                .bind(this)),
                O(this.element).on("blur", "input,select", function() {
                    this.saveFormData()
                }
                .bind(this))) : window.console && console.log("FormDataStore Error: No form identifier. Give the form a name or id")
            }
            ,
            E.prototype.saveFormData = function() {
                for (var e, t = {}, i = O(this.element).find(":input").filter("[data-remember-form-include]").not(":disabled"), n = i.length; n--; )
                    (e = i.eq(n)).is(":checkbox, :radio") ? t[e.attr("name")] = e.is(":checked") : t[e.attr("name")] = e.val() ? e.val() : "";
                window.sessionStorage.setItem("form_" + this.identifier, JSON.stringify(t))
            }
            ,
            E.prototype.populateForm = function() {
                for (var e, t = JSON.parse(window.sessionStorage.getItem("form_" + this.identifier)), i = Object.keys(t || {}), n = 0, a = i.length; n < a; ++n)
                    e = i[n],
                    t.hasOwnProperty(e) && this.populateField(e, t[e])
            }
            ,
            E.prototype.populateField = function(e, t) {
                var i = O(this.element).find('[name="' + e + '"]').filter("[data-remember-form-include]").not(":disabled");
                i.is("select") ? i.find('option[value="' + t + '"]').not(":disabled").length && (i.val(t),
                i.find('option[value="' + t + '"]').attr("selected", "selected"),
                i.trigger("change")) : i.is(":checkbox, :radio") ? i.prop("checked", t).trigger("change") : i.val() || (i.attr("value", t),
                i.val(t),
                i.trigger("change"))
            }
            ;
            var M = i(19755);
            function L(e, t) {
                return t.reduce((function(e, t, i, n) {
                    var a = n.slice(0, i).find((function(e) {
                        return t.name === e.name
                    }
                    ));
                    return a ? "true" === a.value || "true" === t.value ? (e[t.name] = "true",
                    e) : void 0 : (e[t.name] = t.value,
                    e)
                }
                ), {})
            }
            var N = i(19755);
            function H(e, t) {
                return N.ajax({
                    url: e,
                    type: "post",
                    data: t
                })
            }
            function B(e, t) {
                return N.ajax({
                    url: e,
                    type: "get"
                })
            }
            var j = i(19755);
            function z(e) {
                this.$element = e,
                this.init()
            }
            z.prototype.init = function() {
                j("form", this.$element).on("submit", function(e) {
                    if (e.preventDefault(),
                    !j("form", this.$element).valid())
                        return !1;
                    var t = j("form", this.$element)
                      , i = t.serializeArray();
                    return i = L(0, i),
                    this.ajaxPost(i),
                    !1
                }
                .bind(this))
            }
            ,
            z.prototype.ajaxPost = function(e) {
                var t = this.$element.data("sign-up-redirect-url") + "?registration=success"
                  , i = this;
                H(window.location.origin + "/api/upgradetoscandicfriendsprofile", e).done((function(e) {
                    t ? window.location = t : location.reload(!0)
                }
                )).fail((function(e) {
                    i.ajaxErrorHandling(e)
                }
                ))
            }
            ,
            z.prototype.ajaxErrorHandling = function(e) {
                var t = j("#sign-up-error")
                  , i = j("#sign-up-conflict-text")
                  , n = j("*#sign-up-general-error-text");
                t.removeClass("hidden"),
                409 === e.status ? (n.addClass("hidden"),
                i.removeClass("hidden")) : (i.addClass("hidden"),
                n.removeClass("hidden"));
                var a = this.$element.find(".js-form-submit-button");
                window.Scandic.DisableEnableButton.enable(a),
                j("html, body").animate({
                    scrollTop: t.offset().top - 60
                }, 300)
            }
            ,
            j.validator.unobtrusive.adapters.add("birthyearrangevalidation", ["minage", "maxage"], (function(e) {
                e.rules.birthyearrangevalidation = e.params,
                e.messages.birthyearrangevalidation = e.message
            }
            )),
            j.validator.addMethod("birthyearrangevalidation", (function(e, t, i) {
                if (e) {
                    var n = new Date(e).getFullYear();
                    return n >= parseInt(i.minage, 10) && n <= parseInt(i.maxage, 10)
                }
            }
            ));
            var q = i(19755)
              , F = i(19755);
            function R(e) {
                this.$element = e,
                this.previousMessage = null,
                this.init()
            }
            R.prototype.init = function() {
                var e = F("form", this.$element);
                e.on("submit", function(t) {
                    var i;
                    return t.preventDefault(),
                    e.valid() && (i = L(0, e.serializeArray()),
                    this.ajaxPost(i)),
                    !1
                }
                .bind(this))
            }
            ,
            R.prototype.ajaxPost = function(e) {
                var t = this.$element.data("modify-booking-redirect-url")
                  , i = this;
                H(window.location.origin + this.$element.data("modify-booking-ajax-url"), e).done((function() {
                    window.location = t
                }
                )).fail((function(e) {
                    i.ajaxErrorHandling(e)
                }
                ))
            }
            ,
            R.prototype.ajaxErrorHandling = function(e) {
                var t, i, n, a, o = this.$element.find(F("*[data-modify-booking-error]")), r = this.$element.find("button[data-js=form-submit-button]");
                o.removeClass("hidden"),
                null !== this.previousMessage && this.previousMessage.addClass("hidden"),
                400 === e.status ? ((t = this.$element.find(F("*[data-modify-booking-error-bad-request]"))).removeClass("hidden"),
                this.previousMessage = t,
                window.Scandic.DisableEnableButton.enable(r)) : 403 === e.status ? ((i = this.$element.find(F("*[data-modify-booking-error-forbidden]"))).removeClass("hidden"),
                this.previousMessage = i,
                window.Scandic.DisableEnableButton.enable(r)) : 405 === e.status ? ((n = this.$element.find(F("*[data-modify-booking-error-unauthorized]"))).removeClass("hidden"),
                this.previousMessage = n,
                window.Scandic.DisableEnableButton.enable(r)) : ((a = this.$element.find(F("*[data-modify-booking-error-general]"))).removeClass("hidden"),
                this.previousMessage = a,
                window.Scandic.DisableEnableButton.enable(r))
            }
            ;
            var $ = i(19755)
              , V = i(19755);
            function W(e) {
                return function(e) {
                    if (Array.isArray(e))
                        return U(e)
                }(e) || function(e) {
                    if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"])
                        return Array.from(e)
                }(e) || function(e, t) {
                    if (!e)
                        return;
                    if ("string" == typeof e)
                        return U(e, t);
                    var i = Object.prototype.toString.call(e).slice(8, -1);
                    "Object" === i && e.constructor && (i = e.constructor.name);
                    if ("Map" === i || "Set" === i)
                        return Array.from(e);
                    if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))
                        return U(e, t)
                }(e) || function() {
                    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
                }()
            }
            function U(e, t) {
                (null == t || t > e.length) && (t = e.length);
                for (var i = 0, n = new Array(t); i < t; i++)
                    n[i] = e[i];
                return n
            }
            function G(e) {
                this.$domObj = e,
                this.$tabs = void 0
            }
            G.prototype.initTab = function(e, t) {
                e.empty(),
                e.html("<div style='width:100%;'></div>"),
                window.setTimeout((function() {
                    e.html(t)
                }
                ), 0),
                V("a", e).one("click", (function(t) {
                    e.prepend('<div class="price-calender__tab__active-loader"><div class="loader"></div></div>')
                }
                ))
            }
            ,
            G.prototype.init = function() {
                this.$tabs = V("*[data-price-calendar-tab]", this.$domObj),
                V(".price-calender__tab--selected a", this.$domObj).on("click", (function(e) {
                    e.preventDefault()
                }
                ));
                var e = this;
                if (this.$tabs.each((function(t) {
                    var i, n = V(this).data("endpoint-url"), a = V(this);
                    n && (i = n,
                    B(i)).done((function(t) {
                        e.initTab(a, t)
                    }
                    ))
                }
                )),
                screen.width < 768) {
                    if (V(".price-calender__tab--selected").length) {
                        for (var t = V(".price-calender__tab-list")[0], i = V(".price-calender__tab--selected")[0], n = t.offsetWidth, a = i.offsetWidth, o = W(i.parentElement.children).findIndex((function(e) {
                            return e.className === i.className
                        }
                        )), r = 0, s = i.parentElement.children, l = 0; l < o; l++)
                            r += s[l].offsetWidth;
                        var c = Math.max(0, r - (n - a) / 2) + a / 4;
                        c > 40 && t.scrollTo(c, 0)
                    }
                } else
                    "javascript:void(0);" != V(".left-chevron")[0].href ? V(".left-chevron")[0].href = new URL("/hotelreservation/select-rate" + V(".left-chevron").data("endpointUrl").replace("pricecalendar/mini/tab", ""),window.location.href).href : V(".left-chevron").attr("tabindex", "-1"),
                    "javascript:void(0);" != V(".right-chevron")[0].href ? V(".right-chevron")[0].href = new URL("/hotelreservation/select-rate" + V(".right-chevron").data("endpointUrl").replace("pricecalendar/mini/tab", ""),window.location.href).href : V(".right-chevron").attr("tabindex", "-1")
            }
            ;
            var Q = i(19755)
              , Y = i(19755);
            function J(e) {
                this.$toggler = Y(e),
                this.$body = Y("body"),
                this.$mainNavigationBar = Y(".main-header.navigation-bar"),
                this.$target = void 0,
                this.$document = Y(document),
                this.isOpen = !1,
                this.init()
            }
            J.prototype.toggleOpenClosed = function(e) {
                this.isOpen ? this.close() : this.$document.scrollTop() > this.$target.scrollTop() ? this.openWithScroll() : this.open(),
                e.preventDefault()
            }
            ,
            J.prototype.open = function() {
                this.$target.removeClass("is-collapsed"),
                this.$toggler.addClass("is-expanded"),
                this.$mainNavigationBar.addClass("u-scroll-y"),
                this.$body.addClass("u-no-scroll"),
                this.publishToOtherComponents("isOpened"),
                this.isOpen = !0
            }
            ,
            J.prototype.openWithScroll = function() {
                Y("html, body").animate({
                    scrollTop: this.$target.scrollTop()
                }, 500, function() {
                    this.open()
                }
                .bind(this))
            }
            ,
            J.prototype.close = function() {
                this.$target.addClass("is-collapsed"),
                this.$toggler.removeClass("is-expanded"),
                this.$mainNavigationBar.removeClass("u-scroll-y"),
                this.$body.removeClass("u-no-scroll"),
                this.publishToOtherComponents("isClosed"),
                this.isOpen = !1
            }
            ,
            J.prototype.publishToOtherComponents = function(e) {
                var t = "mainNavToggler." + e;
                this.$toggler.trigger(t)
            }
            ,
            J.prototype.subscribeToOtherComponents = function() {
                this.$document.on("bookButtonToggler.open-booking-widget bookButtonToggler.open-booking-widget-with-summary ", function() {
                    this.close()
                }
                .bind(this))
            }
            ,
            J.prototype.init = function() {
                var e = this.$toggler.data("target");
                this.$target = Y(e),
                0 !== this.$target.length ? (this.subscribeToOtherComponents(),
                this.$toggler.on("click", this.toggleOpenClosed.bind(this))) : console.log("Target is missing for MainNavToggler")
            }
            ;
            var X = i(19755)
              , K = i(19755);
            function Z(e) {
                this.$mainNavigationBar = K(e),
                this.$document = K(document),
                this.isBookingWidgetOpen = !1,
                this.isMainNavigationOpen = !1,
                this.init()
            }
            Z.prototype.toggleMainNavState = function(e) {
                !0 === this.isBookingWidgetOpen || !0 === this.isMainNavigationOpen ? this.expand() : this.collapseAndMakeSticky()
            }
            ,
            Z.prototype.expand = function() {
                this.$mainNavigationBar.addClass("is-expanded")
            }
            ,
            Z.prototype.collapseAndMakeSticky = function() {
                this.$mainNavigationBar.removeClass("is-expanded")
            }
            ,
            Z.prototype.subscribeToOtherComponents = function() {
                this.$document.on("widgetWithSummaryToggler.isOpened", function(e) {
                    this.isBookingWidgetOpen = !0,
                    this.toggleMainNavState()
                }
                .bind(this)),
                this.$document.on("widgetWithSummaryToggler.isClosed", function(e) {
                    this.isBookingWidgetOpen = !1,
                    this.toggleMainNavState()
                }
                .bind(this)),
                this.$document.on("bookingWidgetToggle.isOpening", function(e) {
                    this.isBookingWidgetOpen = !0,
                    this.toggleMainNavState()
                }
                .bind(this)),
                this.$document.on("bookingWidgetToggle.isClosed", function(e) {
                    this.isBookingWidgetOpen = !1,
                    this.toggleMainNavState()
                }
                .bind(this)),
                this.$document.on("mainNavToggler.isOpened", function(e) {
                    this.isMainNavigationOpen = !0,
                    this.toggleMainNavState(),
                    K("#navbar-header-design").removeClass("hidden")
                }
                .bind(this)),
                this.$document.on("mainNavToggler.isClosed", function(e) {
                    this.isMainNavigationOpen = !1,
                    this.toggleMainNavState(),
                    K("#navbar-header-design").addClass("hidden")
                }
                .bind(this))
            }
            ,
            Z.prototype.init = function() {
                this.subscribeToOtherComponents()
            }
            ;
            var ee = i(19755)
              , te = i(19755)
              , ie = "is-expanded"
              , ne = "is-collapsed";
            function ae(e) {
                this.self = this,
                this.toggleElement = e,
                this.data = this.toggleElement.data(),
                void 0 !== this.data.target ? (this.expandableTarget = te('[data-js-expandable-module="' + this.data.target + '"]'),
                this.expandableTarget.on("data-js-collapsible-ribbon-state-change", {
                    self: this.self
                }, this.expandableTargetChangedState),
                this.updateState()) : this.updateLabel(),
                this.toggleElement.click({
                    self: this.self
                }, (function(e) {
                    e.preventDefault(),
                    e.data.self.isClicked()
                }
                ))
            }
            ae.prototype = {
                isClicked: function() {
                    void 0 !== this.expandableTarget ? (this.expandableTarget.toggleClass(ne).trigger("data-js-expandable-module-state-change"),
                    this.updateState()) : (this.toggleElement.toggleClass(ie),
                    this.updateLabel())
                },
                updateState: function() {
                    this.expandableTarget.hasClass(ne) ? this.toggleElement.removeClass(ie) : this.toggleElement.addClass(ie),
                    this.updateLabel()
                },
                updateLabel: function() {
                    void 0 === this.data.textExpand && void 0 === this.data.textCollapse || (this.toggleElement.hasClass(ie) ? void 0 !== this.data.textCollapse && this.toggleElement.find("span:not(:has(*))").text(this.data.textCollapse) : void 0 !== this.data.textExpand && this.toggleElement.find("span:not(:has(*))").text(this.data.textExpand))
                },
                expandableTargetChangedState: function(e) {
                    e.data.self.updateState()
                }
            };
            var oe = i(19755);
            function re() {
                oe("[data-js-expandable-toggler]").length && function() {
                    var e = [];
                    oe("[data-js-expandable-toggler]").each((function() {
                        var t = new ae(oe(this));
                        e.push(t)
                    }
                    ))
                }()
            }
            var se = i(19755);
            function le(e) {
                this.$target = void 0,
                this.$toggler = se(e),
                this.$document = se(document),
                this.isOpen = !1,
                this.init()
            }
            le.prototype.toggleOpenClosed = function(e) {
                this.isOpen ? this.close() : this.open(),
                e.preventDefault()
            }
            ,
            le.prototype.open = function() {
                this.$toggler.addClass("active"),
                this.$target.slideDown(function() {
                    this.isOpen = !0,
                    this.publishToOtherComponents("isOpened")
                }
                .bind(this))
            }
            ,
            le.prototype.close = function() {
                this.$toggler.removeClass("active"),
                this.$target.slideUp(function() {
                    this.isOpen = !1,
                    this.publishToOtherComponents("isClosed")
                }
                .bind(this))
            }
            ,
            le.prototype.publishToOtherComponents = function(e) {
                var t = "widgetWithSummaryToggler." + e;
                this.$toggler.trigger(t)
            }
            ,
            le.prototype.subscribeToOtherComponents = function() {
                this.$document.on("bookButtonToggler.open-booking-widget-with-summary", function() {
                    this.open()
                }
                .bind(this)),
                this.$document.on("bookButtonToggler.close-booking-widget-with-summary", function() {
                    this.close()
                }
                .bind(this))
            }
            ,
            le.prototype.init = function() {
                var e = this.$toggler.data("target");
                this.$target = se("*[data-js=" + e + "]"),
                0 !== this.$target.length ? (this.subscribeToOtherComponents(),
                this.$toggler.on("click", this.toggleOpenClosed.bind(this))) : console.log("Target is missing for WidgetWithSummaryToggler")
            }
            ;
            var ce = i(19755)
              , de = i(19755);
            function ue(e) {
                this.$toggler = de(e),
                this.isOpen = !1,
                this.hasWidgetWithSummary = !1,
                this.$document = de(document),
                this.init()
            }
            ue.prototype.toggleOpenClosed = function(e) {
                (0,
                m.ay)("book all pages", {
                    ctaname: "book"
                }),
                "hotelsearchpage" != datalayer[0].pagetype && (this.isOpen ? this.close() : this.$document.scrollTop() > this.$toggler.scrollTop() ? this.openWithScroll() : this.open(),
                e.preventDefault())
            }
            ,
            ue.prototype.open = function() {
                this.hasWidgetWithSummary ? this.publishToOtherComponents("open-booking-widget-with-summary") : this.publishToOtherComponents("open-booking-widget")
            }
            ,
            ue.prototype.openWithScroll = function() {
                de("html, body").animate({
                    scrollTop: this.$toggler.scrollTop()
                }, 500, function() {
                    this.open()
                }
                .bind(this))
            }
            ,
            ue.prototype.close = function() {
                this.hasWidgetWithSummary ? this.publishToOtherComponents("close-booking-widget-with-summary") : this.publishToOtherComponents("close-booking-widget")
            }
            ,
            ue.prototype.publishToOtherComponents = function(e) {
                var t = "bookButtonToggler." + e;
                this.$toggler.trigger(t)
            }
            ,
            ue.prototype.subscribeToOtherComponents = function() {
                this.$document.on("widgetWithSummaryToggler.isOpened", function() {
                    this.isOpen = !0
                }
                .bind(this)),
                this.$document.on("widgetWithSummaryToggler.isClosed", function() {
                    this.isOpen = !1
                }
                .bind(this)),
                this.$document.on("bookingWidgetToggle.isOpening", function() {
                    this.isOpen = !0
                }
                .bind(this)),
                this.$document.on("bookingWidgetToggle.isClosed", function() {
                    this.isOpen = !1
                }
                .bind(this))
            }
            ,
            ue.prototype.init = function() {
                this.subscribeToOtherComponents(),
                this.$toggler.on("click", this.toggleOpenClosed.bind(this)),
                "true" === this.$toggler.attr("data-has-summary") && (this.hasWidgetWithSummary = !0)
            }
            ;
            var pe = i(19755)
              , me = i(19755)
              , he = {};
            function fe(e, t) {
                this.button = me(e),
                this.options = me.extend({}, he, t),
                this.target = me('*[data-collapsable="' + this.button.attr("data-target") + '"]'),
                this.scrollTop = !!this.button.data("scroll-top"),
                this.overflowClass = this.button.data("overflow-class"),
                this.overflow = this.button.data("disable-overflow"),
                this.init()
            }
            fe.prototype.init = function() {
                var e = this;
                this.button.on("click", (function(t) {
                    var i = "collapse" === me(this).data("toggle")
                      , n = "expand" === me(this).data("toggle")
                      , a = e.target.hasClass("is-collapsed");
                    "undefined" != typeof overflow && "undefined" != typeof overflowClass && me(overflow).toggleClass(overflowClass, e.button.hasClass("is-expanded")),
                    a && !i ? (e.previousScrollPosition = me(document).scrollTop(),
                    e.scrollTop && me(document).scrollTop() > e.target.scrollTop() ? me("html, body").animate({
                        scrollTop: e.target.scrollTop()
                    }, 500, (function() {
                        e.toggleCollapsed(!1)
                    }
                    )) : e.toggleCollapsed(!1)) : n || (e.toggleCollapsed(!0),
                    e.scrollTop && e.previousScrollPosition > e.target.scrollTop() && me("html, body").animate({
                        scrollTop: e.previousScrollPosition
                    }, 500)),
                    e.button.is('input[type="checkbox"], input[type="radio"]') || t.preventDefault()
                }
                ))
            }
            ,
            fe.prototype.toggleCollapsed = function(e) {
                this.button.toggleClass("is-expanded", !e),
                this.target.toggleClass("is-collapsed", e),
                this.options.onToggleCollapse.call(this, e)
            }
            ;
            var ge = i(19755)
              , ve = function() {
                for (var e, t = ge('*[data-js="collapsible-toggler"]'), i = 0, n = t.length; i < n; ++i) {
                    var a = new fe(e = t[i],{
                        onToggleCollapse: function(e) {
                            var t = this.button.data("target");
                            "main-menu" === t && (ge(".navigation-bar").toggleClass("is-expanded", !e),
                            ge(window).trigger("main-nav-toggle"),
                            ge(".login__container .form-close-btn").trigger("click"),
                            e || widgetToggler.hideMainNavWidgetArea(!0)),
                            "list-expandable" === t.substring(0, 15) && window.Scandic.OneSidebarPageLayout.adjustHeight()
                        }
                    });
                    ge(e).data("collapsible-toggler", a)
                }
                t.on("click", (function() {
                    r(ge(this))
                }
                ))
            }
              , be = i(19755);
            function ye(e) {
                this.$target = be(e),
                this.$document = be(document),
                this.isOpen = !1,
                this.init()
            }
            ye.prototype.open = function() {
                this.publishToOtherComponents("isOpening"),
                this.$target.slideDown(function() {
                    this.isOpen = !0,
                    this.publishToOtherComponents("isOpened")
                }
                .bind(this))
            }
            ,
            ye.prototype.close = function() {
                this.publishToOtherComponents("isClosing"),
                this.$target.slideUp(function() {
                    this.isOpen = !1,
                    this.publishToOtherComponents("isClosed")
                }
                .bind(this))
            }
            ,
            ye.prototype.publishToOtherComponents = function(e) {
                var t = "bookingWidgetToggle." + e;
                this.$target.trigger(t)
            }
            ,
            ye.prototype.subscribeToOtherComponents = function() {
                this.$document.on("bookButtonToggler.open-booking-widget", function() {
                    this.open()
                }
                .bind(this)),
                this.$document.on("bookButtonToggler.close-booking-widget", function() {
                    this.close()
                }
                .bind(this))
            }
            ,
            ye.prototype.init = function() {
                this.subscribeToOtherComponents()
            }
            ;
            var we = i(19755)
              , Se = i(15898)
              , _e = i(19755)
              , Ce = '*[data-js="image-slider-hotel-trigger"], *[data-js="image-slider-room-trigger"]';
            var ke = function() {
                _e(Ce).each((function() {
                    _e(this).on("click", (function(e) {
                        e.originalEvent.preventDefault();
                        var t, i = new Se.Z({
                            width: window.innerWidth,
                            height: window.innerHeight,
                            contentBackground: !1,
                            contentBackgroundColor: "transparent",
                            triggerObject: _e(this),
                            closeOnBackBtn: !0,
                            showLoadingSpinner: !0,
                            closeOnBackgroundClick: !1,
                            fullscreenInSmallDown: !1,
                            customClass: "fullscreen-gallery"
                        }), n = _e(this).data("image-source");
                        (t = "/ajax/imageslider/roomcategory/images/" + n,
                        B(t)).done(function(e) {
                            i.setContent(e),
                            Modernizr.scrset || picturefill(),
                            document.querySelector(".close-btn").addEventListener("click", function(e) {
                                e.preventDefault(),
                                i.close()
                            }
                            .bind(i)),
                            _e(".image-wrapper > img").last().on("load", (function() {
                                _e(".modal__circular-loader-container").hide()
                            }
                            ))
                        }
                        .bind(i)).fail((function() {
                            console.log("Error fetching image slider")
                        }
                        ))
                    }
                    ))
                }
                ))
            }
              , Te = i(19755)
              , xe = i(19755);
            var Ae = i(19755)
              , Ie = i(19755)
              , Pe = "hotelnav-widget-toggle";
            function De(e) {
                var t = Ie('*[data-js="inquiry-widget"]').find('*[data-js="inquiry-widget-secondary-fields"]')
                  , i = Ie('*[data-js="widget-icon"]')
                  , n = Ie('*[data-is-open="inquiry-widget-open"]')
                  , a = Ie('*[data-js="check-availibility-link"]')
                  , o = Ie('*[data-js="pilot-hotel-labels"]');
                Ie('*[data-mediumup-goto="hotelnav-widget"]').length ? n.hide() : e && "" === Ie.trim(Ie("#widgetdestination").val()) && (t.hide(),
                Ie("#widgetdestination").removeClass("pilot-hotel-search"),
                i.show(),
                a.hide(),
                o.hide())
            }
            function Oe(e, t, i) {
                var n = t.closest(".navigation-bar")
                  , a = Ie(".hero-intro__content").find(".hotel-menu-wrapper").closest('[data-js="sub-nav"]')
                  , o = n.find('[data-js="collapsible-toggler"]').data("collapsible-toggler");
                De(!0);
                var r = function() {
                    n.addClass("is-expanded"),
                    e.slideDown(),
                    t.addClass("active")
                };
                if (t.data("js") === Pe && i && !i.closest(".navigation-bar").length)
                    if (Ie(window).width() < window.ScreenHelper.CSS_SMALL_BREAKPOINT && window.Scandic.hotelNavs.map((function(e) {
                        return e.hideNav()
                    }
                    )),
                    (0,
                    m.ay)("book all pages", {
                        ctaname: "book"
                    }),
                    a.hasClass("sticky"))
                        if (t.trigger("close-fullscreen-map"),
                        e.slideUp((function() {
                            Ie(".mp-cta").length || (a.removeClass("sticky"),
                            Ie(".hotel-menu-wrapper").addClass("has-open-widget"))
                        }
                        )),
                        "booking-widget-form" == t.data("target"))
                            Ie("html, body").animate({
                                scrollTop: 0
                            }, r);
                        else if ("hotelnav-widget" == t.data("target")) {
                            var s = Ie(".mp-cta").length ? t.offset().top - 20 : 0;
                            Ie("html, body").animate({
                                scrollTop: s
                            }, r)
                        } else
                            window.ScreenHelper.mediaMediumUp() ? Ie("html, body").animate({
                                scrollTop: 0
                            }) : r();
                    else
                        e.slideUp((function() {
                            document.querySelector(".mp-cta") || Ie(".hotel-menu-wrapper").addClass("has-open-widget")
                        }
                        )),
                        "booking-widget-form" == t.data("target") ? Ie("html, body").animate({
                            scrollTop: 0
                        }, r) : Ie(document).scrollTop() < t.offset().top - 20 ? Ie("html, body").animate({
                            scrollTop: t.offset().top - 20
                        }, r) : r();
                else
                    o && !o.isCollapsed && o.toggleCollapsed(!0),
                    Ie(".login__container .form-close-btn").trigger("click"),
                    Ie(document).scrollTop() > 0 ? Ie("html, body").animate({
                        scrollTop: 0
                    }, (function() {
                        n.addClass("is-expanded"),
                        e.slideDown(),
                        t.addClass("active")
                    }
                    )) : (n.addClass("is-expanded"),
                    e.slideDown(),
                    t.addClass("active"));
                Ie("#hotelPage").length && window.Scandic.isMapClickOnHotelPage && (window.Scandic.isMapClickOnHotelPage = !1,
                document.body.querySelector(".navigation-bar[data-js=main-nav-bar]").style.zIndex = "")
            }
            function Ee(e, t, i, n) {
                if (De(!1),
                e) {
                    var a = t.closest(".navigation-bar");
                    e.closest(".hero-intro__content").find('[data-js="sub-nav"]');
                    t.data("js") === Pe && i && !i.closest(".navigation-bar").length ? e.slideUp((function() {
                        Ie(".hotel-menu-wrapper").removeClass("has-open-widget")
                    }
                    )) : e.slideUp((function() {
                        Ie(".hotel-menu-wrapper").removeClass("has-open-widget"),
                        a.toggleClass("is-expanded", n)
                    }
                    )),
                    t.trigger("close-fullscreen-map"),
                    t.removeClass("active")
                }
            }
            function Me() {
                return Ie('*[data-js="hotelnav-widget-toggle"]')
            }
            var Le = i(19755);
            function Ne(e) {
                var t = Le('*[data-js="' + e.attr("data-target") + '"]');
                t.length > 0 && (e.click((function(i) {
                    i.preventDefault();
                    var n = Le('*[data-js="' + e.data("mediumup-goto") + '"]').children().first();
                    n.length > 0 && ScreenHelper.mediaMediumUp() ? Le("html, body").animate({
                        scrollTop: n.offset().top - 20
                    }, 500) : e.hasClass("active") ? Ee(t, e, Le(this)) : Oe(t, e, Le(this))
                }
                )),
                e.data("widgetarea", t))
            }
            function He() {
                var e = Ie('*[data-js="mainnav-widget-toggle"]')
                  , t = Me();
                e.length > 0 && Ne(e),
                t.length > 0 && Ne(t)
            }
            function Be(e, t) {
                var i = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var n = Object.getOwnPropertySymbols(e);
                    t && (n = n.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }
                    ))),
                    i.push.apply(i, n)
                }
                return i
            }
            function je(e) {
                for (var t = 1; t < arguments.length; t++) {
                    var i = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? Be(Object(i), !0).forEach((function(t) {
                        ze(e, t, i[t])
                    }
                    )) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : Be(Object(i)).forEach((function(t) {
                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))
                    }
                    ))
                }
                return e
            }
            function ze(e, t, i) {
                return t in e ? Object.defineProperty(e, t, {
                    value: i,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0
                }) : e[t] = i,
                e
            }
            function qe(e) {
                return function(e) {
                    if (Array.isArray(e))
                        return Fe(e)
                }(e) || function(e) {
                    if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"])
                        return Array.from(e)
                }(e) || function(e, t) {
                    if (!e)
                        return;
                    if ("string" == typeof e)
                        return Fe(e, t);
                    var i = Object.prototype.toString.call(e).slice(8, -1);
                    "Object" === i && e.constructor && (i = e.constructor.name);
                    if ("Map" === i || "Set" === i)
                        return Array.from(e);
                    if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))
                        return Fe(e, t)
                }(e) || function() {
                    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
                }()
            }
            function Fe(e, t) {
                (null == t || t > e.length) && (t = e.length);
                for (var i = 0, n = new Array(t); i < t; i++)
                    n[i] = e[i];
                return n
            }
            var Re = '[data-js="filter-item"]'
              , $e = "[data-on-no-filter]"
              , Ve = "[data-on-no-filter-in-category]"
              , We = '[data-js="filter-items-list"]'
              , Ue = '[data-js="filter-toggle"]'
              , Ge = '[data-js="filter-category-container"]';
            function Qe(e) {
                var t = Ze(e)
                  , i = e.querySelector(Ue)
                  , n = it().map((function(e) {
                    return e.id
                }
                ))
                  , a = ot(t, n);
                if (e.classList.toggle("hidden", a),
                !a) {
                    nt(e, n),
                    at(),
                    i.addEventListener("click", rt(e, t)),
                    Array.from(e.querySelectorAll('[data-js="filter-toggle-secondary"]'), (function(e) {
                        return e.addEventListener("click", (function() {
                            return i.click()
                        }
                        ))
                    }
                    )),
                    Array.from(e.querySelectorAll('[data-js="clear-category"]'), (function(t) {
                        return t.addEventListener("click", lt(!1, e, t.closest(Ge)))
                    }
                    )),
                    Array.from(e.querySelectorAll('[data-js="clear-all-categories"]'), (function(t) {
                        return t.addEventListener("click", lt(!1, e))
                    }
                    )),
                    Array.from(e.querySelectorAll('[data-js="clear-all-categories-and-refresh"]'), (function(t) {
                        return t.addEventListener("click", lt(!0, e))
                    }
                    )),
                    Array.from(t, (function(t) {
                        return t.elem.addEventListener("change", Ye(e, [t]))
                    }
                    )),
                    Array.from(e.querySelectorAll('[data-js="filter-category-toggle"]'), (function(e) {
                        return e.addEventListener("click", (t = e.closest(Ge),
                        function() {
                            return t.classList.toggle("section-minimized-mobile", i)
                        }
                        ));
                        var t, i
                    }
                    )),
                    Array.from(e.querySelectorAll($e), (function(e) {
                        return et(!0, e.dataset.onNoFilter)(e)
                    }
                    )),
                    Array.from(e.querySelectorAll(Ve), (function(e) {
                        return et(!0, e.dataset.onNoFilterInCategory)(e)
                    }
                    )),
                    Array.from(e.querySelectorAll("[data-on-all-disabled-in-category]"), (function(e) {
                        return et(Ze(e).every(Xe), e.dataset.onAllDisabledInCategory)(e)
                    }
                    )),
                    e.querySelector('[data-js="cancel-filter"]').addEventListener("click", function(e) {
                        return function() {
                            var t = Ze(e).map((function(e) {
                                return e.elem.checked = JSON.parse(e.elem.dataset.fallback || "false"),
                                e
                            }
                            )).filter((function(e) {
                                return e.elem.checked
                            }
                            ));
                            Ye(e, t)(),
                            e.querySelector(Ue).click()
                        }
                    }(e));
                    var o = e.querySelector('[data-js="shadow-for-mobile-scroll"]')
                      , r = e.querySelector(We);
                    r.addEventListener("scroll", (function() {
                        o.classList.toggle("box-shadow-active", !!r.scrollTop)
                    }
                    ), !!window.supportsPassiveEventListeners && {
                        passive: !0
                    }),
                    t.forEach((function(e) {
                        return e.container.classList.toggle("hidden", e.disabled)
                    }
                    ))
                }
            }
            function Ye(e, t) {
                return function() {
                    var i = Ze(e, t)
                      , n = i.filter(Je)
                      , a = n.length > 0 ? n.reduce((function(e, t, i) {
                        return 0 === i ? t.hotelIds : e.filter((function(e) {
                            return t.hotelIds.includes(e)
                        }
                        ))
                    }
                    ), []) : it().map((function(e) {
                        return e.id
                    }
                    ));
                    nt(e, a),
                    ot(i, a);
                    var o = n.filter(Ke);
                    ct(e.querySelectorAll('[data-js="filter-items-count"]'), o.length),
                    Array.from(e.querySelectorAll($e), (function(e) {
                        return et(!o.length, e.dataset.onNoFilter)(e)
                    }
                    )),
                    Array.from(e.querySelectorAll(Ve), (function(e) {
                        return et(!Ze(e.closest(Ge)).some(Je), e.dataset.onNoFilterInCategory)(e)
                    }
                    ));
                    var r = e.querySelectorAll(Ge);
                    Array.from(r, (function(e) {
                        return ct(e.querySelectorAll('[data-js="filter-category-items-count"]'), Ze(e).filter(Je).length)
                    }
                    ))
                }
            }
            function Je(e) {
                return e.applied
            }
            function Xe(e) {
                return e.disabled
            }
            function Ke(e, t, i) {
                return !i.slice(t + 1).some((function(t) {
                    return t.id === e.id
                }
                ))
            }
            function Ze(e, t) {
                return qe(e.querySelectorAll(Re)).map((function(e) {
                    var i = tt(e)
                      , n = t ? t.find((function(e) {
                        return e.id === i.id
                    }
                    )) : void 0;
                    return je(je({}, i), {}, {
                        applied: n ? n.elem.checked : e.checked
                    })
                }
                ))
            }
            function et(e, t) {
                return function(i) {
                    var n = "!" === t.substr(0, 1);
                    if (n && (t = t.substr(1)),
                    "disabled" === t)
                        i.disabled = n ? !e : e;
                    else
                        i.classList.toggle(t, n ? !e : e)
                }
            }
            function tt(e) {
                return {
                    id: JSON.parse(e.dataset.id || "null"),
                    hotelIds: JSON.parse(e.dataset.hotelIds),
                    elem: e,
                    applied: e.checked.id,
                    disabled: e.closest("fieldset").disabled,
                    container: e.closest(".filter__facilities-item-container")
                }
            }
            function it() {
                return qe(document.querySelectorAll('[data-js="hotel-item"]')).map((function(e) {
                    return {
                        id: JSON.parse(e.dataset.hotelId),
                        elem: e
                    }
                }
                ))
            }
            function nt(e, t) {
                var i = it();
                i.forEach((function(e) {
                    e.elem.dataset.hide = !t.includes(e.id)
                }
                )),
                ct(document.querySelectorAll('[data-js="filter-results-count"]'), i.filter((function(e) {
                    return t.includes(e.id)
                }
                )).length)
            }
            function at() {
                !function(e) {
                    var t = C();
                    if (!t)
                        return;
                    t.getMarkers().forEach((function(e) {
                        return e.marker.setMap(null)
                    }
                    ));
                    var i = e.map((function(e) {
                        return function(e, t) {
                            var i = t.querySelector(".poi")
                              , n = t.querySelector(".distance");
                            return e.addMarker({
                                lat: t.dataset.lat,
                                long: t.dataset.long,
                                icon: t.dataset.category || "hotel-pin",
                                category: t.dataset.category,
                                name: t.dataset.name || (i ? i.innerHTML : void 0),
                                distance: n ? n.innerHTML : void 0,
                                link: t.dataset.href,
                                iconHighlight: t.dataset.categoryHighlight,
                                element: t,
                                infoWindowDetail: t.dataset.infoWindowShowDetail,
                                label: t.dataset.label
                            })
                        }(t, e.elem)
                    }
                    ));
                    setTimeout((function() {
                        window.dispatchEvent(new CustomEvent("resize")),
                        t.scaleToFitMarkers(i)
                    }
                    ), 0)
                }(it().map((function(e) {
                    return e.elem.classList.toggle("hidden", JSON.parse(e.elem.dataset.hide || "false")),
                    e
                }
                )).filter((function(e) {
                    return !JSON.parse(e.elem.dataset.hide || "false")
                }
                )))
            }
            function ot(e, t) {
                return Array.from(e, (function(e) {
                    var i = e.elem.closest("fieldset");
                    return e.disabled = i.disabled = !e.elem.checked && !e.hotelIds.some((function(e) {
                        return t.includes(e)
                    }
                    )),
                    e.elem.checked = e.applied,
                    i.disabled
                }
                )).filter((function(e) {
                    return e
                }
                )).length === e.length
            }
            function rt(e, t) {
                return st(t),
                function i(n) {
                    n.currentTarget.removeEventListener("click", i),
                    n.currentTarget.addEventListener("click", rt(e, t)),
                    e.querySelector(We).classList.toggle("hidden"),
                    n.currentTarget.classList.toggle("filter__button--filter-opened"),
                    Array.from(document.querySelectorAll("body, html"), (function(e) {
                        return e.classList.toggle("filter-open")
                    }
                    ));
                    var a = Ze(e).filter(Je).filter(Ke).map((function(e) {
                        return e.id
                    }
                    )).reduce((function(e, t) {
                        return e.length ? "".concat(e, "|").concat(t) : "".concat(t)
                    }
                    ), "");
                    at(),
                    a.length && (0,
                    m.ay)("filtersearch", {
                        filters: a
                    }),
                    e.querySelector(We).scrollIntoView({
                        block: "start",
                        inline: "nearest",
                        behavior: "smooth"
                    })
                }
            }
            function st(e) {
                e.forEach((function(e) {
                    return e.elem.dataset.fallback = e.elem.checked
                }
                ))
            }
            function lt(e, t, i) {
                return function(n) {
                    n.stopPropagation();
                    var a = qe((i || t).querySelectorAll(Re)).map((function(e) {
                        return e.checked = !1,
                        tt(e)
                    }
                    ));
                    t.querySelector(We).classList.contains("hidden") && st(a),
                    Ye(t, a)(),
                    e && at()
                }
            }
            function ct(e, t) {
                Array.from(e, (function(e) {
                    e.classList.contains("result__counter") && (e.innerHTML = "".concat(t),
                    t > 1 ? (e.parentElement.querySelector("span.plural").classList.remove("hidden"),
                    e.parentElement.querySelector("span.singular").classList.add("hidden")) : (e.parentElement.querySelector("span.singular").classList.remove("hidden"),
                    e.parentElement.querySelector("span.plural").classList.add("hidden"))),
                    JSON.parse(e.dataset.parenthesis || "false") ? (e.innerHTML = "(".concat(t, ")"),
                    e.classList.toggle("hidden", !t)) : "false" === e.dataset.parenthesis ? (e.innerHTML = "".concat(t),
                    e.classList.toggle("hidden", !t)) : e.setAttribute("data-value", "".concat(t))
                }
                ))
            }
            var dt = i(19755)
              , ut = i(19755);
            function pt(e) {
                return function(e) {
                    if (Array.isArray(e))
                        return e
                }(e) || function(e) {
                    if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"])
                        return Array.from(e)
                }(e) || function(e, t) {
                    if (!e)
                        return;
                    if ("string" == typeof e)
                        return mt(e, t);
                    var i = Object.prototype.toString.call(e).slice(8, -1);
                    "Object" === i && e.constructor && (i = e.constructor.name);
                    if ("Map" === i || "Set" === i)
                        return Array.from(e);
                    if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))
                        return mt(e, t)
                }(e) || function() {
                    throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
                }()
            }
            function mt(e, t) {
                (null == t || t > e.length) && (t = e.length);
                for (var i = 0, n = new Array(t); i < t; i++)
                    n[i] = e[i];
                return n
            }
            function ht(e) {
                var t, i = pt(e).slice(0), n = function(e) {
                    if (e || e.querySelector(".slider-image-template")) {
                        var i = document.createElement("div");
                        return i.class = "fullscreen-gallery hidden",
                        i.innerHTML = "<a class='close-btn' href=''></a>",
                        e.querySelectorAll(".slider-image-template").forEach((function(e) {
                            i.innerHTML = i.innerHTML + e.outerHTML
                        }
                        )),
                        e.classList.add("active-fullscreen"),
                        i.innerHTML = i.innerHTML.replace(/sizes=\"\w*\"\s/gi, "sizes='100vw'"),
                        i.innerHTML = i.innerHTML.replace(/1024w,.*\n*.*1600w/gi, "1024w"),
                        i.innerHTML = i.innerHTML.replace(/slider-image-template/gi, "image-wrapper"),
                        t = new Se.Z({
                            content: i,
                            width: window.innerWidth,
                            height: window.innerHeight,
                            contentBackground: !1,
                            contentBackgroundColor: "transparent",
                            triggerObject: e,
                            closeOnBackBtn: !0,
                            closeOnBackgroundClick: !1,
                            fullscreenInSmallDown: !1,
                            customClass: "fullscreen-gallery",
                            bodyNoScroll: !0
                        }),
                        vt(),
                        document.querySelector(".close-btn").addEventListener("click", function(e) {
                            e.preventDefault(),
                            t.close()
                        }
                        .bind(t)),
                        t
                    }
                };
                i.map((function(e) {
                    var i = ut(e).royalSlider({
                        autoScaleSlider: !0,
                        autoScaleSliderWidth: 770,
                        autoScaleSliderHeight: 513,
                        loop: !0,
                        keyboardNavEnabled: !1,
                        controlsInside: !0,
                        arrowsNav: !0,
                        arrowsNavAutoHide: !1,
                        arrowsNavHideOnTouch: !1,
                        controlNavigation: "bullets",
                        numImagesToPreload: 3,
                        usePreloader: !1,
                        startSlideId: 0,
                        transitionType: "slide",
                        transitionSpeed: 300,
                        addActiveClass: !0,
                        navigateByClick: !1
                    }).data("royalSlider");
                    ut(e).on("click", function(e) {
                        e.stopPropagation(),
                        e.preventDefault(),
                        e.target.classList.contains("hotel-slider") && (t = n(e.target))
                    }
                    .bind(i)),
                    ut(e).on("keyup", function(e) {
                        switch (e.stopPropagation(),
                        e.preventDefault(),
                        e.keyCode) {
                        case 37:
                            i.prev();
                            break;
                        case 39:
                            i.next();
                            break;
                        case 13:
                            t = n(e.target)
                        }
                    }
                    .bind(i)),
                    i.ev.on("rsSlideClick", (function(e, i) {
                        i.stopPropagation(),
                        e.stopPropagation(),
                        i.preventDefault(),
                        t = n(e.target.slider[0])
                    }
                    )),
                    i.ev.on("rsAfterSlideChange", (function(e) {
                        (0,
                        m.ay)("hotel_slider_next"),
                        lazySizes.autoSizer.checkElems()
                    }
                    )),
                    setTimeout((function() {
                        window.dispatchEvent(new CustomEvent("resize"))
                    }
                    ), 100)
                }
                ))
            }
            var ft, gt, vt = (ft = function() {
                return (0,
                m.ay)("hotel_slider_full_screen")
            }
            ,
            gt = !1,
            function() {
                if (!gt)
                    return gt = !0,
                    ft()
            }
            );
            function bt(e) {
                return function(e) {
                    if (Array.isArray(e))
                        return yt(e)
                }(e) || function(e) {
                    if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"])
                        return Array.from(e)
                }(e) || function(e, t) {
                    if (!e)
                        return;
                    if ("string" == typeof e)
                        return yt(e, t);
                    var i = Object.prototype.toString.call(e).slice(8, -1);
                    "Object" === i && e.constructor && (i = e.constructor.name);
                    if ("Map" === i || "Set" === i)
                        return Array.from(e);
                    if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))
                        return yt(e, t)
                }(e) || function() {
                    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
                }()
            }
            function yt(e, t) {
                (null == t || t > e.length) && (t = e.length);
                for (var i = 0, n = new Array(t); i < t; i++)
                    n[i] = e[i];
                return n
            }
            var wt = function() {
                var e = bt(document.querySelectorAll("div.hotel-slider"));
                0 !== e.length && ht(e)
            };
            function St(e) {
                return function(e) {
                    if (Array.isArray(e))
                        return _t(e)
                }(e) || function(e) {
                    if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"])
                        return Array.from(e)
                }(e) || function(e, t) {
                    if (!e)
                        return;
                    if ("string" == typeof e)
                        return _t(e, t);
                    var i = Object.prototype.toString.call(e).slice(8, -1);
                    "Object" === i && e.constructor && (i = e.constructor.name);
                    if ("Map" === i || "Set" === i)
                        return Array.from(e);
                    if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))
                        return _t(e, t)
                }(e) || function() {
                    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
                }()
            }
            function _t(e, t) {
                (null == t || t > e.length) && (t = e.length);
                for (var i = 0, n = new Array(t); i < t; i++)
                    n[i] = e[i];
                return n
            }
            var Ct = i(17970)
              , kt = i(19755);
            function Tt(e) {
                this.$toggleDisplayButton = kt(e),
                this.$hotelNavigationWrapper = void 0,
                this.$navigationMenu = void 0,
                this.$overlay = kt('<div class="hotel-nav-overlay"></div>'),
                this.$body = kt("body"),
                this.init()
            }
            Tt.prototype.toggleNavigation = function(e) {
                kt("#hotelPage").length && (window.Scandic.isMapClickOnHotelPage = !1,
                document.body.querySelector(".navigation-bar[data-js=main-nav-bar]").style.zIndex = ""),
                this.$navigationMenu.is(":visible") ? this.hideNav() : this.showNav()
            }
            ,
            Tt.prototype.showNav = function() {
                this.$toggleDisplayButton.addClass("is-expanded"),
                function() {
                    var e = Me();
                    Ee(e.data("widgetarea"), e, Ie(this))
                }(),
                this.$navigationMenu.slideDown(),
                this.appendOverlay(),
                kt(window).on("scroll.hotelNavigation.keepMenuOpen", this.scrollListener.bind(this))
            }
            ,
            Tt.prototype.scrollListener = function(e) {
                this.$hotelNavigationWrapper.offset().top - kt(window).scrollTop() >= 0 || (kt(window).off("scroll.hotelNavigation.keepMenuOpen"),
                this.closeMenuAfterScroll())
            }
            ,
            Tt.prototype.closeMenuAfterScroll = function(e) {
                window.setTimeout(function() {
                    this.hideNav()
                }
                .bind(this), 200)
            }
            ,
            Tt.prototype.hideNav = function() {
                kt(window).off("scroll.hotelNavigation"),
                this.$toggleDisplayButton.removeClass("is-expanded"),
                this.$navigationMenu.slideUp(),
                this.hideOverlay()
            }
            ,
            Tt.prototype.appendOverlay = function() {
                kt("main").prepend(this.$overlay),
                this.$overlay.fadeIn()
            }
            ,
            Tt.prototype.hideOverlay = function() {
                this.$overlay.fadeOut()
            }
            ,
            Tt.prototype.init = function() {
                this.$navigationMenu = kt('*[data-js="' + this.$toggleDisplayButton.attr("data-target") + '"]'),
                0 !== this.$navigationMenu.length ? (this.$hotelNavigationWrapper = kt('*[data-js="sub-nav"]'),
                0 !== this.$hotelNavigationWrapper.length ? (this.$navigationMenu.hide(),
                this.$toggleDisplayButton.on("click", this.toggleNavigation.bind(this)),
                this.$overlay.on("click", this.hideNav.bind(this))) : console.log('Attribute [data-js="hotel-navigation-wrapper"] is missing in markup')) : console.log("target is missing on HotelNavigation")
            }
            ;
            var xt = i(19755)
              , At = i(19755)
              , It = i(19755);
            function Pt() {
                var e;
                window.modelData = document.querySelector("#model-data-jobs") ? JSON.parse(document.querySelector("#model-data-jobs").value) : null,
                At(window).on("load", (function() {
                    "undefined" != typeof modelData && modelData && ("undefined" != typeof modelData && modelData && (e = modelData.JobResult),
                    function() {
                        var i = It.map(It("#country_dropdown option"), (function(e) {
                            return e.value
                        }
                        )).indexOf(s("cntry")) < 0 ? "All" : s("cntry")
                          , n = It.map(It("#categoryDropdown option"), (function(e) {
                            return e.value
                        }
                        )).indexOf(s("ctgry")) < 0 ? "All" : s("ctgry")
                          , a = It.map(It("#locationDropdown option"), (function(e) {
                            return e.value
                        }
                        )).indexOf(decodeURIComponent(s("loc"))) < 0 ? "All" : decodeURIComponent(s("loc"))
                          , o = It.map(It("#departmentDropdown option"), (function(e) {
                            return e.value
                        }
                        )).indexOf(s("dept")) < 0 ? "All" : s("dept")
                          , m = e
                          , S = a
                          , _ = i
                          , C = n
                          , k = o
                          , T = m;
                        i && (r.cntry = i,
                        "All" !== i && (t = !0,
                        T = m = l(i, m)));
                        n && (r.ctgry = n,
                        "All" !== n && (t = !0,
                        m = c(n, m),
                        b(n),
                        _ = m[0].Locations[0].Location.Country_Short));
                        a && (r.loc = a,
                        "All" !== a && (t = !0,
                        _ = (m = d(a, m))[0].Locations[0].Location.Country_Short));
                        o && (r.dept = o,
                        "All" !== o && (t = !0,
                        m = u(o, m),
                        y(o)));
                        p(_, T),
                        h(_, a, T),
                        f(_, a, T),
                        i && g(_);
                        n && b(C);
                        a && v(S);
                        o && y(k);
                        w(m)
                    }(),
                    S(e),
                    t ? _(It("#resultCount").html()) : (0,
                    m.Z6)(It("#resultCount").html()),
                    C())
                }
                ));
                var t = !1
                  , i = It('*[data-js="selectCountry"]')
                  , n = It('*[data-js="selectCategory"]')
                  , a = It('*[data-js="selectLocation"]')
                  , o = It('*[data-js="selectDepartment"]')
                  , r = new Object;
                function s(e) {
                    for (var t = window.location.href.slice(window.location.href.indexOf("?") + 1).split("&"), i = 0; i < t.length; i++) {
                        var n = t[i].split("=");
                        if (n[0] === e)
                            return n[1]
                    }
                }
                function l(e, t) {
                    var i = [];
                    return "All" === e ? t : (t.forEach((function(t) {
                        t.Locations.forEach((function(n) {
                            n.Location.Country_Short === e && i.push(t)
                        }
                        ))
                    }
                    )),
                    i)
                }
                function c(e, t) {
                    var i = [];
                    return "All" === e ? t : (t.forEach((function(t) {
                        t.Categories.forEach((function(n) {
                            n.Category.Id === e && i.push(t)
                        }
                        ))
                    }
                    )),
                    i)
                }
                function d(e, t) {
                    var i = [];
                    return "All" === e ? t : (t.forEach((function(t) {
                        t.Locations.forEach((function(n) {
                            n.Location.City === e && i.push(t)
                        }
                        ))
                    }
                    )),
                    i)
                }
                function u(e, t) {
                    if ("All" !== e) {
                        var i = [];
                        return t.forEach((function(t) {
                            t.Departments.forEach((function(n) {
                                n.Department.Id === e && i.push(t)
                            }
                            ))
                        }
                        )),
                        i
                    }
                    return t
                }
                function p(e, t) {
                    var i = [];
                    "All" !== e ? t.forEach((function(t) {
                        t.Locations.forEach((function(t) {
                            t.Location.Country_Short === e && i.indexOf(t.Location.City) < 0 && t.Location.City && i.push(t.Location.City)
                        }
                        ))
                    }
                    )) : modelData.Locations.forEach((function(e) {
                        e && i.push(e)
                    }
                    )),
                    function(e) {
                        e.sort(),
                        It("#locationDropdown option").slice(1).remove(),
                        It.each(e, (function(e, t) {
                            var i = "<option value='" + t + "'>" + t + "</option>";
                            a.append(i)
                        }
                        )),
                        v("All")
                    }(i)
                }
                function h(e, t, i) {
                    var n = [];
                    "All" !== e ? i.forEach((function(i) {
                        i.Locations.forEach((function(a) {
                            var o = !t || "All" == t || t == a.Location.City;
                            a.Location.Country_Short === e && o && i.Departments.forEach((function(e) {
                                if (n.map((function(e) {
                                    return e.id
                                }
                                )).indexOf(e.Department.Id) < 0) {
                                    var t = e.Department.Id
                                      , i = e.Department.Name;
                                    n.push({
                                        id: t,
                                        text: i
                                    })
                                }
                            }
                            ))
                        }
                        ))
                    }
                    )) : modelData.Departments.forEach((function(e) {
                        var t = e.Department.Id
                          , i = e.Department.Name;
                        n.push({
                            id: t,
                            text: i
                        })
                    }
                    )),
                    function(e) {
                        e.sort((function(e, t) {
                            var i = e.text
                              , n = t.text;
                            return i < n ? -1 : i > n ? 1 : 0
                        }
                        )),
                        It("#departmentDropdown option").slice(1).remove(),
                        It.each(e, (function(e, t) {
                            var i = "<option value='" + t.id + "'>" + t.text + "</option>";
                            o.append(i)
                        }
                        )),
                        y("All")
                    }(n)
                }
                function f(e, t, i) {
                    var a = [];
                    "All" !== e ? i.forEach((function(i) {
                        i.Locations.forEach((function(n) {
                            var o = !t || "All" == t || t == n.Location.City;
                            n.Location.Country_Short === e && o && i.Categories.forEach((function(e) {
                                if (a.map((function(e) {
                                    return e.id
                                }
                                )).indexOf(e.Category.Id) < 0) {
                                    var t = e.Category.Id
                                      , i = e.Category.Text;
                                    a.push({
                                        id: t,
                                        text: i
                                    })
                                }
                            }
                            ))
                        }
                        ))
                    }
                    )) : modelData.Categories.forEach((function(e) {
                        var t = e.Category.Id
                          , i = e.Category.Text;
                        a.push({
                            id: t,
                            text: i
                        })
                    }
                    )),
                    function(e) {
                        e = e.sort((function(e, t) {
                            var i = e.text
                              , n = t.text;
                            return i < n ? -1 : i > n ? 1 : 0
                        }
                        )),
                        It("#categoryDropdown option").slice(1).remove(),
                        It.each(e, (function(e, t) {
                            var i = "<option value='" + t.id + "'>" + t.text + "</option>";
                            n.append(i)
                        }
                        )),
                        b("All")
                    }(a)
                }
                function g(e) {
                    i.val(e)
                }
                function v(e) {
                    a.val(e)
                }
                function b(e) {
                    n.val(e)
                }
                function y(e) {
                    o.val(e)
                }
                function w(e) {
                    !function() {
                        r.cntry = i[0].value,
                        r.loc = a[0].value,
                        r.ctgry = n[0].value,
                        r.dept = o[0].value;
                        var e = "?" + It.param(r);
                        window.history.replaceState(null, null, e)
                    }(),
                    It("#job_listing_results").html("");
                    var t = e
                      , s = "";
                    if (t.length > 0) {
                        var l = 0;
                        It.each(t, (function(e, t) {
                            var i = ""
                              , n = ""
                              , a = "";
                            It.each(t.Categories, (function(e, t) {
                                i += "<span>" + t.Category.Text + "</span>"
                            }
                            )),
                            It.each(t.Locations, (function(e, i) {
                                var a = "";
                                i.Location.Country && i.Location.City ? a = i.Location.City + "," + i.Location.Country : !i.Location.Country && i.Location.City ? a = i.Location.City : i.Location.Country && !i.Location.City && (a = i.Location.Country),
                                e + 1 < t.Locations.length ? n += "<span>" + a + "</span> /" : n += "<span>" + a + "</span>"
                            }
                            )),
                            a = t.To_Date ? It("#deadLineLabel")[0].textContent + " " + t.To_Date : It("#applicationOpenLabel")[0].textContent,
                            s += '<div class="results__container"><div class="heading-3"><a class="arrow-link result-title" href="' + t.Urls.Ad + '" target="_blank" data-js="view_apply_job" data-index="' + l + '">' + t.Title + '</a></div><div class="category">' + i + '</div><div class="category">' + n + '</div> <div class="deadline"><span class="text-small">' + a + '</span><span class="apply_to_job"><a href="' + t.Urls.Ad + '" class="btn btn--primary" target="_blank" data-js="view_apply_job" data-index="' + l + '">' + It("#viewandapplylabel")[0].textContent + "</a></span></div></div>",
                            l++
                        }
                        )),
                        S(e)
                    } else {
                        var c = "";
                        c = "Please try adjusting your search." !== It("#JobListingSubscribeURL")[0].textContent ? '<div class="alerts_message_container"><div class="alerts_message_container">' + It("#NewJobsSubscription")[0].textContent + "</div><a href= " + It("#JobListingSubscribeURL")[0].textContent + ' class="btn btn--primary" target="_blank" data-js="job_subscription">' + It("#JobsSubscribeSubscription")[0].textContent + "</a></div>" : '<div class="alerts_message_container"><span>' + It("#JobListingSubscribeURL")[0].textContent + "</span></div>",
                        s = '<div class="results__notfound"><span class="heading-3"> ' + It("#NoResultsFound")[0].textContent + "</span><div>" + c + "</div></div>"
                    }
                    It("#job_listing_results").append(s),
                    S(t),
                    C(),
                    It("#resultCount").html(t.length)
                }
                i.on("change", (function() {
                    var t = e;
                    "All" != i[0].value && (t = l(i[0].value, t)),
                    p(i[0].value, t),
                    h(i[0].value, "All", t),
                    f(i[0].value, "All", t),
                    "All" != i[0].value && _(t.length),
                    w(t)
                }
                )),
                a.on("change", (function() {
                    var t = e
                      , n = a[0].value;
                    "All" === i[0].value && "All" !== n && g(d(a[0].value, t)[0].Locations[0].Location.Country_Short);
                    t = l(i[0].value, t),
                    "All" !== n && (p(i[0].value, t),
                    t = d(n, t),
                    v(n)),
                    h(i[0].value, n, t),
                    f(i[0].value, n, t),
                    _(t.length),
                    w(t)
                }
                )),
                o.on("change", (function() {
                    var t = e
                      , n = o[0].value;
                    if (("All" === i[0].value || "All" === a[0].value) && "All" !== n) {
                        var r = u(n, t);
                        r[0].Locations[0].Location.Country_Short && (g(r[0].Locations[0].Location.Country_Short),
                        p(i[0].value, t)),
                        r[0].Locations[0].Location.City && v(r[0].Locations[0].Location.City),
                        h(i[0].value, a[0].value, t),
                        y(n)
                    }
                    t = l(i[0].value, t),
                    t = d(a[0].value, t),
                    "All" !== n && _((t = u(o[0].value, t)).length),
                    f(i[0].value, a[0].value, t),
                    w(t)
                }
                )),
                n.on("change", (function() {
                    var t = n[0].value
                      , r = e;
                    if ("All" === i[0].value && "All" !== t) {
                        var s = c(t, r);
                        s[0].Locations[0].Location.Country_Short && (g(s[0].Locations[0].Location.Country_Short),
                        p(i[0].value, r),
                        f(i[0].value, a[0].value, r),
                        b(t))
                    }
                    r = l(i[0].value, r),
                    r = d(a[0].value, r),
                    r = c(t, r = u(o[0].value, r)),
                    "All" !== t && _(r.length),
                    w(r)
                }
                ));
                var S = function(e) {
                    var t = It('[data-js="view_apply_job"]');
                    t.off("click"),
                    t.on("click", (function() {
                        for (var t = It(this).attr("data-index"), i = e[t], n = i.Title.split(",", 1), a = i.Departments[0] ? i.Departments[0].Department.Name : "", o = "", r = "", s = 0; s < 3; s++)
                            o += i.Categories[s] ? '"' + i.Categories[s].Category.Text + '"|' : "|";
                        for (var l = 0; l < 3; l++)
                            r += i.Locations[l] ? '"' + i.Locations[l].Location.City + ", " + i.Locations[l].Location.Country + '"|' : "|";
                        var c = i.To_Date ? Math.round((new Date(i.To_Date.replace(/st|nd|rd|th/, "") + " " + (new Date).getFullYear()).getTime() - (new Date).getTime()) / 864e5) : 0
                          , d = {
                            jobPosition: '"' + n + '"|"' + a + '"|' + o + r + (c > 0 ? c : 0)
                        };
                        (0,
                        m.bV)(d)
                    }
                    ))
                };
                function _(e) {
                    var t = {
                        jobfilterhoteloroffice: o[0].value,
                        jobfiltercountry: i[0].value,
                        jobfilterlocation: a[0].value,
                        jobfiltercategory: n[0].value
                    };
                    (0,
                    m.ke)(e, t)
                }
                var C = function() {
                    var e = It('[data-js="job_subscription"]');
                    e.off("click"),
                    e.on("click", (function() {
                        (0,
                        m.py)()
                    }
                    ))
                }
            }
            var Dt = i(19755);
            function Ot() {
                this.initialize()
            }
            function Et() {
                if (function() {
                    var e = document.querySelector("header .offline-banner");
                    if (e) {
                        var t, i = navigator.onLine ? "online" : "offline";
                        "function" == typeof Event ? t = new Event(i) : (t = document.createEvent("Event")).initEvent(i, !0, !0),
                        window.dispatchEvent(t),
                        window.addEventListener("offline", n),
                        window.addEventListener("online", n),
                        e.querySelector(".reload").addEventListener("click", (function() {
                            return window.location.reload()
                        }
                        ))
                    }
                    function n(t) {
                        var i = t.type;
                        e.classList.toggle("hidden", "online" === i)
                    }
                }(),
                -1 !== navigator.userAgent.toLowerCase().indexOf("android"))
                    new Ot
            }
            Ot.prototype = {
                type: "android",
                initialize: function() {
                    this.element = document.querySelector(".app-banner"),
                    this.isClosed = !!window.localStorage.getItem("app-banner-closed"),
                    -1 !== navigator.userAgent.toLowerCase().indexOf("android") && !this.isClosed && this.element && ("getInstalledRelatedApps"in navigator ? navigator.getInstalledRelatedApps().then(function(e) {
                        var t = this;
                        e.length ? e.forEach((function(e) {
                            "com.scandichotels.app" == e.id && t.showOpenApp(1)
                        }
                        )) : this.showOpenApp(0)
                    }
                    .bind(this)) : this.show(),
                    this.element.querySelector(".app-banner__cta").addEventListener("click", this.trackBtnClick))
                },
                show: function() {
                    this.element.classList.remove("hidden"),
                    window.addEventListener("scroll", this.handleNavigationBarScroll),
                    this.element.querySelector(".app-banner__close").addEventListener("click", this.close.bind(this)),
                    window.onload = function() {
                        (0,
                        m.ay)("smart-app-android-shown")
                    }
                },
                showOpenApp: function(e) {
                    e ? (this.element.querySelector(".app-banner__desc-installed").classList.remove("hidden"),
                    this.element.querySelector(".app-banner__cta .btn__view").classList.add("hidden"),
                    this.element.querySelector(".app-banner__cta .btn__open").classList.remove("hidden")) : this.element.querySelector(".app-banner__desc-uninstalled").classList.remove("hidden"),
                    this.show()
                },
                close: function() {
                    this.element.classList.add("hidden"),
                    this.element.parentNode.removeChild(this.element),
                    document.querySelector("header .navigation-bar").style.top = 0,
                    window.removeEventListener("scroll", this.handleNavigationBarScroll),
                    window.localStorage.setItem("app-banner-closed", 1),
                    (0,
                    m.ay)("smart-app-android-closed")
                },
                handleNavigationBarScroll: function() {
                    document.querySelector("header .navigation-bar").style.top = (window.scrollY > 80 ? 0 : 80 - window.scrollY) + "px"
                },
                trackBtnClick: function(e) {
                    e.currentTarget.querySelector(".app-banner__cta span:not(.hidden)").classList.contains("btn__open") ? (0,
                    m.ay)("smart-app-android-open") : (0,
                    m.ay)("smart-app-android-view")
                }
            };
            var Mt = i(19755)
              , Lt = i(19755);
            function Nt(e) {
                return Nt = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                    return typeof e
                }
                : function(e) {
                    return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                }
                ,
                Nt(e)
            }
            function Ht(e) {
                return function(e) {
                    if (Array.isArray(e))
                        return Bt(e)
                }(e) || function(e) {
                    if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"])
                        return Array.from(e)
                }(e) || function(e, t) {
                    if (!e)
                        return;
                    if ("string" == typeof e)
                        return Bt(e, t);
                    var i = Object.prototype.toString.call(e).slice(8, -1);
                    "Object" === i && e.constructor && (i = e.constructor.name);
                    if ("Map" === i || "Set" === i)
                        return Array.from(e);
                    if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))
                        return Bt(e, t)
                }(e) || function() {
                    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
                }()
            }
            function Bt(e, t) {
                (null == t || t > e.length) && (t = e.length);
                for (var i = 0, n = new Array(t); i < t; i++)
                    n[i] = e[i];
                return n
            }
            function jt() {
                this.destination = "",
                this.country = "",
                this.amenities = [],
                this.hotelType = "",
                this.filteredHotels = [],
                this.filteredHotelsExcludeHoteltype = [],
                this.cmsMode = -1 != window.location.href.toLowerCase().indexOf("webmgmt/cms"),
                this.init()
            }
            jt.prototype = {
                parseUrl: function() {
                    var e = this
                      , t = decodeURI(window.location.pathname.toLowerCase()).split("/");
                    if (window.location.hash) {
                        var i = decodeURI(window.location.hash.toLowerCase()).split("#");
                        t = t.concat(i)
                    }
                    var n = ["hotels", "hotell", "hoteller", "hotellit", "hotelsuche"]
                      , a = t.filter((function(e) {
                        return n.some((function(t) {
                            return t == e
                        }
                        ))
                    }
                    )).length;
                    this.destination = "",
                    this.country = "",
                    this.amenities = [],
                    this.hotelType = "";
                    var o = ["filters", "maincontent", "hotels", "hotell", "hoteller", "hotellit", "hotelsuche"];
                    if (t.forEach((function(t) {
                        t && "-1" == o.indexOf(t) && (e.destination = e.isLocationFilter(t) ? t : e.destination,
                        e.isAminityFilter(t) && e.amenities.push(t),
                        e.hotelType = e.isHotelTypeFilter(t) ? t : e.hotelType,
                        -1 != [e.destination, e.hotelType].concat(Ht(e.amenities)).indexOf(t) || e.cmsMode || (window.location.href = window.location.protocol + "//" + window.location.host + "/error/404"))
                    }
                    )),
                    this.destination || (this.destination = Mt(".filter-cities .filter-item").first().data().nameInUrl,
                    this.country = this.destination,
                    this.updateBrowserURLDestn(this.destination, !0)),
                    !a && !this.cmsMode) {
                        var r = Mt(".filter-cities .filter-item[data-name-in-url='" + this.destination + "'] a").attr("href")
                          , s = decodeURI(window.location.href).replace("/" + this.destination, r);
                        window.history.pushState({}, "", s)
                    }
                    this.updateFilterSelection()
                },
                init: function() {
                    Mt(".filter-cities .all-cities").each((function() {
                        var e = [];
                        Mt(this).siblings().each((function() {
                            e = e ? e.concat(Lt(this).data().hotelIds.filter((function(t) {
                                return e.indexOf(t) < 0
                            }
                            ))) : Lt(this).data().hotelIds
                        }
                        )),
                        Mt(this).find(".hotel-count").text(e.length)
                    }
                    )),
                    Mt(".dropdown-menu li a, .navbar-language-selector li a").each((function() {
                        var e = this.getAttribute("href");
                        e = (e = e.match(/.*hotel\w*\//gi)[0]).slice(0, -1),
                        this.setAttribute("href", e)
                    }
                    ))
                },
                isLocationFilter: function(e) {
                    var t = Mt(".filter-cities .filter-item[data-name-in-url='" + e + "']");
                    return t.hasClass("all-cities") && (this.country = e),
                    !!t.length
                },
                isAminityFilter: function(e) {
                    return !!Mt(".filter-amenity .filter-item[data-name-in-url='" + e + "']").length
                },
                isHotelTypeFilter: function(e) {
                    return !!Mt(".filter-hoteltype .filter-item[data-name-in-url='" + e + "']").length
                },
                updateFilterSelection: function() {
                    this.destination && this.updateDestinationFilterSelection(),
                    Mt(".filter-amenity .filter-item.active").removeClass("active"),
                    this.updateAmenityFilterSelection(),
                    Mt(".filter-hoteltype .filter-item.active").removeClass("active"),
                    this.updateHotelTypeFilterSelection(),
                    this.updateFilteredHotelsList(),
                    this.updateHotelCount(),
                    this.updateFilterSelectionPills(".filter-amenity"),
                    this.updateFilterSelectionPills(".filter-hoteltype")
                },
                updateFilterCounter: function(e) {
                    var t = Mt(e).find(".filter-item.active").length;
                    Mt(e).find(".filter__counter").text(t),
                    t ? Mt(e).find(".filter__counter").removeClass("hidden") : Mt(e).find(".filter__counter").addClass("hidden")
                },
                updateDestinationFilterSelection: function() {
                    var e = Mt(".filter-cities .filter-item[data-name-in-url='" + this.destination + "']")
                      , t = e.parent().parent()
                      , i = Mt(".filter-cities .filter-item.active");
                    i.parent().parent().addClass("hidden"),
                    i.removeClass("active"),
                    e.addClass("active"),
                    t.removeClass("hidden"),
                    e.find("input.custom-radio").prop("checked", !0),
                    e.parents(".filter-destination-wrapper").addClass("slide-left"),
                    i ? setTimeout((function() {
                        var t = Mt(".filter-cities .filter-item.active").parent();
                        t.animate({
                            scrollTop: Lt(e).position().top - 50 + t.scrollTop()
                        }, "slow")
                    }
                    ), 300) : Mt(window).on("load", (function() {
                        Mt(".filter-cities .filter-item.active").parent().animate({
                            scrollTop: Lt(e).position().top - 50
                        }, "slow")
                    }
                    )),
                    this.updateFilterCounter(e.parents(".filter-container")),
                    Mt(".filter-separator-destn").text(e.data().name),
                    Mt(".filter-separator-info").show()
                },
                updateAmenityFilterSelection: function() {
                    this.amenities.length > 0 && this.amenities.forEach((function(e, t) {
                        var i = Mt(".filter-amenity .filter-item[data-name-in-url='" + e + "']");
                        i.addClass("active"),
                        0 == t && Mt(window).on("load", (function() {
                            i.parent().animate({
                                scrollTop: Lt(i).position().top
                            }, "slow")
                        }
                        ))
                    }
                    )),
                    this.toggleAmenityClearAll(),
                    this.updateFilterCounter(Mt(".filter-amenity").parent())
                },
                updateHotelTypeFilterSelection: function() {
                    var e = Mt(".filter-hoteltype .filter-item[data-name-in-url='" + this.hotelType + "']");
                    e.addClass("active"),
                    e.find("input.custom-radio").prop("checked", !0),
                    this.hotelType && Mt(window).on("load", (function() {
                        e.parent().animate({
                            scrollTop: Lt(e).position().top
                        }, "slow")
                    }
                    )),
                    this.updateFilterCounter(Mt(".filter-hoteltype").parent())
                },
                updateFilteredHotelsList: function() {
                    this.filteredHotels = this.destination ? Mt(".filter-cities .filter-item.active").data().hotelIds : [];
                    var e = this;
                    e.filteredHotels || Mt(".filter-cities .filter-item.active ~ .filter-item").each((function() {
                        e.filteredHotels = e.filteredHotels ? e.filteredHotels.concat(Lt(this).data().hotelIds.filter((function(t) {
                            return e.filteredHotels.indexOf(t) < 0
                        }
                        ))) : Lt(this).data().hotelIds
                    }
                    )),
                    e.filteredHotelsExcludeHoteltype = e.filteredHotels,
                    Mt(".filter-list:not(.filter-list-city) > .filter-item.active").each((function() {
                        var t = Lt(this).data().hotelIds.filter((function(t) {
                            return !e.filteredHotels.length || e.filteredHotels.indexOf(t) > -1
                        }
                        ));
                        e.filteredHotels = t,
                        Lt(this).parent().hasClass("filter-hoteltype") || (e.filteredHotelsExcludeHoteltype = t),
                        Lt(this).find("span.hotel-count").text(t.length)
                    }
                    ))
                },
                updateHotelCount: function() {
                    var e = this
                      , t = this.getUpdatedBaseUrl();
                    Mt(".filter-list:not(.filter-list-city) > .filter-item").each((function() {
                        var i, n = Lt(this).parent().hasClass("filter-hoteltype") ? e.filteredHotelsExcludeHoteltype : e.filteredHotels;
                        i = Lt(this).data().hotelIds.filter((function(e) {
                            return n.indexOf(e) > -1
                        }
                        )),
                        Lt(this).find("span.hotel-count").text(i.length),
                        0 === i.length ? (Lt(this).addClass("disabled"),
                        Lt(this).find("a").removeAttr("href"),
                        Lt(this).find("input.custom-radio").attr("disabled", "")) : (Lt(this).removeClass("disabled"),
                        e.updateFilterUrl(Lt(this), t),
                        Lt(this).find("input.custom-radio").removeAttr("disabled"))
                    }
                    ))
                },
                getUpdatedBaseUrl: function() {
                    var e = this.destination ? Mt(".filter-cities .filter-item.active > a").attr("href") : "";
                    if (this.hotelType) {
                        var t = Mt(".filter-hoteltype .filter-item.active > a");
                        e += e ? "/" + t.parent().data().nameInUrl : t.attr("href")
                    }
                    if (this.amenities && this.amenities[0]) {
                        for (var i = "", n = 0; n < this.amenities.length; n++)
                            i += i ? "#" : "/",
                            i += this.amenities[n];
                        e += i
                    }
                    return e
                },
                updateFilterUrl: function(e, t) {
                    var i = Lt(e).hasClass("active")
                      , n = Lt(e).data().nameInUrl
                      , a = t;
                    if (e.parent().hasClass("filter-amenity")) {
                        var o = this.amenities && this.amenities[0]
                          , r = o ? "#" : "/";
                        a = i ? a.replace("#" + n, "#" + this.amenities[0]) : t + r + this.amenities[0],
                        a = o ? a.replace(this.amenities[0], n) : t + r + n
                    } else {
                        var s = this.hotelType ? "/" + this.hotelType : "";
                        a = a.replace(this.destination + s, this.destination + "/" + Lt(e).data().nameInUrl)
                    }
                    Lt(e).find("a").attr("href", a)
                },
                updateBrowserURLDestn: function(e, t) {
                    if (!this.cmsMode) {
                        if (t) {
                            var i = window.location.pathname.split("/")[1];
                            return n = decodeURI(window.location.href).replace(i, i + "/" + this.destination),
                            void window.history.pushState({}, "", n)
                        }
                        var n = decodeURI(window.location.href)
                          , a = !!this.destination && this.destination;
                        (a = !(a = !(a = a && a != this.country ? this.country + "/" + a : a) && this.hotelType ? this.hotelType : a) && this.amenities.length ? this.amenities[0] : a) ? (n = n.substring(0, window.location.href.indexOf(a)),
                        n += ("/" == n.charAt(n.length - 1) ? "" : "/") + e) : n += ("/" == n.charAt(n.length - 1) ? "" : "/") + e,
                        window.history.pushState({}, "", n)
                    }
                },
                updateBrowserURLAmenity: function(e) {
                    if (!this.cmsMode) {
                        var t = decodeURI(window.location.href);
                        if ("object" == Nt(e) && e.length)
                            e.forEach((function(e) {
                                t = (t = t.replace("/" + e, "")).replace("#" + e, "")
                            }
                            ));
                        else if (t.indexOf("#" + e) > 0 || t.indexOf("/" + e) > 0) {
                            t = t.replace("#" + e, "");
                            var i = this.amenities.length ? this.amenities[0] : null;
                            t = i ? (t = t.replace("/" + e, "/" + i)).replace("#" + i, "") : t.replace("/" + e, "")
                        } else
                            t = 1 == this.amenities.length ? t + "/" + e : t + "#" + e;
                        window.history.pushState({}, "", encodeURI(t))
                    }
                },
                updateBrowserURLHotelType: function(e, t) {
                    if (!this.cmsMode) {
                        var i = decodeURI(window.location.href);
                        t = t ? "/" + t : "",
                        !!e && i.indexOf("/" + e) > 0 ? i = i.replace("/" + e, t) : this.amenities.length ? i = i.replace("/" + this.amenities[0], t + "/" + this.amenities[0]) : i += t,
                        window.history.pushState({}, "", encodeURI(i))
                    }
                },
                updateFilterSelectionPills: function(e) {
                    var t = Mt(e).parent();
                    t.find(".filter-pill:not(.hidden)").remove();
                    var i = ".filter-amenity" == e
                      , n = i ? this.amenities : this.hotelType;
                    if (n.length)
                        if (i)
                            n.forEach((function(e) {
                                var i = t.find(".filter-pill.hidden").clone(!0);
                                i.removeClass("hidden"),
                                i.find("span").text(t.find("[data-name-in-url='" + e + "']").data().name),
                                t.find(".filter-pills").append(i)
                            }
                            ));
                        else {
                            var a = t.find(".filter-pill.hidden").clone(!0);
                            a.removeClass("hidden"),
                            a.find("span").text(t.find("[data-name-in-url='" + n + "']").data().name),
                            t.find(".filter-pills").append(a)
                        }
                },
                toggleAmenityClearAll: function() {
                    var e = Mt(".filter-amenity").parent().find(".filter-clear");
                    this.amenities.length > 1 ? e.removeClass("hidden") : e.addClass("hidden")
                },
                updateHeaderSection: function() {
                    var e = 0 == this.amenities.length
                      , t = !this.hotelType
                      , i = !e || !t
                      , n = Lt(".filter-item[data-name-in-url='" + this.destination + "']")
                      , a = i ? "" : Lt("#title-destn").val();
                    a = (a = a || e ? a : Lt("#title-destn-amentiy").val()) || t ? a : Lt("#title-destn-closeto").val(),
                    a = e || t ? a : Lt("#title-all").val(),
                    this.filteredHotels.length < 1 && (a = Lt("h2.section-heading .singular").text());
                    var o = this.hotelType ? Lt(".filter-item[data-name-in-url='" + this.hotelType + "']").data().name.toLowerCase() : ""
                      , r = this.amenities[0] ? Lt(".filter-item[data-name-in-url='" + this.amenities[0] + "']").data().name.toLowerCase() : "";
                    a = this.destination ? a.replace("{0}", n.data().name) : a,
                    a = this.hotelType ? a.replace("{1}", o) : a,
                    a = this.amenities[0] ? a.replace("{2}", r) : a;
                    var s = this.destination ? n.data().shortDescription : "";
                    (Lt("main .l-combo-main-sidebar-small__main--content h1").length < 1 ? Lt("main p.description").before('<h1 class="page-title no-margin">' + a + "</h1>") : Lt("h1.page-title").text(a),
                    -1 != a.indexOf("ß") && Lt("h1.page-title").html(Lt("h1.page-title").text().replace(/ß/g, '<span class="u-no-text-transform">ß</span>')),
                    Lt("p.description").text(s),
                    i) ? (Lt("p.description").hide(),
                    s = "") : (Lt("p.description").show(),
                    Lt(".preamble.description").text().length > (window.ScreenHelper.isLargeScreen() ? 160 : 120) && this.hideLongHotelDesc(window.ScreenHelper.isLargeScreen() ? 130 : 100));
                    this.updateHeadTags(a, s)
                },
                hideLongHotelDesc: function(e) {
                    var t = Lt(".preamble.description").text().substring(0, e)
                      , i = Lt(".preamble.description").text().substr(e)
                      , n = document.querySelector(".preamble.description ~ .read-more").outerHTML;
                    Lt(".preamble.description").html("<span>" + t + "</span>" + n + "<span>" + i + "</span>"),
                    Lt(".preamble.description").addClass("short-view"),
                    Lt(".preamble.description .read-more").show(),
                    Lt(".preamble.description .read-more").on("click", (function() {
                        Lt(this).hide(),
                        Lt(this).off("click"),
                        Lt(".preamble.description").removeClass("short-view")
                    }
                    ))
                },
                updateHeadTags: function(e, t) {
                    var i = Lt(".page-head-title").val().substring(Lt(".page-head-title").val().indexOf("|"));
                    Lt("head > title").length < 1 ? Lt("head > script").first().before("<title>" + e + " " + i + "</title>") : Lt("head > title").text(e + " " + i),
                    Lt("head > meta[property='og:title']").attr("content", e + i);
                    var n = window.location.href
                      , a = n.substring(0, window.location.hash ? n.indexOf("#") : n.length);
                    Lt("head link[rel='canonical']").length > 0 ? Lt("head link[rel='canonical']").attr("href", a) : Lt("head").append("<link rel='canonical' href='" + a + "'>"),
                    Lt("head > meta[name='description']").attr("content", t),
                    t && (Lt("head > meta[name='description']").length || Lt("head").append("<meta name='description' content='" + t + "' />"),
                    Lt("head > meta[property='og:description']").attr("content", t))
                }
            };
            var zt = i(19755)
              , qt = i(19755);
            function Ft(e) {
                return function(e) {
                    if (Array.isArray(e))
                        return Rt(e)
                }(e) || function(e) {
                    if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"])
                        return Array.from(e)
                }(e) || function(e, t) {
                    if (!e)
                        return;
                    if ("string" == typeof e)
                        return Rt(e, t);
                    var i = Object.prototype.toString.call(e).slice(8, -1);
                    "Object" === i && e.constructor && (i = e.constructor.name);
                    if ("Map" === i || "Set" === i)
                        return Array.from(e);
                    if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))
                        return Rt(e, t)
                }(e) || function() {
                    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
                }()
            }
            function Rt(e, t) {
                (null == t || t > e.length) && (t = e.length);
                for (var i = 0, n = new Array(t); i < t; i++)
                    n[i] = e[i];
                return n
            }
            var $t = i(17970)
              , Vt = i(19755)
              , Wt = function() {
                var e = Vt(".sort-list");
                if (!e.length)
                    return !1;
                Vt("[data-sort-field]").css("cursor", "pointer"),
                Vt("[data-sort-field]").on("click", (function(t) {
                    var i = Vt(t.currentTarget).data("sort-field")
                      , n = Vt(t.currentTarget).data("sort-order")
                      , a = e.get();
                    a.sort((function(e, t) {
                        var a, o, r, s;
                        return "asc" == n ? (a = e.querySelector("[data-sort-value=" + i + "]").innerText,
                        o = t.querySelector("[data-sort-value=" + i + "]").innerText) : (o = e.querySelector("[data-sort-value=" + i + "]").innerText,
                        a = t.querySelector("[data-sort-value=" + i + "]").innerText),
                        (r = a) === (s = o) ? 0 : r < s ? -1 : 1
                    }
                    ));
                    var o = e.parent();
                    a.forEach((function(e) {
                        o.append(e)
                    }
                    )),
                    function(e, t, i) {
                        Vt(e).data("sort-order", "asc" == i ? "desc" : "asc"),
                        Vt("[data-sort-field]").removeClass("active"),
                        Vt(e).addClass("active"),
                        Vt(e).find("i.icon-sort").removeClass("icon-sort-asc icon-sort-desc"),
                        Vt(e).find("i.icon-sort").addClass("icon-sort-" + ("asc" == i ? "desc" : "asc"))
                    }(t.currentTarget, 0, n)
                }
                ))
            }
              , Ut = i(19755);
            function Gt() {
                if (document.querySelector("form[name=bookingDetailsForm]")) {
                    var e = function(e) {
                        return /Rooms\[[0-9]\]/g.test(e) ? parseInt(e.substring(20, 21)) + 1 : -1
                    }
                      , t = [];
                    Ut("form[name=bookingDetailsForm] input, form[name=bookingDetailsForm] select").on("blur", (function(i) {
                        var n = e(i.target.name);
                        if (-1 != n && !t[n]) {
                            var a = {
                                event: "form start",
                                "form name": "checkout enter detail",
                                "form type": "checkout"
                            };
                            Ut(".booking-details--multi-room").length && (a["form name"] += " Room " + n),
                            (0,
                            m.ay)("form start", a),
                            t[n] = !0
                        }
                    }
                    ));
                    Ut("form").on("submit", (function(t) {
                        Ut(t.target).hasClass("ng-valid") ? (0,
                        m.ay)("form complete", {
                            event: "form complete",
                            "form name": "checkout enter detail",
                            "form type": "checkout"
                        }) : function() {
                            var t = [];
                            if (Ut("input.ng-invalid").each((function() {
                                Ut(this).siblings("span.error-text:visible").each((function() {
                                    t.push(Ut(this).text())
                                }
                                ))
                            }
                            )),
                            !(t.length < 1)) {
                                var i = e(Ut("input.ng-invalid")[0].getAttribute("name"))
                                  , n = {
                                    event: "form error",
                                    "form name": "checkout enter detail",
                                    "form type": "checkout",
                                    "form error": t.join("|").substring(0, 255)
                                };
                                Ut(".booking-details--multi-room").length && (n["form name"] += " Room " + i),
                                (0,
                                m.ay)("form error", n)
                            }
                        }()
                    }
                    ))
                }
            }
            var Qt = i(19755);
            function Yt(e) {
                this.$sliderObj = e,
                this.sliderAPI = e.data("royalSlider")
            }
            Yt.prototype = {
                enableSliderKeyboardNav: function(e) {
                    e && this.$sliderObj.one("focus", function(e) {
                        var t = this.$sliderObj.data("royalSlider");
                        Qt(document).on("keydown.slider", function(e) {
                            var i = !1;
                            (i = Qt(document.activeElement)[0] === this.$sliderObj[0] || Qt(document.activeElement).closest(this.$sliderObj).length > 0) && 37 === e.keyCode ? t.prev() : i && 39 === e.keyCode && t.next()
                        }
                        .bind(this))
                    }
                    .bind(this))
                },
                enableTabbing: function() {
                    this.$sliderObj.find(".rsArrow").each(function(e, t) {
                        Qt(t).find(".rsArrowIcn").attr("tabindex", 0),
                        Qt(t).keyup(function(e) {
                            13 !== e.keyCode && 32 !== e.keyCode || (Qt(t).hasClass("rsArrowLeft") ? this.sliderAPI.prev() : Qt(t).hasClass("rsArrowRight") && this.sliderAPI.next())
                        }
                        .bind(this))
                    }
                    .bind(this))
                }
            },
            window.Scandic.runOnWindowLoad.push((function() {
                var e = Qt('*[data-js="gallery-slider"]');
                if (!(e.length <= 0)) {
                    new Yt(e).enableSliderKeyboardNav(e, !0),
                    e.royalSlider({
                        autoHeight: !0,
                        imageAlignCenter: !1,
                        autoScaleSlider: !1,
                        autoScaleSliderWidth: 900,
                        autoScaleSliderHeight: 600,
                        imageScaleMode: "none",
                        loop: !0,
                        keyboardNavEnabled: !1,
                        controlsInside: !1,
                        arrowsNav: !0,
                        arrowsNavAutoHide: !1,
                        arrowsNavHideOnTouch: !1,
                        controlNavigation: "none",
                        thumbsFitInViewport: !1,
                        navigateByClick: !0,
                        numImagesToPreload: 3,
                        usePreloader: !0,
                        transitionType: "move",
                        globalCaption: !1,
                        deeplinking: {
                            enabled: !0,
                            change: !0,
                            prefix: "image-"
                        },
                        fullscreen: {
                            enabled: !0,
                            nativeFS: !0
                        },
                        autoPlay: !1
                    }),
                    i();
                    var t = e.data("royalSlider");
                    t.ev.on("rsExitFullscreen", (function() {
                        Qt(".l-booking-widget--horizontal").css("z-index", "100"),
                        i(),
                        Qt(".navigation-bar").removeClass("hidden"),
                        Qt(".special-alerts").removeClass("hidden")
                    }
                    )),
                    t.ev.on("rsEnterFullscreen", (function() {
                        Qt(".navigation-bar").addClass("hidden"),
                        Qt(".special-alerts").addClass("hidden"),
                        Qt(".l-booking-widget--horizontal").css("z-index", "10")
                    }
                    ))
                }
                function i() {
                    Qt("html, body").animate({
                        scrollTop: Qt('*[data-js="gallery-slider-section"]').offset().top - (window.innerWidth > 950 ? 100 : 120)
                    }, 1e3)
                }
            }
            )),
            window.Scandic.runOnWindowLoad.push((function() {
                var e = Qt('*[data-js="slider--withcontrols"]');
                e.length <= 0 || e.each((function() {
                    var e = Qt(this);
                    Qt(this).royalSlider({
                        autoHeight: !0,
                        imageAlignCenter: !1,
                        autoScaleSlider: !1,
                        imageScaleMode: "none",
                        autoScaleSliderWidth: 900,
                        autoScaleSliderHeight: 600,
                        loop: !1,
                        keyboardNavEnabled: !1,
                        controlsInside: !1,
                        arrowsNav: !1,
                        arrowsNavAutoHide: !1,
                        arrowsNavHideOnTouch: !1,
                        controlNavigation: "thumbnails",
                        thumbsFitInViewport: !0,
                        thumbs: {
                            spacing: 2,
                            arrowsAutoHide: !0,
                            autoCenter: !1
                        },
                        navigateByClick: !0,
                        numImagesToPreload: 3,
                        usePreloader: !0,
                        transitionType: "move",
                        globalCaption: !1,
                        autoPlay: !1
                    });
                    var t = e.data("royalSlider");
                    setTimeout((function() {
                        e.removeClass("media-container media-container--3x2"),
                        t.updateSliderSize()
                    }
                    ), 1e3),
                    e.find(".rsNavItem.rsThumb img").attr("tabindex", "0").on("keydown", (function(e) {
                        "enter" == e.key.toLowerCase() && Qt(this).trigger("click")
                    }
                    ))
                }
                ))
            }
            ));
            var Jt = i(19755)
              , Xt = function() {
                var e, t;
                if (t = (e = Jt(".hero__img-container")).find("img.hero__image"),
                !(e.length <= 0 || t.length <= 0)) {
                    picturefill();
                    var i, n = Jt('*[data-js="hero-slider"]');
                    if (n.children().length > 0) {
                        !function(e) {
                            e.royalSlider({
                                autoScaleSlider: !1,
                                autoHeight: !1,
                                loop: !0,
                                keyboardNavEnabled: !1,
                                controlsInside: !0,
                                arrowsNav: !0,
                                arrowsNavAutoHide: !1,
                                arrowsNavHideOnTouch: !1,
                                controlNavigation: "bullets",
                                thumbsFitInViewport: !1,
                                navigateByClick: !0,
                                numImagesToPreload: 1,
                                usePreloader: !0,
                                startSlideId: 0,
                                transitionType: "fade",
                                transitionSpeed: 300,
                                autoPlayTriggeredTransitionSpeed: 2e3,
                                globalCaption: !1,
                                deeplinking: {
                                    enabled: !0,
                                    change: !1
                                },
                                autoPlay: {
                                    enabled: !1,
                                    pauseOnHover: !1,
                                    stopAtAction: !0,
                                    delay: 5e3
                                }
                            }),
                            Jt("#full-width-slider").show(),
                            Jt(".slider-plchldr").fadeOut(3e3, (function() {
                                Jt(this).remove()
                            }
                            ));
                            var t = new Yt(e);
                            t.enableSliderKeyboardNav(!0),
                            t.enableTabbing()
                        }(n);
                        var a = n.data("royalSlider");
                        (i = a).st.autoPlay.enabled && i.st.autoPlayTriggeredTransitionSpeed !== i.st.transitionSpeed && (i.st.userActionTriggeredTransitionSpeed = i.st.transitionSpeed,
                        i.ev.on("rsBeforeMove", (function(e, t, n) {
                            i.st.transitionSpeed = !1 === n ? i.st.autoPlayTriggeredTransitionSpeed : i.st.userActionTriggeredTransitionSpeed
                        }
                        )));
                        var o = Jt('*[data-js="hero-teaser-link"]');
                        o.focus((function() {
                            a.stopAutoPlay()
                        }
                        )),
                        o.focusout((function() {
                            a.startAutoPlay()
                        }
                        ))
                    }
                }
            };
            window.Scandic.runOnDocumentReady.push((function() {
                var e, t, i, o, r;
                !function() {
                    if (document.querySelector(".l-section--hotel")) {
                        var e = function(e) {
                            n.ajax({
                                url: "/ajax/hotelalerts",
                                type: "GET",
                                data: {
                                    id: e,
                                    lang: document.documentElement.lang
                                },
                                success: function(e) {
                                    n(".l-section.l-section--pattern").after(e)
                                }
                            })
                        };
                        n(".l-section--hotel").length && (window.Scandic.bookingWidgetData ? e(window.Scandic.bookingWidgetData.stayValue) : window.datalayer[1] && window.datalayer[1].hotelid && setTimeout(e, 1e3, window.datalayer[1].hotelid))
                    }
                }(),
                function() {
                    function e(e) {
                        var t = a('[data-tab-content="' + e.data("tab-panel") + '"]');
                        t.length && (e.find("a").each((function() {
                            var i = a(this)
                              , n = i.parent();
                            i.on("click", (function(a) {
                                a.preventDefault();
                                var o = t.find('[data-tab="' + i.attr("href").substring(1) + '"]');
                                !n.hasClass("is-active") && o.length && (e.children().removeClass("is-active"),
                                t.find("[data-tab]").removeClass("is-active"),
                                n.addClass("is-active"),
                                o.addClass("is-active").trigger("tab.activated", o))
                            }
                            ))
                        }
                        )),
                        a("*[data-tab-trigger]").on("click", (function() {
                            var i = a(this).data("tab-trigger")
                              , n = a('[data-tab="' + i + '"]');
                            e.children().removeClass("is-active"),
                            t.find("[data-tab]").removeClass("is-active"),
                            e.find('[href="#' + i + '"]').parent().addClass("is-active"),
                            n.addClass("is-active"),
                            n.addClass("is-active").trigger("tab.activated", n)
                        }
                        )))
                    }
                    for (var t = a('*[data-js="tab-panel"]'), i = 0, n = t.length; i < n; ++i)
                        e(t.eq(i))
                }(),
                e = s('*[data-js="dropdown-toggler"]'),
                s('*[data-js="dropdown-toggler"]').length && e.each(l),
                u(document).on("mouseover", p, (function() {
                    d.registerMouseOutEventHandler(this),
                    d.find(u(this)).hoverOpen((function() {
                        this.closeOnMouseout()
                    }
                    ))
                }
                )),
                u(document).on("focus", p, (function(e) {
                    u(this).data("tooltip-open-on-focus") && d.find(u(this)).open().closeOnBlur(p),
                    e.preventDefault()
                }
                )),
                u(document).on("click", p, (function(e) {
                    e.preventDefault(),
                    d.find(u(this)).open().closeOnClick()
                }
                )),
                (t = x("[data-scroll-with]")) && 0 !== t.length && t.map((function(e, t) {
                    return new T(x(t),x(t.getAttribute("data-scroll-with")))
                }
                )),
                I(),
                function() {
                    var e, t;
                    function i(e) {
                        "ger" === e.toLowerCase() ? t.show() : t.hide()
                    }
                    e = P("*[data-js=profile-language-selection]"),
                    t = P("*[data-js=profile-title-selection]"),
                    e.length > 0 && t.length > 0 && (i(e.val()),
                    e.change((function() {
                        i(this.value)
                    }
                    )))
                }(),
                D('form[name="registerprofile"]').on("invalid-form.validate", (function() {
                    setTimeout((function() {
                        var e, t = D(":focus");
                        t.offset() && (e = t.offset().top - D(".navigation-bar").outerHeight(),
                        D("html, body").scrollTop(e))
                    }
                    ))
                }
                )),
                function() {
                    var e = "formDataStore";
                    function t() {
                        window.sessionStorage.removeItem("form_bookingDetailsForm")
                    }
                    document.querySelector("#reset-enter-details") && t(),
                    M('*[data-js="logout-form"]').on("submit", (function() {
                        t()
                    }
                    )),
                    M('*[data-js="remember-form-data"]').each((function() {
                        M(this).data("module_" + e) || M(this).data("module_" + e, new E(this))
                    }
                    ))
                }(),
                q('[data-js="sign-up"]').each((function() {
                    new z(q(this))
                }
                )),
                $((function() {
                    $(".js-modify-booking").doOnce((function() {
                        this.each((function() {
                            new R($(this))
                        }
                        ))
                    }
                    ))
                }
                )),
                window.onload = function() {
                    document.querySelector("#booking-status") && (0,
                    m.ay)("my booking - find booking", {
                        "form name": "my booking",
                        "form type": "find booking",
                        "form status": document.querySelector("#booking-status").value
                    })
                }
                ,
                Q("*[data-js='price-calendar']").each((function() {
                    new G(Q(this)).init()
                }
                )),
                X('*[data-js="main-nav-toggler"]').each((function(e, t) {
                    new J(t)
                }
                )),
                ee('*[data-js="main-nav-bar"]').each((function(e, t) {
                    new Z(t)
                }
                )),
                re(),
                ce(".widget-with-summary-toggle").each((function(e, t) {
                    new le(t)
                }
                )),
                pe('*[data-js="book-button-toggler"]').each((function(e, t) {
                    new ue(t)
                }
                )),
                ve(),
                we('*[data-js="booking-widget-form"]').each((function(e, t) {
                    new ye(t)
                }
                )),
                (i = Te("body").find(".mlc-carousel__preloader")[0]) && Te(i).hide(),
                Te("a[data-viewallbenefits-link]").on("click", (function(e) {
                    e.preventDefault(),
                    window.location.href = e.target.href
                }
                )),
                function() {
                    var e = ".table__container--historical-bookings"
                      , t = ".table__container-historical-bookings-inner"
                      , i = "#hb-fade-overlay-right";
                    function n(i) {
                        if (xe(e).length) {
                            var n = xe(e).outerWidth()
                              , a = xe(t + " > table.table--nlp").get(0).scrollWidth
                              , o = xe(t).find(i)[0];
                            "#hb-fade-overlay-right" === i ? n < a || 0 === n ? xe(o).removeClass("hidden") : xe(o).addClass("hidden") : n > a ? xe(o).removeClass("hidden") : xe(o).addClass("hidden")
                        }
                    }
                    document.querySelector(e) && (xe(window).on("load", (function() {
                        n(i)
                    }
                    )),
                    xe(window).on("resize", (function() {
                        n(i)
                    }
                    )),
                    document.addEventListener("scroll", (function(n) {
                        var a, o;
                        n.target === xe(e)[0] && (a = xe(t).find(i)[0],
                        o = "right",
                        xe(e)[0].scrollWidth - (xe(e)[0].clientWidth + xe(e)[0].scrollLeft) < 30 ? xe(a).addClass("hidden") : xe(a).removeClass("hidden"),
                        "right" === o ? xe(a).css("right", -(xe(e)[0].scrollLeft + 5)) : xe(a).css("left", xe(e)[0].scrollLeft - 5))
                    }
                    ), !0))
                }(),
                Ae("#contact-us__phone-info__link").on("click", (function(e) {
                    e.preventDefault(),
                    (0,
                    m.ay)("phoneNumberClicked"),
                    window.location.href = Ae(e.currentTarget).data("number")
                }
                )),
                Ae("#contact-us__email").on("click", (function(e) {
                    e.preventDefault(),
                    (0,
                    m.ay)("emailClicked"),
                    window.location.href = Ae(e.currentTarget).data("email")
                }
                )),
                Ae("#table__container--historical-bookings__toggle-btn").on("click", (function(e) {
                    (0,
                    m.ay)("previousTransactionsTableToggleButtonClicked")
                }
                )),
                Ae("#my-expiring-points-container__toggle-btn").on("click", (function(e) {
                    (0,
                    m.ay)("expiringPointsTableToggleButtonClicked")
                }
                )),
                Ae("#previous-transactions > form").submit((function(e) {
                    (0,
                    m.ay)("previousTransactionsTableIsFiltered")
                }
                )),
                Ae(".multiple-rates-block__donate-points-btn").on("click", (function(e) {
                    var t = {
                        charity: Ae(e.target).attr("data-donation-name") || null
                    };
                    (0,
                    m.ay)("confirmdonation", t)
                }
                )),
                Ae("#product-card__cancel-button").on("click", (function(e) {
                    (0,
                    m.ay)("donationcancel")
                }
                )),
                Ae(".multiple-rates-block__donate-points-confirmation-btn").on("click", (function(e) {
                    var t = {
                        charity: Ae(e.target).attr("data-donation-name") || null,
                        charitypoints: Ae(e.target).attr("data-donation-amount") || null
                    };
                    (0,
                    m.ay)("donationthankyou", t)
                }
                )),
                0 !== _e(Ce).length && ke(),
                He(),
                (o = document.querySelector('[data-js="search-filter"]')) && Qe(o),
                function() {
                    for (var e = dt('*[data-js="scroll-top"]'), t = 0, i = e.length; t < i; ++t)
                        e.eq(t).on("click", n);
                    function n() {
                        dt("html, body").stop().animate({
                            scrollTop: 0
                        }, 400, "swing")
                    }
                    for (t = 0,
                    i = (e = dt('*[data-js="new-search"]')).length; t < i; ++t)
                        e.eq(t).on("click", a);
                    function a() {
                        dt("html, body").stop().animate({
                            scrollTop: 0
                        }, 400, "swing", (function() {
                            dt(".booking-widget-toggle").hasClass("active") || dt(".booking-widget-toggle").trigger("click"),
                            "none" == dt(".l-booking-widget--mobile-collapsed").css("display") && dt(".navigation-bar__main__booking-widget-toggle").trigger("click"),
                            dt("#widget-search__text").focus()
                        }
                        ))
                    }
                }(),
                wt(),
                St(document.querySelectorAll("[data-lazysizes-refresh]")).forEach((function(e) {
                    return e.addEventListener("click", lazySizes.autoSizer.checkElems)
                }
                )),
                (0,
                Ct.init)(),
                Pt(),
                function() {
                    if (document.querySelector("#tvgo-HotelId")) {
                        var e = read_cookie("trv_reference");
                        null !== e && Dt.ajax({
                            type: "Post",
                            data: {
                                TrvReference: e,
                                HotelId: document.querySelector("#tvgo-HotelId").value,
                                ArrivalDate: document.querySelector("#tvgo-ArrivalDate").value,
                                DepartureDate: document.querySelector("#tvgo-DepartureDate").value,
                                DateFormat: document.querySelector("#tvgo-DateFormat").value,
                                TotalBookingPricePerStay: document.querySelector("#tvgo-TotalBookingPricePerStay").value,
                                Currency: document.querySelector("#tvgo-Currency").value,
                                BookingId: document.querySelector("#tvgo-BookingId").value
                            },
                            url: "/ajax/bookingconfirmation/sendConfirmedBookingToTrivago",
                            success: function(e) {
                                "True" == e ? console.log("Trivago Conversion API call successfully completed") : console.log("Trivago Conversion API call failed")
                            },
                            error: function(e) {
                                console.log("Trivago Conversion API call failed with error", e)
                            }
                        })
                    }
                }(),
                function() {
                    if ("filteringpage" == window.datalayer[0].pagetype || document.querySelector(".filter-wrapper")) {
                        var e = new jt;
                        e.parseUrl();
                        var t = function() {
                            window.ScreenHelper.mediaSmallUp() && !zt(".filter-modal").length && (zt(".filter-destination").parents(".filter-wrapper").addClass("filter-open"),
                            zt(".filter-destination").parents(".filter-container").addClass("filter-modal"))
                        };
                        t(),
                        zt(window).on("resize", t),
                        zt(".filter-destination-wrapper .filter-item, .filter-destination-wrapper .filter-item .custom-radio").on("click change", function(t) {
                            t.stopPropagation();
                            var a = t.currentTarget;
                            (t.type = "radio" == a.type) && (a = a.parentElement);
                            var o = zt(a).data().nameInUrl
                              , r = zt(a).data().name
                              , s = zt(a).hasClass("filter-country") && zt(".slide-left").length;
                            if ((o != e.destination || zt(a).hasClass("filter-country")) && !s) {
                                if (zt(a).hasClass("filter-country")) {
                                    var l = zt(a).parents(".filter-destination-wrapper");
                                    return l.addClass("slide-left"),
                                    l.find(".filter-cities #" + o).removeClass("hidden"),
                                    l.find(".filter-cities #" + o + " ul li").length > 7 && !window.ScreenHelper.mediaSmallUp() ? zt(".filter-modal").css("height", "85%") : zt(".filter-modal").css("height", "auto"),
                                    void zt(".filter-cities .back:visible").trigger("focus")
                                }
                                zt(".filter-list .filter-item.active").removeClass("active");
                                var c = zt(a).find("a").attr("href").split("/")[2];
                                e.updateBrowserURLDestn(c != o ? c + "/" + o : o),
                                o && (e.country = c,
                                e.destination = o,
                                e.amenities = [],
                                e.hotelType = ""),
                                zt(a).addClass("active"),
                                zt(a).find("input.custom-radio").prop("checked", !0),
                                zt(".filter-separator-destn").text(r),
                                zt(".filter-separator-info").show(),
                                e.updateFilteredHotelsList(),
                                e.updateHotelCount(),
                                e.updateFilterCounter(zt(".filter-destination").parent()),
                                e.updateFilterSelectionPills(".filter-amenity"),
                                e.toggleAmenityClearAll(),
                                e.updateFilterCounter(zt(".filter-amenity").parent()),
                                e.updateFilterSelectionPills(".filter-hoteltype"),
                                e.updateFilterCounter(zt(".filter-hoteltype").parent()),
                                i(),
                                n()
                            }
                        }
                        .bind(e)),
                        window.navigator.userAgent.indexOf("Trident") > 0 && qt(".filter-list-city").css("height", "calc(100% - 26px)"),
                        zt(".filter-cities .back").on("click keydown", (function(e) {
                            "keydown" == e.type && 13 != e.which || (e.stopPropagation(),
                            zt(".filter-modal .filter-destination").show(),
                            zt(".filter-modal").css("height", "auto"),
                            zt(this).parents(".filter-destination-wrapper").removeClass("slide-left"),
                            zt(this).parent().addClass("hidden"),
                            window.ScreenHelper.mediaMediumUp() && document.querySelector(".filter-country[data-name-in-url=" + e.currentTarget.parentElement.id + "] a").focus())
                        }
                        )),
                        zt(".filter-amenity .filter-item").on("click", function(t) {
                            if (t.stopPropagation(),
                            !zt(t.currentTarget).hasClass("disabled")) {
                                var a = zt(t.currentTarget).data().nameInUrl
                                  , o = e.amenities.indexOf(a);
                                -1 !== o ? (zt(t.currentTarget).removeClass("active"),
                                e.amenities.splice(o, 1)) : (zt(t.currentTarget).addClass("active"),
                                e.amenities.push(a)),
                                e.updateFilteredHotelsList(),
                                e.updateHotelCount(),
                                e.updateBrowserURLAmenity(a),
                                e.updateFilterSelectionPills(".filter-amenity"),
                                e.toggleAmenityClearAll(),
                                e.updateFilterCounter(zt(".filter-amenity").parent()),
                                i(),
                                n()
                            }
                        }
                        .bind(e)),
                        zt(".filter-hoteltype .filter-item").on("click", (function(t) {
                            if (t.stopPropagation(),
                            !(zt(this).hasClass("disabled") || zt(this).hasClass("active") && t.originalEvent)) {
                                var a = zt(t.currentTarget).data().nameInUrl
                                  , o = e.hotelType;
                                a == e.hotelType && (zt(t.currentTarget).removeClass("active"),
                                a = "",
                                zt(this).find("input.custom-radio").prop("checked", !1)),
                                e.hotelType = a,
                                zt(".filter-hoteltype .filter-item.active").removeClass("active"),
                                a && (zt(this).addClass("active"),
                                zt(this).find("input.custom-radio").prop("checked", !0)),
                                e.updateFilteredHotelsList(),
                                e.updateHotelCount("filter-hoteltype"),
                                e.updateBrowserURLHotelType(o, a),
                                e.updateFilterSelectionPills(".filter-hoteltype"),
                                e.updateFilterCounter(zt(".filter-hoteltype").parent()),
                                i(),
                                n()
                            }
                        }
                        )),
                        zt(".filter-heading").on("click keydown", (function(e) {
                            if (("keydown" != e.type || 13 == e.which) && (!zt(this).parent().hasClass("filter-modal") || window.ScreenHelper.mediaSmallUp()) && (zt(this).parent().hasClass("filter-modal") || zt(".filter-modal").removeClass("filter-modal"),
                            zt(this).parents(".filter-wrapper").toggleClass("filter-open"),
                            zt(this).parent().toggleClass("filter-modal"),
                            !window.ScreenHelper.mediaSmallUp())) {
                                zt(".navigation-bar, .booking-widget-wrapper").addClass("force-to-bottom"),
                                zt("body").addClass("modal-is-open");
                                var t = zt(this).next();
                                if (t.find("li").length > 7) {
                                    var i = t.find("ul li.active").first();
                                    zt(".filter-modal").css("height", "85%"),
                                    t.find("ul").length && i.position().top > t.find("ul").height() && t.find("ul").animate({
                                        scrollTop: i.position().top - 50
                                    }, "slow")
                                }
                            }
                        }
                        )),
                        zt(".filter-close").on("click", (function(e) {
                            zt(".navigation-bar, .booking-widget-wrapper").removeClass("force-to-bottom"),
                            zt(".filter-open").removeClass("filter-open"),
                            zt(".filter-modal").removeClass("filter-modal"),
                            zt("body").removeClass("modal-is-open"),
                            zt(e.currentTarget).next().trigger("focus")
                        }
                        )),
                        zt(".filter-pill-close").on("click keydown", (function(e) {
                            if ("keydown" != e.type || 13 == e.which) {
                                var t = zt(this).parent().text().trim();
                                zt(this).parents(".filter-container").find("[data-name='" + t + "']").trigger("click")
                            }
                        }
                        )),
                        zt(".filter-clear").on("click keydown", function(t) {
                            if ("keydown" != t.type || 13 == t.which) {
                                t.stopPropagation();
                                var a = e.amenities;
                                a.forEach((function(e) {
                                    zt(".filter-amenity .filter-item[data-name-in-url='" + e + "']").removeClass("active")
                                }
                                )),
                                e.amenities = [],
                                e.updateFilteredHotelsList(),
                                e.updateHotelCount(),
                                e.updateFilterSelectionPills(".filter-amenity"),
                                e.updateBrowserURLAmenity(a),
                                e.toggleAmenityClearAll(),
                                e.updateFilterCounter(zt(".filter-amenity").parent()),
                                zt(".filter-amenity .filter-item").first().trigger("focus"),
                                i(),
                                n()
                            }
                        }
                        .bind(e));
                        var i = function(t) {
                            var i = e.filteredHotels.join(",")
                              , n = !1;
                            if (e.filteredHotels.forEach((function(e) {
                                qt("[data-hotel-id=" + e + "]").length || (n = !0)
                            }
                            )),
                            e.filteredHotels.length || qt("head meta[name=robots]").length ? qt("head meta[name=robots]").length && qt("head meta[name=robots]").remove() : qt("head").append("<meta name='robots' content='noindex, nofollow'>"),
                            $t.toggle(),
                            o(),
                            r(),
                            e.updateHeaderSection(),
                            !n)
                                return a(),
                                window.dispatchEvent(new CustomEvent("resize")),
                                void $t.toggle();
                            qt.ajax({
                                url: "/ajax/fetchhotels?ids=" + i,
                                success: function(e) {
                                    qt(".speech-bubble--error").addClass("hidden"),
                                    qt(".hotel-list").html(e),
                                    window.dispatchEvent(new CustomEvent("resize")),
                                    qt("select[name=sort-order]").trigger("change"),
                                    wt();
                                    var t = Ft(document.querySelectorAll(".hotel-list > a")).map((function(e) {
                                        return {
                                            id: JSON.parse(e.dataset.hotelId),
                                            elem: e
                                        }
                                    }
                                    ));
                                    s(t),
                                    c(),
                                    window.dispatchEvent(new CustomEvent("resize"))
                                },
                                error: function(e, t, i) {
                                    qt(".hotel-list").html(""),
                                    qt(".speech-bubble--error").removeClass("hidden")
                                },
                                complete: function() {
                                    if (!t) {
                                        var e = window.ScreenHelper.mediaMediumUp() ? 15 : 65;
                                        qt("html, body").animate({
                                            scrollTop: qt(".section-heading-wrapper").offset().top - e
                                        }, 400)
                                    }
                                    $t.toggle()
                                }
                            })
                        }
                          , n = function() {
                            var e = document.querySelector(".filter-city.active a").href;
                            e && e == location.href ? (qt("#page-content").hide(),
                            qt("#page-content__loader").show(),
                            qt.ajax({
                                type: "POST",
                                url: e + "/getpagecontent",
                                success: function(e) {
                                    e.toString().trim() ? qt("#page-content").html(e).show() : qt("#page-content").html("").hide(),
                                    qt("#page-content__loader").hide()
                                },
                                error: function(e, t, i) {
                                    qt("#page-content").html("").hide(),
                                    qt("#page-content__loader").hide()
                                }
                            })) : qt("#page-content").html("").hide()
                        }
                          , a = function() {
                            Ft(document.querySelectorAll(".hotel-list > a")).forEach((function(t) {
                                -1 == e.filteredHotels.indexOf(parseInt(t.dataset.hotelId)) ? qt(t).addClass("hidden") : qt(t).removeClass("hidden")
                            }
                            ));
                            var t = Ft(document.querySelectorAll(".hotel-list > a")).map((function(e) {
                                return {
                                    id: JSON.parse(e.dataset.hotelId),
                                    elem: e
                                }
                            }
                            )).filter((function(e) {
                                return !JSON.parse(e.elem.classList.contains("hidden") || "false")
                            }
                            ));
                            s(t),
                            c();
                            var i = window.ScreenHelper.mediaMediumUp() ? 15 : 65;
                            qt("html, body").animate({
                                scrollTop: qt(".section-heading-wrapper").offset().top - i
                            }, 400)
                        }
                          , o = function() {
                            var t = e.filteredHotels.length
                              , i = qt("h2.section-heading");
                            qt(".hotels-count").text(t),
                            t > 1 ? (qt(i).find(".plural").show(),
                            qt(i).find(".singular").hide()) : (qt(i).find(".plural").hide(),
                            qt(i).find(".singular").show())
                        }
                        .bind(e)
                          , r = function() {
                            var t = e.destination ? 1 : 0;
                            t += e.amenities.length,
                            t += e.hotelType ? 1 : 0,
                            qt(".filters-added .filter__counter").text(t),
                            t < 2 ? (qt(".filters-added .filter__counter-label.singular").show(),
                            qt(".filters-added .filter__counter-label.plural").hide()) : (qt(".filters-added .filter__counter-label.singular").hide(),
                            qt(".filters-added .filter__counter-label.plural").show())
                        }
                          , s = function(e) {
                            var t = C();
                            if (t) {
                                t.getMarkers().forEach((function(e) {
                                    return e.marker.setMap(null)
                                }
                                ));
                                var i = e.map((function(e) {
                                    return l(t, e.elem)
                                }
                                ));
                                setTimeout((function() {
                                    window.dispatchEvent(new CustomEvent("resize")),
                                    t.scaleToFitMarkers(i)
                                }
                                ), 0)
                            }
                        }
                          , l = function(e, t) {
                            var i = t.querySelector(".poi")
                              , n = t.querySelector(".distance");
                            return e.addMarker({
                                lat: t.dataset.lat,
                                long: t.dataset.long,
                                icon: t.dataset.category || "hotel-pin",
                                category: t.dataset.category,
                                name: t.dataset.name || (i ? i.innerHTML : void 0),
                                distance: n ? n.innerHTML : void 0,
                                link: t.dataset.href,
                                iconHighlight: t.dataset.categoryHighlight,
                                element: t,
                                infoWindowDetail: t.dataset.infoWindowShowDetail,
                                label: t.dataset.label
                            })
                        }
                          , c = function() {
                            var t = e.destination + "|" + e.hotelType + "|";
                            e.amenities.length && e.amenities.forEach((function(e, i) {
                                t = t + (i > 0 ? ":" : "") + e
                            }
                            ));
                            var i = {
                                event: "seo_filters",
                                seo_filter_selection: t
                            };
                            void 0 !== window._satellite && window._satellite.track("seo_filter_action", i)
                        };
                        /iPad|iPhone/.test(navigator.userAgent) && (window.onpageshow = function(e) {
                            e.persisted && (qt(".map-opened").removeClass("map-opened"),
                            setTimeout((function() {
                                qt(document).trigger("close-fullscreen-map")
                            }
                            ), 500))
                        }
                        ),
                        i(!0),
                        n(),
                        window.onpopstate = function() {
                            setTimeout((function() {
                                e.parseUrl(),
                                qt(".map-opened").length && qt('[data-js="open-map"]').trigger("click"),
                                i(!0),
                                n()
                            }
                            ), 200)
                        }
                    }
                }(),
                Wt(),
                Gt(),
                Xt(),
                window.Scandic.hotelNavs = (r = [],
                xt('*[data-js="hotel-menu-toggle"]').each((function(e, t) {
                    r.push(new Tt(t))
                }
                )),
                r)
            }
            )),
            window.Scandic.runOnWindowLoad.push((function() {
                _()
            }
            )),
            function() {
                Number.prototype.formatNumberThousandDelimiter || (Number.prototype.formatNumberThousandDelimiter = function() {
                    var e = this.toString()
                      , t = e.indexOf(".");
                    return e.replace(/\d(?=(?:\d{3})+(?:\.|$))/g, (function(e, i) {
                        return t < 0 || i < t ? e + " " : e
                    }
                    ))
                }
                ),
                Date.prototype.addDays || (Date.prototype.addDays = function(e) {
                    var t = new Date(this.valueOf());
                    return t.setDate(t.getDate() + e),
                    t
                }
                ),
                Element.prototype.matches || (Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector),
                Element.prototype.closest || (Element.prototype.closest = function(e) {
                    var t = this;
                    if (!document.documentElement.contains(t))
                        return null;
                    do {
                        if (t.matches(e))
                            return t;
                        t = t.parentElement || t.parentNode
                    } while (null !== t && 1 === t.nodeType);
                    return null
                }
                ),
                window.supportsPassiveEventListeners = !1;
                try {
                    var e = Object.defineProperty({}, "passive", {
                        get: function() {
                            window.supportsPassiveEventListeners = !0
                        }
                    });
                    window.addEventListener("testPassive", null, e),
                    window.removeEventListener("testPassive", null, e)
                } catch (e) {}
            }(),
            document.addEventListener("DOMContentLoaded", (function() {
                return Et()
            }
            ));
            var Kt = i(19755)
              , Zt = i(19755);
            function ei(e, t) {
                return function(e) {
                    if (Array.isArray(e))
                        return e
                }(e) || function(e, t) {
                    var i = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
                    if (null == i)
                        return;
                    var n, a, o = [], r = !0, s = !1;
                    try {
                        for (i = i.call(e); !(r = (n = i.next()).done) && (o.push(n.value),
                        !t || o.length !== t); r = !0)
                            ;
                    } catch (e) {
                        s = !0,
                        a = e
                    } finally {
                        try {
                            r || null == i.return || i.return()
                        } finally {
                            if (s)
                                throw a
                        }
                    }
                    return o
                }(e, t) || function(e, t) {
                    if (!e)
                        return;
                    if ("string" == typeof e)
                        return ti(e, t);
                    var i = Object.prototype.toString.call(e).slice(8, -1);
                    "Object" === i && e.constructor && (i = e.constructor.name);
                    if ("Map" === i || "Set" === i)
                        return Array.from(e);
                    if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))
                        return ti(e, t)
                }(e, t) || function() {
                    throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
                }()
            }
            function ti(e, t) {
                (null == t || t > e.length) && (t = e.length);
                for (var i = 0, n = new Array(t); i < t; i++)
                    n[i] = e[i];
                return n
            }
            var ii = function() {
                var e, t, i = 0, n = [], a = [];
                if (Zt(".booking__selection.select-rate").length) {
                    var o = Zt(".booking__selection.select-rate");
                    t = o.data().termsDifferCondition.replace("\\", "")
                }
                document.querySelector(".booking-select-rate") && window.ScreenHelper.mediaMediumUp() && window.Scandic.runOnWindowLoad.push((function() {
                    document.querySelectorAll(".room__body--flex-ie-fix").forEach((function(e) {
                        e.insertAdjacentElement("afterEnd", e.closest(".room--booking").querySelector(".room__collapsible__row.room__facilities__container"))
                    }
                    ))
                }
                ));
                var r = {
                    params: []
                }
                  , s = {
                    index: null
                }
                  , l = Zt(".room__rates__available-rates-holder.l-price-box__available-rates-holder");
                function c() {
                    return n.length > 1
                }
                function d() {
                    setTimeout((function() {
                        return Zt("#rooms-and-rates-form").submit()
                    }
                    ))
                }
                function u(e) {
                    return void 0 !== a[e]
                }
                function p() {
                    Zt('input[class="selected-room-details"]').remove(),
                    a.forEach((function(e) {
                        return Object.entries(e.params).forEach((function(e) {
                            var t = ei(e, 2)
                              , i = t[0]
                              , n = t[1];
                            n && null != n && "null" != n && Zt("#rooms-and-rates-form").append(Zt('<input class="selected-room-details" type="hidden" name="'.concat(i, '" value="').concat(n, '" autocomplete="off" />')))
                        }
                        ))
                    }
                    ))
                }
                l.length && (r.params = l.data().selectedRateParameters,
                s.index = l.data().preSelectedIndex,
                Zt(".rate-selectable__input").each((function(e, t) {
                    Zt(t).attr("value") == s.index && Zt(t).prop("checked", !0),
                    Zt(t).data("disabled") && Zt(t).prop("disabled", !0)
                }
                ))),
                Zt(".submit-partial-payment").on("click", (function(e) {
                    a[0] = r;
                    var t = Zt(e.target).parents(".room__rates-container");
                    Zt(t).length && Zt(t).find("input.rate-selectable__input").length && (r.params = Zt(t).find("input.rate-selectable__input:checked").data("rateParams")),
                    p(),
                    d()
                }
                )),
                Zt(".room.room--booking.is-collapsed.collapsible-room, .booking__room__box").each((function(e, t) {
                    var i = Number(Zt(t).data().legNumber);
                    -1 === n.indexOf(i) && n.push(i),
                    c() && Zt(".booking-details-footer.booking-rooms-rates-footer").show()
                }
                )),
                Zt(".room.room--ribbon.room--deemphasized.room--clickable").click((function() {
                    !function(e) {
                        Zt(e).find(".change-selection-button").hasClass("active") ? (Zt(e).find(".change-selection-button").removeClass("active").hide(),
                        Zt(e).find(".cancel-selection").addClass("active").show()) : Zt(e).find(".cancel-selection").hasClass("active") && (Zt(e).find(".change-selection-button").addClass("active").show(),
                        Zt(e).find(".cancel-selection").removeClass("active").hide())
                    }(this),
                    e = Zt(this).data().legNumber,
                    i = e,
                    Object.values(n).forEach((function(t) {
                        var i = Zt('div[data-leg-number="'.concat(t, '"]')).siblings(".room.room--booking.room--booking--multiroom.is-collapsed.room--deemphasized");
                        t == e ? i.toggle() : i.hide()
                    }
                    ))
                }
                )),
                Zt(".room-price-info__btn.room-pay__btn").on("click", (function() {
                    var o = Zt(this).data().selectrate
                      , r = Zt(this).data().dtmAvailableRooms;
                    a[i] = o,
                    p(),
                    function(e) {
                        Zt("#room-ribbon-image-" + i).html(Zt("#room-media-" + e.roomDomId).html()),
                        a[i].roomTypeHeading = Zt("#room-heading-" + e.roomDomId).text(),
                        a[i].rateTooltipId = e.rateConditionsTooltip
                    }(o),
                    c() ? (function() {
                        var t = Zt('div[data-leg-number="'.concat(e, '"]'));
                        t.siblings(".room.room--booking.room--booking--multiroom.is-collapsed.room--deemphasized").toggle(),
                        t.find(".room__media.hidden-small.hidden-xsmall.hidden-xxsmall").show(),
                        t.find(".room-type").text(a[e].roomTypeHeading).show(),
                        t.find(".room-number").hide(),
                        t.find(".room-leg-number-label").show(),
                        t.find(".room-occupants-label").addClass("pipe-separated-list-item");
                        var i = t.find(".package-detail");
                        a[e].rate.price > 0 && (i.show(),
                        i.find(".rate-name").text(a[e].rate.rateName),
                        i.find(".price.price--inline").text(function(e) {
                            if (!a[e])
                                return "";
                            var t = a[e].rate
                              , i = "".concat(t.price, " ").concat(t.currency);
                            return t.numberOfBonusCheques > 0 ? "".concat(t.numberOfBonusCheques, " BC + ").concat(i) : i
                        }(e)));
                        i.find(".pipe-separated-list-item").show(),
                        t.find(".xyz").hide(),
                        t.find(".select-room-button").removeClass("active").hide(),
                        t.find(".cancel-selection").removeClass("active").hide(),
                        t.find(".change-selection-button").addClass("active").show()
                    }(),
                    function(e, t) {
                        var a = Number(t)
                          , o = e.rate.roomType;
                        if (window.Scandic.roomAvailableData["room" + i] === o)
                            return;
                        var r = document.querySelectorAll(".booking__room__box")
                          , s = e.roomTypeName.toLowerCase().replace(/[^a-z0-9]+/g, "_");
                        if (document.querySelector("input[name='singleAvailableRoom']"))
                            var l = document.querySelector("input[name='singleAvailableRoom']").value;
                        if (document.querySelector("input[name='pluralAvailableRooms']"))
                            var c = document.querySelector("input[name='pluralAvailableRooms']").value;
                        window.Scandic.roomAvailableData[o] || (window.Scandic.roomAvailableData[o] = a);
                        var d = window.Scandic.roomAvailableData["room" + i];
                        d && d != o && (window.Scandic.roomAvailableData[d] = window.Scandic.roomAvailableData[d] + 1);
                        window.Scandic.roomAvailableData["room" + i] = o;
                        var u = window.Scandic.roomAvailableData["room" + i + "_roomType"];
                        window.Scandic.roomAvailableData["room" + i + "_roomType"] = s,
                        window.Scandic.roomAvailableData[o] = window.Scandic.roomAvailableData[o] - 1,
                        n.forEach((function(e) {
                            var t = Zt(r[e]).find("#" + s + " .room-pay__btn");
                            if (s)
                                var i = r[e].querySelector("#" + s + " .room__available-rooms");
                            window.Scandic.roomAvailableData[o] >= 0 && i && (1 === window.Scandic.roomAvailableData[o] ? i.innerHTML = l.replace(/\d/g, window.Scandic.roomAvailableData[o]) : (i.innerHTML = c.replace(/\d/g, window.Scandic.roomAvailableData[o]),
                            0 === window.Scandic.roomAvailableData[o] && t.each((function(e) {
                                Zt(this).attr("disabled", "disabled")
                            }
                            ))));
                            var n = Zt(r[e]).find("#" + u + " .room-pay__btn");
                            if (u)
                                var a = r[e].querySelector("#" + u + " .room__available-rooms");
                            d && d != o && a && (1 === window.Scandic.roomAvailableData[d] ? a.innerHTML = l.replace(/\d/g, window.Scandic.roomAvailableData[d]) : a.innerHTML = c.replace(/\d/g, window.Scandic.roomAvailableData[d]),
                            n.each((function(e) {
                                Zt(this).removeAttr("disabled")
                            }
                            )))
                        }
                        ))
                    }(o, r),
                    n.every((function(e) {
                        return u(e)
                    }
                    )) ? (i = null,
                    function() {
                        Zt(".booking-price-details__container.label").hide();
                        var e, i, n = Zt(".booking-price-details__container.price-details");
                        n.show(),
                        a.reduce((function(e, t) {
                            return e + t.rate.price
                        }
                        ), 0) > 0 && (n.find(".booking-price-details__item").show(),
                        n.find(".price.price--inline-large").html(function() {
                            var e = {
                                numberOfBonusCheques: 0,
                                price: 0,
                                currency: void 0
                            };
                            a.forEach((function(t) {
                                e.numberOfBonusCheques += t.rate.numberOfBonusCheques,
                                e.price += t.rate.price,
                                e.currency = e.currency || t.rate.currency
                            }
                            ));
                            var t = "".concat(e.price, ' <span class="price__currency"> ').concat(e.currency, "</span>");
                            return e.numberOfBonusCheques > 0 ? "".concat(e.numberOfBonusCheques, ' <span class="price__currency">BC</span> <span class="price__plus">+</span> ').concat(t) : t
                        }())),
                        n.find("li:last").text((e = a.map((function(e) {
                            return e.rate.rateConditions
                        }
                        )),
                        (i = e).every((function(e) {
                            return e === i[0]
                        }
                        )) ? e[0] : t || "")),
                        Zt(".rooms-and-rates-form-submit").removeAttr("disabled")
                    }(),
                    Zt(window).width() < 950 ? Zt("body, html").animate({
                        scrollTop: Zt("#hotel_body").offset().top - 60
                    }, "slow") : Zt("body, html").animate({
                        scrollTop: Zt("#hotel_body").offset().top
                    }, "slow")) : function() {
                        i = function() {
                            var e = n.filter((function(e) {
                                return !u(e)
                            }
                            ));
                            if (e.sort(),
                            i < Math.max.apply(this, e))
                                for (; e[0] < i; )
                                    e.push(e.shift());
                            return e[0]
                        }();
                        var e = "#booking-leg-".concat(i);
                        Zt(e).siblings().find(".room.room--ribbon.room--deemphasized.room--clickable").click(),
                        setTimeout((function() {
                            return window.Scandic.ensureElementIsVisible(Zt(e))
                        }
                        ))
                    }()) : d()
                }
                )),
                window.Scandic.roomAvailableData = {},
                Zt(".expand-rates-btn ~ .room-price-info").removeClass("ng-hide").hide(),
                Zt(".expand-rates-btn.expandable-toggler--left-arrow--small").on("click", (function() {
                    Zt(this).toggleClass("is-expanded"),
                    Zt(this).nextAll(".room-price-info").toggle("fast")
                }
                ))
            };
            window.Scandic.runOnDocumentReady.push((function() {
                navigator.userAgent.search("Chrome") >= 0 && Kt(".available-payment-icons #ApplePay").remove(),
                -1 != navigator.userAgent.indexOf("Safari") && -1 == navigator.userAgent.indexOf("Chrome") && Kt(".available-payment-icons #GooglePay").remove(),
                navigator.userAgent.match(/(\(iPod|\(iPhone|\(iPad)/) && Kt(".available-payment-icons #GooglePay").remove(),
                navigator.userAgent.match(/Android/i) && Kt(".available-payment-icons #ApplePay").remove(),
                document.querySelector(".payment-error") && Kt("html, body").animate({
                    scrollTop: Kt(".payment-error").offset().top - 200
                }, 400),
                Kt(".credit-card--saved").on("change", (function() {
                    Kt(".payment-options__item.selected").removeClass("selected"),
                    Kt(".credit-card--saved:checked").length && (Kt(".card-source__saved").prop("checked", !0),
                    Kt(this).parents(".payment-options__item").addClass("selected"))
                }
                )),
                Kt(".card-source").on("change", (function() {
                    Kt(".payment-options__item.selected").removeClass("selected"),
                    Kt(".card-source__saved:checked").length < 1 && (Kt(".credit-card--saved:checked").prop("checked", !1),
                    Kt(this).parents(".payment-options__item").addClass("selected"))
                }
                )),
                ii()
            }
            ));
            var ni = i(11440)
              , ai = i.n(ni)
              , oi = i(93748)
              , ri = i(19755);
            function si(e) {
                var t = e.find("span")
                  , i = t.hasClass("is-collapsed")
                  , n = t.attr("data-text-alt")
                  , a = t.text();
                t.text((function() {
                    return i ? (t.removeClass("is-collapsed"),
                    t.addClass("is-expanded")) : (t.removeClass("is-expanded"),
                    t.addClass("is-collapsed")),
                    t.attr("data-text-alt", a),
                    n
                }
                ))
            }
            function li(e, t, i, n, a) {
                return ri(t ? '<a href="#" aria-label="Toggle information about ' + a + '" class="' + e + '"><span class="is-collapsed" data-text-alt="' + i + '">' + n + "</span></a>" : '<a href="#" aria-label="Toggle information about ' + a + '" class="' + e + '"><span class="is-expanded" data-text-alt="' + n + '">' + i + "</span></a>")
            }
            var ci, di, ui, pi, mi, hi, fi, gi, vi, bi, yi, wi, Si = i(19755), _i = i(19755);
            function Ci() {
                (ci = Si('*[data-js="inquiry-widget"]')).length <= 0 || (di = ci.find('*[data-js="inquiry-widget-secondary-fields"]'),
                hi = ci.find('*[data-js="inquiry-widget-meeting-room-field"]'),
                ui = ci.find('*[data-js="inquiry-widget-submit"]'),
                pi = Si.merge(ci.find('*[data-js="inquiry-widget-focus-listener"]'), ui),
                Si.merge(ci.find('*[data-js="inquiry-widget-click-listener"]'), ui),
                fi = ci.find('*[data-js="inquiry-widget-collapse"]'),
                gi = ci.find('*[data-js="inquiry-widget-server-message"]'),
                mi = Si('*[data-js="inquiry-widget-lead"]'),
                vi = Si('*[data-js="widget-icon"]'),
                bi = Si('*[data-is-open="inquiry-widget-open"]'),
                yi = Si('*[data-js="check-availibility-link"]'),
                wi = Si('*[data-js="check-availability-room-listing"]'))
            }
            function ki() {
                Ci(),
                Si(this).is(ui) && pi[0].focus(),
                di.show(),
                vi.hide(),
                bi.hide(),
                pi.off("focus", ki),
                gi.hide(),
                Si(".hotel-meetings-page")[0] && (0,
                m.fe)()
            }
            function Ti() {
                pi.on("focus", ki)
            }
            function xi() {
                Ci(),
                di.hide(),
                vi.show(),
                bi.show(),
                Ti(),
                yi.show()
            }
            function Ai() {
                function e(e) {
                    gi.text(e).fadeIn()
                }
                Ci(),
                Ti(),
                fi.on("click", xi),
                mi.on("click", (function(e) {
                    var t = Si(e.delegateTarget).data("roomid");
                    e.preventDefault(),
                    !ScreenHelper.mediaMediumUp() && Me().is(":visible") && function() {
                        var e = Me();
                        Oe(e.data("widgetarea"), e, Ie(this))
                    }(),
                    hi.val(t),
                    pi[0].focus()
                }
                )),
                wi.on("click", (function() {
                    var e = Si(this).find('[data-js="roomName"]').attr("data-roomid");
                    (0,
                    m.LO)(e)
                }
                )),
                ci.on("submitValidForm", (function(t) {
                    t.preventDefault(),
                    Si("#meetingRoomInquiryForm").valid() && (window.Scandic.DisableEnableButton.disable(ui),
                    Si.post(ci.attr("action"), ci.serialize(), (function(t) {
                        var i;
                        "success" === t.status && ((0,
                        m.$4)(),
                        ci[0].reset(),
                        Si("input[type='hidden']", Si(this)).val(""),
                        _i("span.clearable-input .clearable-input__clear").each((function(e) {
                            _i(this).hide()
                        }
                        )),
                        xi()),
                        i = t.message ? t.message + " " : "",
                        t.data && (i += t.data.join(". ") + "."),
                        e(i)
                    }
                    )).fail((function(t, i, n) {
                        e("Something went wrong: " + i + ". " + n)
                    }
                    )).always((function() {
                        window.Scandic.DisableEnableButton.enable(ui)
                    }
                    )))
                }
                )),
                ci.on("submit", (function(e) {
                    e.preventDefault()
                }
                ))
            }
            function Ii() {
                var e = Si(".mp-cta");
                if (e.length) {
                    var t, i, n = !0, a = !1, o = Si(".meeting-widget-container"), r = function() {
                        a || (t = Si(".meeting-widget-container").offset().top,
                        t = window.ScreenHelper.mediaMediumUp() ? t + 50 : t,
                        i = Si(".hotel-menu-wrapper__inner").length ? Si(".hotel-menu-wrapper__inner").offset().top : 0)
                    }, s = function() {
                        e.hasClass("active") && a && window.innerHeight < Si("#mp-booking-engine-iframe-container").height() ? setTimeout((function() {
                            Si(".meeting-widget-container").css("bottom", 0),
                            Si("body").addClass("force-to-top")
                        }
                        ), 300) : (Si(".meeting-widget-container").css("bottom", "auto"),
                        Si("body").removeClass("force-to-top"))
                    }, l = function() {
                        var e = Si(".no-hero .meeting-widget-container").length
                          , r = e ? 51 : 60
                          , l = t - r - Si(window).scrollTop();
                        window.ScreenHelper.mediaMediumUp() ? Si(".l-section.main-header").removeAttr("style") : l < 0 ? (Si(".l-section.main-header").css("position", "absolute"),
                        Si(".l-section.main-header").css("top", t - (e ? 51 : 72) + "px")) : (Si(".l-section.main-header").css("position", "fixed"),
                        Si(".l-section.main-header").css("top", "0")),
                        Si("main.hotel-meetings-page").length ? function() {
                            var e = document.querySelector(".mp-cta");
                            if (i < Si(window).scrollTop() && !a) {
                                var t = document.querySelector(".navbar-header").childNodes
                                  , n = t[t.length - 1];
                                document.querySelector(".navbar-header").insertBefore(e, n),
                                window.ScreenHelper.mediaMediumUp() || o.addClass("sticky"),
                                a = !0
                            } else
                                i >= Si(window).scrollTop() && a && (a = !1,
                                document.querySelector(".meeting-widget-container").insertBefore(e, document.querySelector(".mp-container")),
                                o.removeClass("sticky"))
                        }() : l < -r ? (a = !0,
                        o.addClass("sticky")) : (a = !1,
                        o.removeClass("sticky")),
                        s(),
                        n = !0
                    };
                    r(),
                    l(),
                    window.onresize = function() {
                        r(),
                        window.ScreenHelper.mediaMediumUp() && a ? o.removeClass("sticky") : a && o.addClass("sticky")
                    }
                    ,
                    window.onscroll = function() {
                        n && (n = !1,
                        l())
                    }
                    ,
                    Si(".mp-cta, [data-js=hotel-menu-toggle]").on("click", (function() {
                        s()
                    }
                    )),
                    Si(window).on("mp-widget-loaded", (function() {
                        document.querySelector(".meeting-widget-container h2").classList.remove("hidden"),
                        document.querySelector(".meeting-widget-container .loader").classList.add("hidden")
                    }
                    ))
                }
            }
            function Pi(e) {
                return e && decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(e).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null
            }
            function Di(e, t, i, n, a, o) {
                if (!e || /^(?:expires|max\-age|path|domain|secure)$/i.test(e))
                    return !1;
                var r = "";
                if (i)
                    switch (i.constructor) {
                    case Number:
                        r = i === 1 / 0 ? "; expires=Fri, 31 Dec 9999 23:59:59 GMT" : "; max-age=" + i;
                        break;
                    case String:
                        r = "; expires=" + i;
                        break;
                    case Date:
                        r = "; expires=" + i.toUTCString()
                    }
                return document.cookie = encodeURIComponent(e) + "=" + encodeURIComponent(t) + r + (a ? "; domain=" + a : "") + (n ? "; path=" + n : "") + (o ? "; secure" : ""),
                !0
            }
            function Oi(e, t, i) {
                return !!function(e) {
                    if (!e)
                        return !1;
                    return new RegExp("(?:^|;\\s*)" + encodeURIComponent(e).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=").test(document.cookie)
                }(e) && (document.cookie = encodeURIComponent(e) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (i ? "; domain=" + i : "") + (t ? "; path=" + t : ""),
                !0)
            }
            var Ei, Mi = i(19755), Li = i(19755), Ni = (i(17970),
            i(86455));
            function Hi(e, t, i, n) {
                [t.value, i.value, n.value].includes("") || Bi(t, i, n) ? (e.innerHTML = "",
                Mi(e).parent("span").removeClass("field-validation-error"),
                Mi(e).parent("span").addClass("field-validation-valid")) : (e.innerHTML = n.getAttribute("data-val-birthyearrangevalidation"),
                Mi(e).parent("span").removeClass("field-validation-valid"),
                Mi(e).parent("span").addClass("field-validation-error"))
            }
            function Bi(e, t, i) {
                var n = new Date(i.value,t.value - 1,e.value);
                return n.getMonth() == t.value - 1 && n.getDate() == e.value && n.getFullYear() == i.value
            }
            function ji(e, t, i, n) {
                var a = Mi(".passWordFormat-error ." + t + " span.icon")
                  , o = Mi(".passWordFormat-error ." + t);
                if (e && "notAllowedCharFormat" != t && i)
                    return a.removeClass("hidden"),
                    void ("input" == n ? (a.addClass("icon--checkmark-circle-green"),
                    o.addClass("valid"),
                    a.hasClass("icon--close-circle-red") && (a.removeClass("icon--close-circle-red"),
                    o.removeClass("invalid"))) : (a.addClass("icon--close-circle-red"),
                    o.addClass("invalid"),
                    a.hasClass("icon--checkmark-circle-green") && o.hasClass("valid") && (a.removeClass("icon--checkmark-circle-green"),
                    o.removeClass("valid")),
                    zi()));
                null != t && "notAllowedCharFormat" != t && ("input" == n ? (a.hasClass("icon--checkmark-circle-green") && (document.querySelector(".create-password").classList.contains("invalid-input") ? (a.removeClass("icon--checkmark-circle-green"),
                a.addClass("icon--close-circle-red"),
                o.addClass("invalid"),
                a.removeClass("hidden")) : (a.addClass("hidden"),
                a.removeClass("icon--checkmark-circle-green"))),
                o.hasClass("valid") && o.removeClass("valid")) : zi()),
                e && "notAllowedCharFormat" == t && i ? (Mi(".input-invalid-format-error").removeClass("hidden"),
                Mi(".create-password").addClass("input-invalid-error")) : document.querySelector(".create-password").classList.contains("input-invalid-error") && (Mi(".input-invalid-format-error").addClass("hidden"),
                Mi(".create-password").removeClass("input-invalid-error")),
                null != e && null != t || (Mi(".passWordFormat-error span.icon").addClass("hidden"),
                Mi(".passWordFormat-error span.icon").removeClass("icon--checkmark-circle-green"),
                Mi(".passWordFormat-error span.icon").removeClass("icon--close-circle-red"),
                Mi(".passWordFormat-error span").removeClass("valid"),
                Mi(".passWordFormat-error span").removeClass("invalid"),
                Mi(".input-invalid-format-error").addClass("hidden"),
                Mi(".create-password").removeClass("invalid-input"))
            }
            function zi() {
                document.querySelector(".passWordFormat-error .invalid") ? Mi(".create-password").addClass("invalid-input") : Mi(".create-password").removeClass("invalid-input")
            }
            function qi(e) {
                var t = setInterval((function() {
                    Mi(window).width() < 950 ? Mi("body, html").animate({
                        scrollTop: Mi(e).offset().top - 70
                    }, "slow") : Mi("body, html").animate({
                        scrollTop: Mi(e).offset().top - 10
                    }, "slow"),
                    clearInterval(t)
                }
                ), "slow")
            }
            document.documentElement.classList.remove("no-js"),
            document.documentElement.classList.add("js"),
            window.Scandic.ltie9 = document.documentElement.classList.contains("ltie9"),
            window.Scandic.validation = i(54648),
            window.Scandic.addPaymentClickEvent = m.W5,
            window.ScreenHelper = {
                LARGE_SCREEN_BREAKPOINT: 768,
                CSS_SMALL_BREAKPOINT: 740,
                CSS_MEDIUM_BREAKPOINT: 950,
                CSS_LARGE_BREAKPOINT: 1200,
                CSS_XLARGE_BREAKPOINT: 1500,
                isLargeScreen: function() {
                    return Mi(window).innerWidth() >= ScreenHelper.LARGE_SCREEN_BREAKPOINT
                },
                mediaSmallUp: function() {
                    return Mi(window).innerWidth() >= ScreenHelper.CSS_SMALL_BREAKPOINT
                },
                mediaMediumUp: function() {
                    return Mi(window).innerWidth() >= ScreenHelper.CSS_MEDIUM_BREAKPOINT
                },
                mediaLargeUp: function() {
                    return Mi(window).innerWidth() >= ScreenHelper.CSS_LARGE_BREAKPOINT
                }
            },
            Li.fn.doOnce = function(e) {
                return this.length && e.apply(this),
                this
            }
            ,
            window.Scandic.runOnDocumentReady.push((function() {
                var e;
                ai()(),
                Mi("html.no-svg").length > 0 && (e = Mi('*[data-js="scandiclogoimg"]')).attr("src", e.attr("data-nosvgsrc"))
            }
            )),
            window.Scandic.ensureElementIsVisible = function(e) {
                var t = Mi(e);
                if (Ei = Mi(".navigation-bar").height() + 10,
                function(e) {
                    var t = {
                        top: Mi(window).scrollTop() + Ei,
                        bottom: Mi(window).scrollTop() + Mi(window).height()
                    }
                      , i = {
                        top: e.offset().top,
                        bottom: e.offset().top + e.height()
                    };
                    return i.top < t.top || i.top > t.bottom
                }(t)) {
                    var i = Math.round(t.offset().top - Ei);
                    Mi("html, body").animate({
                        scrollTop: i
                    }, 500)
                }
            }
            ,
            window.Scandic.DisableEnableButton = {
                disable: function(e) {
                    e.attr("disabled", "disabled").append(Mi('<span class="loader loader--right"><span></span><span></span><span></span></span>'))
                },
                enable: function(e) {
                    e.removeAttr("disabled").find(".loader").remove()
                }
            },
            window.Scandic.isEditOrPreviewMode = Mi("[data-js-edit-mode]").data("js-edit-mode"),
            window.Scandic.runOnDocumentReady.push((function() {
                var e, t = Mi('form[data-js-form="form-with-progress"]');
                var i = document.getElementById("ProfileInfo_Day") || document.getElementById("BookingModule_Rooms_0__CustomerEnterDetails_JoinSFInBookingFlow_BirthDay")
                  , n = document.getElementById("ProfileInfo_Month") || document.getElementById("BookingModule_Rooms_0__CustomerEnterDetails_JoinSFInBookingFlow_BirthMonth")
                  , a = document.getElementById("ProfileInfo_Year") || document.getElementById("BookingModule_Rooms_0__CustomerEnterDetails_JoinSFInBookingFlow_BirthYear");
                if (i && n && a) {
                    var o = document.querySelector("#ProfileInfo_Birthdate-error") || document.querySelector("#BookingModule_Rooms_0__CustomerEnterDetails_JoinSFInBookingFlow_Birthdate-error");
                    Mi(i).change((function(e) {
                        Hi(o, i, n, a)
                    }
                    )),
                    Mi(n).change((function(e) {
                        Hi(o, i, n, a)
                    }
                    )),
                    Mi(a).change((function(e) {
                        Hi(o, i, n, a)
                    }
                    ))
                }
                if (t.length) {
                    var r = "";
                    if ((e = t.find("button[data-js=form-submit-button]")).on("click", (function(e) {
                        r = "submit"
                    }
                    )),
                    Mi && Mi.validator && (Li.validator.addMethod("mustbetrue", (function(e, t) {
                        return t.checked
                    }
                    )),
                    Li.validator.unobtrusive.adapters.addBool("mustbetrue"),
                    Li.validator.addMethod("mustbefuture", (function(e, t) {
                        var i = new Date
                          , n = i.getMonth() + 1;
                        return e > i.getFullYear() || parseInt(e) === i.getFullYear() && Mi(t).parents(".input-group").find("[data-js=expiration-month]").val() >= n
                    }
                    )),
                    Li.validator.unobtrusive.adapters.add("mustbefuture", {}, (function(e) {
                        e.rules.mustbefuture = !0,
                        e.messages.mustbefuture = e.message
                    }
                    )),
                    Li("*[data-update-password]").each((function() {
                        var e = Li(this);
                        Li(e.data("update-password")).change((function() {
                            e.valid()
                        }
                        ))
                    }
                    )),
                    Li.validator.addMethod("updatepassword", (function(e, t) {
                        var i = Li(t)
                          , n = Li(i.data("update-password"));
                        return void 0 === n || !n.length || !n.val().length || 0 !== i.val().length
                    }
                    )),
                    Li.validator.unobtrusive.adapters.add("updatepassword", {}, (function(e) {
                        e.rules.updatepassword = !0,
                        e.messages.updatepassword = e.message
                    }
                    )),
                    Mi(t).removeData("validator").removeData("unobtrusiveValidation"),
                    Mi.validator.unobtrusive.parse(t),
                    t.data && void 0 !== t.data("validator")))
                        return void (t.data("validator").settings.submitHandler = function(o) {
                            if (o.classList.contains("ng-invalid"))
                                return Mi("form .ng-invalid").focus(),
                                !1;
                            if (i && i.value && n && n.value && a && a.value && (Hi(document.querySelector("#ProfileInfo_Birthdate-error"), i, n, a),
                            !Bi(i, n, a))) {
                                var s = document.querySelectorAll(".input-birthday");
                                return Mi("body, html").animate({
                                    scrollTop: Mi(s).offset().top - 250
                                }, "slow"),
                                !1
                            }
                            return document.querySelector(".create-password") && (document.querySelector(".create-password").classList.contains("invalid-input") || document.querySelector(".create-password").classList.contains("input-invalid-error")) ? (Mi(".create-password").focus(),
                            !1) : ("submit" === r && window.Scandic.DisableEnableButton.disable(e),
                            !0 !== t.data("ajax-post") && void o.submit())
                        }
                        );
                    t.on("submit", (function() {
                        (function(e) {
                            return null !== e.attr("data-angular-validation")
                        }
                        )(t) || window.Scandic.DisableEnableButton.disable(e)
                    }
                    )),
                    t.on("submitValidForm", (function() {
                        window.Scandic.DisableEnableButton.disable(e)
                    }
                    ))
                }
            }
            )),
            window.Scandic.runOnWindowLoad.push((function() {
                var e = document.querySelector("form[name=savecreditcard] button");
                e && e.addEventListener("click", (function(t) {
                    t.preventDefault(),
                    window.Scandic.DisableEnableButton.disable(Mi(e));
                    var i = {
                        method: "POST",
                        body: new FormData(document.querySelector("form[name=savecreditcard]")),
                        headers: new Headers
                    };
                    document.querySelector(".save-credit-card__error").classList.add("hidden"),
                    fetch("/ajax/bookingconfirmation/savecreditcard", i).then((function(e) {
                        return e.json()
                    }
                    )).then((function(t) {
                        t && t.Success ? (document.querySelector(".save-credit-card__success").classList.remove("hidden"),
                        document.querySelector(".save-credit-card__form").classList.add("hidden"),
                        window.Scandic.DisableEnableButton.enable(Mi(e))) : (Mi("html, body").animate({
                            scrollTop: 0
                        }, 500),
                        document.querySelector(".save-credit-card__form").classList.add("hidden"),
                        document.querySelector(".save-credit-card__error").classList.remove("hidden")),
                        (0,
                        m.ay)("credit_card_action", {
                            event: "credit_card_action",
                            credit_card_actions: "save_card",
                            card_action_status: t && t.Success ? "yes" : "no"
                        })
                    }
                    ))
                }
                ))
            }
            )),
            window.Scandic.runOnWindowLoad.push((function() {
                Mi(".custom-radio.credit-card--saved").last().keydown((function(e) {
                    40 === e.keyCode && (e.preventDefault(),
                    Mi("#card-payment").focus(),
                    Mi("#card-payment").click())
                }
                )),
                Mi(".custom-radio.credit-card--saved").first().keydown((function(e) {
                    38 === e.keyCode && (e.preventDefault(),
                    Mi("#other-payment").focus(),
                    Mi("#other-payment").click())
                }
                )),
                Mi("#card-payment").keydown((function(e) {
                    38 === e.keyCode && (e.preventDefault(),
                    Mi(".custom-radio.credit-card--saved").last().focus(),
                    Mi(".custom-radio.credit-card--saved").last().click())
                }
                )),
                Mi("#other-payment").keydown((function(e) {
                    40 === e.keyCode && (e.preventDefault(),
                    Mi(document.querySelector(".custom-radio.credit-card--saved")).focus(),
                    Mi(document.querySelector(".custom-radio.credit-card--saved")).click())
                }
                ))
            }
            )),
            window.Scandic.runOnWindowLoad.push((function() {
                Mi('*[data-js="clear-validation"]').on("submit", (function() {
                    Mi(this).find('*[data-js="submit-status"]').hide()
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                function e(e) {
                    var t = Mi(e).closest("[data-js=expandable]")
                      , i = t.find("[data-js-expandable=toggle]").first()
                      , n = t.find("[data-js-expandable-toggle-all]").first()
                      , a = t.find("[data-js-expandable=body]").first()
                      , o = t.find("[data-js-expandable=icon]").first()
                      , r = t.find("[data-js-expandable-text]").first()
                      , s = t.find("[data-js-expandable-alt-text]").first()
                      , l = t.find("[data-js-add-expandable-icon]").first();
                    a.toggle(),
                    o.toggleClass("expandable__toggled-icon"),
                    i.toggleClass("is-expanded"),
                    n.length > 0 && (n.toggleClass("is-expanded"),
                    si(n)),
                    l.length > 0 ? si(i) : (r.toggleClass("hidden"),
                    s.toggleClass("hidden"))
                }
                Mi(document).find("[data-js=expandable].is-expanded").each((function(t, i) {
                    e(i)
                }
                )),
                Mi(document).on("click", "[data-js=expandable] [data-js-expandable=toggle]", (function(t) {
                    e(this),
                    t.preventDefault()
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                var e, t = Mi('div[data-js="collapsible-room"]');
                function i(e) {
                    if (e) {
                        var t = Mi("#" + e);
                        t.length <= 0 || (t.removeClass("is-collapsed"),
                        setTimeout((function() {
                            Mi("html, body").animate({
                                scrollTop: t.offset().top
                            }, 500),
                            setTimeout((function() {
                                window.dispatchEvent(new CustomEvent("resize"))
                            }
                            ), 700)
                        }
                        ), 1e3))
                    }
                }
                function n(e) {
                    var t = e.find(".room__facilities__container");
                    if (e.hasClass("is-collapsed"))
                        t.css("height", 0);
                    else {
                        var i = t.find(".room__body__main").outerHeight();
                        t.css("height", i)
                    }
                }
                function a(e) {
                    e.each((function() {
                        !function(e) {
                            if (e.hasClass("is-collapsed")) {
                                var t = e.find('*[data-js-child="room-prices-availability"]').outerHeight(!0);
                                if (t) {
                                    var i = e.find('*[data-js-child="room-focus"]').outerHeight(!0) + t;
                                    e.find('*[data-js-child="room-body"]').css({
                                        "min-height": i + "px"
                                    })
                                }
                            }
                        }(Mi(this))
                    }
                    ))
                }
                function o(e) {
                    var t = Mi(e.delegateTarget).closest(".room");
                    e.preventDefault(),
                    r(t, !0),
                    lazySizes.autoSizer.checkElems(),
                    t.find(".rsThumb.rsNavSelected").length && t[0].querySelector(".rsThumb.rsNavSelected img").focus()
                }
                function r(e, t) {
                    n(e);
                    var i = e.offset().top;
                    e.find("[data-js-room-toggle]").toggleClass("is-expanded", e.hasClass("is-collapsed")),
                    e.hasClass("is-collapsed") ? (e.removeClass("is-collapsed"),
                    i = ScreenHelper.mediaMediumUp() ? i : window.scrollY,
                    e.trigger("show")) : e.addClass("is-collapsed"),
                    si(e.data("toggler")),
                    t && Mi("html, body").animate({
                        scrollTop: i
                    }, 250, (function() {
                        e.hasClass("is-collapsed") || e.find(".room__facilities__container").css({
                            height: ""
                        })
                    }
                    )),
                    n(e)
                }
                t.length <= 0 || (!function(e) {
                    e.each((function() {
                        var e = Mi(this)
                          , t = li("room__footer", e.hasClass("is-collapsed"), e.attr("data-text-collapse"), e.attr("data-text-expand"), e.attr("data-text-section-name"));
                        t.on("click", o),
                        t.on("click", (function() {
                            !function(e) {
                                e.find(".expand-rates__info").toggle()
                            }(e),
                            0 !== Mi(this).find(".is-expanded").length ? function(e) {
                                e.find(".expand-rates-btn:not(.is-expanded)").click()
                            }(e) : function(e) {
                                e.find(".expand-rates-btn.is-expanded").click()
                            }(e)
                        }
                        )),
                        e.on("click", "[data-js-room-toggle]", o),
                        e.on("show", (function() {
                            !function(e) {
                                e.find(".royalSlider").find("img").one("load", (function() {
                                    Mi(window).trigger("resize")
                                }
                                ))
                            }(e)
                        }
                        )),
                        e.append(t),
                        e.data("toggler", t)
                    }
                    ))
                }(t),
                function(e) {
                    e.each((function() {
                        var e = Mi(this)
                          , t = window.location.hash.slice(1);
                        e.attr("id") !== t && function(e, t) {
                            e.hasClass("is-collapsed") || r(e, t)
                        }(e)
                    }
                    ))
                }(t),
                Mi(".hotel-page")[0] && (a(t),
                Mi(window).on("resize", (function() {
                    e || (e = setTimeout((function() {
                        e = null,
                        a(t)
                    }
                    ), 66))
                }
                ))),
                window.location.hash.length && i(window.location.hash.slice(1)),
                Mi(window).bind("hashchange", (function() {
                    i(window.location.hash.slice(1))
                }
                )),
                Mi(window).on("load", (function() {
                    Mi(".collapsible-room").length <= 0 || window.location.hash.length && i(window.location.hash.slice(1))
                }
                )))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                var e = "is-collapsed";
                Mi(document).on("click", "[data-js-collapsible-ribbon-toggle]", (function(e) {
                    var t = Mi(e.target).closest("[data-js-collapsible-ribbon-toggle]");
                    e.preventDefault(),
                    t.toggleClass("is-collapsed"),
                    t.closest("[data-js-collapsible-ribbon]").toggleClass("is-collapsed").trigger("data-js-collapsible-ribbon-state-change")
                }
                )),
                Mi("[data-js-collapsible-ribbon]").on("data-js-expandable-module-state-change", (function() {
                    var t, i = Mi(this);
                    0 !== i.find("[data-js-collapsible-ribbon-toggle]").length && (t = i.hasClass(e),
                    i.find("[data-js-collapsible-ribbon-toggle]").each((function() {
                        t ? Mi(this).addClass(e) : Mi(this).removeClass(e)
                    }
                    )))
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                var e = Mi('*[data-js="collapsible-meeting-room-teaser"]');
                function t(e) {
                    var t = Mi(e.delegateTarget)
                      , i = t.prev();
                    e.preventDefault(),
                    i.slideToggle(),
                    si(t)
                }
                e.length <= 0 || e.each((function() {
                    var e = Mi(this)
                      , i = li("meeting-room-teaser__footer", e.hasClass("is-collapsed"), e.attr("data-text-collapse"), e.attr("data-text-expand"), e.attr("data-text-section-name"));
                    i.on("click", t),
                    e.after(i)
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                Mi('[data-js-toggle="hotel-facts"]').on("click", (function(e) {
                    var t = Mi('[data-js-toggle="hotel-facts"]')
                      , i = Mi('[data-js-collapsible="hotel-facts"]');
                    e.preventDefault(),
                    i.slideToggle(),
                    si(t)
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                var e = function(e, t) {
                    var i;
                    return function() {
                        return e && (i = e.apply(t || this, arguments),
                        e = null),
                        i
                    }
                }((function() {
                    eqjs.query()
                }
                ))
                  , t = Mi('[data-js-collapsible="hotel-content"]')
                  , i = Mi('[data-js-toggle="hotel-content"]');
                0 !== Mi.trim(t.text()).length ? i.on("click", (function(i) {
                    var n = Mi(i.delegateTarget);
                    i.preventDefault(),
                    r(n),
                    t.slideToggle("slow", (function() {
                        e()
                    }
                    )),
                    Mi('[data-js-toggle="hotel-content"]').each((function() {
                        var e = Mi(this);
                        n !== e && si(e)
                    }
                    ))
                }
                )) : i.remove()
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                Mi('*[data-js="collapsible-list"]').each((function() {
                    var e, t, i = Mi(this);
                    i.find("li").length <= 7 || ((e = i.addClass("collapsible-list").clone().addClass("collapsible-list--partial").attr("data-js", "").insertAfter(i)).hide(),
                    e.find("li").filter((function(e) {
                        return e < 5
                    }
                    )).remove(),
                    i.find("li").filter((function(e) {
                        return e >= 5
                    }
                    )).addClass("collapsible-list__item--hidden"),
                    (t = Mi('<a class="collapsible-list-toggler" href="#">...</a>')).click((function(t) {
                        t.preventDefault(),
                        e.slideToggle()
                    }
                    )),
                    e.after(t))
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                Mi(".inquiry-widget")[0] ? Ai() : Mi(".mp-cta").length && Ii()
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                Mi("#book-a-new-stay-btn").on("click", (function(e) {
                    if (e.preventDefault(),
                    (0,
                    m.ay)("bookANewStayButtonClicked"),
                    window.sessionStorage.getItem("searchData")) {
                        var t = JSON.parse(window.sessionStorage.getItem("searchData"));
                        window.sessionStorage.setItem("searchData", JSON.stringify(t))
                    }
                    window.open(Mi(e.currentTarget).data("url"), "_blank")
                }
                )),
                Mi(".click_prices_availability").on("click", (function(e) {
                    e.preventDefault(),
                    (0,
                    m.ay)("click_prices_availability"),
                    window.location.href = Mi(this).attr("href")
                }
                )),
                window.onload = function() {
                    if (Mi("#booking-summary").hasClass("booking-is-cancelled")) {
                        (0,
                        m.ay)("bookingCancellationEvent", {
                            cancellation: !0
                        })
                    }
                }
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                var e = Mi('*[data-js="elevator-pitch-expander"]')
                  , t = Mi('*[data-js="' + e.attr("data-target") + '"]')
                  , i = Mi(e.attr("data-collapser"));
                e.click((function(e) {
                    e.preventDefault(),
                    t.toggleClass("is-elevator-pitch-expanded")
                }
                )),
                i.click((function(e) {
                    e.preventDefault(),
                    t.toggleClass("is-elevator-pitch-expanded")
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                Mi("*[data-href]").on("click", (function(e) {
                    e.preventDefault(),
                    window.location = Mi(this).data("href")
                }
                ))
            }
            )),
            window.Scandic.runOnWindowLoad.push((function() {
                var e, t = "media-container--1x1", i = Mi("[data-match-height]");
                Mi.fn.matchHeight._beforeUpdate = function() {
                    if (!e)
                        return !1;
                    e.addClass(t).css("height", ""),
                    e.closest(".content-teaser__media").css("height", ""),
                    e.find(".media-container__media").css({
                        height: "",
                        width: "",
                        left: "",
                        "max-width": ""
                    })
                }
                ,
                Mi.fn.matchHeight._afterUpdate = function() {
                    if (!e)
                        return !1;
                    e.each((function() {
                        var e = Mi(this)
                          , i = Mi(this).closest(".content-teaser")
                          , n = i.width() / i.height()
                          , a = i.find(".content-teaser__media")
                          , o = i.find(".media-container__media")
                          , r = i.height() * o.width() / o.height();
                        n < 1 && (e.outerHeight(i.height()),
                        a.height(i.height()),
                        o.css({
                            width: r,
                            height: i.height(),
                            left: -(r - i.width()) / 2,
                            "max-width": "none"
                        }),
                        e.removeClass(t))
                    }
                    ))
                }
                ,
                i.matchHeight({
                    property: "min-height"
                }),
                e = Mi('[data-match-height="content-teaser"]').find(".media-container--1x1")
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                var e, t, i, n, a, o;
                function r() {
                    var e, o = t.height(), r = i.height();
                    a ? (e = parseInt(n.closest(".l-section__inner").css("padding-top"), 10),
                    n.css("min-height", o - r - e)) : i.css("min-height", o)
                }
                if (e = Mi("*[data-js=big-sidebar]")) {
                    if (e.length <= 0)
                        return;
                    t = e.find("*[data-js=big-sidebar-sidebar]"),
                    i = e.find("*[data-js=big-sidebar-main-first]"),
                    n = e.find("*[data-js=big-sidebar-main-second]"),
                    a = n.length > 0,
                    r(),
                    o = !1,
                    Mi(window).on("resize", window._.debounce && window._.debounce((function() {
                        o = !0
                    }
                    ), 500)),
                    setInterval((function() {
                        o && (r(),
                        o = !1)
                    }
                    ), 500)
                }
                window.Scandic.runOnWindowLoad.push((function() {
                    e && 0 !== e.length && r()
                }
                )),
                window.Scandic.OneSidebarPageLayout = {
                    adjustHeight: r
                }
            }
            )),
            Mi(document).on("focus", "[data-js-select-all-on-focus]", (function() {
                this.setSelectionRange(0, this.value.length)
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                Mi("a[data-js-past-stays-showall]").on("click", (function(e) {
                    var t = Mi("li[data-js-past-stays-item]");
                    e.preventDefault(),
                    si(Mi(e.delegateTarget)),
                    t.slideToggle(),
                    eqjs.query(t.find(".hotel-teaser"))
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                var e, t, i, n, a, o = Mi("ul[data-js-rooms-list]");
                o.length <= 0 || (e = Mi('<a href="#more-l-rooms" class="content-toggler content-toggler--rooms"><span class="is-collapsed"></span></a>'),
                t = Mi('<ul class="l-rooms" data-js="l-rooms__hide" id="more-l-rooms"></ul>'),
                o.children("li").length > 4 && (i = o.children("li").slice(4).clone().end().remove(),
                n = o.data("text-showmore"),
                a = o.data("text-showless"),
                t = i.wrapAll(t).parent().hide().insertAfter(o),
                e.find("span").text(n),
                e.insertAfter(t).on("click", (function(e) {
                    e.preventDefault(),
                    Mi(this).find("span").toggleClass("is-expanded").text(Mi(this).find("span").hasClass("is-expanded") ? a : n),
                    t.slideToggle()
                }
                ))))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                var e = Mi('*[data-js="content-nav-toggle"]')
                  , t = Mi('*[data-js="' + e.attr("data-target") + '"]');
                e.click((function() {
                    t.slideToggle(),
                    e.hasClass("active") ? e.removeClass("active") : e.addClass("active")
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                var e = function(e, t, i, n, a, o) {
                    var r = ScreenHelper.mediaMediumUp() ? 0 : o.height()
                      , s = o.find(".navigation-bar__main__expander").hasClass("is-expanded") || o.find('[data-js="mainnav-widget-toggle"]').hasClass("active")
                      , l = e.find(".hotel-menu-wrapper__inner");
                    t - r - Mi(window).scrollTop() < 0 && !Mi(".mp-cta").length ? ScreenHelper.mediaMediumUp() || s || o.addClass("locked").css("top", t - r) : ScreenHelper.mediaMediumUp() || o.removeClass("locked").css("top", ""),
                    t + 0 - Mi(window).scrollTop() < 0 && !e.hasClass("has-open-widget") ? e.hasClass("sticky") || (e.addClass("sticky"),
                    n.addClass("sticky"),
                    Mi(".mp-cta").hasClass("active") && !window.ScreenHelper.mediaMediumUp() ? (e.addClass("is-animated"),
                    l.addClass("is-animated"),
                    n.addClass("sticky is-animated")) : (setTimeout((function() {
                        e.addClass("sticky is-animated"),
                        l.addClass("is-animated")
                    }
                    ), 200),
                    setTimeout((function() {
                        n.addClass("sticky is-animated")
                    }
                    ), 500))) : (e.removeClass("sticky"),
                    n.removeClass("sticky"),
                    l.hasClass("is-animated") && e.hasClass("is-animated") && e.hasClass("is-animated") && (e.removeClass("is-animated"),
                    l.removeClass("is-animated"),
                    n.removeClass("is-animated")))
                }
                  , t = Mi("*[data-js=sub-nav]");
                if (t.length) {
                    var i = Mi("*[data-js=sub-nav-inner]")
                      , n = (i.length ? i.outerHeight() : t.outerHeight(),
                    Mi("*[data-js=sub-nav-title]"))
                      , a = (n.length && n.outerHeight(),
                    t.offset().top)
                      , o = Mi(".navigation-bar")
                      , r = !1;
                    Mi(window).on("load sitewide-alert-update main-nav-toggle login-area-toggle", (function() {
                        a = t.offset().top,
                        t.data("hotel-menu-position", a),
                        e(t, a, 0, n, 0, o),
                        r = !0
                    }
                    )),
                    Mi(window).on("scroll", (function(i) {
                        window.Scandic.isMapClickOnHotelPage || r && e(t, a, 0, n, 0, o)
                    }
                    ));
                    var s = !1;
                    Mi(window).on("resize", (function() {
                        s = !0
                    }
                    )),
                    setInterval((function() {
                        s && !window.Scandic.isMapClickOnHotelPage && (t.removeClass("sticky"),
                        Mi(".navigation-bar").removeClass("locked").css("top", 0),
                        a = t.offset().top,
                        n.length ? n.outerHeight() : 0,
                        e(t, a, 0, n, 0, o),
                        s = !1)
                    }
                    ), 250),
                    (-1 != window.navigator.userAgent.indexOf("MSIE ") || navigator.userAgent.match(/Trident.*rv\:11\./)) && setTimeout((function() {
                        r = !0
                    }
                    ), 800)
                }
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                Mi(".global-footer-toggler").on("click", (function(e) {
                    var t = Mi(e.delegateTarget)
                      , i = Mi(".collapsible-global-footer");
                    e.preventDefault(),
                    i.slideToggle((function() {
                        window.Scandic.isEditOrPreviewMode && Mi(window.parent.document).find("iframe").height(Mi(document).height())
                    }
                    )),
                    si(t)
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                Mi("*[data-js=go-to-map]").each((function() {
                    Mi(this).on("click", (function(e) {
                        e.preventDefault(),
                        window.location.href = Mi(this).attr("data-link") + "#location-map"
                    }
                    ))
                }
                ));
                var e = !1;
                Mi("#hotelCategoryMap").on("click", (function() {
                    e || (_(),
                    e = !0)
                }
                ))
            }
            )),
            Mi(document).on("click", "input[data-js-confirm]", (function(e) {
                var t = this
                  , i = this.hasAttribute("data-spinner-on-confirm");
                Mi(this).data("js-confirmed") ? Mi(t).data("js-confirmed", !1) : (Ni.fire({
                    title: this.getAttribute("data-js-confirm"),
                    text: this.getAttribute("data-confirm-text"),
                    showCancelButton: !0,
                    confirmButtonText: this.getAttribute("data-confirm-ok"),
                    cancelButtonText: this.getAttribute("data-confirm-cancel"),
                    preconfirm: function() {},
                    animation: "slide-from-top",
                    reverseButtons: !0,
                    allowOutsideClick: !0,
                    customClass: this.getAttribute("data-class") ? this.getAttribute("data-class") : ""
                }).then((function(e) {
                    e.value && (Mi(t).data("js-confirmed", !0),
                    -1 != navigator.userAgent.indexOf("Safari") && -1 == navigator.userAgent.indexOf("Chrome") ? new Promise((function(e, t) {
                        i && (window.Scandic.DisableEnableButton.disable(Mi("button.swal2-confirm")),
                        Mi("button.swal2-cancel").attr("disabled", !0)),
                        e()
                    }
                    )).then((function() {
                        setTimeout((function() {
                            t.click()
                        }
                        ))
                    }
                    )) : (i && (window.Scandic.DisableEnableButton.disable(Mi("button.swal2-confirm")),
                    Mi("button.swal2-cancel").attr("disabled", !0)),
                    t.click()))
                }
                )),
                e.preventDefault(),
                e.stopPropagation())
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                Mi("*[data-js=ajax-load]").each((function() {
                    var e = Mi(this)
                      , t = e.data("url");
                    "string" == typeof t && t.length && Mi.ajax({
                        url: t,
                        type: "GET",
                        success: function(t) {
                            if (Mi.trim(t)) {
                                e.html(t);
                                var i = e.data("loaded-event");
                                "string" == typeof i && i.length && Mi("body").trigger(i)
                            }
                        }
                    })
                }
                )),
                Mi("#my-future-bookings__toggle-btn").click((function(e) {
                    e.preventDefault(),
                    Mi("#my-future-bookings__toggle-btn").hide(),
                    Mi("#my-future-bookings__show-all-btn").show(),
                    (0,
                    m.ay)("futureBookingsTableToggleButtonClicked")
                }
                )),
                Mi("#my-future-bookings__show-all-btn").click((function(e) {
                    var t, i;
                    e.preventDefault(),
                    Mi("#my-future-bookings__show-all-btn").hide(),
                    Mi("#my-future-bookings__show-all-spinner").show(),
                    t = Mi(this).data("lastName"),
                    i = "/ajax/bookings/future?lastName=" + t,
                    Mi.ajax({
                        type: "POST",
                        url: i
                    }).done((function(e) {
                        Mi("#my-future-bookings__toggle-btn").addClass("is-expanded").show(),
                        Mi("#my-future-bookings-body").html(e),
                        Mi("#my-future-bookings__show-all-spinner").hide()
                    }
                    )).fail((function(e) {
                        Mi("#my-future-bookings__show-all-btn").show(),
                        Mi("#my-future-bookings__show-all-spinner").hide(),
                        console.log(e.responseText)
                    }
                    )),
                    (0,
                    m.ay)("futureBookingsTableToggleButtonClicked")
                }
                )),
                Mi("#add-credit-card-button").length > 0 && Mi("#add-credit-card-button").click((function(e) {
                    var t;
                    e.preventDefault(),
                    t = "/ajax/memberprofileupdate/addnewcard",
                    Mi.ajax({
                        type: "POST",
                        url: t,
                        data: {
                            routeURL: location.pathname
                        }
                    }).done((function(e) {
                        window.location.href = e.RedirectURL
                    }
                    )).fail((function(e) {}
                    ))
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                var e, t, i, n, a, o;
                function r() {
                    e.length && Mi(".l-booking-widget__widget:visible, .main, .hero-intro").each((function() {
                        var i = Mi(this);
                        t.css("height", ""),
                        setTimeout((function() {
                            i.offset().top < e.offset().top + e.outerHeight() && (t.outerHeight("+=" + e.outerHeight()),
                            e.outerHeight()),
                            Mi(window).trigger("sitewide-alert-update")
                        }
                        ), 300)
                    }
                    ))
                }
                function s() {
                    var e = Mi(window).width();
                    n = i,
                    i = e <= ScreenHelper.CSS_SMALL_BREAKPOINT ? 0 : e > ScreenHelper.CSS_XLARGE_BREAKPOINT ? ScreenHelper.CSS_XLARGE_BREAKPOINT : e > ScreenHelper.CSS_SMALL_BREAKPOINT && e <= ScreenHelper.CSS_MEDIUM_BREAKPOINT ? ScreenHelper.CSS_SMALL_BREAKPOINT : e > ScreenHelper.CSS_MEDIUM_BREAKPOINT && e <= ScreenHelper.CSS_LARGE_BREAKPOINT ? ScreenHelper.CSS_MEDIUM_BREAKPOINT : ScreenHelper.CSS_LARGE_BREAKPOINT
                }
                if (e = Mi(".special-alerts--sitewide"),
                a = Mi(".hero-fixed"),
                o = Mi(".hero__img-container"),
                (t = a.length ? a.add(".hero__img-container") : o.length ? o : Mi(".hero-content-overlay")).length) {
                    Mi(window).on("load", (function() {
                        s(),
                        Mi(".main.signature-hotel-main").length || r()
                    }
                    ));
                    var l = !1;
                    Mi(window).on("resize", (function() {
                        l = !0
                    }
                    )),
                    setInterval((function() {
                        l && (s(),
                        (i !== n || Mi(window).width() <= 500) && (Mi(".main.signature-hotel-main").length || r()),
                        l = !1)
                    }
                    ), 500)
                } else
                    e.addClass("special-alerts--sitewide-static")
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                if (Mi("#lbl-promotionpageurl").length) {
                    Mi.post(Mi("#lbl-promotionpageurl").val(), {}, (function(e) {
                        var t, i, n;
                        Mi("#lbl-promotionpageurl").after(e),
                        t = Mi(".promotion-form"),
                        i = t.find(".btn--activate-promotion"),
                        n = t.find(".btn--become-member"),
                        i.on("click", (function(e) {
                            e.preventDefault();
                            var n, a = t.attr("action");
                            a && (n = t.serialize(),
                            i.prop("disabled", !0),
                            Mi.post(a, n, (function(e) {
                                Ni.fire({
                                    title: "",
                                    html: e.message,
                                    confirmButtonText: i.data("confirm-text"),
                                    confirmButtonColor: null,
                                    animation: "slide-from-top",
                                    allowOutsideClick: !0,
                                    customClass: "center-action-btn"
                                }).then((function() {
                                    "success" === e.status && location.reload()
                                }
                                )),
                                i.prop("disabled", !1)
                            }
                            )))
                        }
                        )),
                        n.on("click", (function(e) {
                            var i = t.data("registration-url");
                            i && (window.location.href = i + "?promotioncode=" + Mi(this).attr("data-promo-code")),
                            Mi(this).data("js-confirmed"),
                            e.preventDefault()
                        }
                        )),
                        (0,
                        oi.init)(),
                        ve()
                    }
                    ))
                }
            }
            )),
            Scandic.runOnDocumentReady.push((function() {
                if (Mi(".promotion-container").length && null !== localStorage.getItem("data-js-trigger-promotion"))
                    var e = setInterval((function() {
                        Mi("body, html").animate({
                            scrollTop: Mi(".promotion-container").offset().top
                        }, 1e3),
                        clearInterval(e),
                        localStorage.removeItem("data-js-trigger-promotion")
                    }
                    ), 1e3);
                else
                    null !== localStorage.getItem("data-js-trigger-promotion") && localStorage.removeItem("data-js-trigger-promotion")
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                Mi('[data-js="toggle-booking-terms"]').on("click keydown", (function(e) {
                    9 !== e.which && (e.preventDefault(),
                    13 !== e.which && "click" !== e.type || !document.querySelector("#booking-terms-list").classList.contains("hidden") ? 13 !== e.which && "click" !== e.type || (Mi("#booking-terms-list").addClass("hidden"),
                    Mi("#view-terms-text").show(),
                    Mi("#hide-terms-text").hide()) : (Mi("#booking-terms-list").removeClass("hidden"),
                    Mi("#view-terms-text").hide(),
                    document.querySelector("#hide-terms-text").classList.contains("hidden") && Mi("#hide-terms-text").removeClass("hidden"),
                    Mi("#hide-terms-text").show()),
                    "keydown" === e.type && Mi('[data-js="toggle-booking-terms"]:visible').focus())
                }
                ))
            }
            )),
            window.Scandic.runOnWindowLoad.push((function() {
                if (window.datalayerObj) {
                    if ("logged in" == datalayerObj.loginstatus && -1 != ["bookinghotelspage", "bookingroomsandratespage", "bookingenterdetailspage", "bookingconfirmationpage"].indexOf(window.datalayerObj.pagetype))
                        if (CookieConsent && CookieConsent.consented) {
                            (0,
                            m.j8)({
                                userMemberId: datalayerObj.memberid,
                                pageId: {
                                    bookinghotelspage: "city_search",
                                    bookingroomsandratespage: "resort_search",
                                    bookingenterdetailspage: "details",
                                    bookingconfirmationpage: "confirmation"
                                }[datalayerObj.pagetype],
                                pageUrl: location.href + "&userMemberId=" + datalayerObj.memberid
                            })
                        } else
                            (0,
                            m.j8)({})
                }
            }
            )),
            function() {
                Mi(document).ready((function() {
                    for (var e = 0, t = window.Scandic.runOnDocumentReady.length; e < t; ++e) {
                        window.Scandic.runOnDocumentReady[e].call(window.Scandic)
                    }
                    if (Mi(".hero-fixed").length > 0 && Mi(".l-booking-widget--position").length > 0 && !Mi(".main.signature-hotel-main").length) {
                        var i = function() {
                            Mi(".hero-content-overlay").addClass("hero-content-widget");
                            var e = document.querySelector(".hero");
                            if (ScreenHelper.mediaMediumUp()) {
                                var t = document.querySelector(".special-alerts--sitewide") ? document.querySelector(".special-alerts--sitewide").offsetHeight : 0
                                  , i = document.querySelector("header.header").offsetHeight + t;
                                Mi(".hero-fixed").css("margin-top", 0),
                                e.style.top = i - window.pageYOffset + "px",
                                document.onscroll = function(t) {
                                    var n = i - window.pageYOffset;
                                    e.style.top = n >= 0 ? n + "px" : 0
                                }
                            }
                            ScreenHelper.mediaSmallUp() && Mi(".hero-intro--overlay").css("margin-top", "-60px")
                        };
                        Mi(window).on("resize", i);
                        var n = setInterval(i, 100);
                        Mi(window).on("load", (function() {
                            n && (i(),
                            clearInterval(n))
                        }
                        ))
                    }
                }
                )),
                Mi(window).on("load", (function() {
                    for (var e = 0, t = window.Scandic.runOnWindowLoad.length; e < t; ++e) {
                        window.Scandic.runOnWindowLoad[e].call(window.Scandic)
                    }
                }
                )),
                Mi(document).ready((function() {
                    if (!(Mi(".l-section--has-sidebar .big-sidebar-wrapper__sidebar-section__sidebar").length < 1)) {
                        var e = function() {
                            if (window.innerWidth < 740)
                                Mi(".l-section--has-sidebar .big-sidebar-wrapper__sidebar-section__sidebar").attr("style", "margin-top: 0px;");
                            else if (Mi(".l-section--has-sidebar.big-sidebar-wrapper__main-secondary > .l-section__inner.l-section__inner--content").length > 0) {
                                var e = Mi(".l-section--has-sidebar.big-sidebar-wrapper__main-secondary > .l-section__inner.l-section__inner--content")[0].clientHeight + 20;
                                Mi(".l-section--has-sidebar .big-sidebar-wrapper__sidebar-section__sidebar").attr("style", "margin-top:" + e + "px;")
                            }
                        };
                        e(),
                        Mi(window).on("resize", e)
                    }
                }
                ));
                var e = function() {
                    window.sessionStorage.removeItem("form_bookingDetailsForm"),
                    window.sessionStorage.removeItem("userHtmlForLoggedInOrLoggedOut"),
                    window.sessionStorage.removeItem("loginTrackData"),
                    window.localStorage.removeItem("loginTrackData"),
                    window.localStorage.removeItem("userLoggedInId")
                }
                  , t = function() {
                    var t = JSON.parse(sessionStorage.getItem("userHtmlForLoggedInOrLoggedOut"));
                    Mi("#js-login-modal").length || Mi(".navigation--skip-to-content").after(t.userStateHtml),
                    Mi("#navbarUser").remove(),
                    Mi("ul.nav-secondary.navbar-login").append(t.userHtml),
                    Mi("#navbarliload").remove(),
                    Mi("#navbar-header-design").html(t.navigationHtml),
                    Mi("#main-menu .nav-primary__item--primary.nav-primary__item--myprofile").remove(),
                    Mi("#main-menu").append(t.navigationForDeviceHtml),
                    (0,
                    oi.init)(),
                    Mi('*[data-js="logout-form"]').on("submit", (function() {
                        e()
                    }
                    )),
                    "true" !== Pi("cookieAccept") && sessionStorage.getItem("cookieUserHtml") && (Mi(".navigation--skip-to-content").before(sessionStorage.getItem("cookieUserHtml")),
                    Mi('*[data-js="cookie-confirm"]').click((function(e) {
                        e.preventDefault();
                        var t = new Date;
                        t.setTime(t.getTime() + 31536e6),
                        Di("cookieAccept", "true", t.toUTCString(), "/"),
                        Mi('*[data-js="cookie-section"]').remove()
                    }
                    )))
                };
                window.addEventListener("load", (function() {
                    (window.location.href.indexOf("login") > -1 || window.location.href.indexOf("memberlogin") > -1 || window.location.href.indexOf("showModal") > -1) && e();
                    var i = !0;
                    if (sessionStorage.getItem("userHtmlForLoggedInOrLoggedOut")) {
                        var n = JSON.parse(sessionStorage.getItem("loginTrackData"))
                          , a = JSON.parse(localStorage.getItem("loginTrackData"));
                        (i = !((i = n.MemberId != a.MemberId) || "n/a" == n.MemberId || !document.querySelector(".room-price-info__member .room-member-price")) || i) || t()
                    }
                    if (i) {
                        Mi.ajax({
                            url: "/ajax/startpage/checkuserauthentication",
                            type: "POST",
                            success: function(e) {
                                if (window.sessionStorage) {
                                    var i;
                                    i = {
                                        userStateHtml: e.outUserStateHtml,
                                        userHtml: e.outUserHtml,
                                        navigationHtml: e.outNavigationHtml,
                                        navigationForDeviceHtml: e.outNavigationForDeviceHtml
                                    },
                                    sessionStorage.setItem("userHtmlForLoggedInOrLoggedOut", JSON.stringify(i)),
                                    e.outCookieDetailsHtml.length > 2 && sessionStorage.setItem("cookieUserHtml", e.outCookieDetailsHtml),
                                    sessionStorage.setItem("loginTrackData", JSON.stringify(e.loginTrackingData)),
                                    sessionStorage.setItem("sessionId", JSON.stringify(e.sessionId));
                                    var n = JSON.parse(localStorage.getItem("loginTrackData"));
                                    (!n || n && n.MemberId != e.loginTrackingData.MemberId) && localStorage.setItem("loginTrackData", JSON.stringify(e.loginTrackingData))
                                }
                                t()
                            }
                        })
                    }
                }
                ), !1)
            }(),
            window.Scandic.runOnWindowLoad.push((function() {
                function e(e) {
                    for (var t = e.closest(".l-price-box__available-rates-holder").find(".morePrices"), i = 0; i < t.length; i++) {
                        var n = t[parseInt(i, 10)];
                        n.classList.contains("hidden") ? n.classList.remove("hidden") : n.classList.add("hidden")
                    }
                }
                for (var t = Mi('*[data-js="show-more-rates"]'), i = 0; i < t.length; i++)
                    t[parseInt(i, 10)].addEventListener("click", (function() {
                        var t;
                        event.stopPropagation(),
                        (t = Mi(this)).hasClass("is-expanded") ? (t.removeClass("is-expanded"),
                        t.find(".showLess").first().addClass("hidden"),
                        t.find(".showMore").first().removeClass("hidden")) : (t.addClass("is-expanded"),
                        t.find(".showLess").first().removeClass("hidden"),
                        t.find(".showMore").first().addClass("hidden")),
                        e(Mi(this))
                    }
                    ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                if (document.getElementById("lbl-personalized-areas") && document.getElementById("lbl-pageurl")) {
                    var e = document.getElementById("lbl-personalized-areas").value
                      , t = document.getElementById("lbl-pageurl").value;
                    Mi.ajax({
                        url: t,
                        type: "POST",
                        data: {
                            sectionNames: e
                        },
                        success: function(e) {
                            var t = JSON.parse(e)
                              , i = t.PersonalizedSectionNames;
                            document.getElementById("lbl-personalized-areas").value = i,
                            (i = i.split(",")).forEach((function(e) {
                                t.hasOwnProperty(e) && document.getElementById(e.toLowerCase() + "_personalized") && (document.getElementById(e.toLowerCase() + "_personalized").innerHTML = t[e])
                            }
                            ))
                        }
                    })
                }
            }
            )),
            window.Scandic.runOnWindowLoad.push((function() {
                Mi("#booking-summary-add-hotel").click((function() {
                    Mi("#booking-summary-add-booking-widget").removeClass("hidden"),
                    document.querySelector("#widget-search__text").focus()
                }
                )),
                Mi("#remove-Booking-widget").click((function() {
                    Mi("#booking-summary-add-booking-widget").addClass("hidden")
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                document.querySelectorAll(".l-section--content a[href]").forEach((function(e) {
                    -1 != e.href.indexOf("login=1") && Mi(e).click((function(t) {
                        sessionStorage.getItem("loginTrackData") && "not logged in" != JSON.parse(sessionStorage.getItem("loginTrackData")).LoginStatus || (t.preventDefault(),
                        Mi.ajax({
                            type: "POST",
                            data: {
                                redirectUrl: e.href.replace("?login=1", "")
                            },
                            url: "/ajax/startpage/setsessionredirecturl"
                        }),
                        (0,
                        oi.initLoginPopup)(t))
                    }
                    ))
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                document.querySelector(".locked-profile") ? (Mi(".locked-profile input").each((function() {
                    Mi(this).attr("readonly", !0)
                }
                )),
                Mi(".locked-profile select").each((function() {
                    Mi(this).attr("disabled", !0),
                    Mi(this).after("<input type='hidden' name='" + Mi(this).attr("name") + "' value='" + Mi(this).val() + "' >")
                }
                ))) : "memberprofileupdatepage" == window.datalayer[0].pagetype && document.querySelector("form[name=registerprofile] input[type=text]").focus()
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                var e = /\d/
                  , t = /[A-ZÅÄÖÆØÜ]/
                  , i = /[a-zåäöæøüß]/
                  , n = /[!@#$%^&*()=+?_-]/
                  , a = /^[A-Za-zåäöæøüßÅÄÖÆØÜ0-9&!?()@#$%^+=_\*\-]+$/;
                Mi(".toggle-password").click((function() {
                    Mi(this).toggleClass("icon-eye icon-eye-slash");
                    var e = Mi(Mi(this).attr("toggle"));
                    "password" == e.attr("type") ? e.attr("type", "text") : e.attr("type", "password")
                }
                )),
                Mi("form input[type='password']").on("input", (function() {
                    Mi(this).val() ? Mi(this).next(".toggle-password").removeClass("hidden") : Mi(this).next(".toggle-password").addClass("hidden")
                }
                )),
                Mi(".create-password").on("input", (function(o) {
                    Mi(this).val() ? (t.test(Mi(this).val()) ? ji(Mi(this).val(), "upperCaserChar", !0, o.type) : ji(Mi(this).val(), "upperCaserChar", !1, o.type),
                    i.test(Mi(this).val()) ? ji(Mi(this).val(), "lowerCaserChar", !0, o.type) : ji(Mi(this).val(), "lowerCaserChar", !1, o.type),
                    e.test(Mi(this).val()) ? ji(Mi(this).val(), "numberFormat", !0, o.type) : ji(Mi(this).val(), "numberFormat", !1, o.type),
                    n.test(Mi(this).val()) ? ji(Mi(this).val(), "specialCharFormat", !0, o.type) : ji(Mi(this).val(), "specialCharFormat", !1, o.type),
                    Mi(this).val().length >= 10 ? ji(Mi(this).val(), "charLimit", !0, o.type) : ji(Mi(this).val(), "charLimit", !1, o.type),
                    a.test(Mi(this).val()) ? ji(Mi(this).val(), "notAllowedCharFormat", !1, o.type) : ji(Mi(this).val(), "notAllowedCharFormat", !0, o.type)) : ji(null, null)
                }
                )),
                Mi(".create-password").on("blur", (function(o) {
                    Mi(this).val() && (t.test(Mi(this).val()) ? ji(Mi(this).val(), "upperCaserChar", !1, o.type) : ji(Mi(this).val(), "upperCaserChar", !0, o.type),
                    i.test(Mi(this).val()) ? ji(Mi(this).val(), "lowerCaserChar", !1, o.type) : ji(Mi(this).val(), "lowerCaserChar", !0, o.type),
                    e.test(Mi(this).val()) ? ji(Mi(this).val(), "numberFormat", !1, o.type) : ji(Mi(this).val(), "numberFormat", !0, o.type),
                    n.test(Mi(this).val()) ? ji(Mi(this).val(), "specialCharFormat", !1, o.type) : ji(Mi(this).val(), "specialCharFormat", !0, o.type),
                    Mi(this).val().length >= 10 ? ji(Mi(this).val(), "charLimit", !1, o.type) : ji(Mi(this).val(), "charLimit", !0, o.type),
                    a.test(Mi(this).val()) ? ji(Mi(this).val(), "notAllowedCharFormat", !1, o.type) : ji(Mi(this).val(), "notAllowedCharFormat", !0, o.type))
                }
                ))
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                var e = new URLSearchParams(window.location.search)
                  , t = e.get("isRedirect")
                  , i = e.get("actionSuccess");
                document.getElementsByClassName("validation-summary-errors") && document.getElementsByClassName("validation-summary-errors").length && qi(".validation-summary-errors"),
                document.getElementsByClassName("scroll-up-message") && document.getElementsByClassName("scroll-up-message").length && qi(".scroll-up-message"),
                document.getElementsByClassName("scroll-up-message") && document.getElementsByClassName("scroll-up-message").length || "True" != t || "True" != i || Mi("body, html").animate({
                    scrollTop: Mi("#add-credit-card-button").offset().top - 250
                }, "slow")
            }
            )),
            window.Scandic.runOnWindowLoad.push((function() {
                document.querySelector(".booking__verify_email_success .speech-bubble") && document.querySelector(".booking__verify_email_success .speech-bubble").classList.contains("speech-bubble--deemphasized") && (0,
                m.ay)("member-signup-enter-details"),
                document.getElementById("isMembershipAttached") && (0,
                m.ay)("profileAttachedToBooking")
            }
            )),
            window.Scandic.runOnDocumentReady.push((function() {
                Mi(".loading-button").click((function() {
                    var e = Mi(this);
                    setTimeout(function() {
                        window.Scandic.DisableEnableButton.disable(e),
                        e.attr("disabled", !0)
                    }
                    .bind(e), 10)
                }
                ))
            }
            )),
            window.GDPROnSubmit = function() {
                grecaptcha.execute(),
                document.getElementById("gdprRequestForm").submit()
            }
            ,
            Mi("#IdentificationFile").on("change", (function() {
                var e = Mi(this).val();
                if ("" !== e && null != e) {
                    var t = e.substring(e.lastIndexOf("\\") + 1);
                    Mi("#fileLabel").val(t)
                }
            }
            )),
            Mi(".browse-label").on("click", (function() {
                Mi("#IdentificationFile").trigger("click")
            }
            )),
            window.selectRoomRedirectPage = function(e, t, i) {
                "disabled" == t ? i.stopPropagation() : window.location.href = e
            }
            ,
            window.Scandic.runOnDocumentReady.push((function() {
                var e = function() {
                    document.getElementById("lang-popup").classList.add("hidden"),
                    i("cancel")
                }
                  , t = !1
                  , i = function(e) {
                    if (!t) {
                        var i = n();
                        (0,
                        m.ay)("redirect domain", {
                            popupactions: "redirection-" + (e || i).toLowerCase()
                        }),
                        t = !0
                    }
                }
                  , n = function() {
                    var e = "";
                    switch (Pi("UserLocation").toLowerCase()) {
                    case "sweden":
                        e = "Svenska";
                        break;
                    case "norway":
                        e = "Norsk";
                        break;
                    case "denmark":
                        e = "Dansk";
                        break;
                    case "finland":
                        e = "Suomi";
                        break;
                    case "german":
                        e = "Deutsch"
                    }
                    return e.toString()
                }
                  , a = Pi("UserLocation") ? Pi("UserLocation").toLowerCase() : null
                  , o = Pi("UserLocationChange") ? Pi("UserLocationChange").toLowerCase() : null;
                if ("/" == location.pathname && "" == location.search && a && !o) {
                    var r = document.getElementById("lang-popup");
                    r.classList.remove("hidden");
                    var s = n();
                    r.querySelector(".lang-popup__msg").innerText = r.querySelector(".lang-popup__msg").innerText.replace("{language}", s),
                    r.querySelector(".lang-popup__cta").innerText = r.querySelector(".lang-popup__cta").innerText.replace("{language}", s),
                    document.querySelectorAll(".navbar-language-selector ul li a").forEach((function(e) {
                        e.innerText.toLowerCase() == s.toLowerCase() && (document.querySelector(".lang-popup__cta").href = e.href)
                    }
                    )),
                    r.querySelector(".lang-popup__cta").addEventListener("click", (function() {
                        i(!1),
                        Di("UserLocationChange", a, 1 / 0)
                    }
                    )),
                    r.querySelector(".lang-popup__cancel").addEventListener("click", e),
                    r.querySelector(".lang-popup__close").addEventListener("click", e),
                    window.onbeforeunload = function() {
                        i("cancel")
                    }
                    ,
                    Di("UserLocationChange", 1, 1 / 0)
                } else if ("/" == location.pathname && "" == location.search && o && o == a) {
                    if (-1 != document.referrer.indexOf(location.hostname))
                        return;
                    var l = n();
                    document.querySelectorAll(".dropdown-container ul li a").forEach((function(e) {
                        e.innerText.toLowerCase() == l.toLowerCase() && (window.location.href = e.href)
                    }
                    ))
                }
            }
            )),
            function() {
                if ("startpage" == window.datalayer[0].pagetype) {
                    var e = document.getElementById("book-button")
                      , t = document.querySelector("#booking-widget-form");
                    e.style.display = "none",
                    window.onscroll = function() {
                        document.body.scrollTop > parseInt(t.offsetHeight) || document.documentElement.scrollTop > parseInt(t.offsetHeight) ? e.style.display = "block" : e.style.display = "none"
                    }
                }
            }();
            i(52071),
            i(66695),
            i(21335),
            i(87828),
            i(23234),
            i(67131),
            i(3517);
            window.xenaApp = angular.module("xenaApp", ["pickadate", "ngAria", "ui.swiper", "ngAnimate", "ngSanitize"]).config(["$compileProvider", function(e) {
                e.aHrefSanitizationWhitelist(/^\s*(https?|mailto|webcal|tel):/)
            }
            ]),
            xenaApp.directive("select", (function() {
                return {
                    restrict: "E",
                    require: "?ngModel",
                    scope: !1,
                    link: function(e, t, i, n) {
                        n && t.bind("keyup", (function() {
                            t.triggerHandler("change")
                        }
                        ))
                    }
                }
            }
            ));
            i(68095),
            i(84887),
            i(60530),
            i(6430),
            i(46934),
            i(53129),
            i(20419),
            i(88154),
            i(76114),
            i(3620);
            var Fi = i(19755)
              , Ri = i(19755);
            angular.module("xenaApp").controller("BookingAncillariesController", ["$scope", "AncillaryService", "UserService", "$sce", "$timeout", function(e, t, i, n, a) {
                Fi("#ancillary-msg") && Fi("#ancillary-msg").val() && (window.ancillarieDataModule.ancillaryData.message = Fi("#ancillary-msg").val()),
                "true" === Pi("clearSavedAncillaries") ? (Oi("clearSavedAncillaries", "/"),
                t.setAncillaryData(window.ancillarieDataModule.ancillaryData),
                t.deleteFromSessionStorage()) : t.setAncillaryDataFromSessionStorage(window.ancillarieDataModule.ancillaryData),
                e.filteredAncillariesList = [],
                e.trackingFilterName = void 0,
                e.AncillaryService = t,
                e.selectedFilterOption = void 0,
                e.hiddenInputKey = "room[0].ancillaries.",
                e.hiddenInputCollection = {},
                e.trackSkipLink = "",
                e.loadingEnterDetailsPage = !1,
                e.isAncillariesSelected = !1,
                e.deliveryTimeIsRequred = t.orderHasAncillaryWithDeliveryTime,
                e.deliveryTimeIsDisabled = !1,
                e.skipValidation = !1,
                e.message = t.ancillaryData.message,
                e.ancillariesPointsTracker = t.ancillariesPointsTracker,
                e.getDeliveryTimeOptions = e.AncillaryService.ancillaryData.deliveryTimes,
                e.onLoginLinkClick = oi.onClickFunction,
                e.$watch("message", (function(e) {
                    t.ancillaryData.message = e
                }
                )),
                e.$watch("AncillaryService.getAncillaries()", (function(t, i, n) {
                    e.ancillariesChanged()
                }
                ), !0),
                e.updateDeliveryTime = function() {
                    t.ancillaryData.deliveryTimes.selectedDeliveryTime = e.getDeliveryTimeOptions.selectedDeliveryTime
                }
                ,
                e.skipAncillaries = function(t) {
                    e.skipValidation = !0,
                    e.trackSkipLink = t,
                    e.removeHiddenInputs(),
                    a((function() {
                        Ri("#ancillaries-form").submit()
                    }
                    ))
                }
                ,
                e.ancillariesChanged = function() {
                    e.hiddenInputCollection = {},
                    e.isAncillariesSelected = !1;
                    var n = 0;
                    angular.forEach(t.ancillaryData.ancillaries, (function(t) {
                        angular.forEach(t.Variants, (function(t) {
                            0 !== t.Quantity && (t.Id.indexOf("LOY") > -1 && !i.UserData.userIsAuthenticated || (e.isAncillariesSelected = !0,
                            e.addHiddenInput(n, t.Id, t.Quantity),
                            n++))
                        }
                        ))
                    }
                    )),
                    e.isAncillariesSelected || t.ancillaryData.isPostBooking || (e.message = "",
                    e.getDeliveryTimeOptions.selectedDeliveryTime = e.getDeliveryTimeOptions.options.find((function(e) {
                        return "X" === e.Id
                    }
                    )),
                    e.ancillariesForm.$setPristine(),
                    e.ancillariesForm.$setUntouched())
                }
                ,
                e.addHiddenInput = function(t, i, n) {
                    var a = e.hiddenInputKey + "variants[" + t + "].id"
                      , o = e.hiddenInputKey + "variants[" + t + "].quantity";
                    e.hiddenInputCollection[a] = i,
                    e.hiddenInputCollection[o] = n
                }
                ,
                e.removeHiddenInputs = function() {
                    e.hiddenInputCollection = []
                }
                ,
                e.submitHandler = function(i) {
                    e.formSubmitted || (e.loadingEnterDetailsPage = e.ancillariesForm.$valid,
                    t.saveToSessionStorage(),
                    e.ancillariesForm.$valid && (e.formSubmitted = !0,
                    a((function() {
                        Ri("#ancillaries-form").submit()
                    }
                    ))),
                    i && i.preventDefault(),
                    Ri("*[data-disable-on-widget-update]").length > 0 && Ri("form").hasClass("ng-valid") && Ri("*[data-disable-on-widget-update]").toggleClass("is-disabled-after-update"))
                }
                ,
                e.filterAncillaries = function(t) {
                    void 0 !== t && (e.filteredAncillariesList = [],
                    e.selectedFilterOption = t.InternalName,
                    e.trackingFilterName = t.InternalName,
                    angular.forEach(t.AncillaryIds, (function(t) {
                        angular.forEach(e.AncillaryService.ancillaryData.ancillaries, (function(i) {
                            i.Id === t && e.filteredAncillariesList.push(i)
                        }
                        ))
                    }
                    )))
                }
                ,
                e.isSelected = function(t) {
                    return t === e.selectedFilterOption
                }
                ,
                e.removeEmptyAncillaries = function() {
                    e.AncillaryService.ancillaryData.ancillariesFilterCategories = e.AncillaryService.ancillaryData.ancillariesFilterCategories.filter((function(t) {
                        return e.categoryHasAncillaries(t)
                    }
                    ))
                }
                ,
                e.categoryHasAncillaries = function(t) {
                    for (var i = !1, n = 0; n < e.AncillaryService.ancillaryData.ancillaries.length; n++)
                        for (var a = e.AncillaryService.ancillaryData.ancillaries[n], o = 0; o < t.AncillaryIds.length; o++) {
                            var r = t.AncillaryIds[o];
                            a.Id === r && (n = e.AncillaryService.ancillaryData.ancillaries.length,
                            o = t.AncillaryIds.length,
                            i = !0)
                        }
                    return i
                }
                ;
                e.init = function(n, a, o) {
                    t.ancillaryData.deliveryTimes.selectedDeliveryTime.Id = t.ancillaryData.deliveryTimes.selectedDeliveryTime.Id || "X",
                    i.UserData.userIsAuthenticated = n,
                    e.deliveryTimeIsDisabled = t.ancillaryData.isPostBooking && "X" !== t.ancillaryData.deliveryTimes.selectedDeliveryTime.Id && null !== t.ancillaryData.deliveryTimes.selectedDeliveryTime.Id && "X" !== window.ancillarieDataModule.ancillaryData.deliveryTimes.selectedDeliveryTime.Id,
                    e.removeEmptyAncillaries(),
                    e.filterAncillaries(e.AncillaryService.ancillaryData.ancillariesFilterCategories[0]),
                    i.UserData.userIsAuthenticated && (t.ancillariesPointsTracker.totalInitialPoints = a,
                    t.calculateTotalPointsLeftFromAncillaryData()),
                    e.getDeliveryTimeOptions.options.find((function(e) {
                        return "X" === e.Id
                    }
                    )) || e.getDeliveryTimeOptions.options.unshift({
                        Id: "X",
                        Name: o,
                        disabled: !0
                    })
                }
            }
            ]);
            i(64025),
            i(17618),
            i(82672),
            i(93951);
            var $i = i(54648);
            angular.module("xenaApp").controller("BookingDetailsController", ["$scope", "$http", "uniquenessService", "creditCardService", function(e, t, i, n) {
                function a() {
                    var t = !e.isNameDuplicated();
                    e.bookingDetailsForm[e.firstNameFieldName].$setValidity("uniqueness", t),
                    e.bookingDetailsForm[e.lastNameFieldName].$setValidity("uniqueness", t)
                }
                e.validPhoneNumber = $i.phone.strict,
                e.validEmail = $i.emailRegexp,
                e.validCompanyCode = $i.companyCode,
                e.validName = $i.alphanumeric.noSpecialCharacters,
                e.validMembershipNumber = $i.membershipNumber,
                e.dirtyPhone = !1,
                e.creditCardData = n.data,
                t.get("/api/cc-prefix.json").then((function(t) {
                    e.countryPhoneMappings = t.data
                }
                )).catch((function() {
                    console.log("Failed to load country to phoneprefixprefix mapping.")
                }
                )),
                e.creditCardData.creditCardIsInRequiredContext = e.guaranteeForLateArrival,
                e.$watch("firstName", (function() {
                    a()
                }
                )),
                e.$watch("lastName", (function() {
                    a()
                }
                )),
                e.$watch("countryCode", (function() {
                    e.dirtyPhone || void 0 !== e.countryPhoneMappings && (e.phoneCountryCodePrefix = e.findCountry(e.countryCode))
                }
                )),
                e.isNameDuplicated = function() {
                    return !i.isUnique(e, "validatableFullName()", e.validatableFullName())
                }
                ,
                e.validatableFullName = function() {
                    return void 0 !== e.firstName && "" !== e.firstName && void 0 !== e.lastName && "" !== e.lastName ? JSON.stringify([e.firstName.trim().toLowerCase(), e.lastName.trim().toLowerCase()]) : ""
                }
                ,
                e.findCountry = function(t) {
                    return e.countryPhoneMappings[t]
                }
                ,
                e.setDirtyPhone = function() {
                    e.dirtyPhone = !0
                }
            }
            ]);
            i(26953),
            i(50972),
            i(27903),
            i(62865),
            i(73986);
            var Vi = i(19755)
              , Wi = i(19755)
              , Ui = i(86455)
              , Gi = i(17970);
            angular.module("xenaApp").controller("MyBookingController", ["$scope", "AncillaryService", "UserService", "$window", function(e, t, i, n) {
                e.AncillaryService = t,
                e.AncillaryService.setAncillaryData(window.ancillarieDataModule.ancillaryData),
                e.myBookingSweetAlertData = {},
                document.querySelector("#myBookingSweetAlertData") && (window.myBookingSweetAlertData = JSON.parse(document.querySelector("#myBookingSweetAlertData").textContent.toString())),
                e.ancillaryPagePathName = "",
                e.validEmail = new RegExp($i.emailRegexp),
                e.validName = new RegExp($i.alphanumeric.noSpecialCharacters),
                e.init = function() {
                    e.myBookingSweetAlertData = window.myBookingSweetAlertData,
                    e.filteredAncillariesList = e.AncillaryService.ancillaryData.ancillaries
                }
                ,
                e.initPostBooking = function(n, a, o) {
                    e.ancillaryPagePathName = o,
                    i.UserData.userIsAuthenticated = n,
                    i.UserData.userIsAuthenticated && (t.ancillariesPointsTracker.totalInitialPoints = a,
                    t.ancillariesPointsTracker.totalPointsLeft = a)
                }
                ,
                e.redirectToAncillariesPage = function(t, i, a, o, r) {
                    var s = "";
                    r = r || !1,
                    s += "True" === o && "" !== a ? e.ancillaryPagePathName + "?RefId=" + a + "&hotel=" + i : e.ancillaryPagePathName + "?bookingId=" + t + "&hotel=" + i,
                    r && (s += "&isConfirmationPage=" + r),
                    Gi.toggle((function() {
                        n.location.href = s
                    }
                    ))
                }
                ,
                e.logInToCancelAlert = function(t) {
                    "true" === t && Ui.fire({
                        title: e.myBookingSweetAlertData.CancelBookingTitle,
                        html: e.myBookingSweetAlertData.CancelBookingText,
                        confirmButtonText: e.myBookingSweetAlertData.ConfirmationButtonText,
                        confirmButtonColor: "#00838e",
                        showCancelButton: !1,
                        animation: !1,
                        allowOutsideClick: !0,
                        buttonsStyling: !0,
                        customClass: "inverted_modify_details",
                        showLoaderOnConfirm: !1,
                        reverseButtons: !0
                    })
                }
                ,
                e.logInToModifyPersonalDetailsAlert = function(t) {
                    "true" === t && Ui.fire({
                        title: e.myBookingSweetAlertData.Title,
                        html: e.myBookingSweetAlertData.Text,
                        confirmButtonText: e.myBookingSweetAlertData.ConfirmationButtonText,
                        confirmButtonColor: "#00838e",
                        showCancelButton: !1,
                        animation: !1,
                        allowOutsideClick: !0,
                        buttonsStyling: !0,
                        customClass: "inverted_modify_details",
                        showLoaderOnConfirm: !1,
                        reverseButtons: !0
                    })
                }
                ;
                var a = function(e) {
                    Ui.fire({
                        title: Vi("#cancellationLabels").attr("data-js-confirm"),
                        html: Vi("#cancellationLabels").attr("data-confirm-text"),
                        showConfirmButton: !0,
                        showCancelButton: !0,
                        showLoaderOnConfirm: !0,
                        buttonsStyling: !0,
                        confirmButtonColor: null,
                        confirmButtonText: Vi("#cancellationLabels").attr("data-confirm-ok"),
                        cancelButtonText: Vi("#cancellationLabels").attr("data-confirm-cancel"),
                        animation: !1,
                        cancelButtonColor: "#00838e",
                        customClass: "cancel-booking",
                        reverseButtons: !0
                    }).then((function(t) {
                        t.value && Gi.toggle((function() {
                            var t = "#" + e.currentTarget.parentElement.id;
                            Vi(t).submit()
                        }
                        ))
                    }
                    ))
                }
                  , o = function(e, t, i, n, a) {
                    "" === a.trim() || null === a.trim() ? (Wi(t).css("display", "block"),
                    Wi(i).css("display", "none")) : "" !== a.trim() || null !== a.trim() ? n.test(a.trim()) ? (Wi(i).css("display", "none"),
                    Wi(t).css("display", "none")) : (Wi(i).css("display", "block"),
                    Wi(t).css("display", "none")) : (Wi(t).css("display", "none"),
                    Wi(i).css("display", "none"))
                };
                e.validationForm = {
                    form: Vi("#confirmation-form").html(),
                    title: Vi("#confirmation-form h2.title").text(),
                    desc: Vi("#confirmation-form p.desc").text(),
                    errorTitle: Vi("#valid_error_title").text(),
                    errorDesc: Vi("#valid_error_text").text(),
                    confirmBtnText: Vi("#valid_confirm_text").text(),
                    cancelBtnText: Vi("#valid_cancel_text").text()
                };
                var r = function(t, i) {
                    var n = t.querySelector("#firstName")
                      , a = t.querySelector("#lastName")
                      , o = t.querySelector("#emailaddress");
                    if (!n.value || !a.value || !o.value)
                        return !1;
                    window.Scandic.DisableEnableButton.disable(Vi("#validate-form button[type=submit]"));
                    var r = e.AncillaryService.ancillaryData.bookingInformation.bookingId;
                    i = i || r,
                    Wi.ajax({
                        type: "Post",
                        data: {
                            FirstName: n.value.trim(),
                            LastName: a.value.trim(),
                            Email: o.value.trim()
                        },
                        url: "/ajax/bookings/" + r + "/validateusermodifyingbooking",
                        success: function(e) {
                            e.Success ? (document.getElementById(r) && (document.getElementById(r).value = "true"),
                            (-1 !== i.toString().indexOf("-") || document.getElementById(r + "-1") || document.getElementById(r + "-2") || document.getElementById(r + "-3") || document.getElementById(r + "-4")) && (-1 !== r.indexOf("-") && (r = r.split("-")[0]),
                            document.getElementById(r + "-1") && (document.getElementById(r + "-1").value = "true"),
                            document.getElementById(r + "-2") && (document.getElementById(r + "-2").value = "true"),
                            document.getElementById(r + "-3") && (document.getElementById(r + "-3").value = "true"),
                            document.getElementById(r + "-4") && (document.getElementById(r + "-4").value = "true")),
                            setTimeout((function() {
                                window.location.reload()
                            }
                            ), 100)) : (l(),
                            window.Scandic.DisableEnableButton.enable(Vi("#validate-form button[type=submit]")))
                        },
                        error: function(e) {
                            l(),
                            window.Scandic.DisableEnableButton.enable(Vi("#validate-form button[type=submit]"))
                        }
                    }).catch((function(e) {
                        l(),
                        window.Scandic.DisableEnableButton.enable(Vi("#validate-form button[type=submit]"))
                    }
                    ))
                };
                e.securityCheckModifySweetAlert = function(t, i) {
                    var n = e.AncillaryService.ancillaryData.bookingInformation.bookingId
                      , l = !!document.getElementById(n) && document.getElementById(n).value
                      , c = n;
                    e.alertType = t,
                    i && (n = c = i.currentTarget.parentElement.querySelector(".bookingId-multiroom").value,
                    l = !!document.getElementById(n) && document.getElementById(n).value,
                    -1 !== n.indexOf("-") && 1 === n.split("-")[1] && (n = n.split("-")[0])),
                    Vi("#confirmation-form").remove(),
                    Wi(".confirmation-form h2.title").text(e.validationForm.title),
                    Wi(".confirmation-form p.desc").text(e.validationForm.desc),
                    "false" == l ? Ui.fire({
                        html: e.validationForm.form,
                        showConfirmButton: !0,
                        showCancelButton: !0,
                        showLoaderOnConfirm: !0,
                        buttonsStyling: !0,
                        confirmButtonColor: null,
                        confirmButtonText: e.validationForm.confirmBtnText,
                        cancelButtonText: e.validationForm.cancelBtnText,
                        animation: !1,
                        cancelButtonColor: "#00838e",
                        customClass: "form_inverted",
                        showCloseButton: !0,
                        reverseButtons: !0,
                        onOpen: function() {
                            var t = Ui.getContent()
                              , i = t.querySelector.bind(t)
                              , n = i("#firstName")
                              , a = i("#lastName")
                              , r = i("#emailaddress");
                            n.addEventListener("blur", (function() {
                                o(0, ".firstNameErrorRequired", ".firstNameErropattern", e.validName, n.value)
                            }
                            )),
                            a.addEventListener("blur", (function() {
                                o(0, ".lastNameErrorRequired", ".lastNameErrorpattern", e.validName, a.value)
                            }
                            )),
                            r.addEventListener("blur", (function() {
                                o(0, ".emailErrorRequired", ".emailErrorpattern", e.validEmail, r.value)
                            }
                            ))
                        },
                        onBeforeOpen: function() {
                            s(".firstNameErrorRequired", ".firstNameErropattern"),
                            s(".lastNameErrorRequired", ".lastNameErrorpattern"),
                            s(".emailErrorRequired", ".emailErrorpattern")
                        },
                        preConfirm: function(e) {
                            return r(Ui.getContent(), c),
                            !1
                        },
                        allowOutsideClick: function() {
                            return !Ui.isLoading()
                        }
                    }) : function(t) {
                        "cancel" === e.alertType ? a(t) : "changeDate" === e.alertType ? Gi.toggle((function() {
                            window.location.href = Vi("#modify-date-link").attr("data-url")
                        }
                        )) : Gi.toggle((function() {
                            var e = "#" + t.currentTarget.parentElement.querySelector(".modifyContactDetails").id;
                            window.location.href = Vi(e).attr("data-url")
                        }
                        ))
                    }(i)
                }
                ;
                var s = function(e, t) {
                    Wi(e).css("display", "none"),
                    Wi(t).css("display", "none")
                }
                  , l = function() {
                    Wi(".confirmation-form h2.title").html('<span class="error-text" style="font-size: inherit; font-weight: inherit;">' + e.validationForm.errorTitle + "</span>"),
                    Wi(".confirmation-form p.desc").text(e.validationForm.errorDesc)
                };
                e.logInToModifyDatesAlert = function(t) {
                    "true" === t && Ui.fire({
                        title: e.myBookingSweetAlertData.ChangeDateTitle,
                        html: e.myBookingSweetAlertData.ChangeDateText,
                        confirmButtonText: e.myBookingSweetAlertData.ConfirmationButtonText,
                        confirmButtonColor: "#00838e",
                        showCancelButton: !1,
                        animation: !1,
                        allowOutsideClick: !0,
                        buttonsStyling: !0,
                        customClass: "inverted_modify_details",
                        showLoaderOnConfirm: !1,
                        reverseButtons: !0
                    })
                }
                ;
                var c = document.getElementById("confirmation-form");
                if (c) {
                    c.querySelector("#firstName").addEventListener("blur", (function(t) {
                        o(0, ".firstNameErrorRequired", ".firstNameErropattern", e.validName, t.target.value)
                    }
                    )),
                    c.querySelector("#lastName").addEventListener("blur", (function(t) {
                        o(0, ".lastNameErrorRequired", ".lastNameErrorpattern", e.validName, t.target.value)
                    }
                    )),
                    c.querySelector("#emailaddress").addEventListener("blur", (function(t) {
                        o(0, ".emailErrorRequired", ".emailErrorpattern", e.validEmail, t.target.value)
                    }
                    )),
                    Vi("#validate-form button[type=submit]").on("click", (function(e) {
                        e.preventDefault(),
                        d(),
                        r(c)
                    }
                    ));
                    var d = function() {
                        o(0, ".firstNameErrorRequired", ".firstNameErropattern", e.validName, document.querySelector("#firstName").value),
                        o(0, ".lastNameErrorRequired", ".lastNameErrorpattern", e.validName, document.querySelector("#lastName").value),
                        o(0, ".emailErrorRequired", ".emailErrorpattern", e.validEmail, document.querySelector("#emailaddress").value)
                    }
                }
            }
            ]);
            var Qi = i(19755);
            angular.module("xenaApp").controller("MeetingRoomInquiryWidgetController", ["$scope", "calendarService", function(e, t) {
                var i;
                e.validEmail = $i.emailRegexp,
                e.validPhoneNumber = $i.phone.loose,
                e.validMeetingInquiryMessage = $i.noHtmlTags,
                e.today = new Date,
                e.fromDate = new Date,
                e.toDate = new Date,
                e.calendarService = t,
                e.serviceData = {},
                e.calendarService.init(e.serviceData, {}, e.fromDate, e.toDate, {}),
                e.$watch("fromDate", (function(t) {
                    e.minToDate = i(),
                    e.toDate < e.minToDate && (e.toDate = new Date(e.minToDate.getTime()))
                }
                ), !0),
                i = function() {
                    var t = new Date(e.fromDate.getTime());
                    return t.setDate(t.getDate()),
                    t
                }
                ,
                e.callCheckAvailabilityEvent = function(e) {
                    (0,
                    m.LO)()
                }
                ,
                e.resetToDefaultState = function(t) {
                    Qi("#meetingRoomInquiryForm").valid() || Qi(".meetingForm").each((function(t, i) {
                        Qi(i).valid() || (Qi(i).val() || (e[Qi(i).attr("name")] = Qi(i).val()),
                        Qi(i).val(Qi(i).val()).trigger("input"))
                    }
                    )),
                    e.serviceData.isDefaultView = !1,
                    t ? (Qi("#widgetdestination").val(""),
                    e.q = "") : e.q = Qi("#widgetdestination").val()
                }
                ,
                e.minToDate = i()
            }
            ]);
            var Yi = i(19755)
              , Ji = i(19755)
              , Xi = i(86455);
            angular.module("xenaApp").controller("ProfileCreditCardsController", ["$scope", "$http", function(e, t) {
                e.performedOperations = [],
                e.$watch("performedOperations", (function() {
                    e.performedOperationsJson = angular.toJson(e.performedOperations)
                }
                ), !0),
                e.isCardRemoved = function(t) {
                    return e.performedOperations.some((function(e) {
                        return e.key === t
                    }
                    ))
                }
                ,
                e.removeCardWithConfirmation = function(i, n) {
                    var a = n.currentTarget;
                    Xi.fire({
                        title: a.getAttribute("data-js-confirm-title"),
                        html: a.getAttribute("data-confirm-text"),
                        showCancelButton: !0,
                        confirmButtonText: a.getAttribute("data-confirm-ok"),
                        cancelButtonText: a.getAttribute("data-confirm-cancel"),
                        confirmButtonColor: "#00838e",
                        animation: "slide-from-top",
                        allowOutsideClick: !0,
                        buttonsStyling: !0,
                        customClass: "remove-card",
                        showLoaderOnConfirm: !1
                    }).then((function(n) {
                        n.value && function(i, n) {
                            if (0 != Yi("#credit-card-via-api").val()) {
                                Yi("#loader").length < 1 ? Yi("body").append('\n\t\t\t\t\t<div id="loader" class="modal" style="display: block;">\n\t\t\t\t\t\t<div class="modal__circular-loader-container">\n\t\t\t\t\t\t\t<div class="circular-loader circular-loader--light circular-loader--large"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="modal__background-layer"></div>\n\t\t\t\t\t</div>\n\t\t\t\t') : Yi("#loader").show();
                                var a = {
                                    id: i
                                }
                                  , o = function(e) {
                                    Yi("#loader").hide(),
                                    Yi("p.speech-bubble").remove(),
                                    Yi(".l-combo-main-sidebar-small__main > nav").after('\n\t\t\t\t\t<p class="speech-bubble speech-bubble--short speech-bubble--point-down">\n\t\t\t\t\t\t'.concat(Yi("#cc-delete-failure-msg").val(), "\n\t\t\t\t\t</p>\n\t\t\t\t\t")),
                                    Ji("html, body").animate({
                                        scrollTop: Ji(".l-combo-main-sidebar-small__main > p.speech-bubble").offset().top - 50
                                    }, "slow", (function() {
                                        Yi(".l-combo-main-sidebar-small__main > p.speech-bubble").focus()
                                    }
                                    )),
                                    (0,
                                    m.s6)({
                                        number_of_saved_cards: Yi(".credit-card").length || 0,
                                        card_action_status: "no"
                                    })
                                };
                                t.post("/ajax/profile/deletecreditcard", a).then((function(t) {
                                    Yi("#loader").hide(),
                                    t.data.Success ? (Yi("p.speech-bubble").remove(),
                                    e.performedOperations.push({
                                        key: i
                                    }),
                                    (0,
                                    m.s6)({
                                        number_of_saved_cards: Yi(".credit-card").length - 1 || 0,
                                        card_action_status: "yes"
                                    })) : o(t.data)
                                }
                                ), o)
                            } else
                                e.performedOperations.push({
                                    key: i
                                })
                        }(i)
                    }
                    ))
                }
            }
            ]);
            i(81222),
            i(10712),
            i(1466),
            i(95454),
            i(91519);
            var Ki = i(19755);
            angular.module("xenaApp").directive("showMore", (function() {
                return {
                    restrict: "A",
                    link: function(e, t, i) {
                        var n;
                        Ki(".toggle-btn", t).on("click", (n = t,
                        function() {
                            var e = Ki(".togglable-table-item", n)
                              , t = 0;
                            si(Ki(this)),
                            e.first().is(":visible") ? (Ki(e.get().reverse()).each((function() {
                                var e = Ki(this);
                                setTimeout((function() {
                                    e.fadeOut(50)
                                }
                                ), t),
                                t += 3
                            }
                            )),
                            Ki("html, body").animate({
                                scrollTop: n.offset().top - 170
                            }, 3 * e.length)) : e.each((function() {
                                var e = Ki(this);
                                setTimeout((function() {
                                    e.fadeIn()
                                }
                                ), t),
                                t += 3
                            }
                            ))
                        }
                        ))
                    }
                }
            }
            )),
            angular.module("xenaApp").directive("creditCardNumber", (function() {
                return {
                    require: "ngModel",
                    link: function(e, t, i, n) {
                        t.on("blur", (function() {
                            e[i.ngModel] = function(e) {
                                if (void 0 !== e) {
                                    var t = e.replace(/\s/g, "").replace(/-/g, "");
                                    return t === e ? e : t
                                }
                            }(e[i.ngModel])
                        }
                        )),
                        e.$watch("cardType", (function() {
                            n.$validate()
                        }
                        )),
                        n.$validators.creditCardNumber = function(t, i) {
                            return !1 === e.creditCardRequired || (void 0 === e.cardType || "" === e.cardType || void 0 === i || function(e, t, i) {
                                var n = new Array;
                                n[0] = {
                                    name: "Visa",
                                    length: "13,16",
                                    prefixes: "4",
                                    checkdigit: !0
                                },
                                n[1] = {
                                    name: "MasterCard",
                                    length: "16",
                                    prefixes: "51,52,53,54,55",
                                    checkdigit: !0
                                },
                                n[2] = {
                                    name: "DinersClub",
                                    length: "14,16",
                                    prefixes: "36,38,54,55",
                                    checkdigit: !0
                                },
                                n[3] = {
                                    name: "AmericanExpress",
                                    length: "15",
                                    prefixes: "34,37",
                                    checkdigit: !0
                                },
                                n[4] = {
                                    name: "Dankort",
                                    length: "16",
                                    prefixes: "5019",
                                    checkdigit: !1
                                };
                                for (var a = -1, o = 0; o < n.length; o++)
                                    if (t.toLowerCase() == n[o].name.toLowerCase()) {
                                        a = o;
                                        break
                                    }
                                if (-1 == a)
                                    return !1;
                                if (0 == e.length)
                                    return !1;
                                var r = e = e.replace(/\s/g, "")
                                  , s = null;
                                if (i.search("_") >= 1)
                                    switch (i.substring(i.indexOf("_") - 1, i.indexOf("_"))) {
                                    case "0":
                                        s = cd0Value;
                                        break;
                                    case "1":
                                        s = cd1Value;
                                        break;
                                    case "2":
                                        s = cd2Value;
                                        break;
                                    case "3":
                                        s = cd3Value
                                    }
                                else
                                    s = "";
                                if (e == s)
                                    return !0;
                                if (!/^[0-9]{13,19}$/.exec(r))
                                    return !1;
                                if (n[a].checkdigit) {
                                    var l, c = 0, d = 1;
                                    for (o = r.length - 1; o >= 0; o--)
                                        (l = Number(r.charAt(o)) * d) > 9 && (c += 1,
                                        l -= 10),
                                        c += l,
                                        d = 1 == d ? 2 : 1;
                                    if (c % 10 != 0)
                                        return !1
                                }
                                if ("5490997771092064" == r)
                                    return !1;
                                var u = !1
                                  , p = !1
                                  , m = new Array
                                  , h = new Array;
                                for (m = n[a].prefixes.split(","),
                                o = 0; o < m.length; o++)
                                    new RegExp("^" + m[o]).test(r) && (p = !0);
                                if (!p)
                                    return !1;
                                for (h = n[a].length.split(","),
                                d = 0; d < h.length; d++)
                                    r.length == h[d] && (u = !0);
                                return !!u || !1
                            }(i, e.cardType, ""))
                        }
                    }
                }
            }
            ));
            i(99492),
            i(36185),
            i(17163),
            i(21306),
            i(6762),
            i(50867),
            i(60979);
            angular.module("xenaApp").directive("track", (function() {
                return {
                    restrict: "A",
                    link: function(e, t, i) {
                        i.$$element.click(function(e) {
                            return function() {
                                var t, i, n;
                                (!(n = angular.isString(e.track) ? angular.fromJson(e.track.split("'").join('"')) : e.track).hasOwnProperty("trackEvent") || n.trackEvent) && (t = n.trackingInformation,
                                i = n.trackingEvent,
                                (0,
                                m.ay)(i, t))
                            }
                        }(i))
                    }
                }
            }
            ));
            i(20905),
            i(70579),
            i(62485),
            i(40494);
            var Zi = i(60885)
              , en = i.n(Zi)
              , tn = i(19755);
            !function() {
                var e = {}
                  , t = !1;
                function i(e) {
                    this.element = tn(e),
                    this.searchField = this.element.find('input[type="text"]'),
                    this.searchAction = this.element.data("search-action"),
                    this.emptyText = this.element.data("search-empty") || ""
                }
                function n(e, t) {
                    this.searchType = e,
                    this.language = t,
                    this.subscribers = [],
                    this.dataFiles = {
                        hotels: "hotels",
                        hotelsAndCities: "citiesandhotels",
                        default: "all"
                    }
                }
                i.prototype.getFormattedEmptyText = function(e) {
                    return this.emptyText.length ? '<div class="tt-no-result">' + this.emptyText.replace("{0}", '"<strong>' + e + '</strong>"') + "</div>" : '<div class="tt-no-result">Sorry, we cannot find "<strong>' + e + '</strong>"</div>'
                }
                ,
                i.prototype.getSuggestionTemplate = function(e) {
                    var t = "nordicsea";
                    return "HotelPage" === e.Type ? t = "crocus" : "CityPage" === e.Type && (t = "dawn"),
                    '<div class="needsclick"><svg class="icon icon--xs icon--' + t + '" viewBox="0 0 32 32"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/_static/img/icons/sprites.svg#icon-map-marker"></use></svg>' + e.Name + "</div>"
                }
                ,
                i.prototype.getDefaultSuggestion = function() {
                    if (angular) {
                        var e = angular.element(this.searchField[0]).scope();
                        if (e && e.serviceData)
                            return {
                                Name: e.serviceData.searchQuery,
                                Type: e.serviceData.destinationType,
                                Id: e.serviceData.destination
                            }
                    }
                    return null
                }
                ,
                i.prototype.forceOpenTypeahead = function() {
                    var e = tn.Event("keyleft");
                    e.keyCode = e.which = 37,
                    this.searchField.trigger(e)
                }
                ,
                i.prototype.visitUrl = function(e) {
                    document.location.href = e
                }
                ,
                i.prototype.updateAngularScope = function(e) {
                    if (angular) {
                        var t = angular.element(this.searchField[0]).scope()
                          , i = tn('*[data-js="widget-icon"]');
                        t && t.serviceData && (e ? ((tn(".hotel-meetings-page")[0] || tn(".global-meeting-page")[0]) && (ki(),
                        i.hide(),
                        e.isPilotHotel = !1,
                        e.isDefaultView = !0),
                        t.serviceData.searchQuery = e.Name || t.serviceData.searchQuery,
                        t.serviceData.destinationType = e.Type ? this.inputName(e.Type) : t.serviceData.destinationType,
                        t.serviceData.destination = e.Id || t.serviceData.destination,
                        t.serviceData.isPilotHotel = !!e.isPilotHotel && e.isPilotHotel,
                        t.serviceData.isDefaultView = !!e.isDefaultView && e.isDefaultView,
                        "hotel" == t.serviceData.destinationType && (t.serviceData.trackingDestination = e.Url.split("/")[3])) : (t.serviceData.searchQuery = "",
                        tn(window).width() < window.ScreenHelper.CSS_LARGE_BREAKPOINT && (t.serviceData.isDefaultView = !1)),
                        t.$apply())
                    }
                }
                ,
                i.prototype.preventSearchCriteriaSave = function() {
                    if (angular) {
                        var e = angular.element(this.searchField[0]).scope();
                        e && e.serviceData && (e.serviceData.preventSearchCriteriaSave = !0,
                        e.$apply())
                    }
                }
                ,
                i.prototype.inputName = function(e) {
                    return "HotelPage" === e || "hotel" === e ? "hotel" : "city"
                }
                ,
                i.prototype.init = function(e) {
                    var i = this;
                    this.searchField.typeahead({
                        hint: !1,
                        highlight: !0,
                        autoselect: !0,
                        minLength: 1
                    }, {
                        name: "citiesAndHotels",
                        displayKey: "Name",
                        source: function(t, i) {
                            t = t.replace(/scandic/gi, ""),
                            e.search(t, (function(e) {
                                i(e)
                            }
                            ))
                        },
                        templates: {
                            empty: function(e) {
                                return i.getFormattedEmptyText(e.query)
                            },
                            suggestion: i.getSuggestionTemplate
                        },
                        limit: 30
                    }).on("typeahead:selected", (function(e, t) {
                        i.currentSuggestion = t,
                        "visit-url" === i.searchAction && i.visitUrl(t.Url),
                        i.updateAngularScope(i.currentSuggestion)
                    }
                    )).on("typeahead:change", (function(e, t) {
                        "" === t && (tn(".check-availability_btn").removeAttr("href"),
                        i.currentSuggestion = null,
                        i.searchField.val(t),
                        i.updateAngularScope(t))
                    }
                    )).on("typeahead:render", (function(e, t) {
                        i.currentSuggestion = t
                    }
                    )).on("typeahead:autocomplete", (function(e, t) {
                        i.searchField.typeahead("close")
                    }
                    )).on("typeahead:close", (function() {
                        i.currentSuggestion && (i.searchField.val(i.currentSuggestion.Name),
                        "form-input" !== i.searchAction && "visit-url" !== i.searchAction || i.updateAngularScope(i.currentSuggestion))
                    }
                    )),
                    i.searchField.on("focus keydown", (function(e) {
                        tn(this).val().length > 0 && (9 === e.keyCode ? i.searchField.typeahead("close") : i.forceOpenTypeahead()),
                        t || ((0,
                        m.fe)(),
                        t = !0)
                    }
                    )),
                    i.searchField.closest("form").on("submit", (function(e) {
                        i.currentSuggestion && (i.searchField.typeahead("close"),
                        "visit-url" === i.searchAction && i.visitUrl(i.currentSuggestion.Url)),
                        "visit-url" !== i.searchAction && i.currentSuggestion || (i.preventSearchCriteriaSave(),
                        e.preventDefault())
                    }
                    )),
                    setTimeout((function() {
                        i.currentSuggestion = i.getDefaultSuggestion(i.searchField[0])
                    }
                    ))
                }
                ,
                n.prototype.init = function() {
                    var e = this;
                    fetch(e.getDataSourceUrl()).then((function(t) {
                        t.json().then((function(t) {
                            e.bloodHound = new (en())({
                                datumTokenizer: function(e) {
                                    return en().tokenizers.whitespace(e.tokens.join(" "))
                                },
                                queryTokenizer: en().tokenizers.whitespace,
                                local: t,
                                sufficient: 1
                            }),
                            e.bloodHound.initialize();
                            for (var i = e.subscribers.length; i--; )
                                "function" == typeof e.subscribers[i].init && e.subscribers[i].init(e.bloodHound)
                        }
                        ))
                    }
                    ))
                }
                ,
                n.prototype.addSubscriber = function(e) {
                    this.subscribers.push(e)
                }
                ,
                n.prototype.getDataSourceUrl = function() {
                    var e;
                    return e = "hotels" === this.searchType || "hotelsAndCities" === this.searchType ? this.dataFiles[this.searchType] : this.dataFiles.default,
                    window.location.origin + "/ta/" + e + "-" + this.language
                }
                ,
                tn(document).ready((function() {
                    var t = tn('*[data-js="hotel-search-bar"]');
                    if (t.length)
                        for (var a in t.each((function() {
                            var t = tn(this).data("search-type")
                              , a = tn(this).data("search-language")
                              , o = new i(this);
                            e[t] || (e[t] = new n(t,a)),
                            e[t].addSubscriber(o),
                            tn(this).data("search-widget", o)
                        }
                        )),
                        e)
                            e.hasOwnProperty(a) && e[a].init()
                }
                ))
            }(),
            tn(document).ready((function() {
                tn('*[data-js="search-list-expander"]').on("click", (function(e) {
                    "A" !== e.target.nodeName && (e.preventDefault(),
                    tn(this).parent().toggleClass("is-expanded"))
                }
                ))
            }
            ));
            i(78079)
        },
        98780: function(e, t, i) {
            "use strict";
            i.d(t, {
                ay: function() {
                    return s
                },
                $4: function() {
                    return p
                },
                fe: function() {
                    return m
                },
                LO: function() {
                    return h
                },
                W5: function() {
                    return f
                },
                Jf: function() {
                    return v
                },
                UQ: function() {
                    return b
                },
                s6: function() {
                    return w
                },
                bV: function() {
                    return S
                },
                Z6: function() {
                    return _
                },
                py: function() {
                    return C
                },
                ke: function() {
                    return k
                },
                fR: function() {
                    return T
                },
                j8: function() {
                    return x
                }
            });
            var n = i(19755);
            function a(e, t) {
                var i = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var n = Object.getOwnPropertySymbols(e);
                    t && (n = n.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }
                    ))),
                    i.push.apply(i, n)
                }
                return i
            }
            function o(e) {
                for (var t = 1; t < arguments.length; t++) {
                    var i = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? a(Object(i), !0).forEach((function(t) {
                        r(e, t, i[t])
                    }
                    )) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : a(Object(i)).forEach((function(t) {
                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))
                    }
                    ))
                }
                return e
            }
            function r(e, t, i) {
                return t in e ? Object.defineProperty(e, t, {
                    value: i,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0
                }) : e[t] = i,
                e
            }
            function s(e, t) {
                var i = {};
                t && (i = t),
                i.event = e,
                window.datalayer.push(i),
                void 0 !== window._satellite && window._satellite.track(e)
            }
            function l(e) {
                return "[object Date]" === Object.prototype.toString.call(e)
            }
            function c(e, t) {
                for (var i = e.split("&"), n = 0; n < i.length; n++) {
                    var a = i[n].split("=");
                    if (decodeURIComponent(a[0]) === t)
                        return decodeURIComponent(a[1])
                }
                return "information missing"
            }
            function d(e) {
                var t = e.split("-");
                return e = new Date(t[0],t[1] - 1,t[2])
            }
            function u(e) {
                return e && e.length > 0 ? e : "n/a"
            }
            function p() {
                var e = "information missing"
                  , t = n('*[data-js="inquiry-widget"]')
                  , i = c(t.serialize(), "fromDate")
                  , a = c(t.serialize(), "toDate")
                  , o = n("#MeetingRoomId").find("option:selected").text()
                  , r = t.find('*[data-js="destination"]').val()
                  , s = t.find('*[data-js="hotelOperaId"]').val()
                  , p = t.find('*[data-js="hotelName"]').val();
                p || (p = c(t.serialize(), "q").replace("+", " ")),
                r || (r = c(t.serialize(), "hotelDestination").replace("+", " ")),
                s || (s = c(t.serialize(), "hotelOperaId").replace("+", " ")),
                a = d(a),
                i = d(i);
                var m = {
                    event: "meetinginquiresent",
                    meetingpagetype: "meetinginquiresent"
                };
                m.meetingarrivalyear = function(e, t) {
                    var i = t;
                    return l(e) && (i = (i = e.getFullYear()).toString()),
                    i
                }(i, e).toLowerCase(),
                m.meetingarrivalmonth = function(e, t) {
                    var i = t;
                    return l(e) && (i = (i = e.getMonth() + 1) < 10 ? "0" + i.toString() : i.toString()),
                    i
                }(i, e).toLowerCase(),
                m.meetingarrivalday = function(e, t) {
                    var i = t;
                    return l(e) && (i = (i = e.getDate()) < 10 ? "0" + i.toString() : i.toString()),
                    i
                }(i, e).toLowerCase(),
                m.meetingduration = function(e, t, i) {
                    var n = i;
                    return l(e) && l(t) && (n = (n = (t - e) / 864e5).toString()),
                    n
                }(i, a, e).toLowerCase(),
                m.meetingparticipant = c(t.serialize(), "NumberOfParticipants").toLowerCase(),
                m.meetingroom = o.toLowerCase(),
                m.meetingdestination = u(r).toLowerCase(),
                m.meetinghotelid = u(s).toLowerCase(),
                m.meetinghotelname = u(p).toLowerCase(),
                window.datalayer.push(m),
                void 0 !== window._satellite && window._satellite.track("meetinginquireend")
            }
            function m() {
                var e = n('*[data-js="inquiry-widget"]')
                  , t = e.find('*[data-js="destination"]').val()
                  , i = e.find('*[data-js="hotelOperaId"]').val()
                  , a = e.find('*[data-js="hotelName"]').val();
                a || (a = c(e.serialize(), "q").replace("+", " "));
                var o = {
                    event: "meetinginquireopen",
                    meetingpagetype: "meetinginquireopen"
                };
                o.meetingdestination = u(t).toLowerCase(),
                o.meetinghotelid = u(i).toLowerCase(),
                o.meetinghotelname = u(a).toLowerCase(),
                window.datalayer.push(o),
                void 0 !== window._satellite && window._satellite.track("meetinginquirestart")
            }
            function h(e) {
                var t = n('*[data-js="inquiry-widget"]')
                  , i = t.find('*[data-js="destination"]').val()
                  , a = t.find('*[data-js="operaId"]').val()
                  , o = t.find('*[data-js="hotelName"]').val()
                  , r = e;
                o || (o = c(t.serialize(), "q").replace("+", " "));
                var s = {
                    event: "meetingcheckavailabilityend",
                    meetingpagetype: "meetingcheckavailability"
                };
                s.meetingdestination = u(i).toLowerCase(),
                s.meetinghotelid = u(a).toLowerCase(),
                s.meetinghotelname = u(o).toLowerCase(),
                void 0 !== r && (s.meetingroomname = u(r).toLowerCase()),
                window.datalayer.push(s),
                void 0 !== window._satellite && window._satellite.track("meetingcheckavailabilityend")
            }
            function f() {
                g("paymentattemptstart")
            }
            function g(e) {
                var t = n('*[data-js="hotelId"]').val()
                  , i = n("#countryCode-0").find("option:selected").val()
                  , a = {};
                a.event = e,
                a.paymentcustomercountry = u(i).toLowerCase(),
                a.paymenthotelid = u(t).toLowerCase(),
                "paymentattemptstart" == e && (a = function(e) {
                    var t, i = !1, n = !1;
                    if (!document.querySelector(".payment-options__item.selected"))
                        return e;
                    document.querySelector(".credit-card-form__saved .payment-options__item.selected") ? (i = !0,
                    n = !0,
                    t = document.querySelector(".credit-card-form__saved .payment-options__item.selected label").classList[0].split("--")[1]) : t = (n = -1 != document.querySelector(".payment-options__item.selected label").classList[1].indexOf("--new")) ? "new_card" : "other_payment_method";
                    return e = o(o({}, e), {}, {
                        issavedcreditcard: i,
                        iscreditcard: n,
                        paymentstatus: "attempt",
                        paymenttype: t
                    })
                }(a)),
                window.datalayer.push(a),
                void 0 !== window._satellite && window._satellite.track(e)
            }
            function v(e) {
                y("mapclick", e)
            }
            function b(e) {
                y("mapviewroomsclick", e)
            }
            function y(e, t) {
                var i = {};
                i.event = e,
                i.maptype = n(t).find(".price__currency").length > 0 ? "hotelPrice" : "hotelname",
                n(t).find(".hotelId")[0] && (i.hotelid = n(t).find(".hotelId").length > 0 ? n(t).find(".hotelId")[0].value : null),
                "hotelPrice" === i.maptype && (i.hotelprice = n(t).find(".webtest-main-price").text().split(" ", 1)[0],
                i.hotelcurrency = n(t).find(".price__currency").text()),
                window.datalayer.push(i),
                void 0 !== window._satellite && window._satellite.track(e)
            }
            function w(e) {
                var t = {
                    event: "credit_card_action",
                    credit_card_actions: "delete_card"
                };
                t.number_of_saved_cards = e.number_of_saved_cards.toString(),
                t.card_action_status = e.card_action_status,
                window.datalayer.push(t),
                void 0 !== window._satellite && window._satellite.track("credit_card_action")
            }
            function S(e) {
                var t = {
                    event: "view_and_apply_click"
                };
                t.job_position = e.jobPosition,
                window.datalayer.push(t),
                void 0 !== window._satellite && window._satellite.track("view_and_apply_click")
            }
            function _(e) {
                var t = window.datalayer[0];
                t.no_of_jobsearch_result = e,
                window.datalayer.push(t),
                void 0 !== window._satellite && window._satellite.track("joblisting")
            }
            function C() {
                var e = {
                    event: "available_positions_signup"
                };
                window.datalayer.push(e),
                void 0 !== window._satellite && window._satellite.track("available_positions_signup")
            }
            function k(e, t) {
                var i = window.datalayer[0];
                i.event = "jobfiltersearch",
                i.no_of_jobsearch_result = e,
                Object.keys(t).forEach((function(e) {
                    i[e] = t[e]
                }
                )),
                window.datalayer.push(i),
                void 0 !== window._satellite && window._satellite.track("joblisting")
            }
            function T() {
                var e = {
                    event: "memberregistration"
                };
                window.datalayer.push(e),
                void 0 !== window._satellite && window._satellite.track("memberregistration")
            }
            function x(e) {
                e && "undefined" != typeof _etmc && (_etmc.push(["setOrgId", document.getElementById("salesforce-script").dataset.orgid]),
                e.userMemberId ? (_etmc.push(["setUserInfo", {
                    email: e.userMemberId
                }]),
                _etmc.push(["trackPageView", {
                    item: e.pageId,
                    search: e.pageUrl
                }])) : (_etmc.push(["doNotTrack"]),
                _etmc.push(["trackPageView"])))
            }
        },
        3517: function(e, t, i) {
            "use strict";
            var n = i(19755)
              , a = i(19755);
            function o(e) {
                return o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                    return typeof e
                }
                : function(e) {
                    return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                }
                ,
                o(e)
            }
            function r(e) {
                var t, i, r, s = function i(r, s) {
                    if (!(this instanceof i))
                        return new i(r,s);
                    var l = {
                        direction: "horizontal",
                        touchEventsTarget: "container",
                        initialSlide: 0,
                        speed: 300,
                        autoplay: !1,
                        autoplayDisableOnInteraction: !0,
                        autoplayStopOnLast: !1,
                        iOSEdgeSwipeDetection: !1,
                        iOSEdgeSwipeThreshold: 20,
                        freeMode: !1,
                        freeModeMomentum: !0,
                        freeModeMomentumRatio: 1,
                        freeModeMomentumBounce: !0,
                        freeModeMomentumBounceRatio: 1,
                        freeModeSticky: !1,
                        freeModeMinimumVelocity: .02,
                        autoHeight: !1,
                        setWrapperSize: !1,
                        virtualTranslate: !1,
                        effect: "slide",
                        coverflow: {
                            rotate: 50,
                            stretch: 0,
                            depth: 100,
                            modifier: 1,
                            slideShadows: !0
                        },
                        flip: {
                            slideShadows: !0,
                            limitRotation: !0
                        },
                        cube: {
                            slideShadows: !0,
                            shadow: !0,
                            shadowOffset: 20,
                            shadowScale: .94
                        },
                        fade: {
                            crossFade: !1
                        },
                        parallax: !1,
                        scrollbar: null,
                        scrollbarHide: !0,
                        scrollbarDraggable: !1,
                        scrollbarSnapOnRelease: !1,
                        keyboardControl: !1,
                        mousewheelControl: !1,
                        mousewheelReleaseOnEdges: !1,
                        mousewheelInvert: !1,
                        mousewheelForceToAxis: !1,
                        mousewheelSensitivity: 1,
                        hashnav: !1,
                        breakpoints: void 0,
                        spaceBetween: 0,
                        slidesPerView: 1,
                        slidesPerColumn: 1,
                        slidesPerColumnFill: "column",
                        slidesPerGroup: 1,
                        centeredSlides: !1,
                        slidesOffsetBefore: 0,
                        slidesOffsetAfter: 0,
                        roundLengths: !1,
                        touchRatio: 1,
                        touchAngle: 45,
                        simulateTouch: !0,
                        shortSwipes: !0,
                        longSwipes: !0,
                        longSwipesRatio: .5,
                        longSwipesMs: 300,
                        followFinger: !0,
                        onlyExternal: !1,
                        threshold: 0,
                        touchMoveStopPropagation: !0,
                        uniqueNavElements: !0,
                        pagination: null,
                        paginationElement: "span",
                        paginationClickable: !1,
                        paginationHide: !1,
                        paginationBulletRender: null,
                        paginationProgressRender: null,
                        paginationFractionRender: null,
                        paginationCustomRender: null,
                        paginationType: "bullets",
                        resistance: !0,
                        resistanceRatio: .85,
                        nextButton: null,
                        prevButton: null,
                        watchSlidesProgress: !1,
                        watchSlidesVisibility: !1,
                        grabCursor: !1,
                        preventClicks: !0,
                        preventClicksPropagation: !0,
                        slideToClickedSlide: !1,
                        lazyLoading: !1,
                        lazyLoadingInPrevNext: !1,
                        lazyLoadingInPrevNextAmount: 1,
                        lazyLoadingOnTransitionStart: !1,
                        preloadImages: !0,
                        updateOnImagesReady: !0,
                        loop: !1,
                        loopAdditionalSlides: 0,
                        loopedSlides: null,
                        control: void 0,
                        controlInverse: !1,
                        controlBy: "slide",
                        allowSwipeToPrev: !0,
                        allowSwipeToNext: !0,
                        swipeHandler: null,
                        noSwiping: !0,
                        noSwipingClass: "swiper-no-swiping",
                        slideClass: "swiper-slide",
                        slideActiveClass: "swiper-slide-active",
                        slideVisibleClass: "swiper-slide-visible",
                        slideDuplicateClass: "swiper-slide-duplicate",
                        slideNextClass: "swiper-slide-next",
                        slidePrevClass: "swiper-slide-prev",
                        wrapperClass: "swiper-wrapper",
                        bulletClass: "swiper-pagination-bullet",
                        bulletActiveClass: "swiper-pagination-bullet-active",
                        buttonDisabledClass: "swiper-button-disabled",
                        paginationCurrentClass: "swiper-pagination-current",
                        paginationTotalClass: "swiper-pagination-total",
                        paginationHiddenClass: "swiper-pagination-hidden",
                        paginationProgressbarClass: "swiper-pagination-progressbar",
                        observer: !1,
                        observeParents: !1,
                        a11y: !1,
                        prevSlideMessage: "Previous slide",
                        nextSlideMessage: "Next slide",
                        firstSlideMessage: "This is the first slide",
                        lastSlideMessage: "This is the last slide",
                        paginationBulletMessage: "Go to slide {{index}}",
                        runCallbacksOnInit: !0
                    }
                      , c = s && s.virtualTranslate;
                    s = s || {};
                    var d = {};
                    for (var u in s)
                        if ("object" !== o(s[u]) || null === s[u] || (s[u].nodeType || s[u] === window || s[u] === document || void 0 !== e && s[u]instanceof e || void 0 !== n && s[u]instanceof n))
                            d[u] = s[u];
                        else
                            for (var p in d[u] = {},
                            s[u])
                                d[u][p] = s[u][p];
                    for (var m in l)
                        if (void 0 === s[m])
                            s[m] = l[m];
                        else if ("object" === o(s[m]))
                            for (var h in l[m])
                                void 0 === s[m][h] && (s[m][h] = l[m][h]);
                    var f = this;
                    if (f.params = s,
                    f.originalParams = d,
                    f.classNames = [],
                    void 0 !== t && void 0 !== e && (t = e),
                    (void 0 !== t || (t = void 0 === e ? window.Dom7 || window.Zepto || a : e)) && (f.$ = t,
                    f.currentBreakpoint = void 0,
                    f.getActiveBreakpoint = function() {
                        if (!f.params.breakpoints)
                            return !1;
                        var e, t = !1, i = [];
                        for (e in "string" == typeof f.params.breakpoints && (f.params.breakpoints = JSON.parse(f.params.breakpoints)),
                        f.params.breakpoints)
                            f.params.breakpoints.hasOwnProperty(e) && i.push(e);
                        i.sort((function(e, t) {
                            return parseInt(e, 10) > parseInt(t, 10)
                        }
                        ));
                        for (var n = 0; n < i.length; n++)
                            (e = i[n]) >= window.innerWidth && !t && (t = e);
                        return t || "max"
                    }
                    ,
                    f.setBreakpoint = function() {
                        var e = f.getActiveBreakpoint();
                        if (e && f.currentBreakpoint !== e) {
                            var t = e in f.params.breakpoints ? f.params.breakpoints[e] : f.originalParams
                              , i = f.params.loop && t.slidesPerView !== f.params.slidesPerView;
                            for (var n in t)
                                f.params[n] = t[n];
                            f.currentBreakpoint = e,
                            i && f.destroyLoop && f.reLoop(!0)
                        }
                    }
                    ,
                    f.params.breakpoints && f.setBreakpoint(),
                    f.container = t(r),
                    0 !== f.container.length)) {
                        if (f.container.length > 1) {
                            var g = [];
                            return f.container.each((function() {
                                g.push(new i(this,s))
                            }
                            )),
                            g
                        }
                        f.container[0].swiper = f,
                        f.container.data("swiper", f),
                        f.classNames.push("swiper-container-" + f.params.direction),
                        f.params.freeMode && f.classNames.push("swiper-container-free-mode"),
                        f.support.flexbox || (f.classNames.push("swiper-container-no-flexbox"),
                        f.params.slidesPerColumn = 1),
                        f.params.autoHeight && f.classNames.push("swiper-container-autoheight"),
                        (f.params.parallax || f.params.watchSlidesVisibility) && (f.params.watchSlidesProgress = !0),
                        ["cube", "coverflow", "flip"].indexOf(f.params.effect) >= 0 && (f.support.transforms3d ? (f.params.watchSlidesProgress = !0,
                        f.classNames.push("swiper-container-3d")) : f.params.effect = "slide"),
                        "slide" !== f.params.effect && f.classNames.push("swiper-container-" + f.params.effect),
                        "cube" === f.params.effect && (f.params.resistanceRatio = 0,
                        f.params.slidesPerView = 1,
                        f.params.slidesPerColumn = 1,
                        f.params.slidesPerGroup = 1,
                        f.params.centeredSlides = !1,
                        f.params.spaceBetween = 0,
                        f.params.virtualTranslate = !0,
                        f.params.setWrapperSize = !1),
                        "fade" !== f.params.effect && "flip" !== f.params.effect || (f.params.slidesPerView = 1,
                        f.params.slidesPerColumn = 1,
                        f.params.slidesPerGroup = 1,
                        f.params.watchSlidesProgress = !0,
                        f.params.spaceBetween = 0,
                        f.params.setWrapperSize = !1,
                        void 0 === c && (f.params.virtualTranslate = !0)),
                        f.params.grabCursor && f.support.touch && (f.params.grabCursor = !1),
                        f.wrapper = f.container.children("." + f.params.wrapperClass),
                        f.params.pagination && (f.paginationContainer = t(f.params.pagination),
                        f.params.uniqueNavElements && "string" == typeof f.params.pagination && f.paginationContainer.length > 1 && 1 === f.container.find(f.params.pagination).length && (f.paginationContainer = f.container.find(f.params.pagination)),
                        "bullets" === f.params.paginationType && f.params.paginationClickable ? f.paginationContainer.addClass("swiper-pagination-clickable") : f.params.paginationClickable = !1,
                        f.paginationContainer.addClass("swiper-pagination-" + f.params.paginationType)),
                        (f.params.nextButton || f.params.prevButton) && (f.params.nextButton && (f.nextButton = t(f.params.nextButton),
                        f.params.uniqueNavElements && "string" == typeof f.params.nextButton && f.nextButton.length > 1 && 1 === f.container.find(f.params.nextButton).length && (f.nextButton = f.container.find(f.params.nextButton))),
                        f.params.prevButton && (f.prevButton = t(f.params.prevButton),
                        f.params.uniqueNavElements && "string" == typeof f.params.prevButton && f.prevButton.length > 1 && 1 === f.container.find(f.params.prevButton).length && (f.prevButton = f.container.find(f.params.prevButton)))),
                        f.isHorizontal = function() {
                            return "horizontal" === f.params.direction
                        }
                        ,
                        f.rtl = f.isHorizontal() && ("rtl" === f.container[0].dir.toLowerCase() || "rtl" === f.container.css("direction")),
                        f.rtl && f.classNames.push("swiper-container-rtl"),
                        f.rtl && (f.wrongRTL = "-webkit-box" === f.wrapper.css("display")),
                        f.params.slidesPerColumn > 1 && f.classNames.push("swiper-container-multirow"),
                        f.device.android && f.classNames.push("swiper-container-android"),
                        f.container.addClass(f.classNames.join(" ")),
                        f.translate = 0,
                        f.progress = 0,
                        f.velocity = 0,
                        f.lockSwipeToNext = function() {
                            f.params.allowSwipeToNext = !1
                        }
                        ,
                        f.lockSwipeToPrev = function() {
                            f.params.allowSwipeToPrev = !1
                        }
                        ,
                        f.lockSwipes = function() {
                            f.params.allowSwipeToNext = f.params.allowSwipeToPrev = !1
                        }
                        ,
                        f.unlockSwipeToNext = function() {
                            f.params.allowSwipeToNext = !0
                        }
                        ,
                        f.unlockSwipeToPrev = function() {
                            f.params.allowSwipeToPrev = !0
                        }
                        ,
                        f.unlockSwipes = function() {
                            f.params.allowSwipeToNext = f.params.allowSwipeToPrev = !0
                        }
                        ,
                        f.params.grabCursor && (f.container[0].style.cursor = "move",
                        f.container[0].style.cursor = "-webkit-grab",
                        f.container[0].style.cursor = "-moz-grab",
                        f.container[0].style.cursor = "grab"),
                        f.imagesToLoad = [],
                        f.imagesLoaded = 0,
                        f.loadImage = function(e, t, i, n, a) {
                            var o;
                            function r() {
                                a && a()
                            }
                            e.complete && n ? r() : t ? ((o = new window.Image).onload = r,
                            o.onerror = r,
                            i && (o.srcset = i),
                            t && (o.src = t)) : r()
                        }
                        ,
                        f.preloadImages = function() {
                            function e() {
                                null != f && (void 0 !== f.imagesLoaded && f.imagesLoaded++,
                                f.imagesLoaded === f.imagesToLoad.length && (f.params.updateOnImagesReady && f.update(),
                                f.emit("onImagesReady", f)))
                            }
                            f.imagesToLoad = f.container.find("img");
                            for (var t = 0; t < f.imagesToLoad.length; t++)
                                f.loadImage(f.imagesToLoad[t], f.imagesToLoad[t].currentSrc || f.imagesToLoad[t].getAttribute("src"), f.imagesToLoad[t].srcset || f.imagesToLoad[t].getAttribute("srcset"), !0, e)
                        }
                        ,
                        f.autoplayTimeoutId = void 0,
                        f.autoplaying = !1,
                        f.autoplayPaused = !1,
                        f.startAutoplay = function() {
                            return void 0 === f.autoplayTimeoutId && (!!f.params.autoplay && (!f.autoplaying && (f.autoplaying = !0,
                            f.emit("onAutoplayStart", f),
                            void H())))
                        }
                        ,
                        f.stopAutoplay = function(e) {
                            f.autoplayTimeoutId && (f.autoplayTimeoutId && clearTimeout(f.autoplayTimeoutId),
                            f.autoplaying = !1,
                            f.autoplayTimeoutId = void 0,
                            f.emit("onAutoplayStop", f))
                        }
                        ,
                        f.pauseAutoplay = function(e) {
                            f.autoplayPaused || (f.autoplayTimeoutId && clearTimeout(f.autoplayTimeoutId),
                            f.autoplayPaused = !0,
                            0 === e ? (f.autoplayPaused = !1,
                            H()) : f.wrapper.transitionEnd((function() {
                                f && (f.autoplayPaused = !1,
                                f.autoplaying ? H() : f.stopAutoplay())
                            }
                            )))
                        }
                        ,
                        f.minTranslate = function() {
                            return -f.snapGrid[0]
                        }
                        ,
                        f.maxTranslate = function() {
                            return -f.snapGrid[f.snapGrid.length - 1]
                        }
                        ,
                        f.updateAutoHeight = function() {
                            var e = f.slides.eq(f.activeIndex)[0];
                            if (void 0 !== e) {
                                var t = e.offsetHeight;
                                t && f.wrapper.css("height", t + "px")
                            }
                        }
                        ,
                        f.updateContainerSize = function() {
                            var e, t;
                            e = void 0 !== f.params.width ? f.params.width : f.container[0].clientWidth,
                            t = void 0 !== f.params.height ? f.params.height : f.container[0].clientHeight,
                            0 === e && f.isHorizontal() || 0 === t && !f.isHorizontal() || (e = e - parseInt(f.container.css("padding-left"), 10) - parseInt(f.container.css("padding-right"), 10),
                            t = t - parseInt(f.container.css("padding-top"), 10) - parseInt(f.container.css("padding-bottom"), 10),
                            f.width = e,
                            f.height = t,
                            f.size = f.isHorizontal() ? f.width : f.height)
                        }
                        ,
                        f.updateSlidesSize = function() {
                            f.slides = f.wrapper.children("." + f.params.slideClass),
                            f.snapGrid = [],
                            f.slidesGrid = [],
                            f.slidesSizesGrid = [];
                            var e, t = f.params.spaceBetween, i = -f.params.slidesOffsetBefore, n = 0, a = 0;
                            if (void 0 !== f.size) {
                                var o, r;
                                "string" == typeof t && t.indexOf("%") >= 0 && (t = parseFloat(t.replace("%", "")) / 100 * f.size),
                                f.virtualSize = -t,
                                f.rtl ? f.slides.css({
                                    marginLeft: "",
                                    marginTop: ""
                                }) : f.slides.css({
                                    marginRight: "",
                                    marginBottom: ""
                                }),
                                f.params.slidesPerColumn > 1 && (o = Math.floor(f.slides.length / f.params.slidesPerColumn) === f.slides.length / f.params.slidesPerColumn ? f.slides.length : Math.ceil(f.slides.length / f.params.slidesPerColumn) * f.params.slidesPerColumn,
                                "auto" !== f.params.slidesPerView && "row" === f.params.slidesPerColumnFill && (o = Math.max(o, f.params.slidesPerView * f.params.slidesPerColumn)));
                                var s, l = f.params.slidesPerColumn, c = o / l, d = c - (f.params.slidesPerColumn * c - f.slides.length);
                                for (e = 0; e < f.slides.length; e++) {
                                    r = 0;
                                    var u, p, m, h = f.slides.eq(e);
                                    if (f.params.slidesPerColumn > 1)
                                        "column" === f.params.slidesPerColumnFill ? (m = e - (p = Math.floor(e / l)) * l,
                                        (p > d || p === d && m === l - 1) && ++m >= l && (m = 0,
                                        p++),
                                        u = p + m * o / l,
                                        h.css({
                                            "-webkit-box-ordinal-group": u,
                                            "-moz-box-ordinal-group": u,
                                            "-ms-flex-order": u,
                                            "-webkit-order": u,
                                            order: u
                                        })) : p = e - (m = Math.floor(e / c)) * c,
                                        h.css({
                                            "margin-top": 0 !== m && f.params.spaceBetween && f.params.spaceBetween + "px"
                                        }).attr("data-swiper-column", p).attr("data-swiper-row", m);
                                    "none" !== h.css("display") && ("auto" === f.params.slidesPerView ? (r = f.isHorizontal() ? h.outerWidth(!0) : h.outerHeight(!0),
                                    f.params.roundLengths && (r = N(r))) : (340,
                                    r = (f.size + 340 - (f.params.slidesPerView - 1) * t) / f.params.slidesPerView,
                                    f.params.roundLengths && (r = N(r)),
                                    f.isHorizontal() ? f.slides[e].style.width = r + "px" : f.slides[e].style.height = r + "px"),
                                    f.slides[e].swiperSlideSize = r,
                                    f.slidesSizesGrid.push(r),
                                    f.params.centeredSlides ? (i = i + r / 2 + n / 2 + t,
                                    0 === e && (i = i - f.size / 2 - t),
                                    Math.abs(i) < .001 && (i = 0),
                                    a % f.params.slidesPerGroup == 0 && f.snapGrid.push(i),
                                    f.slidesGrid.push(i)) : (a % f.params.slidesPerGroup == 0 && f.snapGrid.push(i),
                                    f.slidesGrid.push(i),
                                    i = i + r + t),
                                    f.virtualSize += r + t,
                                    n = r,
                                    a++)
                                }
                                if (f.virtualSize = Math.max(f.virtualSize, f.size) + f.params.slidesOffsetAfter,
                                f.rtl && f.wrongRTL && ("slide" === f.params.effect || "coverflow" === f.params.effect) && f.wrapper.css({
                                    width: f.virtualSize + f.params.spaceBetween + "px"
                                }),
                                f.support.flexbox && !f.params.setWrapperSize || (f.isHorizontal() ? f.wrapper.css({
                                    width: f.virtualSize + f.params.spaceBetween + "px"
                                }) : f.wrapper.css({
                                    height: f.virtualSize + f.params.spaceBetween + "px"
                                })),
                                f.params.slidesPerColumn > 1 && (f.virtualSize = (r + f.params.spaceBetween) * o,
                                f.virtualSize = Math.ceil(f.virtualSize / f.params.slidesPerColumn) - f.params.spaceBetween,
                                f.wrapper.css({
                                    width: f.virtualSize + f.params.spaceBetween + "px"
                                }),
                                f.params.centeredSlides)) {
                                    for (s = [],
                                    e = 0; e < f.snapGrid.length; e++)
                                        f.snapGrid[e] < f.virtualSize + f.snapGrid[0] && s.push(f.snapGrid[e]);
                                    f.snapGrid = s
                                }
                                if (!f.params.centeredSlides) {
                                    for (s = [],
                                    e = 0; e < f.snapGrid.length; e++)
                                        f.snapGrid[e] <= f.virtualSize - f.size && s.push(f.snapGrid[e]);
                                    f.snapGrid = s,
                                    Math.floor(f.virtualSize - f.size) - Math.floor(f.snapGrid[f.snapGrid.length - 1]) > 1 && f.snapGrid.push(f.virtualSize - f.size)
                                }
                                0 === f.snapGrid.length && (f.snapGrid = [0]),
                                0 !== f.params.spaceBetween && (f.isHorizontal() ? f.rtl ? f.slides.css({
                                    marginLeft: t + "px"
                                }) : f.slides.css({
                                    marginRight: t + "px"
                                }) : f.slides.css({
                                    marginBottom: t + "px"
                                })),
                                f.params.watchSlidesProgress && f.updateSlidesOffset()
                            }
                        }
                        ,
                        f.updateSlidesOffset = function() {
                            for (var e = 0; e < f.slides.length; e++)
                                f.slides[e].swiperSlideOffset = f.isHorizontal() ? f.slides[e].offsetLeft : f.slides[e].offsetTop
                        }
                        ,
                        f.updateSlidesProgress = function(e) {
                            if (void 0 === e && (e = f.translate || 0),
                            0 !== f.slides.length) {
                                void 0 === f.slides[0].swiperSlideOffset && f.updateSlidesOffset();
                                var t = -e;
                                f.rtl && (t = e),
                                f.slides.removeClass(f.params.slideVisibleClass);
                                for (var i = 0; i < f.slides.length; i++) {
                                    var n = f.slides[i]
                                      , a = (t - n.swiperSlideOffset) / (n.swiperSlideSize + f.params.spaceBetween);
                                    if (f.params.watchSlidesVisibility) {
                                        var o = -(t - n.swiperSlideOffset)
                                          , r = o + f.slidesSizesGrid[i];
                                        (o >= 0 && o < f.size || r > 0 && r <= f.size || o <= 0 && r >= f.size) && f.slides.eq(i).addClass(f.params.slideVisibleClass)
                                    }
                                    n.progress = f.rtl ? -a : a
                                }
                            }
                        }
                        ,
                        f.updateProgress = function(e) {
                            void 0 === e && (e = f.translate || 0);
                            var t = f.maxTranslate() - f.minTranslate()
                              , i = f.isBeginning
                              , n = f.isEnd;
                            0 === t ? (f.progress = 0,
                            f.isBeginning = f.isEnd = !0) : (f.progress = (e - f.minTranslate()) / t,
                            f.isBeginning = f.progress <= 0,
                            f.isEnd = f.progress >= 1),
                            f.isBeginning && !i && f.emit("onReachBeginning", f),
                            f.isEnd && !n && f.emit("onReachEnd", f),
                            f.params.watchSlidesProgress && f.updateSlidesProgress(e),
                            f.emit("onProgress", f, f.progress)
                        }
                        ,
                        f.updateActiveIndex = function() {
                            var e, t, i, n = f.rtl ? f.translate : -f.translate;
                            for (t = 0; t < f.slidesGrid.length; t++)
                                void 0 !== f.slidesGrid[t + 1] ? n >= f.slidesGrid[t] && n < f.slidesGrid[t + 1] - (f.slidesGrid[t + 1] - f.slidesGrid[t]) / 2 ? e = t : n >= f.slidesGrid[t] && n < f.slidesGrid[t + 1] && (e = t + 1) : n >= f.slidesGrid[t] && (e = t);
                            (e < 0 || void 0 === e) && (e = 0),
                            (i = Math.floor(e / f.params.slidesPerGroup)) >= f.snapGrid.length && (i = f.snapGrid.length - 1),
                            e !== f.activeIndex && (f.snapIndex = i,
                            f.previousIndex = f.activeIndex,
                            f.activeIndex = e,
                            f.updateClasses())
                        }
                        ,
                        f.updateClasses = function() {
                            f.slides.removeClass(f.params.slideActiveClass + " " + f.params.slideNextClass + " " + f.params.slidePrevClass);
                            var e = f.slides.eq(f.activeIndex);
                            e.addClass(f.params.slideActiveClass);
                            var i = e.next("." + f.params.slideClass).addClass(f.params.slideNextClass);
                            f.params.loop && 0 === i.length && f.slides.eq(0).addClass(f.params.slideNextClass);
                            var n = e.prev("." + f.params.slideClass).addClass(f.params.slidePrevClass);
                            if (f.params.loop && 0 === n.length && f.slides.eq(-1).addClass(f.params.slidePrevClass),
                            f.paginationContainer && f.paginationContainer.length > 0) {
                                var a, o = f.params.loop ? Math.ceil((f.slides.length - 2 * f.loopedSlides) / f.params.slidesPerGroup) : f.snapGrid.length;
                                if (f.params.loop ? ((a = Math.ceil((f.activeIndex - f.loopedSlides) / f.params.slidesPerGroup)) > f.slides.length - 1 - 2 * f.loopedSlides && (a -= f.slides.length - 2 * f.loopedSlides),
                                a > o - 1 && (a -= o),
                                a < 0 && "bullets" !== f.params.paginationType && (a = o + a)) : a = void 0 !== f.snapIndex ? f.snapIndex : f.activeIndex || 0,
                                "bullets" === f.params.paginationType && f.bullets && f.bullets.length > 0 && (f.bullets.removeClass(f.params.bulletActiveClass),
                                f.paginationContainer.length > 1 ? f.bullets.each((function() {
                                    t(this).index() === a && t(this).addClass(f.params.bulletActiveClass)
                                }
                                )) : f.bullets.eq(a).addClass(f.params.bulletActiveClass)),
                                "fraction" === f.params.paginationType && (f.paginationContainer.find("." + f.params.paginationCurrentClass).text(a + 1),
                                f.paginationContainer.find("." + f.params.paginationTotalClass).text(o)),
                                "progress" === f.params.paginationType) {
                                    var r = (a + 1) / o
                                      , s = r
                                      , l = 1;
                                    f.isHorizontal() || (l = r,
                                    s = 1),
                                    f.paginationContainer.find("." + f.params.paginationProgressbarClass).transform("translate3d(0,0,0) scaleX(" + s + ") scaleY(" + l + ")").transition(f.params.speed)
                                }
                                "custom" === f.params.paginationType && f.params.paginationCustomRender && (f.paginationContainer.html(f.params.paginationCustomRender(f, a + 1, o)),
                                f.emit("onPaginationRendered", f, f.paginationContainer[0]))
                            }
                            f.params.loop || (f.params.prevButton && f.prevButton && f.prevButton.length > 0 && (f.isBeginning ? (f.prevButton.addClass(f.params.buttonDisabledClass),
                            f.params.a11y && f.a11y && f.a11y.disable(f.prevButton)) : (f.prevButton.removeClass(f.params.buttonDisabledClass),
                            f.params.a11y && f.a11y && f.a11y.enable(f.prevButton))),
                            f.params.nextButton && f.nextButton && f.nextButton.length > 0 && (f.isEnd ? (f.nextButton.addClass(f.params.buttonDisabledClass),
                            f.params.a11y && f.a11y && f.a11y.disable(f.nextButton)) : (f.nextButton.removeClass(f.params.buttonDisabledClass),
                            f.params.a11y && f.a11y && f.a11y.enable(f.nextButton))))
                        }
                        ,
                        f.updatePagination = function() {
                            if (f.params.pagination && f.paginationContainer && f.paginationContainer.length > 0) {
                                var e = "";
                                if ("bullets" === f.params.paginationType) {
                                    for (var t = f.params.loop ? Math.ceil((f.slides.length - 2 * f.loopedSlides) / f.params.slidesPerGroup) : f.snapGrid.length, i = 0; i < t; i++)
                                        f.params.paginationBulletRender ? e += f.params.paginationBulletRender(i, f.params.bulletClass) : e += "<" + f.params.paginationElement + ' class="' + f.params.bulletClass + '"></' + f.params.paginationElement + ">";
                                    f.paginationContainer.html(e),
                                    f.bullets = f.paginationContainer.find("." + f.params.bulletClass),
                                    f.params.paginationClickable && f.params.a11y && f.a11y && f.a11y.initPagination()
                                }
                                "fraction" === f.params.paginationType && (e = f.params.paginationFractionRender ? f.params.paginationFractionRender(f, f.params.paginationCurrentClass, f.params.paginationTotalClass) : '<span class="' + f.params.paginationCurrentClass + '"></span> / <span class="' + f.params.paginationTotalClass + '"></span>',
                                f.paginationContainer.html(e)),
                                "progress" === f.params.paginationType && (e = f.params.paginationProgressRender ? f.params.paginationProgressRender(f, f.params.paginationProgressbarClass) : '<span class="' + f.params.paginationProgressbarClass + '"></span>',
                                f.paginationContainer.html(e)),
                                "custom" !== f.params.paginationType && f.emit("onPaginationRendered", f, f.paginationContainer[0])
                            }
                        }
                        ,
                        f.update = function(e) {
                            function t() {
                                i = Math.min(Math.max(f.translate, f.maxTranslate()), f.minTranslate()),
                                f.setWrapperTranslate(i),
                                f.updateActiveIndex(),
                                f.updateClasses()
                            }
                            var i;
                            (f.updateContainerSize(),
                            f.updateSlidesSize(),
                            f.updateProgress(),
                            f.updatePagination(),
                            f.updateClasses(),
                            f.params.scrollbar && f.scrollbar && f.scrollbar.set(),
                            e) ? (f.controller && f.controller.spline && (f.controller.spline = void 0),
                            f.params.freeMode ? (t(),
                            f.params.autoHeight && f.updateAutoHeight()) : (("auto" === f.params.slidesPerView || f.params.slidesPerView > 1) && f.isEnd && !f.params.centeredSlides ? f.slideTo(f.slides.length - 1, 0, !1, !0) : f.slideTo(f.activeIndex, 0, !1, !0)) || t()) : f.params.autoHeight && f.updateAutoHeight()
                        }
                        ,
                        f.onResize = function(e) {
                            f.params.breakpoints && f.setBreakpoint();
                            var t = f.params.allowSwipeToPrev
                              , i = f.params.allowSwipeToNext;
                            f.params.allowSwipeToPrev = f.params.allowSwipeToNext = !0,
                            f.updateContainerSize(),
                            f.updateSlidesSize(),
                            ("auto" === f.params.slidesPerView || f.params.freeMode || e) && f.updatePagination(),
                            f.params.scrollbar && f.scrollbar && f.scrollbar.set(),
                            f.controller && f.controller.spline && (f.controller.spline = void 0);
                            var n = !1;
                            if (f.params.freeMode) {
                                var a = Math.min(Math.max(f.translate, f.maxTranslate()), f.minTranslate());
                                f.setWrapperTranslate(a),
                                f.updateActiveIndex(),
                                f.updateClasses(),
                                f.params.autoHeight && f.updateAutoHeight()
                            } else
                                f.updateClasses(),
                                n = ("auto" === f.params.slidesPerView || f.params.slidesPerView > 1) && f.isEnd && !f.params.centeredSlides ? f.slideTo(f.slides.length - 1, 0, !1, !0) : f.slideTo(f.activeIndex, 0, !1, !0);
                            f.params.lazyLoading && !n && f.lazy && f.lazy.load(),
                            f.params.allowSwipeToPrev = t,
                            f.params.allowSwipeToNext = i
                        }
                        ;
                        var v = ["mousedown", "mousemove", "mouseup"];
                        window.navigator.pointerEnabled ? v = ["pointerdown", "pointermove", "pointerup"] : window.navigator.msPointerEnabled && (v = ["MSPointerDown", "MSPointerMove", "MSPointerUp"]),
                        f.touchEvents = {
                            start: f.support.touch || !f.params.simulateTouch ? "touchstart" : v[0],
                            move: f.support.touch || !f.params.simulateTouch ? "touchmove" : v[1],
                            end: f.support.touch || !f.params.simulateTouch ? "touchend" : v[2]
                        },
                        (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) && ("container" === f.params.touchEventsTarget ? f.container : f.wrapper).addClass("swiper-wp8-" + f.params.direction),
                        f.initEvents = function(e) {
                            var t = e ? "off" : "on"
                              , i = e ? "removeEventListener" : "addEventListener"
                              , n = "container" === f.params.touchEventsTarget ? f.container[0] : f.wrapper[0]
                              , a = f.support.touch ? n : document
                              , o = !!f.params.nested;
                            f.browser.ie ? (n[i](f.touchEvents.start, f.onTouchStart, !1),
                            a[i](f.touchEvents.move, f.onTouchMove, o),
                            a[i](f.touchEvents.end, f.onTouchEnd, !1)) : (f.support.touch && (n[i](f.touchEvents.start, f.onTouchStart, !1),
                            n[i](f.touchEvents.move, f.onTouchMove, o),
                            n[i](f.touchEvents.end, f.onTouchEnd, !1)),
                            !s.simulateTouch || f.device.ios || f.device.android || (n[i]("mousedown", f.onTouchStart, !1),
                            document[i]("mousemove", f.onTouchMove, o),
                            document[i]("mouseup", f.onTouchEnd, !1))),
                            window[i]("resize", f.onResize),
                            f.params.nextButton && f.nextButton && f.nextButton.length > 0 && (f.nextButton[t]("click", f.onClickNext),
                            f.params.a11y && f.a11y && f.nextButton[t]("keydown", f.a11y.onEnterKey)),
                            f.params.prevButton && f.prevButton && f.prevButton.length > 0 && (f.prevButton[t]("click", f.onClickPrev),
                            f.params.a11y && f.a11y && f.prevButton[t]("keydown", f.a11y.onEnterKey)),
                            f.params.pagination && f.params.paginationClickable && (f.paginationContainer[t]("click", "." + f.params.bulletClass, f.onClickIndex),
                            f.params.a11y && f.a11y && f.paginationContainer[t]("keydown", "." + f.params.bulletClass, f.a11y.onEnterKey)),
                            (f.params.preventClicks || f.params.preventClicksPropagation) && n[i]("click", f.preventClicks, !0)
                        }
                        ,
                        f.attachEvents = function() {
                            f.initEvents()
                        }
                        ,
                        f.detachEvents = function() {
                            f.initEvents(!0)
                        }
                        ,
                        f.allowClick = !0,
                        f.preventClicks = function(e) {
                            f.allowClick || (f.params.preventClicks && e.preventDefault(),
                            f.params.preventClicksPropagation && f.animating && (e.stopPropagation(),
                            e.stopImmediatePropagation()))
                        }
                        ,
                        f.onClickNext = function(e) {
                            e.preventDefault(),
                            f.isEnd && !f.params.loop || f.slideNext()
                        }
                        ,
                        f.onClickPrev = function(e) {
                            e.preventDefault(),
                            f.isBeginning && !f.params.loop || f.slidePrev()
                        }
                        ,
                        f.onClickIndex = function(e) {
                            e.preventDefault();
                            var i = t(this).index() * f.params.slidesPerGroup;
                            f.params.loop && (i += f.loopedSlides),
                            f.slideTo(i)
                        }
                        ,
                        f.updateClickedSlide = function(e) {
                            var i = B(e, "." + f.params.slideClass)
                              , n = !1;
                            if (i)
                                for (var a = 0; a < f.slides.length; a++)
                                    f.slides[a] === i && (n = !0);
                            if (!i || !n)
                                return f.clickedSlide = void 0,
                                void (f.clickedIndex = void 0);
                            if (f.clickedSlide = i,
                            f.clickedIndex = t(i).index(),
                            f.params.slideToClickedSlide && void 0 !== f.clickedIndex && f.clickedIndex !== f.activeIndex) {
                                var o, r = f.clickedIndex;
                                if (f.params.loop) {
                                    if (f.animating)
                                        return;
                                    o = t(f.clickedSlide).attr("data-swiper-slide-index"),
                                    f.params.centeredSlides ? r < f.loopedSlides - f.params.slidesPerView / 2 || r > f.slides.length - f.loopedSlides + f.params.slidesPerView / 2 ? (f.fixLoop(),
                                    r = f.wrapper.children("." + f.params.slideClass + '[data-swiper-slide-index="' + o + '"]:not(.swiper-slide-duplicate)').eq(0).index(),
                                    setTimeout((function() {
                                        f.slideTo(r)
                                    }
                                    ), 0)) : f.slideTo(r) : r > f.slides.length - f.params.slidesPerView ? (f.fixLoop(),
                                    r = f.wrapper.children("." + f.params.slideClass + '[data-swiper-slide-index="' + o + '"]:not(.swiper-slide-duplicate)').eq(0).index(),
                                    setTimeout((function() {
                                        f.slideTo(r)
                                    }
                                    ), 0)) : f.slideTo(r)
                                } else
                                    f.slideTo(r)
                            }
                        }
                        ;
                        var b, y, w, S, _, C, k, T, x, A, I, P, D = "input, select, textarea, button", O = Date.now(), E = [];
                        if (f.animating = !1,
                        f.touches = {
                            startX: 0,
                            startY: 0,
                            currentX: 0,
                            currentY: 0,
                            diff: 0
                        },
                        f.onTouchStart = function(e) {
                            if (e.originalEvent && (e = e.originalEvent),
                            (I = "touchstart" === e.type) || !("which"in e) || 3 !== e.which)
                                if (f.params.noSwiping && B(e, "." + f.params.noSwipingClass))
                                    f.allowClick = !0;
                                else if (!f.params.swipeHandler || B(e, f.params.swipeHandler)) {
                                    var i = f.touches.currentX = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX
                                      , n = f.touches.currentY = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY;
                                    if (!(f.device.ios && f.params.iOSEdgeSwipeDetection && i <= f.params.iOSEdgeSwipeThreshold)) {
                                        if (b = !0,
                                        y = !1,
                                        w = !0,
                                        _ = void 0,
                                        P = void 0,
                                        f.touches.startX = i,
                                        f.touches.startY = n,
                                        S = Date.now(),
                                        f.allowClick = !0,
                                        f.updateContainerSize(),
                                        f.swipeDirection = void 0,
                                        f.params.threshold > 0 && (T = !1),
                                        "touchstart" !== e.type) {
                                            var a = !0;
                                            t(e.target).is(D) && (a = !1),
                                            document.activeElement && t(document.activeElement).is(D) && document.activeElement.blur(),
                                            a && e.preventDefault()
                                        }
                                        f.emit("onTouchStart", f, e)
                                    }
                                }
                        }
                        ,
                        f.onTouchMove = function(e) {
                            if (e.originalEvent && (e = e.originalEvent),
                            !I || "mousemove" !== e.type) {
                                if (e.preventedByNestedSwiper)
                                    return f.touches.startX = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX,
                                    void (f.touches.startY = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY);
                                if (f.params.onlyExternal)
                                    return f.allowClick = !1,
                                    void (b && (f.touches.startX = f.touches.currentX = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX,
                                    f.touches.startY = f.touches.currentY = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY,
                                    S = Date.now()));
                                if (I && document.activeElement && e.target === document.activeElement && t(e.target).is(D))
                                    return y = !0,
                                    void (f.allowClick = !1);
                                if (w && f.emit("onTouchMove", f, e),
                                !(e.targetTouches && e.targetTouches.length > 1)) {
                                    if (f.touches.currentX = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX,
                                    f.touches.currentY = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY,
                                    void 0 === _) {
                                        var i = 180 * Math.atan2(Math.abs(f.touches.currentY - f.touches.startY), Math.abs(f.touches.currentX - f.touches.startX)) / Math.PI;
                                        _ = f.isHorizontal() ? i > f.params.touchAngle : 90 - i > f.params.touchAngle
                                    }
                                    if (_ && f.emit("onTouchMoveOpposite", f, e),
                                    void 0 === P && f.browser.ieTouch && (f.touches.currentX === f.touches.startX && f.touches.currentY === f.touches.startY || (P = !0)),
                                    b)
                                        if (_)
                                            b = !1;
                                        else if (P || !f.browser.ieTouch) {
                                            f.allowClick = !1,
                                            f.emit("onSliderMove", f, e),
                                            e.preventDefault(),
                                            f.params.touchMoveStopPropagation && !f.params.nested && e.stopPropagation(),
                                            y || (s.loop && f.fixLoop(),
                                            k = f.getWrapperTranslate(),
                                            f.setWrapperTransition(0),
                                            f.animating && f.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"),
                                            f.params.autoplay && f.autoplaying && (f.params.autoplayDisableOnInteraction ? f.stopAutoplay() : f.pauseAutoplay()),
                                            A = !1,
                                            f.params.grabCursor && (f.container[0].style.cursor = "move",
                                            f.container[0].style.cursor = "-webkit-grabbing",
                                            f.container[0].style.cursor = "-moz-grabbin",
                                            f.container[0].style.cursor = "grabbing")),
                                            y = !0;
                                            var n = f.touches.diff = f.isHorizontal() ? f.touches.currentX - f.touches.startX : f.touches.currentY - f.touches.startY;
                                            n *= f.params.touchRatio,
                                            f.rtl && (n = -n),
                                            f.swipeDirection = n > 0 ? "prev" : "next",
                                            C = n + k;
                                            var a = !0;
                                            if (n > 0 && C > f.minTranslate() ? (a = !1,
                                            f.params.resistance && (C = f.minTranslate() - 1 + Math.pow(-f.minTranslate() + k + n, f.params.resistanceRatio))) : n < 0 && C < f.maxTranslate() && (a = !1,
                                            f.params.resistance && (C = f.maxTranslate() + 1 - Math.pow(f.maxTranslate() - k - n, f.params.resistanceRatio))),
                                            a && (e.preventedByNestedSwiper = !0),
                                            !f.params.allowSwipeToNext && "next" === f.swipeDirection && C < k && (C = k),
                                            !f.params.allowSwipeToPrev && "prev" === f.swipeDirection && C > k && (C = k),
                                            f.params.followFinger) {
                                                if (f.params.threshold > 0) {
                                                    if (!(Math.abs(n) > f.params.threshold || T))
                                                        return void (C = k);
                                                    if (!T)
                                                        return T = !0,
                                                        f.touches.startX = f.touches.currentX,
                                                        f.touches.startY = f.touches.currentY,
                                                        C = k,
                                                        void (f.touches.diff = f.isHorizontal() ? f.touches.currentX - f.touches.startX : f.touches.currentY - f.touches.startY)
                                                }
                                                (f.params.freeMode || f.params.watchSlidesProgress) && f.updateActiveIndex(),
                                                f.params.freeMode && (0 === E.length && E.push({
                                                    position: f.touches[f.isHorizontal() ? "startX" : "startY"],
                                                    time: S
                                                }),
                                                E.push({
                                                    position: f.touches[f.isHorizontal() ? "currentX" : "currentY"],
                                                    time: (new window.Date).getTime()
                                                })),
                                                f.updateProgress(C),
                                                f.setWrapperTranslate(C)
                                            }
                                        }
                                }
                            }
                        }
                        ,
                        f.onTouchEnd = function(e) {
                            if (e.originalEvent && (e = e.originalEvent),
                            w && f.emit("onTouchEnd", f, e),
                            w = !1,
                            b) {
                                f.params.grabCursor && y && b && (f.container[0].style.cursor = "move",
                                f.container[0].style.cursor = "-webkit-grab",
                                f.container[0].style.cursor = "-moz-grab",
                                f.container[0].style.cursor = "grab");
                                var i, n = Date.now(), a = n - S;
                                if (f.allowClick && (f.updateClickedSlide(e),
                                f.emit("onTap", f, e),
                                a < 300 && n - O > 300 && (x && clearTimeout(x),
                                x = setTimeout((function() {
                                    f && (f.params.paginationHide && f.paginationContainer.length > 0 && !t(e.target).hasClass(f.params.bulletClass) && f.paginationContainer.toggleClass(f.params.paginationHiddenClass),
                                    f.emit("onClick", f, e))
                                }
                                ), 300)),
                                a < 300 && n - O < 300 && (x && clearTimeout(x),
                                f.emit("onDoubleTap", f, e))),
                                O = Date.now(),
                                setTimeout((function() {
                                    f && (f.allowClick = !0)
                                }
                                ), 0),
                                b && y && f.swipeDirection && 0 !== f.touches.diff && C !== k)
                                    if (b = y = !1,
                                    i = f.params.followFinger ? f.rtl ? f.translate : -f.translate : -C,
                                    f.params.freeMode) {
                                        if (i < -f.minTranslate())
                                            return void f.slideTo(f.activeIndex);
                                        if (i > -f.maxTranslate())
                                            return void (f.slides.length < f.snapGrid.length ? f.slideTo(f.snapGrid.length - 1) : f.slideTo(f.slides.length - 1));
                                        if (f.params.freeModeMomentum) {
                                            if (E.length > 1) {
                                                var o = E.pop()
                                                  , r = E.pop()
                                                  , s = o.position - r.position
                                                  , l = o.time - r.time;
                                                f.velocity = s / l,
                                                f.velocity = f.velocity / 2,
                                                Math.abs(f.velocity) < f.params.freeModeMinimumVelocity && (f.velocity = 0),
                                                (l > 150 || (new window.Date).getTime() - o.time > 300) && (f.velocity = 0)
                                            } else
                                                f.velocity = 0;
                                            E.length = 0;
                                            var c = 1e3 * f.params.freeModeMomentumRatio
                                              , d = f.velocity * c
                                              , u = f.translate + d;
                                            f.rtl && (u = -u);
                                            var p, m = !1, h = 20 * Math.abs(f.velocity) * f.params.freeModeMomentumBounceRatio;
                                            if (u < f.maxTranslate())
                                                f.params.freeModeMomentumBounce ? (u + f.maxTranslate() < -h && (u = f.maxTranslate() - h),
                                                p = f.maxTranslate(),
                                                m = !0,
                                                A = !0) : u = f.maxTranslate();
                                            else if (u > f.minTranslate())
                                                f.params.freeModeMomentumBounce ? (u - f.minTranslate() > h && (u = f.minTranslate() + h),
                                                p = f.minTranslate(),
                                                m = !0,
                                                A = !0) : u = f.minTranslate();
                                            else if (f.params.freeModeSticky) {
                                                var g, v = 0;
                                                for (v = 0; v < f.snapGrid.length; v += 1)
                                                    if (f.snapGrid[v] > -u) {
                                                        g = v;
                                                        break
                                                    }
                                                u = Math.abs(f.snapGrid[g] - u) < Math.abs(f.snapGrid[g - 1] - u) || "next" === f.swipeDirection ? f.snapGrid[g] : f.snapGrid[g - 1],
                                                f.rtl || (u = -u)
                                            }
                                            if (0 !== f.velocity)
                                                c = f.rtl ? Math.abs((-u - f.translate) / f.velocity) : Math.abs((u - f.translate) / f.velocity);
                                            else if (f.params.freeModeSticky)
                                                return void f.slideReset();
                                            f.params.freeModeMomentumBounce && m ? (f.updateProgress(p),
                                            f.setWrapperTransition(c),
                                            f.setWrapperTranslate(u),
                                            f.onTransitionStart(),
                                            f.animating = !0,
                                            f.wrapper.transitionEnd((function() {
                                                f && A && (f.emit("onMomentumBounce", f),
                                                f.setWrapperTransition(f.params.speed),
                                                f.setWrapperTranslate(p),
                                                f.wrapper.transitionEnd((function() {
                                                    f && f.onTransitionEnd()
                                                }
                                                )))
                                            }
                                            ))) : f.velocity ? (f.updateProgress(u),
                                            f.setWrapperTransition(c),
                                            f.setWrapperTranslate(u),
                                            f.onTransitionStart(),
                                            f.animating || (f.animating = !0,
                                            f.wrapper.transitionEnd((function() {
                                                f && f.onTransitionEnd()
                                            }
                                            )))) : f.updateProgress(u),
                                            f.updateActiveIndex()
                                        }
                                        (!f.params.freeModeMomentum || a >= f.params.longSwipesMs) && (f.updateProgress(),
                                        f.updateActiveIndex())
                                    } else {
                                        var _, T = 0, I = f.slidesSizesGrid[0];
                                        for (_ = 0; _ < f.slidesGrid.length; _ += f.params.slidesPerGroup)
                                            void 0 !== f.slidesGrid[_ + f.params.slidesPerGroup] ? i >= f.slidesGrid[_] && i < f.slidesGrid[_ + f.params.slidesPerGroup] && (T = _,
                                            I = f.slidesGrid[_ + f.params.slidesPerGroup] - f.slidesGrid[_]) : i >= f.slidesGrid[_] && (T = _,
                                            I = f.slidesGrid[f.slidesGrid.length - 1] - f.slidesGrid[f.slidesGrid.length - 2]);
                                        var P = (i - f.slidesGrid[T]) / I;
                                        if (a > f.params.longSwipesMs) {
                                            if (!f.params.longSwipes)
                                                return void f.slideTo(f.activeIndex);
                                            "next" === f.swipeDirection && (P >= f.params.longSwipesRatio ? f.slideTo(T + f.params.slidesPerGroup) : f.slideTo(T)),
                                            "prev" === f.swipeDirection && (P > 1 - f.params.longSwipesRatio ? f.slideTo(T + f.params.slidesPerGroup) : f.slideTo(T))
                                        } else {
                                            if (!f.params.shortSwipes)
                                                return void f.slideTo(f.activeIndex);
                                            "next" === f.swipeDirection && f.slideTo(T + f.params.slidesPerGroup),
                                            "prev" === f.swipeDirection && f.slideTo(T)
                                        }
                                    }
                                else
                                    b = y = !1
                            }
                        }
                        ,
                        f._slideTo = function(e, t) {
                            return f.slideTo(e, t, !0, !0)
                        }
                        ,
                        f.slideTo = function(e, t, i, n) {
                            void 0 === i && (i = !0),
                            void 0 === e && (e = 0),
                            e < 0 && (e = 0),
                            f.snapIndex = Math.floor(e / f.params.slidesPerGroup),
                            f.snapIndex >= f.snapGrid.length && (f.snapIndex = f.snapGrid.length - 1);
                            var a = -f.snapGrid[f.snapIndex];
                            f.params.autoplay && f.autoplaying && (n || !f.params.autoplayDisableOnInteraction ? f.pauseAutoplay(t) : f.stopAutoplay()),
                            f.updateProgress(a);
                            for (var o = 0; o < f.slidesGrid.length; o++)
                                -Math.floor(100 * a) >= Math.floor(100 * f.slidesGrid[o]) && (e = o);
                            return !(!f.params.allowSwipeToNext && a < f.translate && a < f.minTranslate()) && (!(!f.params.allowSwipeToPrev && a > f.translate && a > f.maxTranslate() && (f.activeIndex || 0) !== e) && (void 0 === t && (t = f.params.speed),
                            f.previousIndex = f.activeIndex || 0,
                            f.activeIndex = e,
                            f.rtl && -a === f.translate || !f.rtl && a === f.translate ? (f.params.autoHeight && f.updateAutoHeight(),
                            f.updateClasses(),
                            "slide" !== f.params.effect && f.setWrapperTranslate(a),
                            !1) : (f.updateClasses(),
                            f.onTransitionStart(i),
                            0 === t ? (f.setWrapperTranslate(a),
                            f.setWrapperTransition(0),
                            f.onTransitionEnd(i)) : (f.setWrapperTranslate(a),
                            f.setWrapperTransition(t),
                            f.animating || (f.animating = !0,
                            f.wrapper.transitionEnd((function() {
                                f && f.onTransitionEnd(i)
                            }
                            )))),
                            !0)))
                        }
                        ,
                        f.onTransitionStart = function(e) {
                            void 0 === e && (e = !0),
                            f.params.autoHeight && f.updateAutoHeight(),
                            f.lazy && f.lazy.onTransitionStart(),
                            e && (f.emit("onTransitionStart", f),
                            f.activeIndex !== f.previousIndex && (f.emit("onSlideChangeStart", f),
                            f.activeIndex > f.previousIndex ? f.emit("onSlideNextStart", f) : f.emit("onSlidePrevStart", f)))
                        }
                        ,
                        f.onTransitionEnd = function(e) {
                            f.animating = !1,
                            f.setWrapperTransition(0),
                            void 0 === e && (e = !0),
                            f.lazy && f.lazy.onTransitionEnd(),
                            f.update(),
                            e && (f.emit("onTransitionEnd", f),
                            f.activeIndex !== f.previousIndex && (f.emit("onSlideChangeEnd", f),
                            f.activeIndex > f.previousIndex ? f.emit("onSlideNextEnd", f) : f.emit("onSlidePrevEnd", f))),
                            f.params.hashnav && f.hashnav && f.hashnav.setHash()
                        }
                        ,
                        f.slideNext = function(e, t, i) {
                            if (f.params.loop) {
                                if (f.animating)
                                    return !1;
                                f.fixLoop();
                                f.container[0].clientLeft;
                                return f.slideTo(f.activeIndex + f.params.slidesPerGroup, t, e, i)
                            }
                            return f.slideTo(f.activeIndex + f.params.slidesPerGroup, t, e, i)
                        }
                        ,
                        f._slideNext = function(e) {
                            return f.slideNext(!0, e, !0)
                        }
                        ,
                        f.slidePrev = function(e, t, i) {
                            if (f.params.loop) {
                                if (f.animating)
                                    return !1;
                                f.fixLoop();
                                f.container[0].clientLeft;
                                return f.slideTo(f.activeIndex - 1, t, e, i)
                            }
                            return f.slideTo(f.activeIndex - 1, t, e, i)
                        }
                        ,
                        f._slidePrev = function(e) {
                            return f.slidePrev(!0, e, !0)
                        }
                        ,
                        f.slideReset = function(e, t, i) {
                            return f.slideTo(f.activeIndex, t, e)
                        }
                        ,
                        f.setWrapperTransition = function(e, t) {
                            f.wrapper.transition(e),
                            "slide" !== f.params.effect && f.effects[f.params.effect] && f.effects[f.params.effect].setTransition(e),
                            f.params.parallax && f.parallax && f.parallax.setTransition(e),
                            f.params.scrollbar && f.scrollbar && f.scrollbar.setTransition(e),
                            f.params.control && f.controller && f.controller.setTransition(e, t),
                            f.emit("onSetTransition", f, e)
                        }
                        ,
                        f.setWrapperTranslate = function(e, t, i) {
                            var n = 0
                              , a = 0;
                            f.isHorizontal() ? n = f.rtl ? -e : e : a = e,
                            f.params.roundLengths && (n = N(n),
                            a = N(a)),
                            f.params.virtualTranslate || (f.support.transforms3d ? f.wrapper.transform("translate3d(" + n + "px, " + a + "px, 0px)") : f.wrapper.transform("translate(" + n + "px, " + a + "px)")),
                            f.translate = f.isHorizontal() ? n : a;
                            var o = f.maxTranslate() - f.minTranslate();
                            (0 === o ? 0 : (e - f.minTranslate()) / o) !== f.progress && f.updateProgress(e),
                            t && f.updateActiveIndex(),
                            "slide" !== f.params.effect && f.effects[f.params.effect] && f.effects[f.params.effect].setTranslate(f.translate),
                            f.params.parallax && f.parallax && f.parallax.setTranslate(f.translate),
                            f.params.scrollbar && f.scrollbar && f.scrollbar.setTranslate(f.translate),
                            f.params.control && f.controller && f.controller.setTranslate(f.translate, i),
                            f.emit("onSetTranslate", f, f.translate)
                        }
                        ,
                        f.getTranslate = function(e, t) {
                            var i, n, a, o;
                            return void 0 === t && (t = "x"),
                            f.params.virtualTranslate ? f.rtl ? -f.translate : f.translate : (a = window.getComputedStyle(e, null),
                            window.WebKitCSSMatrix ? ((n = a.transform || a.webkitTransform).split(",").length > 6 && (n = n.split(", ").map((function(e) {
                                return e.replace(",", ".")
                            }
                            )).join(", ")),
                            o = new window.WebKitCSSMatrix("none" === n ? "" : n)) : i = (o = a.MozTransform || a.OTransform || a.MsTransform || a.msTransform || a.transform || a.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")).toString().split(","),
                            "x" === t && (n = window.WebKitCSSMatrix ? o.m41 : 16 === i.length ? parseFloat(i[12]) : parseFloat(i[4])),
                            "y" === t && (n = window.WebKitCSSMatrix ? o.m42 : 16 === i.length ? parseFloat(i[13]) : parseFloat(i[5])),
                            f.rtl && n && (n = -n),
                            n || 0)
                        }
                        ,
                        f.getWrapperTranslate = function(e) {
                            return void 0 === e && (e = f.isHorizontal() ? "x" : "y"),
                            f.getTranslate(f.wrapper[0], e)
                        }
                        ,
                        f.observers = [],
                        f.initObservers = function() {
                            if (f.params.observeParents)
                                for (var e = f.container.parents(), t = 0; t < e.length; t++)
                                    j(e[t]);
                            j(f.container[0], {
                                childList: !1
                            }),
                            j(f.wrapper[0], {
                                attributes: !1
                            })
                        }
                        ,
                        f.disconnectObservers = function() {
                            for (var e = 0; e < f.observers.length; e++)
                                f.observers[e].disconnect();
                            f.observers = []
                        }
                        ,
                        f.createLoop = function() {
                            f.wrapper.children("." + f.params.slideClass + "." + f.params.slideDuplicateClass).remove();
                            var e = f.wrapper.children("." + f.params.slideClass);
                            "auto" !== f.params.slidesPerView || f.params.loopedSlides || (f.params.loopedSlides = e.length),
                            f.loopedSlides = parseInt(f.params.loopedSlides || f.params.slidesPerView, 10),
                            f.loopedSlides = f.loopedSlides + f.params.loopAdditionalSlides,
                            f.loopedSlides > e.length && (f.loopedSlides = e.length);
                            var i, n = [], a = [];
                            for (e.each((function(i, o) {
                                var r = t(this);
                                i < f.loopedSlides && a.push(o),
                                i < e.length && i >= e.length - f.loopedSlides && n.push(o),
                                r.attr("data-swiper-slide-index", i)
                            }
                            )),
                            i = 0; i < a.length; i++)
                                f.wrapper.append(t(a[i].cloneNode(!0)).addClass(f.params.slideDuplicateClass));
                            for (i = n.length - 1; i >= 0; i--)
                                f.wrapper.prepend(t(n[i].cloneNode(!0)).addClass(f.params.slideDuplicateClass))
                        }
                        ,
                        f.destroyLoop = function() {
                            f.wrapper.children("." + f.params.slideClass + "." + f.params.slideDuplicateClass).remove(),
                            f.slides.removeAttr("data-swiper-slide-index")
                        }
                        ,
                        f.reLoop = function(e) {
                            var t = f.activeIndex - f.loopedSlides;
                            f.destroyLoop(),
                            f.createLoop(),
                            f.updateSlidesSize(),
                            e && f.slideTo(t + f.loopedSlides, 0, !1)
                        }
                        ,
                        f.fixLoop = function() {
                            var e;
                            f.activeIndex < f.loopedSlides ? (e = f.slides.length - 3 * f.loopedSlides + f.activeIndex,
                            e += f.loopedSlides,
                            f.slideTo(e, 0, !1, !0)) : ("auto" === f.params.slidesPerView && f.activeIndex >= 2 * f.loopedSlides || f.activeIndex > f.slides.length - 2 * f.params.slidesPerView) && (e = -f.slides.length + f.activeIndex + f.loopedSlides,
                            e += f.loopedSlides,
                            f.slideTo(e, 0, !1, !0))
                        }
                        ,
                        f.appendSlide = function(e) {
                            if (f.params.loop && f.destroyLoop(),
                            "object" === o(e) && e.length)
                                for (var t = 0; t < e.length; t++)
                                    e[t] && f.wrapper.append(e[t]);
                            else
                                f.wrapper.append(e);
                            f.params.loop && f.createLoop(),
                            f.params.observer && f.support.observer || f.update(!0)
                        }
                        ,
                        f.prependSlide = function(e) {
                            f.params.loop && f.destroyLoop();
                            var t = f.activeIndex + 1;
                            if ("object" === o(e) && e.length) {
                                for (var i = 0; i < e.length; i++)
                                    e[i] && f.wrapper.prepend(e[i]);
                                t = f.activeIndex + e.length
                            } else
                                f.wrapper.prepend(e);
                            f.params.loop && f.createLoop(),
                            f.params.observer && f.support.observer || f.update(!0),
                            f.slideTo(t, 0, !1)
                        }
                        ,
                        f.removeSlide = function(e) {
                            f.params.loop && (f.destroyLoop(),
                            f.slides = f.wrapper.children("." + f.params.slideClass));
                            var t, i = f.activeIndex;
                            if ("object" === o(e) && e.length) {
                                for (var n = 0; n < e.length; n++)
                                    t = e[n],
                                    f.slides[t] && f.slides.eq(t).remove(),
                                    t < i && i--;
                                i = Math.max(i, 0)
                            } else
                                t = e,
                                f.slides[t] && f.slides.eq(t).remove(),
                                t < i && i--,
                                i = Math.max(i, 0);
                            f.params.loop && f.createLoop(),
                            f.params.observer && f.support.observer || f.update(!0),
                            f.params.loop ? f.slideTo(i + f.loopedSlides, 0, !1) : f.slideTo(i, 0, !1)
                        }
                        ,
                        f.removeAllSlides = function() {
                            for (var e = [], t = 0; t < f.slides.length; t++)
                                e.push(t);
                            f.removeSlide(e)
                        }
                        ,
                        f.effects = {
                            fade: {
                                setTranslate: function() {
                                    for (var e = 0; e < f.slides.length; e++) {
                                        var t = f.slides.eq(e)
                                          , i = -t[0].swiperSlideOffset;
                                        f.params.virtualTranslate || (i -= f.translate);
                                        var n = 0;
                                        f.isHorizontal() || (n = i,
                                        i = 0);
                                        var a = f.params.fade.crossFade ? Math.max(1 - Math.abs(t[0].progress), 0) : 1 + Math.min(Math.max(t[0].progress, -1), 0);
                                        t.css({
                                            opacity: a
                                        }).transform("translate3d(" + i + "px, " + n + "px, 0px)")
                                    }
                                },
                                setTransition: function(e) {
                                    if (f.slides.transition(e),
                                    f.params.virtualTranslate && 0 !== e) {
                                        var t = !1;
                                        f.slides.transitionEnd((function() {
                                            if (!t && f) {
                                                t = !0,
                                                f.animating = !1;
                                                for (var e = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], i = 0; i < e.length; i++)
                                                    f.wrapper.trigger(e[i])
                                            }
                                        }
                                        ))
                                    }
                                }
                            },
                            flip: {
                                setTranslate: function() {
                                    for (var e = 0; e < f.slides.length; e++) {
                                        var i = f.slides.eq(e)
                                          , n = i[0].progress;
                                        f.params.flip.limitRotation && (n = Math.max(Math.min(i[0].progress, 1), -1));
                                        var a = -180 * n
                                          , o = 0
                                          , r = -i[0].swiperSlideOffset
                                          , s = 0;
                                        if (f.isHorizontal() ? f.rtl && (a = -a) : (s = r,
                                        r = 0,
                                        o = -a,
                                        a = 0),
                                        i[0].style.zIndex = -Math.abs(Math.round(n)) + f.slides.length,
                                        f.params.flip.slideShadows) {
                                            var l = f.isHorizontal() ? i.find(".swiper-slide-shadow-left") : i.find(".swiper-slide-shadow-top")
                                              , c = f.isHorizontal() ? i.find(".swiper-slide-shadow-right") : i.find(".swiper-slide-shadow-bottom");
                                            0 === l.length && (l = t('<div class="swiper-slide-shadow-' + (f.isHorizontal() ? "left" : "top") + '"></div>'),
                                            i.append(l)),
                                            0 === c.length && (c = t('<div class="swiper-slide-shadow-' + (f.isHorizontal() ? "right" : "bottom") + '"></div>'),
                                            i.append(c)),
                                            l.length && (l[0].style.opacity = Math.max(-n, 0)),
                                            c.length && (c[0].style.opacity = Math.max(n, 0))
                                        }
                                        i.transform("translate3d(" + r + "px, " + s + "px, 0px) rotateX(" + o + "deg) rotateY(" + a + "deg)")
                                    }
                                },
                                setTransition: function(e) {
                                    if (f.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),
                                    f.params.virtualTranslate && 0 !== e) {
                                        var i = !1;
                                        f.slides.eq(f.activeIndex).transitionEnd((function() {
                                            if (!i && f && t(this).hasClass(f.params.slideActiveClass)) {
                                                i = !0,
                                                f.animating = !1;
                                                for (var e = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], n = 0; n < e.length; n++)
                                                    f.wrapper.trigger(e[n])
                                            }
                                        }
                                        ))
                                    }
                                }
                            },
                            cube: {
                                setTranslate: function() {
                                    var e, i = 0;
                                    f.params.cube.shadow && (f.isHorizontal() ? (0 === (e = f.wrapper.find(".swiper-cube-shadow")).length && (e = t('<div class="swiper-cube-shadow"></div>'),
                                    f.wrapper.append(e)),
                                    e.css({
                                        height: f.width + "px"
                                    })) : 0 === (e = f.container.find(".swiper-cube-shadow")).length && (e = t('<div class="swiper-cube-shadow"></div>'),
                                    f.container.append(e)));
                                    for (var n = 0; n < f.slides.length; n++) {
                                        var a = f.slides.eq(n)
                                          , o = 90 * n
                                          , r = Math.floor(o / 360);
                                        f.rtl && (o = -o,
                                        r = Math.floor(-o / 360));
                                        var s = Math.max(Math.min(a[0].progress, 1), -1)
                                          , l = 0
                                          , c = 0
                                          , d = 0;
                                        n % 4 == 0 ? (l = 4 * -r * f.size,
                                        d = 0) : (n - 1) % 4 == 0 ? (l = 0,
                                        d = 4 * -r * f.size) : (n - 2) % 4 == 0 ? (l = f.size + 4 * r * f.size,
                                        d = f.size) : (n - 3) % 4 == 0 && (l = -f.size,
                                        d = 3 * f.size + 4 * f.size * r),
                                        f.rtl && (l = -l),
                                        f.isHorizontal() || (c = l,
                                        l = 0);
                                        var u = "rotateX(" + (f.isHorizontal() ? 0 : -o) + "deg) rotateY(" + (f.isHorizontal() ? o : 0) + "deg) translate3d(" + l + "px, " + c + "px, " + d + "px)";
                                        if (s <= 1 && s > -1 && (i = 90 * n + 90 * s,
                                        f.rtl && (i = 90 * -n - 90 * s)),
                                        a.transform(u),
                                        f.params.cube.slideShadows) {
                                            var p = f.isHorizontal() ? a.find(".swiper-slide-shadow-left") : a.find(".swiper-slide-shadow-top")
                                              , m = f.isHorizontal() ? a.find(".swiper-slide-shadow-right") : a.find(".swiper-slide-shadow-bottom");
                                            0 === p.length && (p = t('<div class="swiper-slide-shadow-' + (f.isHorizontal() ? "left" : "top") + '"></div>'),
                                            a.append(p)),
                                            0 === m.length && (m = t('<div class="swiper-slide-shadow-' + (f.isHorizontal() ? "right" : "bottom") + '"></div>'),
                                            a.append(m)),
                                            p.length && (p[0].style.opacity = Math.max(-s, 0)),
                                            m.length && (m[0].style.opacity = Math.max(s, 0))
                                        }
                                    }
                                    if (f.wrapper.css({
                                        "-webkit-transform-origin": "50% 50% -" + f.size / 2 + "px",
                                        "-moz-transform-origin": "50% 50% -" + f.size / 2 + "px",
                                        "-ms-transform-origin": "50% 50% -" + f.size / 2 + "px",
                                        "transform-origin": "50% 50% -" + f.size / 2 + "px"
                                    }),
                                    f.params.cube.shadow)
                                        if (f.isHorizontal())
                                            e.transform("translate3d(0px, " + (f.width / 2 + f.params.cube.shadowOffset) + "px, " + -f.width / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + f.params.cube.shadowScale + ")");
                                        else {
                                            var h = Math.abs(i) - 90 * Math.floor(Math.abs(i) / 90)
                                              , g = 1.5 - (Math.sin(2 * h * Math.PI / 360) / 2 + Math.cos(2 * h * Math.PI / 360) / 2)
                                              , v = f.params.cube.shadowScale
                                              , b = f.params.cube.shadowScale / g
                                              , y = f.params.cube.shadowOffset;
                                            e.transform("scale3d(" + v + ", 1, " + b + ") translate3d(0px, " + (f.height / 2 + y) + "px, " + -f.height / 2 / b + "px) rotateX(-90deg)")
                                        }
                                    var w = f.isSafari || f.isUiWebView ? -f.size / 2 : 0;
                                    f.wrapper.transform("translate3d(0px,0," + w + "px) rotateX(" + (f.isHorizontal() ? 0 : i) + "deg) rotateY(" + (f.isHorizontal() ? -i : 0) + "deg)")
                                },
                                setTransition: function(e) {
                                    f.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),
                                    f.params.cube.shadow && !f.isHorizontal() && f.container.find(".swiper-cube-shadow").transition(e)
                                }
                            },
                            coverflow: {
                                setTranslate: function() {
                                    for (var e = f.translate, i = f.isHorizontal() ? -e + f.width / 2 : -e + f.height / 2, n = f.isHorizontal() ? f.params.coverflow.rotate : -f.params.coverflow.rotate, a = f.params.coverflow.depth, o = 0, r = f.slides.length; o < r; o++) {
                                        var s = f.slides.eq(o)
                                          , l = f.slidesSizesGrid[o]
                                          , c = (i - s[0].swiperSlideOffset - l / 2) / l * f.params.coverflow.modifier
                                          , d = f.isHorizontal() ? n * c : 0
                                          , u = f.isHorizontal() ? 0 : n * c
                                          , p = -a * Math.abs(c)
                                          , m = f.isHorizontal() ? 0 : f.params.coverflow.stretch * c
                                          , h = f.isHorizontal() ? f.params.coverflow.stretch * c : 0;
                                        Math.abs(h) < .001 && (h = 0),
                                        Math.abs(m) < .001 && (m = 0),
                                        Math.abs(p) < .001 && (p = 0),
                                        Math.abs(d) < .001 && (d = 0),
                                        Math.abs(u) < .001 && (u = 0);
                                        var g = "translate3d(" + h + "px," + m + "px," + p + "px)  rotateX(" + u + "deg) rotateY(" + d + "deg)";
                                        if (s.transform(g),
                                        s[0].style.zIndex = 1 - Math.abs(Math.round(c)),
                                        f.params.coverflow.slideShadows) {
                                            var v = f.isHorizontal() ? s.find(".swiper-slide-shadow-left") : s.find(".swiper-slide-shadow-top")
                                              , b = f.isHorizontal() ? s.find(".swiper-slide-shadow-right") : s.find(".swiper-slide-shadow-bottom");
                                            0 === v.length && (v = t('<div class="swiper-slide-shadow-' + (f.isHorizontal() ? "left" : "top") + '"></div>'),
                                            s.append(v)),
                                            0 === b.length && (b = t('<div class="swiper-slide-shadow-' + (f.isHorizontal() ? "right" : "bottom") + '"></div>'),
                                            s.append(b)),
                                            v.length && (v[0].style.opacity = c > 0 ? c : 0),
                                            b.length && (b[0].style.opacity = -c > 0 ? -c : 0)
                                        }
                                    }
                                    f.browser.ie && (f.wrapper[0].style.perspectiveOrigin = i + "px 50%")
                                },
                                setTransition: function(e) {
                                    f.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)
                                }
                            }
                        },
                        f.lazy = {
                            initialImageLoaded: !1,
                            loadImageInSlide: function(e, i) {
                                if (void 0 !== e && (void 0 === i && (i = !0),
                                0 !== f.slides.length)) {
                                    var n = f.slides.eq(e)
                                      , a = n.find(".swiper-lazy:not(.swiper-lazy-loaded):not(.swiper-lazy-loading)");
                                    !n.hasClass("swiper-lazy") || n.hasClass("swiper-lazy-loaded") || n.hasClass("swiper-lazy-loading") || (a = a.add(n[0])),
                                    0 !== a.length && a.each((function() {
                                        var e = t(this);
                                        e.addClass("swiper-lazy-loading");
                                        var a = e.attr("data-background")
                                          , o = e.attr("data-src")
                                          , r = e.attr("data-srcset");
                                        f.loadImage(e[0], o || a, r, !1, (function() {
                                            if (a ? (e.css("background-image", 'url("' + a + '")'),
                                            e.removeAttr("data-background")) : (r && (e.attr("srcset", r),
                                            e.removeAttr("data-srcset")),
                                            o && (e.attr("src", o),
                                            e.removeAttr("data-src"))),
                                            e.addClass("swiper-lazy-loaded").removeClass("swiper-lazy-loading"),
                                            n.find(".swiper-lazy-preloader, .preloader").remove(),
                                            f.params.loop && i) {
                                                var t = n.attr("data-swiper-slide-index");
                                                if (n.hasClass(f.params.slideDuplicateClass)) {
                                                    var s = f.wrapper.children('[data-swiper-slide-index="' + t + '"]:not(.' + f.params.slideDuplicateClass + ")");
                                                    f.lazy.loadImageInSlide(s.index(), !1)
                                                } else {
                                                    var l = f.wrapper.children("." + f.params.slideDuplicateClass + '[data-swiper-slide-index="' + t + '"]');
                                                    f.lazy.loadImageInSlide(l.index(), !1)
                                                }
                                            }
                                            f.emit("onLazyImageReady", f, n[0], e[0])
                                        }
                                        )),
                                        f.emit("onLazyImageLoad", f, n[0], e[0])
                                    }
                                    ))
                                }
                            },
                            load: function() {
                                var e;
                                if (f.params.watchSlidesVisibility)
                                    f.wrapper.children("." + f.params.slideVisibleClass).each((function() {
                                        f.lazy.loadImageInSlide(t(this).index())
                                    }
                                    ));
                                else if (f.params.slidesPerView > 1)
                                    for (e = f.activeIndex; e < f.activeIndex + f.params.slidesPerView; e++)
                                        f.slides[e] && f.lazy.loadImageInSlide(e);
                                else
                                    f.lazy.loadImageInSlide(f.activeIndex);
                                if (f.params.lazyLoadingInPrevNext)
                                    if (f.params.slidesPerView > 1 || f.params.lazyLoadingInPrevNextAmount && f.params.lazyLoadingInPrevNextAmount > 1) {
                                        var i = f.params.lazyLoadingInPrevNextAmount
                                          , n = f.params.slidesPerView
                                          , a = Math.min(f.activeIndex + n + Math.max(i, n), f.slides.length)
                                          , o = Math.max(f.activeIndex - Math.max(n, i), 0);
                                        for (e = f.activeIndex + f.params.slidesPerView; e < a; e++)
                                            f.slides[e] && f.lazy.loadImageInSlide(e);
                                        for (e = o; e < f.activeIndex; e++)
                                            f.slides[e] && f.lazy.loadImageInSlide(e)
                                    } else {
                                        var r = f.wrapper.children("." + f.params.slideNextClass);
                                        r.length > 0 && f.lazy.loadImageInSlide(r.index());
                                        var s = f.wrapper.children("." + f.params.slidePrevClass);
                                        s.length > 0 && f.lazy.loadImageInSlide(s.index())
                                    }
                            },
                            onTransitionStart: function() {
                                f.params.lazyLoading && (f.params.lazyLoadingOnTransitionStart || !f.params.lazyLoadingOnTransitionStart && !f.lazy.initialImageLoaded) && f.lazy.load()
                            },
                            onTransitionEnd: function() {
                                f.params.lazyLoading && !f.params.lazyLoadingOnTransitionStart && f.lazy.load()
                            }
                        },
                        f.scrollbar = {
                            isTouched: !1,
                            setDragPosition: function(e) {
                                var t = f.scrollbar
                                  , i = (f.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX || e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY || e.clientY) - t.track.offset()[f.isHorizontal() ? "left" : "top"] - t.dragSize / 2
                                  , n = -f.minTranslate() * t.moveDivider
                                  , a = -f.maxTranslate() * t.moveDivider;
                                i < n ? i = n : i > a && (i = a),
                                i = -i / t.moveDivider,
                                f.updateProgress(i),
                                f.setWrapperTranslate(i, !0)
                            },
                            dragStart: function(e) {
                                var t = f.scrollbar;
                                t.isTouched = !0,
                                e.preventDefault(),
                                e.stopPropagation(),
                                t.setDragPosition(e),
                                clearTimeout(t.dragTimeout),
                                t.track.transition(0),
                                f.params.scrollbarHide && t.track.css("opacity", 1),
                                f.wrapper.transition(100),
                                t.drag.transition(100),
                                f.emit("onScrollbarDragStart", f)
                            },
                            dragMove: function(e) {
                                var t = f.scrollbar;
                                t.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1,
                                t.setDragPosition(e),
                                f.wrapper.transition(0),
                                t.track.transition(0),
                                t.drag.transition(0),
                                f.emit("onScrollbarDragMove", f))
                            },
                            dragEnd: function(e) {
                                var t = f.scrollbar;
                                t.isTouched && (t.isTouched = !1,
                                f.params.scrollbarHide && (clearTimeout(t.dragTimeout),
                                t.dragTimeout = setTimeout((function() {
                                    t.track.css("opacity", 0),
                                    t.track.transition(400)
                                }
                                ), 1e3)),
                                f.emit("onScrollbarDragEnd", f),
                                f.params.scrollbarSnapOnRelease && f.slideReset())
                            },
                            enableDraggable: function() {
                                var e = f.scrollbar
                                  , i = f.support.touch ? e.track : document;
                                t(e.track).on(f.touchEvents.start, e.dragStart),
                                t(i).on(f.touchEvents.move, e.dragMove),
                                t(i).on(f.touchEvents.end, e.dragEnd)
                            },
                            disableDraggable: function() {
                                var e = f.scrollbar
                                  , i = f.support.touch ? e.track : document;
                                t(e.track).off(f.touchEvents.start, e.dragStart),
                                t(i).off(f.touchEvents.move, e.dragMove),
                                t(i).off(f.touchEvents.end, e.dragEnd)
                            },
                            set: function() {
                                if (f.params.scrollbar) {
                                    var e = f.scrollbar;
                                    e.track = t(f.params.scrollbar),
                                    f.params.uniqueNavElements && "string" == typeof f.params.scrollbar && e.track.length > 1 && 1 === f.container.find(f.params.scrollbar).length && (e.track = f.container.find(f.params.scrollbar)),
                                    e.drag = e.track.find(".swiper-scrollbar-drag"),
                                    0 === e.drag.length && (e.drag = t('<div class="swiper-scrollbar-drag"></div>'),
                                    e.track.append(e.drag)),
                                    e.drag[0].style.width = "",
                                    e.drag[0].style.height = "",
                                    e.trackSize = f.isHorizontal() ? e.track[0].offsetWidth : e.track[0].offsetHeight,
                                    e.divider = f.size / f.virtualSize,
                                    e.moveDivider = e.divider * (e.trackSize / f.size),
                                    e.dragSize = e.trackSize * e.divider,
                                    f.isHorizontal() ? e.drag[0].style.width = e.dragSize + "px" : e.drag[0].style.height = e.dragSize + "px",
                                    e.divider >= 1 ? e.track[0].style.display = "none" : e.track[0].style.display = "",
                                    f.params.scrollbarHide && (e.track[0].style.opacity = 0)
                                }
                            },
                            setTranslate: function() {
                                if (f.params.scrollbar) {
                                    var e, t = f.scrollbar, i = (f.translate,
                                    t.dragSize);
                                    e = (t.trackSize - t.dragSize) * f.progress,
                                    f.rtl && f.isHorizontal() ? (e = -e) > 0 ? (i = t.dragSize - e,
                                    e = 0) : -e + t.dragSize > t.trackSize && (i = t.trackSize + e) : e < 0 ? (i = t.dragSize + e,
                                    e = 0) : e + t.dragSize > t.trackSize && (i = t.trackSize - e),
                                    f.isHorizontal() ? (f.support.transforms3d ? t.drag.transform("translate3d(" + e + "px, 0, 0)") : t.drag.transform("translateX(" + e + "px)"),
                                    t.drag[0].style.width = i + "px") : (f.support.transforms3d ? t.drag.transform("translate3d(0px, " + e + "px, 0)") : t.drag.transform("translateY(" + e + "px)"),
                                    t.drag[0].style.height = i + "px"),
                                    f.params.scrollbarHide && (clearTimeout(t.timeout),
                                    t.track[0].style.opacity = 1,
                                    t.timeout = setTimeout((function() {
                                        t.track[0].style.opacity = 0,
                                        t.track.transition(400)
                                    }
                                    ), 1e3))
                                }
                            },
                            setTransition: function(e) {
                                f.params.scrollbar && f.scrollbar.drag.transition(e)
                            }
                        },
                        f.controller = {
                            LinearSpline: function(e, t) {
                                var i, n;
                                this.x = e,
                                this.y = t,
                                this.lastIndex = e.length - 1;
                                this.x.length;
                                this.interpolate = function(e) {
                                    return e ? (n = s(this.x, e),
                                    i = n - 1,
                                    (e - this.x[i]) * (this.y[n] - this.y[i]) / (this.x[n] - this.x[i]) + this.y[i]) : 0
                                }
                                ;
                                var a, o, r, s = function(e, t) {
                                    for (o = -1,
                                    a = e.length; a - o > 1; )
                                        e[r = a + o >> 1] <= t ? o = r : a = r;
                                    return a
                                }
                            },
                            getInterpolateFunction: function(e) {
                                f.controller.spline || (f.controller.spline = f.params.loop ? new f.controller.LinearSpline(f.slidesGrid,e.slidesGrid) : new f.controller.LinearSpline(f.snapGrid,e.snapGrid))
                            },
                            setTranslate: function(e, t) {
                                var n, a, o = f.params.control;
                                function r(t) {
                                    e = t.rtl && "horizontal" === t.params.direction ? -f.translate : f.translate,
                                    "slide" === f.params.controlBy && (f.controller.getInterpolateFunction(t),
                                    a = -f.controller.spline.interpolate(-e)),
                                    a && "container" !== f.params.controlBy || (n = (t.maxTranslate() - t.minTranslate()) / (f.maxTranslate() - f.minTranslate()),
                                    a = (e - f.minTranslate()) * n + t.minTranslate()),
                                    f.params.controlInverse && (a = t.maxTranslate() - a),
                                    t.updateProgress(a),
                                    t.setWrapperTranslate(a, !1, f),
                                    t.updateActiveIndex()
                                }
                                if (f.isArray(o))
                                    for (var s = 0; s < o.length; s++)
                                        o[s] !== t && o[s]instanceof i && r(o[s]);
                                else
                                    o instanceof i && t !== o && r(o)
                            },
                            setTransition: function(e, t) {
                                var n, a = f.params.control;
                                function o(t) {
                                    t.setWrapperTransition(e, f),
                                    0 !== e && (t.onTransitionStart(),
                                    t.wrapper.transitionEnd((function() {
                                        a && (t.params.loop && "slide" === f.params.controlBy && t.fixLoop(),
                                        t.onTransitionEnd())
                                    }
                                    )))
                                }
                                if (f.isArray(a))
                                    for (n = 0; n < a.length; n++)
                                        a[n] !== t && a[n]instanceof i && o(a[n]);
                                else
                                    a instanceof i && t !== a && o(a)
                            }
                        },
                        f.hashnav = {
                            init: function() {
                                if (f.params.hashnav) {
                                    f.hashnav.initialized = !0;
                                    var e = document.location.hash.replace("#", "");
                                    if (e)
                                        for (var t = 0, i = f.slides.length; t < i; t++) {
                                            var n = f.slides.eq(t);
                                            if (n.attr("data-hash") === e && !n.hasClass(f.params.slideDuplicateClass)) {
                                                var a = n.index();
                                                f.slideTo(a, 0, f.params.runCallbacksOnInit, !0)
                                            }
                                        }
                                }
                            },
                            setHash: function() {
                                f.hashnav.initialized && f.params.hashnav && (document.location.hash = f.slides.eq(f.activeIndex).attr("data-hash") || "")
                            }
                        },
                        f.disableKeyboardControl = function() {
                            f.params.keyboardControl = !1,
                            t(document).off("keydown", z)
                        }
                        ,
                        f.enableKeyboardControl = function() {
                            f.params.keyboardControl = !0,
                            t(document).on("keydown", z)
                        }
                        ,
                        f.mousewheel = {
                            event: !1,
                            lastScrollTime: (new window.Date).getTime()
                        },
                        f.params.mousewheelControl) {
                            try {
                                new window.WheelEvent("wheel"),
                                f.mousewheel.event = "wheel"
                            } catch (e) {
                                (window.WheelEvent || f.container[0] && "wheel"in f.container[0]) && (f.mousewheel.event = "wheel")
                            }
                            !f.mousewheel.event && window.WheelEvent,
                            f.mousewheel.event || void 0 === document.onmousewheel || (f.mousewheel.event = "mousewheel"),
                            f.mousewheel.event || (f.mousewheel.event = "DOMMouseScroll")
                        }
                        for (var M in f.disableMousewheelControl = function() {
                            return !!f.mousewheel.event && (f.container.off(f.mousewheel.event, q),
                            !0)
                        }
                        ,
                        f.enableMousewheelControl = function() {
                            return !!f.mousewheel.event && (f.container.on(f.mousewheel.event, q),
                            !0)
                        }
                        ,
                        f.parallax = {
                            setTranslate: function() {
                                f.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function() {
                                    F(this, f.progress)
                                }
                                )),
                                f.slides.each((function() {
                                    var e = t(this);
                                    e.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function() {
                                        F(this, Math.min(Math.max(e[0].progress, -1), 1))
                                    }
                                    ))
                                }
                                ))
                            },
                            setTransition: function(e) {
                                void 0 === e && (e = f.params.speed),
                                f.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function() {
                                    var i = t(this)
                                      , n = parseInt(i.attr("data-swiper-parallax-duration"), 10) || e;
                                    0 === e && (n = 0),
                                    i.transition(n)
                                }
                                ))
                            }
                        },
                        f._plugins = [],
                        f.plugins) {
                            var L = f.plugins[M](f, f.params[M]);
                            L && f._plugins.push(L)
                        }
                        return f.callPlugins = function(e) {
                            for (var t = 0; t < f._plugins.length; t++)
                                e in f._plugins[t] && f._plugins[t][e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5])
                        }
                        ,
                        f.emitterEventListeners = {},
                        f.emit = function(e) {
                            var t;
                            if (f.params[e] && f.params[e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]),
                            f.emitterEventListeners[e])
                                for (t = 0; t < f.emitterEventListeners[e].length; t++)
                                    f.emitterEventListeners[e][t](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
                            f.callPlugins && f.callPlugins(e, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5])
                        }
                        ,
                        f.on = function(e, t) {
                            return e = R(e),
                            f.emitterEventListeners[e] || (f.emitterEventListeners[e] = []),
                            f.emitterEventListeners[e].push(t),
                            f
                        }
                        ,
                        f.off = function(e, t) {
                            var i;
                            if (e = R(e),
                            void 0 === t)
                                return f.emitterEventListeners[e] = [],
                                f;
                            if (f.emitterEventListeners[e] && 0 !== f.emitterEventListeners[e].length) {
                                for (i = 0; i < f.emitterEventListeners[e].length; i++)
                                    f.emitterEventListeners[e][i] === t && f.emitterEventListeners[e].splice(i, 1);
                                return f
                            }
                        }
                        ,
                        f.once = function(e, t) {
                            e = R(e);
                            return f.on(e, (function i() {
                                t(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]),
                                f.off(e, i)
                            }
                            )),
                            f
                        }
                        ,
                        f.a11y = {
                            makeFocusable: function(e) {
                                return e.attr("tabIndex", "0"),
                                e
                            },
                            addRole: function(e, t) {
                                return e.attr("role", t),
                                e
                            },
                            addLabel: function(e, t) {
                                return e.attr("aria-label", t),
                                e
                            },
                            disable: function(e) {
                                return e.attr("aria-disabled", !0),
                                e
                            },
                            enable: function(e) {
                                return e.attr("aria-disabled", !1),
                                e
                            },
                            onEnterKey: function(e) {
                                13 === e.keyCode && (t(e.target).is(f.params.nextButton) ? (f.onClickNext(e),
                                f.isEnd ? f.a11y.notify(f.params.lastSlideMessage) : f.a11y.notify(f.params.nextSlideMessage)) : t(e.target).is(f.params.prevButton) && (f.onClickPrev(e),
                                f.isBeginning ? f.a11y.notify(f.params.firstSlideMessage) : f.a11y.notify(f.params.prevSlideMessage)),
                                t(e.target).is("." + f.params.bulletClass) && t(e.target)[0].click())
                            },
                            liveRegion: t('<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>'),
                            notify: function(e) {
                                var t = f.a11y.liveRegion;
                                0 !== t.length && (t.html(""),
                                t.html(e))
                            },
                            init: function() {
                                f.params.nextButton && f.nextButton && f.nextButton.length > 0 && (f.a11y.makeFocusable(f.nextButton),
                                f.a11y.addRole(f.nextButton, "button"),
                                f.a11y.addLabel(f.nextButton, f.params.nextSlideMessage)),
                                f.params.prevButton && f.prevButton && f.prevButton.length > 0 && (f.a11y.makeFocusable(f.prevButton),
                                f.a11y.addRole(f.prevButton, "button"),
                                f.a11y.addLabel(f.prevButton, f.params.prevSlideMessage)),
                                t(f.container).append(f.a11y.liveRegion)
                            },
                            initPagination: function() {
                                f.params.pagination && f.params.paginationClickable && f.bullets && f.bullets.length && f.bullets.each((function() {
                                    var e = t(this);
                                    f.a11y.makeFocusable(e),
                                    f.a11y.addRole(e, "button"),
                                    f.a11y.addLabel(e, f.params.paginationBulletMessage.replace(/{{index}}/, e.index() + 1))
                                }
                                ))
                            },
                            destroy: function() {
                                f.a11y.liveRegion && f.a11y.liveRegion.length > 0 && f.a11y.liveRegion.remove()
                            }
                        },
                        f.init = function() {
                            f.params.loop && f.createLoop(),
                            f.updateContainerSize(),
                            f.updateSlidesSize(),
                            f.updatePagination(),
                            f.params.scrollbar && f.scrollbar && (f.scrollbar.set(),
                            f.params.scrollbarDraggable && f.scrollbar.enableDraggable()),
                            "slide" !== f.params.effect && f.effects[f.params.effect] && (f.params.loop || f.updateProgress(),
                            f.effects[f.params.effect].setTranslate()),
                            f.params.loop ? f.slideTo(f.params.initialSlide + f.loopedSlides, 0, f.params.runCallbacksOnInit) : (f.slideTo(f.params.initialSlide, 0, f.params.runCallbacksOnInit),
                            0 === f.params.initialSlide && (f.parallax && f.params.parallax && f.parallax.setTranslate(),
                            f.lazy && f.params.lazyLoading && (f.lazy.load(),
                            f.lazy.initialImageLoaded = !0))),
                            f.attachEvents(),
                            f.params.observer && f.support.observer && f.initObservers(),
                            f.params.preloadImages && !f.params.lazyLoading && f.preloadImages(),
                            f.params.autoplay && f.startAutoplay(),
                            f.params.keyboardControl && f.enableKeyboardControl && f.enableKeyboardControl(),
                            f.params.mousewheelControl && f.enableMousewheelControl && f.enableMousewheelControl(),
                            f.params.hashnav && f.hashnav && f.hashnav.init(),
                            f.params.a11y && f.a11y && f.a11y.init(),
                            f.emit("onInit", f)
                        }
                        ,
                        f.cleanupStyles = function() {
                            f.container.removeClass(f.classNames.join(" ")).removeAttr("style"),
                            f.wrapper.removeAttr("style"),
                            f.slides && f.slides.length && f.slides.removeClass([f.params.slideVisibleClass, f.params.slideActiveClass, f.params.slideNextClass, f.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"),
                            f.paginationContainer && f.paginationContainer.length && f.paginationContainer.removeClass(f.params.paginationHiddenClass),
                            f.bullets && f.bullets.length && f.bullets.removeClass(f.params.bulletActiveClass),
                            f.params.prevButton && t(f.params.prevButton).removeClass(f.params.buttonDisabledClass),
                            f.params.nextButton && t(f.params.nextButton).removeClass(f.params.buttonDisabledClass),
                            f.params.scrollbar && f.scrollbar && (f.scrollbar.track && f.scrollbar.track.length && f.scrollbar.track.removeAttr("style"),
                            f.scrollbar.drag && f.scrollbar.drag.length && f.scrollbar.drag.removeAttr("style"))
                        }
                        ,
                        f.destroy = function(e, t) {
                            f.detachEvents(),
                            f.stopAutoplay(),
                            f.params.scrollbar && f.scrollbar && f.params.scrollbarDraggable && f.scrollbar.disableDraggable(),
                            f.params.loop && f.destroyLoop(),
                            t && f.cleanupStyles(),
                            f.disconnectObservers(),
                            f.params.keyboardControl && f.disableKeyboardControl && f.disableKeyboardControl(),
                            f.params.mousewheelControl && f.disableMousewheelControl && f.disableMousewheelControl(),
                            f.params.a11y && f.a11y && f.a11y.destroy(),
                            f.emit("onDestroy"),
                            !1 !== e && (f = null)
                        }
                        ,
                        f.init(),
                        f
                    }
                    function N(e) {
                        return Math.floor(e)
                    }
                    function H() {
                        f.autoplayTimeoutId = setTimeout((function() {
                            f.params.loop ? (f.fixLoop(),
                            f._slideNext(),
                            f.emit("onAutoplay", f)) : f.isEnd ? s.autoplayStopOnLast ? f.stopAutoplay() : (f._slideTo(0),
                            f.emit("onAutoplay", f)) : (f._slideNext(),
                            f.emit("onAutoplay", f))
                        }
                        ), f.params.autoplay)
                    }
                    function B(e, i) {
                        var n = t(e.target);
                        if (!n.is(i))
                            if ("string" == typeof i)
                                n = n.parents(i);
                            else if (i.nodeType) {
                                var a;
                                return n.parents().each((function(e, t) {
                                    t === i && (a = i)
                                }
                                )),
                                a ? i : void 0
                            }
                        if (0 !== n.length)
                            return n[0]
                    }
                    function j(e, t) {
                        t = t || {};
                        var i = new (window.MutationObserver || window.WebkitMutationObserver)((function(e) {
                            e.forEach((function(e) {
                                f.onResize(!0),
                                f.emit("onObserverUpdate", f, e)
                            }
                            ))
                        }
                        ));
                        i.observe(e, {
                            attributes: void 0 === t.attributes || t.attributes,
                            childList: void 0 === t.childList || t.childList,
                            characterData: void 0 === t.characterData || t.characterData
                        }),
                        f.observers.push(i)
                    }
                    function z(e) {
                        e.originalEvent && (e = e.originalEvent);
                        var t = e.keyCode || e.charCode;
                        if (!f.params.allowSwipeToNext && (f.isHorizontal() && 39 === t || !f.isHorizontal() && 40 === t))
                            return !1;
                        if (!f.params.allowSwipeToPrev && (f.isHorizontal() && 37 === t || !f.isHorizontal() && 38 === t))
                            return !1;
                        if (!(e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || document.activeElement && document.activeElement.nodeName && ("input" === document.activeElement.nodeName.toLowerCase() || "textarea" === document.activeElement.nodeName.toLowerCase()))) {
                            if (37 === t || 39 === t || 38 === t || 40 === t) {
                                var i = !1;
                                if (f.container.parents(".swiper-slide").length > 0 && 0 === f.container.parents(".swiper-slide-active").length)
                                    return;
                                var n = {
                                    left: window.pageXOffset,
                                    top: window.pageYOffset
                                }
                                  , a = window.innerWidth
                                  , o = window.innerHeight
                                  , r = f.container.offset();
                                f.rtl && (r.left = r.left - f.container[0].scrollLeft);
                                for (var s = [[r.left, r.top], [r.left + f.width, r.top], [r.left, r.top + f.height], [r.left + f.width, r.top + f.height]], l = 0; l < s.length; l++) {
                                    var c = s[l];
                                    c[0] >= n.left && c[0] <= n.left + a && c[1] >= n.top && c[1] <= n.top + o && (i = !0)
                                }
                                if (!i)
                                    return
                            }
                            f.isHorizontal() ? (37 !== t && 39 !== t || (e.preventDefault ? e.preventDefault() : e.returnValue = !1),
                            (39 === t && !f.rtl || 37 === t && f.rtl) && f.slideNext(),
                            (37 === t && !f.rtl || 39 === t && f.rtl) && f.slidePrev()) : (38 !== t && 40 !== t || (e.preventDefault ? e.preventDefault() : e.returnValue = !1),
                            40 === t && f.slideNext(),
                            38 === t && f.slidePrev())
                        }
                    }
                    function q(e) {
                        e.originalEvent && (e = e.originalEvent);
                        var t = f.mousewheel.event
                          , i = 0
                          , n = f.rtl ? -1 : 1;
                        if ("mousewheel" === t)
                            if (f.params.mousewheelForceToAxis)
                                if (f.isHorizontal()) {
                                    if (!(Math.abs(e.wheelDeltaX) > Math.abs(e.wheelDeltaY)))
                                        return;
                                    i = e.wheelDeltaX * n
                                } else {
                                    if (!(Math.abs(e.wheelDeltaY) > Math.abs(e.wheelDeltaX)))
                                        return;
                                    i = e.wheelDeltaY
                                }
                            else
                                i = Math.abs(e.wheelDeltaX) > Math.abs(e.wheelDeltaY) ? -e.wheelDeltaX * n : -e.wheelDeltaY;
                        else if ("DOMMouseScroll" === t)
                            i = -e.detail;
                        else if ("wheel" === t)
                            if (f.params.mousewheelForceToAxis)
                                if (f.isHorizontal()) {
                                    if (!(Math.abs(e.deltaX) > Math.abs(e.deltaY)))
                                        return;
                                    i = -e.deltaX * n
                                } else {
                                    if (!(Math.abs(e.deltaY) > Math.abs(e.deltaX)))
                                        return;
                                    i = -e.deltaY
                                }
                            else
                                i = Math.abs(e.deltaX) > Math.abs(e.deltaY) ? -e.deltaX * n : -e.deltaY;
                        if (0 !== i) {
                            if (f.params.mousewheelInvert && (i = -i),
                            f.params.freeMode) {
                                var a = f.getWrapperTranslate() + i * f.params.mousewheelSensitivity
                                  , o = f.isBeginning
                                  , r = f.isEnd;
                                if (a >= f.minTranslate() && (a = f.minTranslate()),
                                a <= f.maxTranslate() && (a = f.maxTranslate()),
                                f.setWrapperTransition(0),
                                f.setWrapperTranslate(a),
                                f.updateProgress(),
                                f.updateActiveIndex(),
                                (!o && f.isBeginning || !r && f.isEnd) && f.updateClasses(),
                                f.params.freeModeSticky ? (clearTimeout(f.mousewheel.timeout),
                                f.mousewheel.timeout = setTimeout((function() {
                                    f.slideReset()
                                }
                                ), 300)) : f.params.lazyLoading && f.lazy && f.lazy.load(),
                                0 === a || a === f.maxTranslate())
                                    return
                            } else {
                                if ((new window.Date).getTime() - f.mousewheel.lastScrollTime > 60)
                                    if (i < 0)
                                        if (f.isEnd && !f.params.loop || f.animating) {
                                            if (f.params.mousewheelReleaseOnEdges)
                                                return !0
                                        } else
                                            f.slideNext();
                                    else if (f.isBeginning && !f.params.loop || f.animating) {
                                        if (f.params.mousewheelReleaseOnEdges)
                                            return !0
                                    } else
                                        f.slidePrev();
                                f.mousewheel.lastScrollTime = (new window.Date).getTime()
                            }
                            return f.params.autoplay && f.stopAutoplay(),
                            e.preventDefault ? e.preventDefault() : e.returnValue = !1,
                            !1
                        }
                    }
                    function F(e, i) {
                        var n, a, o;
                        e = t(e);
                        var r = f.rtl ? -1 : 1;
                        n = e.attr("data-swiper-parallax") || "0",
                        a = e.attr("data-swiper-parallax-x"),
                        o = e.attr("data-swiper-parallax-y"),
                        a || o ? (a = a || "0",
                        o = o || "0") : f.isHorizontal() ? (a = n,
                        o = "0") : (o = n,
                        a = "0"),
                        a = a.indexOf("%") >= 0 ? parseInt(a, 10) * i * r + "%" : a * i * r + "px",
                        o = o.indexOf("%") >= 0 ? parseInt(o, 10) * i + "%" : o * i + "px",
                        e.transform("translate3d(" + a + ", " + o + ",0px)")
                    }
                    function R(e) {
                        return 0 !== e.indexOf("on") && (e = e[0] !== e[0].toUpperCase() ? "on" + e[0].toUpperCase() + e.substring(1) : "on" + e),
                        e
                    }
                };
                s.prototype = {
                    isSafari: (r = navigator.userAgent.toLowerCase(),
                    r.indexOf("safari") >= 0 && r.indexOf("chrome") < 0 && r.indexOf("android") < 0),
                    isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent),
                    isArray: function(e) {
                        return "[object Array]" === Object.prototype.toString.apply(e)
                    },
                    browser: {
                        ie: window.navigator.pointerEnabled || window.navigator.msPointerEnabled,
                        ieTouch: window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1
                    },
                    device: function() {
                        var e = navigator.userAgent
                          , t = e.match(/(Android);?[\s\/]+([\d.]+)?/)
                          , i = e.match(/(iPad).*OS\s([\d_]+)/)
                          , n = e.match(/(iPod)(.*OS\s([\d_]+))?/)
                          , a = !i && e.match(/(iPhone\sOS)\s([\d_]+)/);
                        return {
                            ios: i || a || n,
                            android: t
                        }
                    }(),
                    support: {
                        touch: window.Modernizr && !0 === Modernizr.touch || !!("ontouchstart"in window || window.DocumentTouch && document instanceof DocumentTouch),
                        transforms3d: window.Modernizr && !0 === Modernizr.csstransforms3d || (i = document.createElement("div").style,
                        "webkitPerspective"in i || "MozPerspective"in i || "OPerspective"in i || "MsPerspective"in i || "perspective"in i),
                        flexbox: function() {
                            for (var e = document.createElement("div").style, t = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "), i = 0; i < t.length; i++)
                                if (t[i]in e)
                                    return !0
                        }(),
                        observer: "MutationObserver"in window || "WebkitMutationObserver"in window
                    },
                    plugins: {}
                };
                for (var l, c = ["jQuery", "Zepto", "Dom7"], d = 0; d < c.length; d++)
                    window[c[d]] && u(window[c[d]]);
                function u(e) {
                    e.fn.swiper = function(t) {
                        var i;
                        return e(this).each((function() {
                            var e = new s(this,t);
                            i || (i = e)
                        }
                        )),
                        i
                    }
                }
                return (l = void 0 === e ? window.Dom7 || window.Zepto || a : e) && ("transitionEnd"in l.fn || (l.fn.transitionEnd = function(e) {
                    var t, i = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], n = this;
                    function a(o) {
                        if (o.target === this)
                            for (e.call(this, o),
                            t = 0; t < i.length; t++)
                                n.off(i[t], a)
                    }
                    if (e)
                        for (t = 0; t < i.length; t++)
                            n.on(i[t], a);
                    return this
                }
                ),
                "transform"in l.fn || (l.fn.transform = function(e) {
                    for (var t = 0; t < this.length; t++) {
                        var i = this[t].style;
                        i.webkitTransform = i.MsTransform = i.msTransform = i.MozTransform = i.OTransform = i.transform = e
                    }
                    return this
                }
                ),
                "transition"in l.fn || (l.fn.transition = function(e) {
                    "string" != typeof e && (e += "ms");
                    for (var t = 0; t < this.length; t++) {
                        var i = this[t].style;
                        i.webkitTransitionDuration = i.MsTransitionDuration = i.msTransitionDuration = i.MozTransitionDuration = i.OTransitionDuration = i.transitionDuration = e
                    }
                    return this
                }
                )),
                s
            }
            function s(e, t, i) {
                return {
                    restrict: "E",
                    transclude: !0,
                    replace: !0,
                    scope: {
                        onInit: "=",
                        onSlideChangeStart: "=",
                        onSlideChangeEnd: "=",
                        onSlideNextStart: "=",
                        onSlideNextEnd: "=",
                        onSlidePrevStart: "=",
                        onSlidePrevEnd: "=",
                        onTransitionStart: "=",
                        onTransitionEnd: "=",
                        onTouchStart: "=",
                        onTouchMove: "=",
                        onTouchMoveOpposite: "=",
                        onSliderMove: "=",
                        onTouchEnd: "=",
                        onClick: "=",
                        onTap: "=",
                        onDoubleTap: "=",
                        onImagesReady: "=",
                        onProgress: "=",
                        onReachBeginning: "=",
                        onReachEnd: "=",
                        onDestroy: "=",
                        onSetTranslate: "=",
                        onSetTransition: "=",
                        onAutoplay: "=",
                        onAutoplayStart: "=",
                        onAutoplayStop: "=",
                        onLazyImageLoad: "=",
                        onLazyImageReady: "=",
                        onPaginationRendered: "=",
                        instance: "=?"
                    },
                    priority: 0,
                    template: '<div class="swiper-container" ng-transclude></div>',
                    link: function(n, a, o) {
                        var r;
                        angular.extend(o, n),
                        n.uuid = (r = (new Date).getTime(),
                        "axxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (function(e) {
                            var t = (r + 16 * Math.random()) % 16 | 0;
                            return r = Math.floor(r / 16),
                            ("x" == e ? t : 3 & t | 8).toString(16)
                        }
                        ))),
                        a.addClass(n.uuid),
                        o.pagination = "." + n.uuid + " .swiper-pagination",
                        o.paginationClickable = !0,
                        o.nextButton = "." + n.uuid + " .swiper-button-next",
                        o.prevButton = "." + n.uuid + " .swiper-button-prev",
                        i((function() {
                            o && o.speed && (o.speed = parseInt(o.speed)),
                            n.instance = new e("." + n.uuid,o)
                        }
                        )),
                        t.$on(n.uuid, (function() {
                            i((function() {
                                n.instance = new e("." + n.uuid,o)
                            }
                            ))
                        }
                        ))
                    }
                }
            }
            function l(e) {
                return {
                    restrict: "E",
                    replace: !0,
                    transclude: !0,
                    template: '<div class="swiper-slide" ng-transclude></div>',
                    require: "^slides",
                    priority: 3,
                    link: function(t, i, n) {
                        var a = t.$parent.$parent.$parent.uuid;
                        t.$watch("$last", (function(t) {
                            t && e.$broadcast(a)
                        }
                        ))
                    }
                }
            }
            angular.module("ui.swiper", []),
            r.$inject = ["Dom7"],
            angular.module("ui.swiper").factory("Swiper", r),
            s.$inject = ["Swiper", "$rootScope", "$timeout"],
            angular.module("ui.swiper").directive("swiper", s),
            angular.module("ui.swiper").directive("slides", (function() {
                return {
                    restrict: "E",
                    transclude: !0,
                    replace: !0,
                    require: "^swiper",
                    template: '<div class="swiper-wrapper" ng-transclude></div>',
                    priority: 2,
                    controller: function() {}
                }
            }
            )),
            l.$inject = ["$rootScope"],
            angular.module("ui.swiper").directive("slide", l),
            angular.module("ui.swiper").directive("prev", (function() {
                return {
                    restrict: "AE",
                    transclude: !0,
                    replace: !0,
                    require: "^swiper",
                    template: '<div class="swiper-button-prev" ng-transclude></div>',
                    priority: 2,
                    scope: !0
                }
            }
            )),
            angular.module("ui.swiper").directive("pagination", (function() {
                return {
                    restrict: "AE",
                    transclude: !0,
                    replace: !0,
                    require: "^swiper",
                    template: '<div class="swiper-pagination" ng-transclude></div>',
                    priority: 2
                }
            }
            )),
            angular.module("ui.swiper").directive("next", (function() {
                return {
                    restrict: "AE",
                    transclude: !0,
                    replace: !0,
                    require: "^swiper",
                    template: '<div class="swiper-button-next" ng-transclude></div>',
                    priority: 2
                }
            }
            )),
            angular.module("ui.swiper").factory("Dom7", (function() {
                var e = function() {
                    var e = function(e) {
                        var t = 0;
                        for (t = 0; t < e.length; t++)
                            this[t] = e[t];
                        return this.length = e.length,
                        this
                    }
                      , t = function(t, i) {
                        var n = []
                          , a = 0;
                        if (t && !i && t instanceof e)
                            return t;
                        if (t)
                            if ("string" == typeof t) {
                                var o, r, s = t.trim();
                                if (s.indexOf("<") >= 0 && s.indexOf(">") >= 0) {
                                    var l = "div";
                                    for (0 === s.indexOf("<li") && (l = "ul"),
                                    0 === s.indexOf("<tr") && (l = "tbody"),
                                    0 !== s.indexOf("<td") && 0 !== s.indexOf("<th") || (l = "tr"),
                                    0 === s.indexOf("<tbody") && (l = "table"),
                                    0 === s.indexOf("<option") && (l = "select"),
                                    (r = document.createElement(l)).innerHTML = t,
                                    a = 0; a < r.childNodes.length; a++)
                                        n.push(r.childNodes[a])
                                } else
                                    for (o = i || "#" !== t[0] || t.match(/[ .<>:~]/) ? (i || document).querySelectorAll(t) : [document.getElementById(t.split("#")[1])],
                                    a = 0; a < o.length; a++)
                                        o[a] && n.push(o[a])
                            } else if (t.nodeType || t === window || t === document)
                                n.push(t);
                            else if (t.length > 0 && t[0].nodeType)
                                for (a = 0; a < t.length; a++)
                                    n.push(t[a]);
                        return new e(n)
                    };
                    return e.prototype = {
                        addClass: function(e) {
                            if (void 0 === e)
                                return this;
                            for (var t = e.split(" "), i = 0; i < t.length; i++)
                                for (var n = 0; n < this.length; n++)
                                    this[n].classList.add(t[i]);
                            return this
                        },
                        removeClass: function(e) {
                            for (var t = e.split(" "), i = 0; i < t.length; i++)
                                for (var n = 0; n < this.length; n++)
                                    this[n].classList.remove(t[i]);
                            return this
                        },
                        hasClass: function(e) {
                            return !!this[0] && this[0].classList.contains(e)
                        },
                        toggleClass: function(e) {
                            for (var t = e.split(" "), i = 0; i < t.length; i++)
                                for (var n = 0; n < this.length; n++)
                                    this[n].classList.toggle(t[i]);
                            return this
                        },
                        attr: function(e, t) {
                            if (1 === arguments.length && "string" == typeof e)
                                return this[0] ? this[0].getAttribute(e) : void 0;
                            for (var i = 0; i < this.length; i++)
                                if (2 === arguments.length)
                                    this[i].setAttribute(e, t);
                                else
                                    for (var n in e)
                                        this[i][n] = e[n],
                                        this[i].setAttribute(n, e[n]);
                            return this
                        },
                        removeAttr: function(e) {
                            for (var t = 0; t < this.length; t++)
                                this[t].removeAttribute(e);
                            return this
                        },
                        data: function(e, t) {
                            if (void 0 !== t) {
                                for (var i = 0; i < this.length; i++) {
                                    var n = this[i];
                                    n.dom7ElementDataStorage || (n.dom7ElementDataStorage = {}),
                                    n.dom7ElementDataStorage[e] = t
                                }
                                return this
                            }
                            if (this[0]) {
                                var a = this[0].getAttribute("data-" + e);
                                return a || (this[0].dom7ElementDataStorage && e in this[0].dom7ElementDataStorage ? this[0].dom7ElementDataStorage[e] : void 0)
                            }
                        },
                        transform: function(e) {
                            for (var t = 0; t < this.length; t++) {
                                var i = this[t].style;
                                i.webkitTransform = i.MsTransform = i.msTransform = i.MozTransform = i.OTransform = i.transform = e
                            }
                            return this
                        },
                        transition: function(e) {
                            "string" != typeof e && (e += "ms");
                            for (var t = 0; t < this.length; t++) {
                                var i = this[t].style;
                                i.webkitTransitionDuration = i.MsTransitionDuration = i.msTransitionDuration = i.MozTransitionDuration = i.OTransitionDuration = i.transitionDuration = e
                            }
                            return this
                        },
                        on: function(e, i, n, a) {
                            function o(e) {
                                var a = e.target;
                                if (t(a).is(i))
                                    n.call(a, e);
                                else
                                    for (var o = t(a).parents(), r = 0; r < o.length; r++)
                                        t(o[r]).is(i) && n.call(o[r], e)
                            }
                            var r, s, l = e.split(" ");
                            for (r = 0; r < this.length; r++)
                                if ("function" == typeof i || !1 === i)
                                    for ("function" == typeof i && (n = arguments[1],
                                    a = arguments[2] || !1),
                                    s = 0; s < l.length; s++)
                                        this[r].addEventListener(l[s], n, a);
                                else
                                    for (s = 0; s < l.length; s++)
                                        this[r].dom7LiveListeners || (this[r].dom7LiveListeners = []),
                                        this[r].dom7LiveListeners.push({
                                            listener: n,
                                            liveListener: o
                                        }),
                                        this[r].addEventListener(l[s], o, a);
                            return this
                        },
                        off: function(e, t, i, n) {
                            for (var a = e.split(" "), o = 0; o < a.length; o++)
                                for (var r = 0; r < this.length; r++)
                                    if ("function" == typeof t || !1 === t)
                                        "function" == typeof t && (i = arguments[1],
                                        n = arguments[2] || !1),
                                        this[r].removeEventListener(a[o], i, n);
                                    else if (this[r].dom7LiveListeners)
                                        for (var s = 0; s < this[r].dom7LiveListeners.length; s++)
                                            this[r].dom7LiveListeners[s].listener === i && this[r].removeEventListener(a[o], this[r].dom7LiveListeners[s].liveListener, n);
                            return this
                        },
                        once: function(e, t, i, n) {
                            var a = this;
                            function o(r) {
                                i(r),
                                a.off(e, t, o, n)
                            }
                            "function" == typeof t && (t = !1,
                            i = arguments[1],
                            n = arguments[2]),
                            a.on(e, t, o, n)
                        },
                        trigger: function(e, t) {
                            for (var i = 0; i < this.length; i++) {
                                var n;
                                try {
                                    n = new window.CustomEvent(e,{
                                        detail: t,
                                        bubbles: !0,
                                        cancelable: !0
                                    })
                                } catch (i) {
                                    (n = document.createEvent("Event")).initEvent(e, !0, !0),
                                    n.detail = t
                                }
                                this[i].dispatchEvent(n)
                            }
                            return this
                        },
                        transitionEnd: function(e) {
                            var t, i = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], n = this;
                            function a(o) {
                                if (o.target === this)
                                    for (e.call(this, o),
                                    t = 0; t < i.length; t++)
                                        n.off(i[t], a)
                            }
                            if (e)
                                for (t = 0; t < i.length; t++)
                                    n.on(i[t], a);
                            return this
                        },
                        width: function() {
                            return this[0] === window ? window.innerWidth : this.length > 0 ? parseFloat(this.css("width")) : null
                        },
                        outerWidth: function(e) {
                            return this.length > 0 ? e ? this[0].offsetWidth + parseFloat(this.css("margin-right")) + parseFloat(this.css("margin-left")) : this[0].offsetWidth : null
                        },
                        height: function() {
                            return this[0] === window ? window.innerHeight : this.length > 0 ? parseFloat(this.css("height")) : null
                        },
                        outerHeight: function(e) {
                            return this.length > 0 ? e ? this[0].offsetHeight + parseFloat(this.css("margin-top")) + parseFloat(this.css("margin-bottom")) : this[0].offsetHeight : null
                        },
                        offset: function() {
                            if (this.length > 0) {
                                var e = this[0]
                                  , t = e.getBoundingClientRect()
                                  , i = document.body
                                  , n = e.clientTop || i.clientTop || 0
                                  , a = e.clientLeft || i.clientLeft || 0
                                  , o = window.pageYOffset || e.scrollTop
                                  , r = window.pageXOffset || e.scrollLeft;
                                return {
                                    top: t.top + o - n,
                                    left: t.left + r - a
                                }
                            }
                            return null
                        },
                        css: function(e, t) {
                            var i;
                            if (1 === arguments.length) {
                                if ("string" != typeof e) {
                                    for (i = 0; i < this.length; i++)
                                        for (var n in e)
                                            this[i].style[n] = e[n];
                                    return this
                                }
                                if (this[0])
                                    return window.getComputedStyle(this[0], null).getPropertyValue(e)
                            }
                            if (2 === arguments.length && "string" == typeof e) {
                                for (i = 0; i < this.length; i++)
                                    this[i].style[e] = t;
                                return this
                            }
                            return this
                        },
                        each: function(e) {
                            for (var t = 0; t < this.length; t++)
                                e.call(this[t], t, this[t]);
                            return this
                        },
                        html: function(e) {
                            if (void 0 === e)
                                return this[0] ? this[0].innerHTML : void 0;
                            for (var t = 0; t < this.length; t++)
                                this[t].innerHTML = e;
                            return this
                        },
                        text: function(e) {
                            if (void 0 === e)
                                return this[0] ? this[0].textContent.trim() : null;
                            for (var t = 0; t < this.length; t++)
                                this[t].textContent = e;
                            return this
                        },
                        is: function(i) {
                            if (!this[0])
                                return !1;
                            var n, a;
                            if ("string" == typeof i) {
                                var o = this[0];
                                if (o === document)
                                    return i === document;
                                if (o === window)
                                    return i === window;
                                if (o.matches)
                                    return o.matches(i);
                                if (o.webkitMatchesSelector)
                                    return o.webkitMatchesSelector(i);
                                if (o.mozMatchesSelector)
                                    return o.mozMatchesSelector(i);
                                if (o.msMatchesSelector)
                                    return o.msMatchesSelector(i);
                                for (n = t(i),
                                a = 0; a < n.length; a++)
                                    if (n[a] === this[0])
                                        return !0;
                                return !1
                            }
                            if (i === document)
                                return this[0] === document;
                            if (i === window)
                                return this[0] === window;
                            if (i.nodeType || i instanceof e) {
                                for (n = i.nodeType ? [i] : i,
                                a = 0; a < n.length; a++)
                                    if (n[a] === this[0])
                                        return !0;
                                return !1
                            }
                            return !1
                        },
                        index: function() {
                            if (this[0]) {
                                for (var e = this[0], t = 0; null !== (e = e.previousSibling); )
                                    1 === e.nodeType && t++;
                                return t
                            }
                        },
                        eq: function(t) {
                            if (void 0 === t)
                                return this;
                            var i, n = this.length;
                            return new e(t > n - 1 ? [] : t < 0 ? (i = n + t) < 0 ? [] : [this[i]] : [this[t]])
                        },
                        append: function(t) {
                            var i, n;
                            for (i = 0; i < this.length; i++)
                                if ("string" == typeof t) {
                                    var a = document.createElement("div");
                                    for (a.innerHTML = t; a.firstChild; )
                                        this[i].appendChild(a.firstChild)
                                } else if (t instanceof e)
                                    for (n = 0; n < t.length; n++)
                                        this[i].appendChild(t[n]);
                                else
                                    this[i].appendChild(t);
                            return this
                        },
                        prepend: function(t) {
                            var i, n;
                            for (i = 0; i < this.length; i++)
                                if ("string" == typeof t) {
                                    var a = document.createElement("div");
                                    for (a.innerHTML = t,
                                    n = a.childNodes.length - 1; n >= 0; n--)
                                        this[i].insertBefore(a.childNodes[n], this[i].childNodes[0])
                                } else if (t instanceof e)
                                    for (n = 0; n < t.length; n++)
                                        this[i].insertBefore(t[n], this[i].childNodes[0]);
                                else
                                    this[i].insertBefore(t, this[i].childNodes[0]);
                            return this
                        },
                        insertBefore: function(e) {
                            for (var i = t(e), n = 0; n < this.length; n++)
                                if (1 === i.length)
                                    i[0].parentNode.insertBefore(this[n], i[0]);
                                else if (i.length > 1)
                                    for (var a = 0; a < i.length; a++)
                                        i[a].parentNode.insertBefore(this[n].cloneNode(!0), i[a])
                        },
                        insertAfter: function(e) {
                            for (var i = t(e), n = 0; n < this.length; n++)
                                if (1 === i.length)
                                    i[0].parentNode.insertBefore(this[n], i[0].nextSibling);
                                else if (i.length > 1)
                                    for (var a = 0; a < i.length; a++)
                                        i[a].parentNode.insertBefore(this[n].cloneNode(!0), i[a].nextSibling)
                        },
                        next: function(i) {
                            return this.length > 0 ? i ? this[0].nextElementSibling && t(this[0].nextElementSibling).is(i) ? new e([this[0].nextElementSibling]) : new e([]) : this[0].nextElementSibling ? new e([this[0].nextElementSibling]) : new e([]) : new e([])
                        },
                        nextAll: function(i) {
                            var n = []
                              , a = this[0];
                            if (!a)
                                return new e([]);
                            for (; a.nextElementSibling; ) {
                                var o = a.nextElementSibling;
                                i ? t(o).is(i) && n.push(o) : n.push(o),
                                a = o
                            }
                            return new e(n)
                        },
                        prev: function(i) {
                            return this.length > 0 ? i ? this[0].previousElementSibling && t(this[0].previousElementSibling).is(i) ? new e([this[0].previousElementSibling]) : new e([]) : this[0].previousElementSibling ? new e([this[0].previousElementSibling]) : new e([]) : new e([])
                        },
                        prevAll: function(i) {
                            var n = []
                              , a = this[0];
                            if (!a)
                                return new e([]);
                            for (; a.previousElementSibling; ) {
                                var o = a.previousElementSibling;
                                i ? t(o).is(i) && n.push(o) : n.push(o),
                                a = o
                            }
                            return new e(n)
                        },
                        parent: function(e) {
                            for (var i = [], n = 0; n < this.length; n++)
                                e ? t(this[n].parentNode).is(e) && i.push(this[n].parentNode) : i.push(this[n].parentNode);
                            return t(t.unique(i))
                        },
                        parents: function(e) {
                            for (var i = [], n = 0; n < this.length; n++)
                                for (var a = this[n].parentNode; a; )
                                    e ? t(a).is(e) && i.push(a) : i.push(a),
                                    a = a.parentNode;
                            return t(t.unique(i))
                        },
                        find: function(t) {
                            for (var i = [], n = 0; n < this.length; n++)
                                for (var a = this[n].querySelectorAll(t), o = 0; o < a.length; o++)
                                    i.push(a[o]);
                            return new e(i)
                        },
                        children: function(i) {
                            for (var n = [], a = 0; a < this.length; a++)
                                for (var o = this[a].childNodes, r = 0; r < o.length; r++)
                                    i ? 1 === o[r].nodeType && t(o[r]).is(i) && n.push(o[r]) : 1 === o[r].nodeType && n.push(o[r]);
                            return new e(t.unique(n))
                        },
                        remove: function() {
                            for (var e = 0; e < this.length; e++)
                                this[e].parentNode && this[e].parentNode.removeChild(this[e]);
                            return this
                        },
                        add: function() {
                            var e, i, n = this;
                            for (e = 0; e < arguments.length; e++) {
                                var a = t(arguments[e]);
                                for (i = 0; i < a.length; i++)
                                    n[n.length] = a[i],
                                    n.length++
                            }
                            return n
                        }
                    },
                    t.fn = e.prototype,
                    t.unique = function(e) {
                        for (var t = [], i = 0; i < e.length; i++)
                            -1 === t.indexOf(e[i]) && t.push(e[i]);
                        return t
                    }
                    ,
                    t
                }();
                return e
            }
            ))
        },
        69219: function(e, t, i) {
            var n, a, o, r, s, l, c, d = i(19755);
            function u(e) {
                return u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                    return typeof e
                }
                : function(e) {
                    return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                }
                ,
                u(e)
            }
            !function(e) {
                function t(t, i) {
                    var n, a = this, o = window.navigator, r = o.userAgent.toLowerCase();
                    a.uid = e.rsModules.uid++,
                    a.ns = ".rs" + a.uid;
                    var s, l = document.createElement("div").style, c = ["webkit", "Moz", "ms", "O"], d = "", u = 0;
                    for (n = 0; n < c.length; n++) {
                        var p = c[n];
                        !d && p + "Transform"in l && (d = p),
                        p = p.toLowerCase(),
                        window.requestAnimationFrame || (window.requestAnimationFrame = window[p + "RequestAnimationFrame"],
                        window.cancelAnimationFrame = window[p + "CancelAnimationFrame"] || window[p + "CancelRequestAnimationFrame"])
                    }
                    window.requestAnimationFrame || (window.requestAnimationFrame = function(e, t) {
                        var i = (new Date).getTime()
                          , n = Math.max(0, 16 - (i - u))
                          , a = window.setTimeout((function() {
                            e(i + n)
                        }
                        ), n);
                        return u = i + n,
                        a
                    }
                    ),
                    window.cancelAnimationFrame || (window.cancelAnimationFrame = function(e) {
                        clearTimeout(e)
                    }
                    ),
                    a.isIPAD = r.match(/(ipad)/),
                    a.isIOS = a.isIPAD || r.match(/(iphone|ipod)/),
                    n = function(e) {
                        return {
                            browser: (e = /(chrome)[ \/]([\w.]+)/.exec(e) || /(webkit)[ \/]([\w.]+)/.exec(e) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e) || /(msie) ([\w.]+)/.exec(e) || 0 > e.indexOf("compatible") && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e) || [])[1] || "",
                            version: e[2] || "0"
                        }
                    }(r),
                    c = {},
                    n.browser && (c[n.browser] = !0,
                    c.version = n.version),
                    c.chrome && (c.webkit = !0),
                    a._browser = c,
                    a.isAndroid = -1 < r.indexOf("android"),
                    a.slider = e(t),
                    a.ev = e(a),
                    a._doc = e(document),
                    a.st = e.extend({}, e.fn.royalSlider.defaults, i),
                    a._currAnimSpeed = a.st.transitionSpeed,
                    a._minPosOffset = 0,
                    !a.st.allowCSS3 || c.webkit && !a.st.allowCSS3OnWebkit || (n = d + (d ? "T" : "t"),
                    a._useCSS3Transitions = n + "ransform"in l && n + "ransition"in l,
                    a._useCSS3Transitions && (a._use3dTransform = d + (d ? "P" : "p") + "erspective"in l)),
                    d = d.toLowerCase(),
                    a._vendorPref = "-" + d + "-",
                    a._slidesHorizontal = "vertical" !== a.st.slidesOrientation,
                    a._reorderProp = a._slidesHorizontal ? "left" : "top",
                    a._sizeProp = a._slidesHorizontal ? "width" : "height",
                    a._prevNavItemId = -1,
                    a._isMove = "fade" !== a.st.transitionType,
                    a._isMove || (a.st.sliderDrag = !1,
                    a._fadeZIndex = 10),
                    a._opacityCSS = "z-index:0; display:none; opacity:0;",
                    a._newSlideId = 0,
                    a._sPosition = 0,
                    a._nextSlidePos = 0,
                    e.each(e.rsModules, (function(e, t) {
                        "uid" !== e && t.call(a)
                    }
                    )),
                    a.slides = [],
                    a._idCount = 0,
                    (a.st.slides ? e(a.st.slides) : a.slider.children().detach()).each((function() {
                        a._parseNode(this, !0)
                    }
                    )),
                    a.st.randomizeSlides && a.slides.sort((function() {
                        return .5 - Math.random()
                    }
                    )),
                    a.numSlides = a.slides.length,
                    a._refreshNumPreloadImages(),
                    a.st.startSlideId ? a.st.startSlideId > a.numSlides - 1 && (a.st.startSlideId = a.numSlides - 1) : a.st.startSlideId = 0,
                    a._newSlideId = a.staticSlideId = a.currSlideId = a._realId = a.st.startSlideId,
                    a.currSlide = a.slides[a.currSlideId],
                    a._accelerationPos = 0,
                    a.pointerMultitouch = !1,
                    a.slider.addClass((a._slidesHorizontal ? "rsHor" : "rsVer") + (a._isMove ? "" : " rsFade")),
                    l = '<div class="rsOverflow"><div class="rsContainer">',
                    a.slidesSpacing = a.st.slidesSpacing,
                    a._slideSize = (a._slidesHorizontal ? a.slider.width() : a.slider.height()) + a.st.slidesSpacing,
                    a._preload = 0 < a._numPreloadImages,
                    1 >= a.numSlides && (a._loop = !1),
                    a._loopHelpers = a._loop && a._isMove ? 2 === a.numSlides ? 1 : 2 : 0,
                    a._maxImages = 6 > a.numSlides ? a.numSlides : 6,
                    a._currBlockIndex = 0,
                    a._idOffset = 0,
                    a.slidesJQ = [];
                    for (n = 0; n < a.numSlides; n++)
                        a.slidesJQ.push(e('<div style="' + (a._isMove ? "" : n !== a.currSlideId ? a._opacityCSS : "z-index:0;") + '" class="rsSlide "></div>'));
                    a._sliderOverflow = l = e(l + "</div></div>"),
                    d = function(e, t, i, n, o) {
                        a._downEvent = e + t,
                        a._moveEvent = e + i,
                        a._upEvent = e + n,
                        o && (a._cancelEvent = e + o)
                    }
                    ,
                    n = o.pointerEnabled,
                    a.pointerEnabled = n || o.msPointerEnabled,
                    a.pointerEnabled ? (a.hasTouch = !1,
                    a._lastItemFriction = .2,
                    a.pointerMultitouch = 1 < o[(n ? "m" : "msM") + "axTouchPoints"],
                    n ? d("pointer", "down", "move", "up", "cancel") : d("MSPointer", "Down", "Move", "Up", "Cancel")) : (a.isIOS ? a._downEvent = a._moveEvent = a._upEvent = a._cancelEvent = "" : d("mouse", "down", "move", "up"),
                    "ontouchstart"in window || "createTouch"in document ? (a.hasTouch = !0,
                    a._downEvent += " touchstart",
                    a._moveEvent += " touchmove",
                    a._upEvent += " touchend",
                    a._cancelEvent += " touchcancel",
                    a._lastItemFriction = .5,
                    a.st.sliderTouch && (a._hasDrag = !0)) : (a.hasTouch = !1,
                    a._lastItemFriction = .2)),
                    a.st.sliderDrag && (a._hasDrag = !0,
                    c.msie || c.opera ? a._grabCursor = a._grabbingCursor = "move" : c.mozilla ? (a._grabCursor = "-moz-grab",
                    a._grabbingCursor = "-moz-grabbing") : c.webkit && -1 != o.platform.indexOf("Mac") && (a._grabCursor = "-webkit-grab",
                    a._grabbingCursor = "-webkit-grabbing"),
                    a._setGrabCursor()),
                    a.slider.html(l),
                    a._controlsContainer = a.st.controlsInside ? a._sliderOverflow : a.slider,
                    a._slidesContainer = a._sliderOverflow.children(".rsContainer"),
                    a.pointerEnabled && a._slidesContainer.css((n ? "" : "-ms-") + "touch-action", a._slidesHorizontal ? "pan-y" : "pan-x"),
                    a._preloader = e('<div class="rsPreloader"></div>'),
                    o = a._slidesContainer.children(".rsSlide"),
                    a._currHolder = a.slidesJQ[a.currSlideId],
                    a._selectedSlideHolder = 0,
                    a._eventCallbacks = {
                        dragStart: function(e) {
                            a._onDragStart(e)
                        },
                        dragStartThumb: function(e) {
                            a._onDragStart(e, !0)
                        },
                        touchmoveFix: function() {}
                    },
                    a._useCSS3Transitions ? (a._TP = "transition-property",
                    a._TD = "transition-duration",
                    a._TTF = "transition-timing-function",
                    a._yProp = a._xProp = a._vendorPref + "transform",
                    a._use3dTransform ? (c.webkit && !c.chrome && a.slider.addClass("rsWebkit3d"),
                    a._tPref1 = "translate3d(",
                    a._tPref2 = "px, ",
                    a._tPref3 = "px, 0px)") : (a._tPref1 = "translate(",
                    a._tPref2 = "px, ",
                    a._tPref3 = "px)"),
                    a._isMove ? a._slidesContainer[a._vendorPref + a._TP] = a._vendorPref + "transform" : ((c = {})[a._vendorPref + a._TP] = "opacity",
                    c[a._vendorPref + a._TD] = a.st.transitionSpeed + "ms",
                    c[a._vendorPref + a._TTF] = a.st.css3easeInOut,
                    o.css(c))) : (a._xProp = "left",
                    a._yProp = "top"),
                    a._slidesHorizontal && a.slider.css("touch-action", "pan-y"),
                    e(window).on("resize" + a.ns, (function() {
                        s && clearTimeout(s),
                        s = setTimeout((function() {
                            a.updateSliderSize()
                        }
                        ), 50)
                    }
                    )),
                    a.ev.trigger("rsAfterPropsSetup"),
                    a.updateSliderSize(),
                    a.st.keyboardNavEnabled && a._bindKeyboardNav(),
                    a.st.arrowsNavHideOnTouch && (a.hasTouch || a.pointerMultitouch) && (a.st.arrowsNav = !1),
                    a.st.arrowsNav && (o = a._controlsContainer,
                    e('<div class="rsArrow rsArrowLeft"><div class="rsArrowIcn"></div></div><div class="rsArrow rsArrowRight"><div class="rsArrowIcn"></div></div>').appendTo(o),
                    a._arrowLeft = o.children(".rsArrowLeft").click((function(e) {
                        e.preventDefault(),
                        a.prev()
                    }
                    )),
                    a._arrowRight = o.children(".rsArrowRight").click((function(e) {
                        e.preventDefault(),
                        a.next()
                    }
                    )),
                    a.st.arrowsNavAutoHide && !a.hasTouch && (a._arrowLeft.addClass("rsHidden"),
                    a._arrowRight.addClass("rsHidden"),
                    o.one("mousemove.arrowshover", (function() {
                        a._arrowLeft.removeClass("rsHidden"),
                        a._arrowRight.removeClass("rsHidden")
                    }
                    )),
                    o.hover((function() {
                        a._arrowsAutoHideLocked || (a._arrowLeft.removeClass("rsHidden"),
                        a._arrowRight.removeClass("rsHidden"))
                    }
                    ), (function() {
                        a._arrowsAutoHideLocked || (a._arrowLeft.addClass("rsHidden"),
                        a._arrowRight.addClass("rsHidden"))
                    }
                    ))),
                    a.ev.on("rsOnUpdateNav", (function() {
                        a._updateArrowsNav()
                    }
                    )),
                    a._updateArrowsNav()),
                    a.hasTouch && a.st.sliderTouch || !a.hasTouch && a.st.sliderDrag ? (a._bindPassiveEvent(a._slidesContainer[0], a._downEvent, a._eventCallbacks.dragStart, !1),
                    a._bindPassiveEvent(a.slider[0], a._moveEvent, a._eventCallbacks.touchmoveFix, !1)) : a.dragSuccess = !1;
                    var m = ["rsPlayBtnIcon", "rsPlayBtn", "rsCloseVideoBtn", "rsCloseVideoIcn"];
                    a._slidesContainer.click((function(t) {
                        if (!a.dragSuccess) {
                            var i = e(t.target).attr("class");
                            if (-1 !== e.inArray(i, m) && a.toggleVideo())
                                return !1;
                            if (a.st.navigateByClick && !a._blockActions) {
                                if (e(t.target).closest(".rsNoDrag", a._currHolder).length)
                                    return !0;
                                a._mouseNext(t)
                            }
                            a.ev.trigger("rsSlideClick", t)
                        }
                    }
                    )).on("click.rs", "a", (function(e) {
                        if (a.dragSuccess)
                            return !1;
                        a._blockActions = !0,
                        setTimeout((function() {
                            a._blockActions = !1
                        }
                        ), 3)
                    }
                    )),
                    a.ev.trigger("rsAfterInit")
                }
                e.rsModules || (e.rsModules = {
                    uid: 0
                }),
                t.prototype = {
                    constructor: t,
                    _mouseNext: function(e) {
                        (e = e[this._slidesHorizontal ? "pageX" : "pageY"] - this._sliderOffset) >= this._nextSlidePos ? this.next() : 0 > e && this.prev()
                    },
                    _refreshNumPreloadImages: function() {
                        var e = this.st.numImagesToPreload;
                        (this._loop = this.st.loop) && (2 === this.numSlides ? (this._loop = !1,
                        this.st.loopRewind = !0) : 2 > this.numSlides && (this.st.loopRewind = this._loop = !1)),
                        this._loop && 0 < e && (4 >= this.numSlides ? e = 1 : this.st.numImagesToPreload > (this.numSlides - 1) / 2 && (e = Math.floor((this.numSlides - 1) / 2))),
                        this._numPreloadImages = e
                    },
                    _parseNode: function(t, i) {
                        function n(e, t) {
                            if (t ? o.images.push(e.attr(t)) : o.images.push(e.text()),
                            r) {
                                r = !1,
                                o.caption = "src" === t ? e.attr("alt") : e.contents(),
                                o.image = o.images[0],
                                o.videoURL = e.attr("data-rsVideo");
                                var i = e.attr("data-rsw")
                                  , n = e.attr("data-rsh");
                                void 0 !== i && !1 !== i && void 0 !== n && !1 !== n ? (o.iW = parseInt(i, 10),
                                o.iH = parseInt(n, 10)) : a.st.imgWidth && a.st.imgHeight && (o.iW = a.st.imgWidth,
                                o.iH = a.st.imgHeight)
                            }
                        }
                        var a = this
                          , o = {}
                          , r = !0;
                        if (t = e(t),
                        a._currContent = t,
                        a.ev.trigger("rsBeforeParseNode", [t, o]),
                        !o.stopParsing) {
                            if (t = a._currContent,
                            o.id = a._idCount,
                            o.contentAdded = !1,
                            a._idCount++,
                            o.images = [],
                            o.isBig = !1,
                            !o.hasCover) {
                                if (t.hasClass("rsImg"))
                                    var s = t
                                      , l = !0;
                                else
                                    (s = t.find(".rsImg")).length && (l = !0);
                                l ? (o.bigImage = s.eq(0).attr("data-rsBigImg"),
                                s.each((function() {
                                    var t = e(this);
                                    t.is("a") ? n(t, "href") : t.is("img") ? n(t, "src") : n(t)
                                }
                                ))) : t.is("img") && (t.addClass("rsImg rsMainSlideImage"),
                                n(t, "src"))
                            }
                            return (s = t.find(".rsCaption")).length && (o.caption = s.remove()),
                            o.content = t,
                            a.ev.trigger("rsAfterParseNode", [t, o]),
                            i && a.slides.push(o),
                            0 === o.images.length && (o.isLoaded = !0,
                            o.isRendered = !1,
                            o.isLoading = !1,
                            o.images = null),
                            o
                        }
                    },
                    _bindKeyboardNav: function() {
                        var e, t, i = this, n = function(e) {
                            37 === e ? i.prev() : 39 === e && i.next()
                        };
                        i._doc.on("keydown" + i.ns, (function(a) {
                            if (!i.st.keyboardNavEnabled)
                                return !0;
                            if (!(i._isDragging || (t = a.keyCode,
                            37 !== t && 39 !== t || e))) {
                                if (document.activeElement && /(INPUT|SELECT|TEXTAREA)/i.test(document.activeElement.tagName))
                                    return !0;
                                i.isFullscreen && a.preventDefault(),
                                n(t),
                                e = setInterval((function() {
                                    n(t)
                                }
                                ), 700)
                            }
                        }
                        )).on("keyup" + i.ns, (function(t) {
                            e && (clearInterval(e),
                            e = null)
                        }
                        ))
                    },
                    goTo: function(e, t) {
                        e !== this.currSlideId && this._moveTo(e, this.st.transitionSpeed, !0, !t)
                    },
                    destroy: function(t) {
                        this.ev.trigger("rsBeforeDestroy"),
                        this._doc.off("keydown" + this.ns + " keyup" + this.ns),
                        this._eventCallbacks.dragMove && (this._unbindPassiveEvent(document, this._moveEvent, this._eventCallbacks.dragMove, !0),
                        this._unbindPassiveEvent(document, this._upEvent, this._eventCallbacks.dragRelease, !0)),
                        this._eventCallbacks.downEvent && (this._unbindPassiveEvent(this._slidesContainer[0], this._downEvent, this._eventCallbacks.dragStart, !1),
                        this._unbindPassiveEvent(this.slider[0], this._moveEvent, this._eventCallbacks.touchmoveFix, !1)),
                        this._slidesContainer.off(this._downEvent + " click"),
                        this.slider.data("royalSlider", null),
                        e.removeData(this.slider, "royalSlider"),
                        e(window).off("resize" + this.ns),
                        this.loadingTimeout && clearTimeout(this.loadingTimeout),
                        t && this.slider.remove(),
                        this.ev = this.slider = this.slides = null
                    },
                    _updateBlocksContent: function(t, i) {
                        function n(i, n, r) {
                            i.isAdded ? (a(n, i),
                            o(n, i)) : (r || (r = c.slidesJQ[n]),
                            i.holder ? r = i.holder : (r = c.slidesJQ[n] = e(r),
                            i.holder = r),
                            i.appendOnLoaded = !1,
                            o(n, i, r),
                            a(n, i),
                            c._addBlockToContainer(i, r, t),
                            i.isAdded = !0)
                        }
                        function a(e, i) {
                            i.contentAdded || (c.setItemHtml(i, t),
                            t || (i.contentAdded = !0))
                        }
                        function o(e, t, i) {
                            c._isMove && (i || (i = c.slidesJQ[e]),
                            i.css(c._reorderProp, (e + c._idOffset + b) * c._slideSize))
                        }
                        function r(e) {
                            if (d) {
                                if (e > u - 1)
                                    return r(e - u);
                                if (0 > e)
                                    return r(u + e)
                            }
                            return e
                        }
                        var s, l, c = this, d = c._loop, u = c.numSlides;
                        if (!isNaN(i))
                            return r(i);
                        var p = c.currSlideId
                          , m = t ? Math.abs(c._prevSlideId - c.currSlideId) >= c.numSlides - 1 ? 0 : 1 : c._numPreloadImages
                          , h = Math.min(2, m)
                          , f = !1
                          , g = !1;
                        for (l = p; l < p + 1 + h; l++) {
                            var v = r(l);
                            if ((s = c.slides[v]) && (!s.isAdded || !s.positionSet)) {
                                f = !0;
                                break
                            }
                        }
                        for (l = p - 1; l > p - 1 - h; l--)
                            if (v = r(l),
                            (s = c.slides[v]) && (!s.isAdded || !s.positionSet)) {
                                g = !0;
                                break
                            }
                        if (f)
                            for (l = p; l < p + m + 1; l++) {
                                v = r(l);
                                var b = Math.floor((c._realId - (p - l)) / c.numSlides) * c.numSlides;
                                (s = c.slides[v]) && n(s, v)
                            }
                        if (g)
                            for (l = p - 1; l > p - 1 - m; l--)
                                v = r(l),
                                b = Math.floor((c._realId - (p - l)) / u) * u,
                                (s = c.slides[v]) && n(s, v);
                        if (!t)
                            for (m = (h = r(p - m)) > (p = r(p + m)) ? 0 : h,
                            l = 0; l < u; l++)
                                h > p && l > h - 1 || !(l < m || l > p) || (s = c.slides[l]) && s.holder && (s.holder.detach(),
                                s.isAdded = !1)
                    },
                    setItemHtml: function(t, i) {
                        var n = this
                          , a = function() {
                            if (t.images) {
                                if (!t.isLoading) {
                                    if (t.content.hasClass("rsImg"))
                                        var i = t.content
                                          , a = !0;
                                    else
                                        i = t.content.find(".rsImg:not(img)");
                                    if (i && !i.is("img") && i.each((function() {
                                        var i = e(this)
                                          , n = '<img class="rsImg" src="' + (i.is("a") ? i.attr("href") : i.text()) + '" />';
                                        a ? t.content = e(n) : i.replaceWith(n)
                                    }
                                    )),
                                    i = a ? t.content : t.content.find("img.rsImg"),
                                    c(),
                                    i.eq(0).addClass("rsMainSlideImage"),
                                    t.iW && t.iH && (t.isLoaded || n._resizeImage(t),
                                    s()),
                                    t.isLoading = !0,
                                    t.isBig)
                                        e("<img />").on("load.rs error.rs", (function(t) {
                                            e(this).off("load.rs error.rs"),
                                            o([this], !0)
                                        }
                                        )).attr("src", t.image);
                                    else {
                                        t.loaded = [],
                                        t.numStartedLoad = 0,
                                        i = function(i) {
                                            e(this).off("load.rs error.rs"),
                                            t.loaded.push(this),
                                            t.loaded.length === t.numStartedLoad && o(t.loaded, !1)
                                        }
                                        ;
                                        for (var r = 0; r < t.images.length; r++) {
                                            var l = e("<img />");
                                            t.numStartedLoad++,
                                            l.on("load.rs error.rs", i).attr("src", t.images[r])
                                        }
                                    }
                                }
                            } else
                                t.isRendered = !0,
                                t.isLoaded = !0,
                                t.isLoading = !1,
                                s(!0)
                        }
                          , o = function(e, i) {
                            if (e.length) {
                                var n = e[0];
                                if (i !== t.isBig)
                                    (n = t.holder.children()) && 1 < n.length && d();
                                else if (t.iW && t.iH)
                                    r();
                                else if (t.iW = n.width,
                                t.iH = n.height,
                                t.iW && t.iH)
                                    r();
                                else {
                                    var a = new Image;
                                    a.onload = function() {
                                        a.width ? (t.iW = a.width,
                                        t.iH = a.height,
                                        r()) : setTimeout((function() {
                                            a.width && (t.iW = a.width,
                                            t.iH = a.height),
                                            r()
                                        }
                                        ), 1e3)
                                    }
                                    ,
                                    a.src = n.src
                                }
                            } else
                                r()
                        }
                          , r = function() {
                            t.isLoaded = !0,
                            t.isLoading = !1,
                            s(),
                            d(),
                            l()
                        }
                          , s = function() {
                            if (!t.isAppended && n.ev) {
                                var e = n.st.visibleNearby
                                  , a = t.id - n._newSlideId;
                                i || t.appendOnLoaded || !n.st.fadeinLoadedSlide || 0 !== a && (!(e || n._isAnimating || n._isDragging) || -1 !== a && 1 !== a) || ((e = {
                                    visibility: "visible",
                                    opacity: 0
                                })[n._vendorPref + "transition"] = "opacity 400ms ease-in-out",
                                t.content.css(e),
                                setTimeout((function() {
                                    t.content.css("opacity", 1)
                                }
                                ), 16)),
                                t.holder.find(".rsPreloader").length ? t.holder.append(t.content) : t.holder.html(t.content),
                                t.isAppended = !0,
                                t.isLoaded && (n._resizeImage(t),
                                l()),
                                t.sizeReady || (t.sizeReady = !0,
                                setTimeout((function() {
                                    n.ev.trigger("rsMaybeSizeReady", t)
                                }
                                ), 100))
                            }
                        }
                          , l = function() {
                            !t.loadedTriggered && n.ev && (t.isLoaded = t.loadedTriggered = !0,
                            t.holder.trigger("rsAfterContentSet"),
                            n.ev.trigger("rsAfterContentSet", t))
                        }
                          , c = function() {
                            n.st.usePreloader && t.holder.html(n._preloader.clone())
                        }
                          , d = function(e) {
                            n.st.usePreloader && ((e = t.holder.find(".rsPreloader")).length && e.remove())
                        };
                        t.isLoaded ? s() : i ? !n._isMove && t.images && t.iW && t.iH ? a() : (t.holder.isWaiting = !0,
                        c(),
                        t.holder.slideId = -99) : a()
                    },
                    _addBlockToContainer: function(e, t, i) {
                        this._slidesContainer.append(e.holder),
                        e.appendOnLoaded = !1
                    },
                    _onDragStart: function(t, i) {
                        var n = this
                          , a = "touchstart" === t.type;
                        if (n._isTouchGesture = a,
                        n.ev.trigger("rsDragStart"),
                        e(t.target).closest(".rsNoDrag", n._currHolder).length)
                            return n.dragSuccess = !1,
                            !0;
                        if (!i && n._isAnimating && (n._wasAnimating = !0,
                        n._stopAnimation()),
                        n.dragSuccess = !1,
                        n._isDragging)
                            a && (n._multipleTouches = !0);
                        else {
                            if (a && (n._multipleTouches = !1),
                            n._setGrabbingCursor(),
                            a) {
                                var o = t.touches;
                                if (!(o && 0 < o.length))
                                    return;
                                var r = o[0];
                                1 < o.length && (n._multipleTouches = !0)
                            } else
                                t.preventDefault(),
                                r = t;
                            n._isDragging = !0,
                            n._eventCallbacks.dragMove && (n._unbindPassiveEvent(document, n._moveEvent, n._eventCallbacks.dragMove, !0),
                            n._unbindPassiveEvent(document, n._upEvent, n._eventCallbacks.dragRelease, !0)),
                            n._eventCallbacks.dragMove = function(e) {
                                n._onDragMove(e, i)
                            }
                            ,
                            n._eventCallbacks.dragRelease = function(e) {
                                n._onDragRelease(e, i)
                            }
                            ,
                            n._bindPassiveEvent(document, n._moveEvent, n._eventCallbacks.dragMove, !0),
                            n._bindPassiveEvent(document, n._upEvent, n._eventCallbacks.dragRelease, !0),
                            n._currMoveAxis = "",
                            n._hasMoved = !1,
                            n._pageX = r.pageX,
                            n._pageY = r.pageY,
                            n._startPagePos = n._accelerationPos = (i ? n._thumbsHorizontal : n._slidesHorizontal) ? r.pageX : r.pageY,
                            n._horDir = 0,
                            n._verDir = 0,
                            n._currRenderPosition = i ? n._thumbsPosition : n._sPosition,
                            n._startTime = (new Date).getTime(),
                            a && n._sliderOverflow.on(n._cancelEvent, (function(e) {
                                n._onDragRelease(e, i)
                            }
                            ))
                        }
                    },
                    _renderMovement: function(e, t) {
                        if (this._checkedAxis) {
                            var i = this._renderMoveTime
                              , n = e.pageX - this._pageX
                              , a = e.pageY - this._pageY
                              , o = this._currRenderPosition + n
                              , r = this._currRenderPosition + a
                              , s = t ? this._thumbsHorizontal : this._slidesHorizontal;
                            o = s ? o : r,
                            r = this._currMoveAxis,
                            this._hasMoved = !0,
                            this._pageX = e.pageX,
                            this._pageY = e.pageY,
                            "x" === r && 0 !== n ? this._horDir = 0 < n ? 1 : -1 : "y" === r && 0 !== a && (this._verDir = 0 < a ? 1 : -1),
                            r = s ? this._pageX : this._pageY,
                            n = s ? n : a,
                            t ? (o > this._thumbsMinPosition || o < this._thumbsMaxPosition) && (o = this._currRenderPosition + n * this._lastItemFriction) : this._loop || (0 >= this.currSlideId && 0 < r - this._startPagePos && (o = this._currRenderPosition + n * this._lastItemFriction),
                            this.currSlideId >= this.numSlides - 1 && 0 > r - this._startPagePos && (o = this._currRenderPosition + n * this._lastItemFriction)),
                            this._currRenderPosition = o,
                            200 < i - this._startTime && (this._startTime = i,
                            this._accelerationPos = r),
                            t ? this._setThumbsPosition(this._currRenderPosition) : this._isMove && this._setPosition(this._currRenderPosition)
                        }
                    },
                    _onDragMove: function(e, t) {
                        var i = this
                          , n = "touchmove" === e.type;
                        if (!i._isTouchGesture || n) {
                            if (n) {
                                if (i._lockAxis)
                                    return;
                                var a = e.touches;
                                if (!a)
                                    return;
                                if (1 < a.length)
                                    return;
                                var o = a[0]
                            } else
                                o = e;
                            if (i._hasMoved || (i._useCSS3Transitions && (t ? i._thumbsContainer : i._slidesContainer).css(i._vendorPref + i._TD, "0s"),
                            function e() {
                                i._isDragging && (i._animFrame = requestAnimationFrame(e),
                                i._renderMoveEvent && i._renderMovement(i._renderMoveEvent, t))
                            }()),
                            i._checkedAxis)
                                e.preventDefault(),
                                i._renderMoveTime = (new Date).getTime(),
                                i._renderMoveEvent = o;
                            else if (a = t ? i._thumbsHorizontal : i._slidesHorizontal,
                            7 < (o = Math.abs(o.pageX - i._pageX) - Math.abs(o.pageY - i._pageY) - (a ? -7 : 7))) {
                                if (a)
                                    e.preventDefault(),
                                    i._currMoveAxis = "x";
                                else if (n)
                                    return void i._completeGesture(e);
                                i._checkedAxis = !0
                            } else if (-7 > o) {
                                if (a) {
                                    if (n)
                                        return void i._completeGesture(e)
                                } else
                                    e.preventDefault(),
                                    i._currMoveAxis = "y";
                                i._checkedAxis = !0
                            }
                        }
                    },
                    _completeGesture: function(e, t) {
                        this._lockAxis = !0,
                        this._hasMoved = this._isDragging = !1,
                        this._onDragRelease(e)
                    },
                    _onDragRelease: function(t, i) {
                        function n(e) {
                            return 100 > e ? 100 : 500 < e ? 500 : e
                        }
                        function a(e, t) {
                            (r._isMove || i) && (g = (-r._realId - r._idOffset) * r._slideSize,
                            o = Math.abs(r._sPosition - g),
                            r._currAnimSpeed = o / t,
                            e && (r._currAnimSpeed += 250),
                            r._currAnimSpeed = n(r._currAnimSpeed),
                            r._animateTo(g, !1))
                        }
                        var o, r = this, s = -1 < t.type.indexOf("touch");
                        if (!r._isTouchGesture || s)
                            if (r._isTouchGesture = !1,
                            r.ev.trigger("rsDragRelease"),
                            r._renderMoveEvent = null,
                            r._isDragging = !1,
                            r._lockAxis = !1,
                            r._checkedAxis = !1,
                            r._renderMoveTime = 0,
                            cancelAnimationFrame(r._animFrame),
                            r._hasMoved && (i ? r._setThumbsPosition(r._currRenderPosition) : r._isMove && r._setPosition(r._currRenderPosition)),
                            r._eventCallbacks.dragMove && (r._unbindPassiveEvent(document, r._moveEvent, r._eventCallbacks.dragMove, !0),
                            r._unbindPassiveEvent(document, r._upEvent, r._eventCallbacks.dragRelease, !0)),
                            s && r._sliderOverflow.off(r._cancelEvent),
                            r._setGrabCursor(),
                            !r._hasMoved && !r._multipleTouches && i && r._thumbsEnabled) {
                                var l = e(t.target).closest(".rsNavItem");
                                l.length && r.goTo(l.index())
                            } else {
                                if (l = i ? r._thumbsHorizontal : r._slidesHorizontal,
                                !r._hasMoved || "y" === r._currMoveAxis && l || "x" === r._currMoveAxis && !l) {
                                    if (i || !r._wasAnimating)
                                        return r._wasAnimating = !1,
                                        void (r.dragSuccess = !1);
                                    if (r._wasAnimating = !1,
                                    r.st.navigateByClick)
                                        return r._mouseNext(t),
                                        void (r.dragSuccess = !0);
                                    r.dragSuccess = !0
                                } else
                                    r.dragSuccess = !0;
                                r._wasAnimating = !1,
                                r._currMoveAxis = "";
                                var c = r.st.minSlideOffset;
                                s = s ? t.changedTouches[0] : t;
                                var d = l ? s.pageX : s.pageY
                                  , u = r._startPagePos
                                  , p = r.currSlideId
                                  , m = r.numSlides
                                  , h = l ? r._horDir : r._verDir
                                  , f = r._loop;
                                if (s = d - r._accelerationPos,
                                l = (new Date).getTime() - r._startTime,
                                l = Math.abs(s) / l,
                                0 === h || 1 >= m)
                                    a(!0, l);
                                else {
                                    if (!f && !i)
                                        if (0 >= p) {
                                            if (0 < h)
                                                return void a(!0, l)
                                        } else if (p >= m - 1 && 0 > h)
                                            return void a(!0, l);
                                    if (i) {
                                        var g = r._thumbsPosition;
                                        if (g > r._thumbsMinPosition)
                                            g = r._thumbsMinPosition;
                                        else if (g < r._thumbsMaxPosition)
                                            g = r._thumbsMaxPosition;
                                        else {
                                            d = l * l / .006;
                                            var v = -r._thumbsPosition;
                                            if (u = r._thumbsContainerSize - r._thumbsViewportSize + r._thumbsPosition,
                                            0 < s && d > v ? (l = l * (v += r._thumbsViewportSize / (15 / (d / l * .003))) / d,
                                            d = v) : 0 > s && d > u && (l = l * (u += r._thumbsViewportSize / (15 / (d / l * .003))) / d,
                                            d = u),
                                            v = Math.max(Math.round(l / .003), 50),
                                            (g += d * (0 > s ? -1 : 1)) > r._thumbsMinPosition)
                                                return void r._animateThumbsTo(g, v, !0, r._thumbsMinPosition, 200);
                                            if (g < r._thumbsMaxPosition)
                                                return void r._animateThumbsTo(g, v, !0, r._thumbsMaxPosition, 200)
                                        }
                                        r._animateThumbsTo(g, v, !0)
                                    } else
                                        v = function(e) {
                                            var t = Math.floor(e / r._slideSize);
                                            return e - t * r._slideSize > c && t++,
                                            t
                                        }
                                        ,
                                        u + c < d ? 0 > h ? a(!1, l) : (v = v(d - u),
                                        r._moveTo(r.currSlideId - v, n(Math.abs(r._sPosition - (-r._realId - r._idOffset + v) * r._slideSize) / l), !1, !0, !0)) : u - c > d ? 0 < h ? a(!1, l) : (v = v(u - d),
                                        r._moveTo(r.currSlideId + v, n(Math.abs(r._sPosition - (-r._realId - r._idOffset - v) * r._slideSize) / l), !1, !0, !0)) : a(!1, l)
                                }
                            }
                    },
                    _setPosition: function(e) {
                        e = this._sPosition = e,
                        this._useCSS3Transitions ? this._slidesContainer.css(this._xProp, this._tPref1 + (this._slidesHorizontal ? e + this._tPref2 + 0 : 0 + this._tPref2 + e) + this._tPref3) : this._slidesContainer.css(this._slidesHorizontal ? this._xProp : this._yProp, e)
                    },
                    updateSliderSize: function(e) {
                        if (this.slider) {
                            if (this.st.autoScaleSlider) {
                                var t = this.st.autoScaleSliderWidth
                                  , i = this.st.autoScaleSliderHeight;
                                if (this.st.autoScaleHeight) {
                                    var n = this.slider.width();
                                    n != this.width && (this.slider.css("height", i / t * n),
                                    n = this.slider.width());
                                    var a = this.slider.height()
                                } else
                                    (a = this.slider.height()) != this.height && (this.slider.css("width", t / i * a),
                                    a = this.slider.height()),
                                    n = this.slider.width()
                            } else
                                n = this.slider.width(),
                                a = this.slider.height();
                            if (e || n != this.width || a != this.height) {
                                for (this.width = n,
                                this.height = a,
                                this._wrapWidth = n,
                                this._wrapHeight = a,
                                this.ev.trigger("rsBeforeSizeSet"),
                                this.ev.trigger("rsAfterSizePropSet"),
                                this._sliderOverflow.css({
                                    width: this._wrapWidth,
                                    height: this._wrapHeight
                                }),
                                this._slideSize = (this._slidesHorizontal ? this._wrapWidth : this._wrapHeight) + this.st.slidesSpacing,
                                this._imagePadding = this.st.imageScalePadding,
                                n = 0; n < this.slides.length; n++)
                                    (e = this.slides[n]).positionSet = !1,
                                    e && e.images && e.isLoaded && (e.isRendered = !1,
                                    this._resizeImage(e));
                                if (this._cloneHolders)
                                    for (n = 0; n < this._cloneHolders.length; n++)
                                        (e = this._cloneHolders[n]).holder.css(this._reorderProp, (e.id + this._idOffset) * this._slideSize);
                                this._updateBlocksContent(),
                                this._isMove && (this._useCSS3Transitions && this._slidesContainer.css(this._vendorPref + "transition-duration", "0s"),
                                this._setPosition((-this._realId - this._idOffset) * this._slideSize)),
                                this.ev.trigger("rsOnUpdateNav")
                            }
                            this._sliderOffset = this._sliderOverflow.offset(),
                            this._sliderOffset = this._sliderOffset[this._reorderProp]
                        }
                    },
                    appendSlide: function(t, i) {
                        var n = this._parseNode(t);
                        (isNaN(i) || i > this.numSlides) && (i = this.numSlides),
                        this.slides.splice(i, 0, n),
                        this.slidesJQ.splice(i, 0, e('<div style="' + (this._isMove ? "position:absolute;" : this._opacityCSS) + '" class="rsSlide"></div>')),
                        i <= this.currSlideId && this.currSlideId++,
                        this.ev.trigger("rsOnAppendSlide", [n, i]),
                        this._refreshSlides(i),
                        i === this.currSlideId && this.ev.trigger("rsAfterSlideChange")
                    },
                    removeSlide: function(e) {
                        var t = this.slides[e];
                        t && (t.holder && t.holder.remove(),
                        e < this.currSlideId && this.currSlideId--,
                        this.slides.splice(e, 1),
                        this.slidesJQ.splice(e, 1),
                        this.ev.trigger("rsOnRemoveSlide", [e]),
                        this._refreshSlides(e),
                        e === this.currSlideId && this.ev.trigger("rsAfterSlideChange"))
                    },
                    _refreshSlides: function(e) {
                        var t = this;
                        for (e = t.numSlides,
                        e = 0 >= t._realId ? 0 : Math.floor(t._realId / e),
                        t.numSlides = t.slides.length,
                        0 === t.numSlides ? (t.currSlideId = t._idOffset = t._realId = 0,
                        t.currSlide = t._oldHolder = null) : t._realId = e * t.numSlides + t.currSlideId,
                        e = 0; e < t.numSlides; e++)
                            t.slides[e].id = e;
                        t.currSlide = t.slides[t.currSlideId],
                        t._currHolder = t.slidesJQ[t.currSlideId],
                        t.currSlideId >= t.numSlides ? t.goTo(t.numSlides - 1) : 0 > t.currSlideId && t.goTo(0),
                        t._refreshNumPreloadImages(),
                        t._isMove && t._slidesContainer.css(t._vendorPref + t._TD, "0ms"),
                        t._refreshSlidesTimeout && clearTimeout(t._refreshSlidesTimeout),
                        t._refreshSlidesTimeout = setTimeout((function() {
                            t._isMove && t._setPosition((-t._realId - t._idOffset) * t._slideSize),
                            t._updateBlocksContent(),
                            t._isMove || t._currHolder.css({
                                display: "block",
                                opacity: 1
                            })
                        }
                        ), 14),
                        t.ev.trigger("rsOnUpdateNav")
                    },
                    _setGrabCursor: function() {
                        this._hasDrag && this._isMove && (this._grabCursor ? this._sliderOverflow.css("cursor", this._grabCursor) : (this._sliderOverflow.removeClass("grabbing-cursor"),
                        this._sliderOverflow.addClass("grab-cursor")))
                    },
                    _setGrabbingCursor: function() {
                        this._hasDrag && this._isMove && (this._grabbingCursor ? this._sliderOverflow.css("cursor", this._grabbingCursor) : (this._sliderOverflow.removeClass("grab-cursor"),
                        this._sliderOverflow.addClass("grabbing-cursor")))
                    },
                    next: function(e) {
                        this._moveTo("next", this.st.transitionSpeed, !0, !e)
                    },
                    prev: function(e) {
                        this._moveTo("prev", this.st.transitionSpeed, !0, !e)
                    },
                    _moveTo: function(e, t, i, n, a) {
                        var o = this;
                        o.ev.trigger("rsBeforeMove", [e, n]);
                        var r = "next" === e ? o.currSlideId + 1 : "prev" === e ? o.currSlideId - 1 : e = parseInt(e, 10);
                        if (!o._loop) {
                            if (0 > r)
                                return void o._doBackAndForthAnim("left", !n);
                            if (r >= o.numSlides)
                                return void o._doBackAndForthAnim("right", !n)
                        }
                        o._isAnimating && (o._stopAnimation(!0),
                        i = !1);
                        var s = r - o.currSlideId;
                        r = o._prevSlideId = o.currSlideId;
                        var l, c = o.currSlideId + s;
                        n = o._realId,
                        o._loop ? (c = o._updateBlocksContent(!1, c),
                        n += s) : n = c,
                        o._newSlideId = c,
                        o._oldHolder = o.slidesJQ[o.currSlideId],
                        o._realId = n,
                        o.currSlideId = o._newSlideId,
                        o.currSlide = o.slides[o.currSlideId],
                        o._currHolder = o.slidesJQ[o.currSlideId],
                        c = o.st.slidesDiff;
                        var d = 0 < s;
                        s = Math.abs(s);
                        var u = Math.floor(r / o._numPreloadImages)
                          , p = Math.floor((r + (d ? c : -c)) / o._numPreloadImages);
                        if ((u = (d ? Math.max(u, p) : Math.min(u, p)) * o._numPreloadImages + (d ? o._numPreloadImages - 1 : 0)) > o.numSlides - 1 ? u = o.numSlides - 1 : 0 > u && (u = 0),
                        (r = d ? u - r : r - u) > o._numPreloadImages && (r = o._numPreloadImages),
                        s > r + c)
                            for (o._idOffset += (s - (r + c)) * (d ? -1 : 1),
                            t *= 1.4,
                            r = 0; r < o.numSlides; r++)
                                o.slides[r].positionSet = !1;
                        o._currAnimSpeed = t,
                        o._updateBlocksContent(!0),
                        a || (l = !0);
                        var m = (-n - o._idOffset) * o._slideSize;
                        l ? setTimeout((function() {
                            o._isWorking = !1,
                            o._animateTo(m, e, !1, i),
                            o.ev.trigger("rsOnUpdateNav")
                        }
                        ), 0) : (o._animateTo(m, e, !1, i),
                        o.ev.trigger("rsOnUpdateNav"))
                    },
                    _updateArrowsNav: function() {
                        this.st.arrowsNav && (1 >= this.numSlides ? (this._arrowLeft.css("display", "none"),
                        this._arrowRight.css("display", "none")) : (this._arrowLeft.css("display", "block"),
                        this._arrowRight.css("display", "block"),
                        this._loop || this.st.loopRewind || (0 === this.currSlideId ? this._arrowLeft.addClass("rsArrowDisabled") : this._arrowLeft.removeClass("rsArrowDisabled"),
                        this.currSlideId === this.numSlides - 1 ? this._arrowRight.addClass("rsArrowDisabled") : this._arrowRight.removeClass("rsArrowDisabled"))))
                    },
                    _animateTo: function(t, i, n, a, o) {
                        function r() {
                            var e;
                            c && (e = c.data("rsTimeout")) && (c !== d && c.css({
                                opacity: 0,
                                display: "none",
                                zIndex: 0
                            }),
                            clearTimeout(e),
                            c.data("rsTimeout", "")),
                            (e = d.data("rsTimeout")) && (clearTimeout(e),
                            d.data("rsTimeout", ""))
                        }
                        var s = this
                          , l = {};
                        if (isNaN(s._currAnimSpeed) && (s._currAnimSpeed = 400),
                        s._sPosition = s._currRenderPosition = t,
                        s.ev.trigger("rsBeforeAnimStart"),
                        s._useCSS3Transitions)
                            if (s._isMove)
                                s._currAnimSpeed = parseInt(s._currAnimSpeed, 10),
                                n = s._vendorPref + s._TTF,
                                l[s._vendorPref + s._TD] = s._currAnimSpeed + "ms",
                                l[n] = a ? e.rsCSS3Easing[s.st.easeInOut] : e.rsCSS3Easing[s.st.easeOut],
                                s._slidesContainer.css(l),
                                a || !s.hasTouch ? setTimeout((function() {
                                    s._setPosition(t)
                                }
                                ), 5) : s._setPosition(t);
                            else {
                                s._currAnimSpeed = s.st.transitionSpeed;
                                var c = s._oldHolder
                                  , d = s._currHolder;
                                d.data("rsTimeout") && d.css("opacity", 0),
                                r(),
                                c && c.data("rsTimeout", setTimeout((function() {
                                    l[s._vendorPref + s._TD] = "0ms",
                                    l.zIndex = 0,
                                    l.display = "none",
                                    c.data("rsTimeout", ""),
                                    c.css(l),
                                    setTimeout((function() {
                                        c.css("opacity", 0)
                                    }
                                    ), 16)
                                }
                                ), s._currAnimSpeed + 60)),
                                l.display = "block",
                                l.zIndex = s._fadeZIndex,
                                l.opacity = 0,
                                l[s._vendorPref + s._TD] = "0ms",
                                l[s._vendorPref + s._TTF] = e.rsCSS3Easing[s.st.easeInOut],
                                d.css(l),
                                d.data("rsTimeout", setTimeout((function() {
                                    d.css(s._vendorPref + s._TD, s._currAnimSpeed + "ms"),
                                    d.data("rsTimeout", setTimeout((function() {
                                        d.css("opacity", 1),
                                        d.data("rsTimeout", "")
                                    }
                                    ), 20))
                                }
                                ), 20))
                            }
                        else
                            s._isMove ? (l[s._slidesHorizontal ? s._xProp : s._yProp] = t + "px",
                            s._slidesContainer.animate(l, s._currAnimSpeed, a ? s.st.easeInOut : s.st.easeOut)) : (c = s._oldHolder,
                            (d = s._currHolder).stop(!0, !0).css({
                                opacity: 0,
                                display: "block",
                                zIndex: s._fadeZIndex
                            }),
                            s._currAnimSpeed = s.st.transitionSpeed,
                            d.animate({
                                opacity: 1
                            }, s._currAnimSpeed, s.st.easeInOut),
                            r(),
                            c && c.data("rsTimeout", setTimeout((function() {
                                c.stop(!0, !0).css({
                                    opacity: 0,
                                    display: "none",
                                    zIndex: 0
                                })
                            }
                            ), s._currAnimSpeed + 60)));
                        s._isAnimating = !0,
                        s.loadingTimeout && clearTimeout(s.loadingTimeout),
                        s.loadingTimeout = o ? setTimeout((function() {
                            s.loadingTimeout = null,
                            o.call()
                        }
                        ), s._currAnimSpeed + 60) : setTimeout((function() {
                            s.loadingTimeout = null,
                            s._animationComplete(i)
                        }
                        ), s._currAnimSpeed + 60)
                    },
                    _stopAnimation: function(e) {
                        if (this._isAnimating = !1,
                        clearTimeout(this.loadingTimeout),
                        this._isMove)
                            if (this._useCSS3Transitions) {
                                if (!e) {
                                    e = this._sPosition;
                                    var t = this._currRenderPosition = this._getTransformProp();
                                    this._slidesContainer.css(this._vendorPref + this._TD, "0ms"),
                                    e !== t && this._setPosition(t)
                                }
                            } else
                                this._slidesContainer.stop(!0),
                                this._sPosition = parseInt(this._slidesContainer.css(this._slidesHorizontal ? this._xProp : this._yProp), 10);
                        else
                            20 < this._fadeZIndex ? this._fadeZIndex = 10 : this._fadeZIndex++
                    },
                    _getTransformProp: function() {
                        var e = window.getComputedStyle(this._slidesContainer.get(0), null).getPropertyValue(this._vendorPref + "transform").replace(/^matrix\(/i, "").split(/, |\)$/g)
                          , t = 0 === e[0].indexOf("matrix3d");
                        return parseInt(e[this._slidesHorizontal ? t ? 12 : 4 : t ? 13 : 5], 10)
                    },
                    _getCSS3Prop: function(e, t) {
                        return this._useCSS3Transitions ? this._tPref1 + (t ? e + this._tPref2 + 0 : 0 + this._tPref2 + e) + this._tPref3 : e
                    },
                    _animationComplete: function(e) {
                        this._isMove || (this._currHolder.css("z-index", 0),
                        this._fadeZIndex = 10),
                        this._isAnimating = !1,
                        this.staticSlideId = this.currSlideId,
                        this._updateBlocksContent(),
                        this._slidesMoved = !1,
                        this.ev.trigger("rsAfterSlideChange")
                    },
                    _doBackAndForthAnim: function(e, t) {
                        var i = this
                          , n = (-i._realId - i._idOffset) * i._slideSize;
                        if (0 !== i.numSlides && !i._isAnimating)
                            if (i.st.loopRewind)
                                i.goTo("left" === e ? i.numSlides - 1 : 0, t);
                            else if (i._isMove) {
                                i._currAnimSpeed = 200;
                                var a = function() {
                                    i._isAnimating = !1
                                };
                                i._animateTo(n + ("left" === e ? 30 : -30), "", !1, !0, (function() {
                                    i._isAnimating = !1,
                                    i._animateTo(n, "", !1, !0, a)
                                }
                                ))
                            }
                    },
                    _detectPassiveSupport: function() {
                        var e = this;
                        if (!e._passiveChecked) {
                            e._passiveChecked = !0,
                            e._passiveParam = !1;
                            try {
                                var t = Object.defineProperty({}, "passive", {
                                    get: function() {
                                        e._passiveParam = {
                                            passive: !1
                                        }
                                    }
                                });
                                window.addEventListener("testPassive", null, t),
                                window.removeEventListener("testPassive", null, t)
                            } catch (e) {}
                        }
                    },
                    _bindPassiveEvent: function(e, t, i, n) {
                        this._detectPassiveSupport(),
                        t = t.split(" ");
                        for (var a = 0; a < t.length; a++)
                            t[a] && 2 < t[a].length && e.addEventListener(t[a], i, !!n && this._passiveParam)
                    },
                    _unbindPassiveEvent: function(e, t, i, n) {
                        this._detectPassiveSupport(),
                        t = t.split(" ");
                        for (var a = 0; a < t.length; a++)
                            t[a] && 2 < t[a].length && e.removeEventListener(t[a], i, !!n && this._passiveParam)
                    },
                    _resizeImage: function(t, i) {
                        if (!t.isRendered) {
                            var n = t.content
                              , a = "rsMainSlideImage"
                              , o = e.isFunction(this.st.imageAlignCenter) ? this.st.imageAlignCenter(t) : this.st.imageAlignCenter
                              , r = e.isFunction(this.st.imageScaleMode) ? this.st.imageScaleMode(t) : this.st.imageScaleMode;
                            if (t.videoURL)
                                if (a = "rsVideoContainer",
                                "fill" !== r)
                                    var s = !0;
                                else {
                                    var l = n;
                                    l.hasClass(a) || (l = l.find("." + a)),
                                    l.css({
                                        width: "100%",
                                        height: "100%"
                                    }),
                                    a = "rsMainSlideImage"
                                }
                            if (n.hasClass(a) || (n = n.find("." + a)),
                            n) {
                                var c = t.iW
                                  , d = t.iH;
                                if (t.isRendered = !0,
                                "none" !== r || o) {
                                    a = "fill" !== r ? this._imagePadding : 0,
                                    l = this._wrapWidth - 2 * a;
                                    var u = this._wrapHeight - 2 * a
                                      , p = {};
                                    if ("fit-if-smaller" === r && (c > l || d > u) && (r = "fit"),
                                    "fill" === r || "fit" === r) {
                                        var m = l / c
                                          , h = u / d;
                                        m = "fill" == r ? m > h ? m : h : "fit" == r ? m < h ? m : h : 1,
                                        c = Math.ceil(c * m, 10),
                                        d = Math.ceil(d * m, 10)
                                    }
                                    "none" !== r && (p.width = c,
                                    p.height = d,
                                    s && n.find(".rsImg").css({
                                        width: "100%",
                                        height: "100%"
                                    })),
                                    o && (p.marginLeft = Math.floor((l - c) / 2) + a,
                                    p.marginTop = Math.floor((u - d) / 2) + a),
                                    n.css(p)
                                }
                            }
                        }
                    }
                },
                e.rsProto = t.prototype,
                e.fn.royalSlider = function(i) {
                    var n = arguments;
                    return this.each((function() {
                        var a = e(this);
                        if ("object" !== u(i) && i) {
                            if ((a = a.data("royalSlider")) && a[i])
                                return a[i].apply(a, Array.prototype.slice.call(n, 1))
                        } else
                            a.data("royalSlider") || a.data("royalSlider", new t(a,i))
                    }
                    ))
                }
                ,
                e.fn.royalSlider.defaults = {
                    slidesSpacing: 8,
                    startSlideId: 0,
                    loop: !1,
                    loopRewind: !1,
                    numImagesToPreload: 4,
                    fadeinLoadedSlide: !0,
                    slidesOrientation: "horizontal",
                    transitionType: "move",
                    transitionSpeed: 600,
                    controlNavigation: "bullets",
                    controlsInside: !0,
                    arrowsNav: !0,
                    arrowsNavAutoHide: !0,
                    navigateByClick: !0,
                    randomizeSlides: !1,
                    sliderDrag: !0,
                    sliderTouch: !0,
                    keyboardNavEnabled: !1,
                    fadeInAfterLoaded: !0,
                    allowCSS3: !0,
                    allowCSS3OnWebkit: !0,
                    addActiveClass: !1,
                    autoHeight: !1,
                    easeOut: "easeOutSine",
                    easeInOut: "easeInOutSine",
                    minSlideOffset: 10,
                    imageScaleMode: "fit-if-smaller",
                    imageAlignCenter: !0,
                    imageScalePadding: 4,
                    usePreloader: !0,
                    autoScaleSlider: !1,
                    autoScaleSliderWidth: 800,
                    autoScaleSliderHeight: 400,
                    autoScaleHeight: !0,
                    arrowsNavHideOnTouch: !1,
                    globalCaption: !1,
                    slidesDiff: 2
                },
                e.rsCSS3Easing = {
                    easeOutSine: "cubic-bezier(0.390, 0.575, 0.565, 1.000)",
                    easeInOutSine: "cubic-bezier(0.445, 0.050, 0.550, 0.950)"
                },
                e.extend(d.easing, {
                    easeInOutSine: function(e, t, i, n, a) {
                        return -n / 2 * (Math.cos(Math.PI * t / a) - 1) + i
                    },
                    easeOutSine: function(e, t, i, n, a) {
                        return n * Math.sin(t / a * (Math.PI / 2)) + i
                    },
                    easeOutCubic: function(e, t, i, n, a) {
                        return n * ((t = t / a - 1) * t * t + 1) + i
                    }
                })
            }(d, window),
            (n = d).extend(n.rsProto, {
                _initBullets: function() {
                    var e = this;
                    "bullets" === e.st.controlNavigation && (e.ev.one("rsAfterPropsSetup", (function() {
                        e._controlNavEnabled = !0,
                        e.slider.addClass("rsWithBullets");
                        for (var t = '<div class="rsNav rsBullets">', i = 0; i < e.numSlides; i++)
                            t += '<div class="rsNavItem rsBullet"><span></span></div>';
                        e._controlNav = t = n(t + "</div>"),
                        e._controlNavItems = t.appendTo(e.slider).children(),
                        e._controlNav.on("click.rs", ".rsNavItem", (function(t) {
                            e._thumbsDrag || e.goTo(n(this).index())
                        }
                        ))
                    }
                    )),
                    e.ev.on("rsOnAppendSlide", (function(t, i, n) {
                        n >= e.numSlides ? e._controlNav.append('<div class="rsNavItem rsBullet"><span></span></div>') : e._controlNavItems.eq(n).before('<div class="rsNavItem rsBullet"><span></span></div>'),
                        e._controlNavItems = e._controlNav.children()
                    }
                    )),
                    e.ev.on("rsOnRemoveSlide", (function(t, i) {
                        var n = e._controlNavItems.eq(i);
                        n && n.length && (n.remove(),
                        e._controlNavItems = e._controlNav.children())
                    }
                    )),
                    e.ev.on("rsOnUpdateNav", (function() {
                        var t = e.currSlideId;
                        e._prevNavItem && e._prevNavItem.removeClass("rsNavSelected"),
                        (t = e._controlNavItems.eq(t)).addClass("rsNavSelected"),
                        e._prevNavItem = t
                    }
                    )))
                }
            }),
            n.rsModules.bullets = n.rsProto._initBullets,
            (a = d).extend(a.rsProto, {
                _initThumbs: function() {
                    var e = this;
                    "thumbnails" === e.st.controlNavigation && (e._thumbsDefaults = {
                        drag: !0,
                        touch: !0,
                        orientation: "horizontal",
                        navigation: !0,
                        arrows: !0,
                        arrowLeft: null,
                        arrowRight: null,
                        spacing: 4,
                        arrowsAutoHide: !1,
                        appendSpan: !1,
                        transitionSpeed: 600,
                        autoCenter: !0,
                        fitInViewport: !0,
                        firstMargin: !0,
                        paddingTop: 0,
                        paddingBottom: 0
                    },
                    e.st.thumbs = a.extend({}, e._thumbsDefaults, e.st.thumbs),
                    e._firstThumbMoved = !0,
                    !1 === e.st.thumbs.firstMargin ? e.st.thumbs.firstMargin = 0 : !0 === e.st.thumbs.firstMargin && (e.st.thumbs.firstMargin = e.st.thumbs.spacing),
                    e.ev.on("rsBeforeParseNode", (function(e, t, i) {
                        t = a(t),
                        i.thumbnail = t.find(".rsTmb").remove(),
                        i.thumbnail.length ? i.thumbnail = a(document.createElement("div")).append(i.thumbnail).html() : (i.thumbnail = t.attr("data-rsTmb"),
                        i.thumbnail || (i.thumbnail = t.find(".rsImg").attr("data-rsTmb")),
                        i.thumbnail = i.thumbnail ? '<img src="' + i.thumbnail + '"/>' : "")
                    }
                    )),
                    e.ev.one("rsAfterPropsSetup", (function() {
                        e._createThumbs()
                    }
                    )),
                    e._prevNavItem = null,
                    e.ev.on("rsOnUpdateNav", (function() {
                        var t = a(e._controlNavItems[e.currSlideId]);
                        t !== e._prevNavItem && (e._prevNavItem && (e._prevNavItem.removeClass("rsNavSelected"),
                        e._prevNavItem = null),
                        e._thumbsNavigation && e._setCurrentThumb(e.currSlideId),
                        e._prevNavItem = t.addClass("rsNavSelected"))
                    }
                    )),
                    e.ev.on("rsOnAppendSlide", (function(t, i, n) {
                        t = "<div" + e._thumbsMargin + ' class="rsNavItem rsThumb">' + e._addThumbHTML + i.thumbnail + "</div>",
                        e._useCSS3Transitions && e._thumbsContainer.css(e._vendorPref + "transition-duration", "0ms"),
                        n >= e.numSlides ? e._thumbsContainer.append(t) : e._controlNavItems.eq(n).before(t),
                        e._controlNavItems = e._thumbsContainer.children(),
                        e.updateThumbsSize(!0)
                    }
                    )),
                    e.ev.on("rsOnRemoveSlide", (function(t, i) {
                        var n = e._controlNavItems.eq(i);
                        n && (e._useCSS3Transitions && e._thumbsContainer.css(e._vendorPref + "transition-duration", "0ms"),
                        n.remove(),
                        e._controlNavItems = e._thumbsContainer.children(),
                        e.updateThumbsSize(!0))
                    }
                    )))
                },
                _createThumbs: function() {
                    var e, t = this, i = "rsThumbs", n = t.st.thumbs, o = "", r = n.spacing;
                    t._controlNavEnabled = !0,
                    t._thumbsHorizontal = "vertical" !== n.orientation,
                    t._thumbsMargin = e = r ? ' style="margin-' + (t._thumbsHorizontal ? "right" : "bottom") + ":" + r + 'px;"' : "",
                    t._thumbsPosition = 0,
                    t._isThumbsAnimating = !1,
                    t._thumbsDrag = !1,
                    t._thumbsNavigation = !1,
                    t._thumbsArrows = n.arrows && n.navigation;
                    var s = t._thumbsHorizontal ? "Hor" : "Ver";
                    t.slider.addClass("rsWithThumbs rsWithThumbs" + s),
                    o += '<div class="rsNav rsThumbs rsThumbs' + s + '"><div class="' + i + 'Container">',
                    t._addThumbHTML = n.appendSpan ? '<span class="thumbIco"></span>' : "";
                    for (var l = 0; l < t.numSlides; l++)
                        o += "<div" + e + ' class="rsNavItem rsThumb">' + (s = t.slides[l]).thumbnail + t._addThumbHTML + "</div>";
                    o = a(o + "</div></div>"),
                    e = {},
                    n.paddingTop && (e[t._thumbsHorizontal ? "paddingTop" : "paddingLeft"] = n.paddingTop),
                    n.paddingBottom && (e[t._thumbsHorizontal ? "paddingBottom" : "paddingRight"] = n.paddingBottom),
                    o.css(e),
                    t._thumbsContainer = a(o).find("." + i + "Container"),
                    t._thumbsArrows && (i += "Arrow",
                    n.arrowLeft ? t._thumbsArrowLeft = n.arrowLeft : (t._thumbsArrowLeft = a('<div class="' + i + " " + i + 'Left"><div class="' + i + 'Icn"></div></div>'),
                    o.append(t._thumbsArrowLeft)),
                    n.arrowRight ? t._thumbsArrowRight = n.arrowRight : (t._thumbsArrowRight = a('<div class="' + i + " " + i + 'Right"><div class="' + i + 'Icn"></div></div>'),
                    o.append(t._thumbsArrowRight)),
                    t._thumbsArrowLeft.click((function() {
                        var e = (Math.floor(t._thumbsPosition / t._thumbSize) + t._visibleThumbsPerView) * t._thumbSize + t.st.thumbs.firstMargin;
                        t._animateThumbsTo(e > t._thumbsMinPosition ? t._thumbsMinPosition : e)
                    }
                    )),
                    t._thumbsArrowRight.click((function() {
                        var e = (Math.floor(t._thumbsPosition / t._thumbSize) - t._visibleThumbsPerView) * t._thumbSize + t.st.thumbs.firstMargin;
                        t._animateThumbsTo(e < t._thumbsMaxPosition ? t._thumbsMaxPosition : e)
                    }
                    )),
                    n.arrowsAutoHide && !t.hasTouch && (t._thumbsArrowLeft.css("opacity", 0),
                    t._thumbsArrowRight.css("opacity", 0),
                    o.one("mousemove.rsarrowshover", (function() {
                        t._thumbsNavigation && (t._thumbsArrowLeft.css("opacity", 1),
                        t._thumbsArrowRight.css("opacity", 1))
                    }
                    )),
                    o.hover((function() {
                        t._thumbsNavigation && (t._thumbsArrowLeft.css("opacity", 1),
                        t._thumbsArrowRight.css("opacity", 1))
                    }
                    ), (function() {
                        t._thumbsNavigation && (t._thumbsArrowLeft.css("opacity", 0),
                        t._thumbsArrowRight.css("opacity", 0))
                    }
                    )))),
                    t._controlNav = o,
                    t._controlNavItems = t._thumbsContainer.children(),
                    t.msEnabled && t.st.thumbs.navigation && t._thumbsContainer.css("-ms-touch-action", t._thumbsHorizontal ? "pan-y" : "pan-x"),
                    t.slider.append(o),
                    t._thumbsEnabled = !0,
                    t._thumbsSpacing = r,
                    n.navigation && t._useCSS3Transitions && t._thumbsContainer.css(t._vendorPref + "transition-property", t._vendorPref + "transform"),
                    t._controlNav.on("click.rs", ".rsNavItem", (function(e) {
                        t._thumbsDrag || t.goTo(a(this).index())
                    }
                    )),
                    t.ev.off("rsBeforeSizeSet.thumbs").on("rsBeforeSizeSet.thumbs", (function() {
                        t._realWrapSize = t._thumbsHorizontal ? t._wrapHeight : t._wrapWidth,
                        t.updateThumbsSize(!0)
                    }
                    )),
                    t.ev.off("rsAutoHeightChange.thumbs").on("rsAutoHeightChange.thumbs", (function(e, i) {
                        t.updateThumbsSize(!0, i)
                    }
                    ))
                },
                updateThumbsSize: function(e, t) {
                    var i = this._controlNavItems.first()
                      , n = {}
                      , a = this._controlNavItems.length;
                    this._thumbSize = (this._thumbsHorizontal ? i.outerWidth() : i.outerHeight()) + this._thumbsSpacing,
                    this._thumbsContainerSize = a * this._thumbSize - this._thumbsSpacing,
                    n[this._thumbsHorizontal ? "width" : "height"] = this._thumbsContainerSize + this._thumbsSpacing,
                    this._thumbsViewportSize = this._thumbsHorizontal ? this._controlNav.width() : void 0 !== t ? t : this._controlNav.height(),
                    this._thumbsEnabled && (this.isFullscreen || this.st.thumbs.fitInViewport) && (this._thumbsHorizontal ? this._wrapHeight = this._realWrapSize - this._controlNav.outerHeight() : this._wrapWidth = this._realWrapSize - this._controlNav.outerWidth()),
                    this._thumbsViewportSize && (this._thumbsMaxPosition = -(this._thumbsContainerSize - this._thumbsViewportSize) - this.st.thumbs.firstMargin,
                    this._thumbsMinPosition = this.st.thumbs.firstMargin,
                    this._visibleThumbsPerView = Math.floor(this._thumbsViewportSize / this._thumbSize),
                    this._thumbsContainerSize < this._thumbsViewportSize ? (this.st.thumbs.autoCenter ? this._setThumbsPosition((this._thumbsViewportSize - this._thumbsContainerSize) / 2) : this._setThumbsPosition(this._thumbsMinPosition),
                    this.st.thumbs.arrows && this._thumbsArrowLeft && (this._thumbsArrowLeft.addClass("rsThumbsArrowDisabled"),
                    this._thumbsArrowRight.addClass("rsThumbsArrowDisabled")),
                    this._thumbsDrag = this._thumbsNavigation = !1,
                    this._unbindPassiveEvent(this._controlNav[0], this._downEvent, this._eventCallbacks.dragStartThumb, !1)) : this.st.thumbs.navigation && !this._thumbsNavigation && (this._thumbsNavigation = !0,
                    !this.hasTouch && this.st.thumbs.drag || this.hasTouch && this.st.thumbs.touch) && (this._thumbsDrag = !0,
                    this._bindPassiveEvent(this._controlNav[0], this._downEvent, this._eventCallbacks.dragStartThumb, !1)),
                    this._thumbsContainer.css(n),
                    e && t && this._setCurrentThumb(this.currSlideId, !0))
                },
                setThumbsOrientation: function(e, t) {
                    this._thumbsEnabled && (this.st.thumbs.orientation = e,
                    this._controlNav.remove(),
                    this.slider.removeClass("rsWithThumbsHor rsWithThumbsVer"),
                    this._createThumbs(),
                    this._unbindPassiveEvent(this._controlNav[0], this._downEvent, this._eventCallbacks.dragStartThumb, !1),
                    t || this.updateSliderSize(!0))
                },
                _setThumbsPosition: function(e) {
                    this._thumbsPosition = e,
                    this._useCSS3Transitions ? this._thumbsContainer.css(this._xProp, this._tPref1 + (this._thumbsHorizontal ? e + this._tPref2 + 0 : 0 + this._tPref2 + e) + this._tPref3) : this._thumbsContainer.css(this._thumbsHorizontal ? this._xProp : this._yProp, e)
                },
                _animateThumbsTo: function(e, t, i, n, o) {
                    var r = this;
                    if (r._thumbsNavigation) {
                        t || (t = r.st.thumbs.transitionSpeed),
                        r._thumbsPosition = e,
                        r._thumbsAnimTimeout && clearTimeout(r._thumbsAnimTimeout),
                        r._isThumbsAnimating && (r._useCSS3Transitions || r._thumbsContainer.stop(),
                        i = !0);
                        var s = {};
                        r._isThumbsAnimating = !0,
                        r._useCSS3Transitions ? (s[r._vendorPref + "transition-duration"] = t + "ms",
                        s[r._vendorPref + "transition-timing-function"] = i ? a.rsCSS3Easing[r.st.easeOut] : a.rsCSS3Easing[r.st.easeInOut],
                        r._thumbsContainer.css(s),
                        r._setThumbsPosition(e)) : (s[r._thumbsHorizontal ? r._xProp : r._yProp] = e + "px",
                        r._thumbsContainer.animate(s, t, i ? "easeOutCubic" : r.st.easeInOut)),
                        n && (r._thumbsPosition = n),
                        r._updateThumbsArrows(),
                        r._thumbsAnimTimeout = setTimeout((function() {
                            r._isThumbsAnimating = !1,
                            o && (r._animateThumbsTo(n, o, !0),
                            o = null)
                        }
                        ), t)
                    }
                },
                _updateThumbsArrows: function() {
                    this._thumbsArrows && (this._thumbsPosition === this._thumbsMinPosition ? this._thumbsArrowLeft.addClass("rsThumbsArrowDisabled") : this._thumbsArrowLeft.removeClass("rsThumbsArrowDisabled"),
                    this._thumbsPosition === this._thumbsMaxPosition ? this._thumbsArrowRight.addClass("rsThumbsArrowDisabled") : this._thumbsArrowRight.removeClass("rsThumbsArrowDisabled"))
                },
                _setCurrentThumb: function(e, t) {
                    var i = 0
                      , n = e * this._thumbSize + 2 * this._thumbSize - this._thumbsSpacing + this._thumbsMinPosition;
                    if (this._thumbsNavigation) {
                        if (this._firstThumbMoved && (t = !0,
                        this._firstThumbMoved = !1),
                        n + this._thumbsPosition > this._thumbsViewportSize) {
                            e === this.numSlides - 1 && (i = 1);
                            var a = -e + this._visibleThumbsPerView - 2 + i;
                            a = a * this._thumbSize + this._thumbsViewportSize % this._thumbSize + this._thumbsSpacing - this._thumbsMinPosition
                        } else
                            0 !== e ? (e - 1) * this._thumbSize <= -this._thumbsPosition + this._thumbsMinPosition && e - 1 <= this.numSlides - this._visibleThumbsPerView && (a = (1 - e) * this._thumbSize + this._thumbsMinPosition) : a = this._thumbsMinPosition;
                        a !== this._thumbsPosition && ((i = void 0 === a ? this._thumbsPosition : a) > this._thumbsMinPosition ? this._setThumbsPosition(this._thumbsMinPosition) : i < this._thumbsMaxPosition ? this._setThumbsPosition(this._thumbsMaxPosition) : void 0 !== a && (t ? this._setThumbsPosition(a) : this._animateThumbsTo(a))),
                        this._updateThumbsArrows()
                    }
                }
            }),
            a.rsModules.thumbnails = a.rsProto._initThumbs,
            (o = d).extend(o.rsProto, {
                _initTabs: function() {
                    var e = this;
                    "tabs" === e.st.controlNavigation && (e.ev.on("rsBeforeParseNode", (function(e, t, i) {
                        t = o(t),
                        i.thumbnail = t.find(".rsTmb").remove(),
                        i.thumbnail.length ? i.thumbnail = o(document.createElement("div")).append(i.thumbnail).html() : (i.thumbnail = t.attr("data-rsTmb"),
                        i.thumbnail || (i.thumbnail = t.find(".rsImg").attr("data-rsTmb")),
                        i.thumbnail = i.thumbnail ? '<img src="' + i.thumbnail + '"/>' : "")
                    }
                    )),
                    e.ev.one("rsAfterPropsSetup", (function() {
                        e._createTabs()
                    }
                    )),
                    e.ev.on("rsOnAppendSlide", (function(t, i, n) {
                        n >= e.numSlides ? e._controlNav.append('<div class="rsNavItem rsTab">' + i.thumbnail + "</div>") : e._controlNavItems.eq(n).before('<div class="rsNavItem rsTab">' + item.thumbnail + "</div>"),
                        e._controlNavItems = e._controlNav.children()
                    }
                    )),
                    e.ev.on("rsOnRemoveSlide", (function(t, i) {
                        var n = e._controlNavItems.eq(i);
                        n && (n.remove(),
                        e._controlNavItems = e._controlNav.children())
                    }
                    )),
                    e.ev.on("rsOnUpdateNav", (function() {
                        var t = e.currSlideId;
                        e._prevNavItem && e._prevNavItem.removeClass("rsNavSelected"),
                        (t = e._controlNavItems.eq(t)).addClass("rsNavSelected"),
                        e._prevNavItem = t
                    }
                    )))
                },
                _createTabs: function() {
                    var e = this;
                    e._controlNavEnabled = !0;
                    for (var t = '<div class="rsNav rsTabs">', i = 0; i < e.numSlides; i++)
                        t += '<div class="rsNavItem rsTab">' + e.slides[i].thumbnail + "</div>";
                    t = o(t + "</div>"),
                    e._controlNav = t,
                    e._controlNavItems = t.children(".rsNavItem"),
                    e.slider.append(t),
                    e._controlNav.click((function(t) {
                        (t = o(t.target).closest(".rsNavItem")).length && e.goTo(t.index())
                    }
                    ))
                }
            }),
            o.rsModules.tabs = o.rsProto._initTabs,
            function(e) {
                e.extend(e.rsProto, {
                    _initFullscreen: function() {
                        var t = this;
                        t._fullscreenDefaults = {
                            enabled: !1,
                            keyboardNav: !0,
                            buttonFS: !0,
                            nativeFS: !1,
                            doubleTap: !0
                        },
                        t.st.fullscreen = e.extend({}, t._fullscreenDefaults, t.st.fullscreen),
                        t.st.fullscreen.enabled && t.ev.one("rsBeforeSizeSet", (function() {
                            t._setupFullscreen()
                        }
                        ))
                    },
                    _setupFullscreen: function() {
                        var t = this;
                        if (t._fsKeyboard = !t.st.keyboardNavEnabled && t.st.fullscreen.keyboardNav,
                        t.st.fullscreen.nativeFS) {
                            var i = {
                                supportsFullScreen: !1,
                                isFullScreen: function() {
                                    return !1
                                },
                                requestFullScreen: function() {},
                                cancelFullScreen: function() {},
                                fullScreenEventName: "",
                                prefix: ""
                            }
                              , n = ["webkit", "moz", "o", "ms", "khtml"];
                            if (void 0 !== document.cancelFullScreen)
                                i.supportsFullScreen = !0;
                            else
                                for (var a = 0, o = n.length; a < o; a++)
                                    if (i.prefix = n[a],
                                    void 0 !== document[i.prefix + "CancelFullScreen"]) {
                                        i.supportsFullScreen = !0;
                                        break
                                    }
                            i.supportsFullScreen ? (t.nativeFS = !0,
                            i.fullScreenEventName = i.prefix + "fullscreenchange" + t.ns,
                            i.isFullScreen = function() {
                                switch (this.prefix) {
                                case "":
                                    return document.fullScreen;
                                case "webkit":
                                    return document.webkitIsFullScreen;
                                default:
                                    return document[this.prefix + "FullScreen"]
                                }
                            }
                            ,
                            i.requestFullScreen = function(e) {
                                return "" === this.prefix ? e.requestFullScreen() : e[this.prefix + "RequestFullScreen"]()
                            }
                            ,
                            i.cancelFullScreen = function(e) {
                                return "" === this.prefix ? document.cancelFullScreen() : document[this.prefix + "CancelFullScreen"]()
                            }
                            ,
                            t._fullScreenApi = i) : t._fullScreenApi = !1
                        }
                        t.st.fullscreen.buttonFS && (t._fsBtn = e('<div class="rsFullscreenBtn"><div class="rsFullscreenIcn"></div></div>').appendTo(t._controlsContainer).on("click.rs", (function() {
                            t.isFullscreen ? t.exitFullscreen() : t.enterFullscreen()
                        }
                        )))
                    },
                    enterFullscreen: function(t) {
                        var i = this;
                        if (i._fullScreenApi) {
                            if (!t)
                                return i._doc.on(i._fullScreenApi.fullScreenEventName, (function(e) {
                                    i._fullScreenApi.isFullScreen() ? i.enterFullscreen(!0) : i.exitFullscreen(!0)
                                }
                                )),
                                void i._fullScreenApi.requestFullScreen(e("html")[0]);
                            i._fullScreenApi.requestFullScreen(e("html")[0])
                        }
                        if (!i._isFullscreenUpdating) {
                            var n;
                            for (i._isFullscreenUpdating = !0,
                            i._doc.on("keyup" + i.ns + "fullscreen", (function(e) {
                                27 === e.keyCode && i.exitFullscreen()
                            }
                            )),
                            i._fsKeyboard && i._bindKeyboardNav(),
                            t = e(window),
                            i._fsScrollTopOnEnter = t.scrollTop(),
                            i._fsScrollLeftOnEnter = t.scrollLeft(),
                            i._htmlStyle = e("html").attr("style"),
                            i._bodyStyle = e("body").attr("style"),
                            i._sliderStyle = i.slider.attr("style"),
                            e("body, html").css({
                                overflow: "hidden",
                                height: "100%",
                                width: "100%",
                                margin: "0",
                                padding: "0"
                            }),
                            i.slider.addClass("rsFullscreen"),
                            n = 0; n < i.numSlides; n++)
                                (t = i.slides[n]).isRendered = !1,
                                t.bigImage && (t.isBig = !0,
                                t.isMedLoaded = t.isLoaded,
                                t.isMedLoading = t.isLoading,
                                t.medImage = t.image,
                                t.medIW = t.iW,
                                t.medIH = t.iH,
                                t.slideId = -99,
                                t.bigImage !== t.medImage && (t.sizeType = "big"),
                                t.isLoaded = t.isBigLoaded,
                                t.isLoading = !1,
                                t.image = t.bigImage,
                                t.images[0] = t.bigImage,
                                t.iW = t.bigIW,
                                t.iH = t.bigIH,
                                t.isAppended = t.contentAdded = !1,
                                i._updateItemSrc(t));
                            i.isFullscreen = !0,
                            i._isFullscreenUpdating = !1,
                            i.updateSliderSize(),
                            i.ev.trigger("rsEnterFullscreen")
                        }
                    },
                    exitFullscreen: function(t) {
                        var i = this;
                        if (i._fullScreenApi) {
                            if (!t)
                                return void i._fullScreenApi.cancelFullScreen(e("html")[0]);
                            i._doc.off(i._fullScreenApi.fullScreenEventName)
                        }
                        if (!i._isFullscreenUpdating) {
                            var n;
                            for (i._isFullscreenUpdating = !0,
                            i._doc.off("keyup" + i.ns + "fullscreen"),
                            i._fsKeyboard && i._doc.off("keydown" + i.ns),
                            e("html").attr("style", i._htmlStyle || ""),
                            e("body").attr("style", i._bodyStyle || ""),
                            n = 0; n < i.numSlides; n++)
                                (t = i.slides[n]).isRendered = !1,
                                t.bigImage && (t.isBig = !1,
                                t.slideId = -99,
                                t.isBigLoaded = t.isLoaded,
                                t.isBigLoading = t.isLoading,
                                t.bigImage = t.image,
                                t.bigIW = t.iW,
                                t.bigIH = t.iH,
                                t.isLoaded = t.isMedLoaded,
                                t.isLoading = !1,
                                t.image = t.medImage,
                                t.images[0] = t.medImage,
                                t.iW = t.medIW,
                                t.iH = t.medIH,
                                t.isAppended = t.contentAdded = !1,
                                i._updateItemSrc(t, !0),
                                t.bigImage !== t.medImage && (t.sizeType = "med"));
                            i.isFullscreen = !1,
                            (t = e(window)).scrollTop(i._fsScrollTopOnEnter),
                            t.scrollLeft(i._fsScrollLeftOnEnter),
                            i._isFullscreenUpdating = !1,
                            i.slider.removeClass("rsFullscreen"),
                            i.updateSliderSize(),
                            setTimeout((function() {
                                i.updateSliderSize()
                            }
                            ), 1),
                            i.ev.trigger("rsExitFullscreen")
                        }
                    },
                    _updateItemSrc: function(t, i) {
                        var n = t.isLoaded || t.isLoading ? '<img class="rsImg rsMainSlideImage" src="' + t.image + '"/>' : '<a class="rsImg rsMainSlideImage" href="' + t.image + '"></a>';
                        t.content.hasClass("rsImg") ? t.content = e(n) : t.content.find(".rsImg").eq(0).replaceWith(n),
                        t.isLoaded || t.isLoading || !t.holder || t.holder.html(t.content)
                    }
                }),
                e.rsModules.fullscreen = e.rsProto._initFullscreen
            }(d),
            (r = d).extend(r.rsProto, {
                _initAutoplay: function() {
                    var e, t = this;
                    t._autoPlayDefaults = {
                        enabled: !1,
                        stopAtAction: !0,
                        pauseOnHover: !0,
                        delay: 2e3
                    },
                    !t.st.autoPlay && t.st.autoplay && (t.st.autoPlay = t.st.autoplay),
                    t.st.autoPlay = r.extend({}, t._autoPlayDefaults, t.st.autoPlay),
                    t.st.autoPlay.enabled && (t.ev.on("rsBeforeParseNode", (function(t, i, n) {
                        i = r(i),
                        (e = i.attr("data-rsDelay")) && (n.customDelay = parseInt(e, 10))
                    }
                    )),
                    t.ev.one("rsAfterInit", (function() {
                        t._setupAutoPlay()
                    }
                    )),
                    t.ev.on("rsBeforeDestroy", (function() {
                        t.stopAutoPlay(),
                        t.slider.off("mouseenter mouseleave"),
                        r(window).off("blur" + t.ns + " focus" + t.ns)
                    }
                    )))
                },
                _setupAutoPlay: function() {
                    var e = this;
                    e.startAutoPlay(),
                    e.ev.on("rsAfterContentSet", (function(t, i) {
                        e._isDragging || e._isAnimating || !e._autoPlayEnabled || i !== e.currSlide || e._play()
                    }
                    )),
                    e.ev.on("rsDragRelease", (function() {
                        e._autoPlayEnabled && e._autoPlayPaused && (e._autoPlayPaused = !1,
                        e._play())
                    }
                    )),
                    e.ev.on("rsAfterSlideChange", (function() {
                        e._autoPlayEnabled && e._autoPlayPaused && (e._autoPlayPaused = !1,
                        e.currSlide.isLoaded && e._play())
                    }
                    )),
                    e.ev.on("rsDragStart", (function() {
                        e._autoPlayEnabled && (e.st.autoPlay.stopAtAction ? e.stopAutoPlay() : (e._autoPlayPaused = !0,
                        e._pause()))
                    }
                    )),
                    e.ev.on("rsBeforeMove", (function(t, i, n) {
                        e._autoPlayEnabled && (n && e.st.autoPlay.stopAtAction ? e.stopAutoPlay() : (e._autoPlayPaused = !0,
                        e._pause()))
                    }
                    )),
                    e._pausedByVideo = !1,
                    e.ev.on("rsVideoStop", (function() {
                        e._autoPlayEnabled && (e._pausedByVideo = !1,
                        e._play())
                    }
                    )),
                    e.ev.on("rsVideoPlay", (function() {
                        e._autoPlayEnabled && (e._autoPlayPaused = !1,
                        e._pause(),
                        e._pausedByVideo = !0)
                    }
                    )),
                    r(window).on("blur" + e.ns, (function() {
                        e._autoPlayEnabled && (e._autoPlayPaused = !0,
                        e._pause())
                    }
                    )).on("focus" + e.ns, (function() {
                        e._autoPlayEnabled && e._autoPlayPaused && (e._autoPlayPaused = !1,
                        e._play())
                    }
                    )),
                    e.st.autoPlay.pauseOnHover && (e._pausedByHover = !1,
                    e.slider.hover((function() {
                        e._autoPlayEnabled && (e._autoPlayPaused = !1,
                        e._pause(),
                        e._pausedByHover = !0)
                    }
                    ), (function() {
                        e._autoPlayEnabled && (e._pausedByHover = !1,
                        e._play())
                    }
                    )))
                },
                toggleAutoPlay: function() {
                    this._autoPlayEnabled ? this.stopAutoPlay() : this.startAutoPlay()
                },
                startAutoPlay: function() {
                    this._autoPlayEnabled = !0,
                    this.currSlide.isLoaded && this._play()
                },
                stopAutoPlay: function() {
                    this._pausedByVideo = this._pausedByHover = this._autoPlayPaused = this._autoPlayEnabled = !1,
                    this._pause()
                },
                _play: function() {
                    var e = this;
                    e._pausedByHover || e._pausedByVideo || (e._autoPlayRunning = !0,
                    e._autoPlayTimeout && clearTimeout(e._autoPlayTimeout),
                    e._autoPlayTimeout = setTimeout((function() {
                        if (!e._loop && !e.st.loopRewind) {
                            var t = !0;
                            e.st.loopRewind = !0
                        }
                        e.next(!0),
                        t && (e.st.loopRewind = !1)
                    }
                    ), e.currSlide.customDelay ? e.currSlide.customDelay : e.st.autoPlay.delay))
                },
                _pause: function() {
                    this._pausedByHover || this._pausedByVideo || (this._autoPlayRunning = !1,
                    this._autoPlayTimeout && (clearTimeout(this._autoPlayTimeout),
                    this._autoPlayTimeout = null))
                }
            }),
            r.rsModules.autoplay = r.rsProto._initAutoplay,
            (s = d).extend(s.rsProto, {
                _initVideo: function() {
                    var e = this;
                    e._videoDefaults = {
                        autoHideArrows: !0,
                        autoHideControlNav: !1,
                        autoHideBlocks: !1,
                        autoHideCaption: !1,
                        disableCSS3inFF: !0,
                        youTubeCode: '<iframe src="https://www.youtube.com/embed/%id%?rel=1&showinfo=0&autoplay=1&wmode=transparent" frameborder="no"></iframe>',
                        vimeoCode: '<iframe src="https://player.vimeo.com/video/%id%?byline=0&portrait=0&autoplay=1" frameborder="no" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'
                    },
                    e.st.video = s.extend({}, e._videoDefaults, e.st.video),
                    e.ev.on("rsBeforeSizeSet", (function() {
                        e._isVideoPlaying && setTimeout((function() {
                            var t = e._currHolder;
                            t = t.hasClass("rsVideoContainer") ? t : t.find(".rsVideoContainer"),
                            e._videoFrameHolder && e._videoFrameHolder.css({
                                width: t.width(),
                                height: t.height()
                            })
                        }
                        ), 32)
                    }
                    ));
                    var t = e._browser.mozilla;
                    e.ev.on("rsAfterParseNode", (function(i, n, a) {
                        if (i = s(n),
                        a.videoURL) {
                            e.st.video.disableCSS3inFF && t && (e._useCSS3Transitions = e._use3dTransform = !1),
                            n = s('<div class="rsVideoContainer"></div>');
                            var o = s('<div class="rsBtnCenterer"><div class="rsPlayBtn"><div class="rsPlayBtnIcon"></div></div></div>');
                            i.hasClass("rsImg") ? a.content = n.append(i).append(o) : a.content.find(".rsImg").wrap(n).after(o)
                        }
                    }
                    )),
                    e.ev.on("rsAfterSlideChange", (function() {
                        e.stopVideo()
                    }
                    ))
                },
                toggleVideo: function() {
                    return this._isVideoPlaying ? this.stopVideo() : this.playVideo()
                },
                playVideo: function() {
                    var e = this;
                    if (!e._isVideoPlaying) {
                        var t = e.currSlide;
                        if (!t.videoURL)
                            return !1;
                        e._playingVideoSlide = t;
                        var i, n = e._currVideoContent = t.content;
                        if ((t = t.videoURL).match(/youtu\.be/i) || t.match(/youtube\.com/i)) {
                            var a = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&\?]*).*/;
                            (a = t.match(a)) && 11 == a[2].length && (i = a[2]),
                            void 0 !== i && (e._videoFrameHolder = e.st.video.youTubeCode.replace("%id%", i))
                        } else
                            t.match(/vimeo\.com/i) && (a = /(www\.)?vimeo.com\/(\d+)($|\/)/,
                            (a = t.match(a)) && (i = a[2]),
                            void 0 !== i && (e._videoFrameHolder = e.st.video.vimeoCode.replace("%id%", i)));
                        return e.videoObj = s(e._videoFrameHolder),
                        e.ev.trigger("rsOnCreateVideoElement", [t]),
                        e.videoObj.length && (e._videoFrameHolder = s('<div class="rsVideoFrameHolder"><div class="rsPreloader"></div><div class="rsCloseVideoBtn"><div class="rsCloseVideoIcn"></div></div></div>'),
                        e._videoFrameHolder.find(".rsPreloader").after(e.videoObj),
                        n = n.hasClass("rsVideoContainer") ? n : n.find(".rsVideoContainer"),
                        e._videoFrameHolder.css({
                            width: n.width(),
                            height: n.height()
                        }).find(".rsCloseVideoBtn").off("click.rsv").on("click.rsv", (function(t) {
                            return e.stopVideo(),
                            t.preventDefault(),
                            t.stopPropagation(),
                            !1
                        }
                        )),
                        n.append(e._videoFrameHolder),
                        e.isIPAD && n.addClass("rsIOSVideo"),
                        e._toggleHiddenClass(!1),
                        setTimeout((function() {
                            e._videoFrameHolder.addClass("rsVideoActive")
                        }
                        ), 10),
                        e.ev.trigger("rsVideoPlay"),
                        e._isVideoPlaying = !0),
                        !0
                    }
                    return !1
                },
                stopVideo: function() {
                    var e = this;
                    return !!e._isVideoPlaying && (e.isIPAD && e.slider.find(".rsCloseVideoBtn").remove(),
                    e._toggleHiddenClass(!0),
                    setTimeout((function() {
                        e.ev.trigger("rsOnDestroyVideoElement", [e.videoObj]);
                        var t = e._videoFrameHolder.find("iframe");
                        if (t.length)
                            try {
                                t.attr("src", "")
                            } catch (e) {}
                        e._videoFrameHolder.remove(),
                        e._videoFrameHolder = null
                    }
                    ), 16),
                    e.ev.trigger("rsVideoStop"),
                    e._isVideoPlaying = !1,
                    !0)
                },
                _toggleHiddenClass: function(e, t) {
                    var i = []
                      , n = this.st.video;
                    if (n.autoHideArrows && (this._arrowLeft && (i.push(this._arrowLeft, this._arrowRight),
                    this._arrowsAutoHideLocked = !e),
                    this._fsBtn && i.push(this._fsBtn)),
                    n.autoHideControlNav && this._controlNav && i.push(this._controlNav),
                    n.autoHideBlocks && this._playingVideoSlide.animBlocks && i.push(this._playingVideoSlide.animBlocks),
                    n.autoHideCaption && this.globalCaption && i.push(this.globalCaption),
                    this.slider[e ? "removeClass" : "addClass"]("rsVideoPlaying"),
                    i.length)
                        for (n = 0; n < i.length; n++)
                            e ? i[n].removeClass("rsHidden") : i[n].addClass("rsHidden")
                }
            }),
            s.rsModules.video = s.rsProto._initVideo,
            (l = d).extend(l.rsProto, {
                _initAnimatedBlocks: function() {
                    function e() {
                        var e = i.currSlide;
                        if (i.currSlide && i.currSlide.isLoaded && i._slideWithBlocks !== e) {
                            if (0 < i._animatedBlockTimeouts.length) {
                                for (t = 0; t < i._animatedBlockTimeouts.length; t++)
                                    clearTimeout(i._animatedBlockTimeouts[t]);
                                i._animatedBlockTimeouts = []
                            }
                            if (0 < i._blockAnimProps.length) {
                                var n;
                                for (t = 0; t < i._blockAnimProps.length; t++)
                                    (n = i._blockAnimProps[t]) && (i._useCSS3Transitions ? (n.block.css(i._vendorPref + i._TD, "0s"),
                                    n.block.css(n.css)) : n.block.stop(!0).css(n.css),
                                    i._slideWithBlocks = null,
                                    e.animBlocksDisplayed = !1);
                                i._blockAnimProps = []
                            }
                            e.animBlocks && (e.animBlocksDisplayed = !0,
                            i._slideWithBlocks = e,
                            i._animateBlocks(e.animBlocks))
                        }
                    }
                    var t, i = this;
                    i._blockDefaults = {
                        fadeEffect: !0,
                        moveEffect: "top",
                        moveOffset: 20,
                        speed: 400,
                        easing: "easeOutSine",
                        delay: 200
                    },
                    i.st.block = l.extend({}, i._blockDefaults, i.st.block),
                    i._blockAnimProps = [],
                    i._animatedBlockTimeouts = [],
                    i.ev.on("rsAfterInit", (function() {
                        e()
                    }
                    )),
                    i.ev.on("rsBeforeParseNode", (function(e, t, i) {
                        t = l(t),
                        i.animBlocks = t.find(".rsABlock").css("display", "none"),
                        i.animBlocks.length || (t.hasClass("rsABlock") ? i.animBlocks = t.css("display", "none") : i.animBlocks = !1)
                    }
                    )),
                    i.ev.on("rsAfterContentSet", (function(t, n) {
                        n.id === i.slides[i.currSlideId].id && setTimeout((function() {
                            e()
                        }
                        ), i.st.fadeinLoadedSlide ? 300 : 0)
                    }
                    )),
                    i.ev.on("rsAfterSlideChange", (function() {
                        e()
                    }
                    ))
                },
                _updateAnimBlockProps: function(e, t) {
                    setTimeout((function() {
                        e.css(t)
                    }
                    ), 6)
                },
                _animateBlocks: function(e) {
                    var t, i, n, a, o, r, s, c = this;
                    c._animatedBlockTimeouts = [],
                    e.each((function(e) {
                        t = l(this),
                        i = {},
                        n = {},
                        a = null;
                        var d = t.attr("data-move-offset");
                        if (0 < (d = d ? parseInt(d, 10) : c.st.block.moveOffset) && ((r = t.data("move-effect")) ? ("none" === (r = r.toLowerCase()) || "left" !== r && "top" !== r && "bottom" !== r && "right" !== r && "none" === (r = c.st.block.moveEffect)) && (r = !1) : r = c.st.block.moveEffect,
                        r && "none" !== r)) {
                            var u = "right" === r || "left" === r;
                            if (s = !1,
                            c._useCSS3Transitions) {
                                var p = 0;
                                o = c._xProp
                            } else
                                u ? isNaN(parseInt(t.css("right"), 10)) ? o = "left" : (o = "right",
                                s = !0) : isNaN(parseInt(t.css("bottom"), 10)) ? o = "top" : (o = "bottom",
                                s = !0),
                                o = "margin-" + o,
                                s && (d = -d),
                                c._useCSS3Transitions ? p = parseInt(t.css(o), 10) : void 0 === (p = t.data("rs-start-move-prop")) && (p = parseInt(t.css(o), 10),
                                isNaN(p) && (p = 0),
                                t.data("rs-start-move-prop", p));
                            n[o] = c._getCSS3Prop("top" === r || "left" === r ? p - d : p + d, u),
                            i[o] = c._getCSS3Prop(p, u)
                        }
                        (d = t.attr("data-fade-effect")) ? "none" !== d.toLowerCase() && "false" !== d.toLowerCase() || (d = !1) : d = c.st.block.fadeEffect,
                        d && (n.opacity = 0,
                        i.opacity = 1),
                        (d || r) && ((a = {}).hasFade = !!d,
                        r && (a.moveProp = o,
                        a.hasMove = !0),
                        a.speed = t.data("speed"),
                        isNaN(a.speed) && (a.speed = c.st.block.speed),
                        a.easing = t.data("easing"),
                        a.easing || (a.easing = c.st.block.easing),
                        a.css3Easing = l.rsCSS3Easing[a.easing],
                        a.delay = t.data("delay"),
                        isNaN(a.delay) && (a.delay = c.st.block.delay * e)),
                        d = {},
                        c._useCSS3Transitions && (d[c._vendorPref + c._TD] = "0ms"),
                        d.moveProp = i.moveProp,
                        d.opacity = i.opacity,
                        d.display = "none",
                        c._blockAnimProps.push({
                            block: t,
                            css: d
                        }),
                        c._updateAnimBlockProps(t, n),
                        c._animatedBlockTimeouts.push(setTimeout(function(e, t, i, n) {
                            return function() {
                                if (e.css("display", "block"),
                                i) {
                                    var a = {};
                                    if (c._useCSS3Transitions) {
                                        var o = "";
                                        i.hasMove && (o += i.moveProp),
                                        i.hasFade && (i.hasMove && (o += ", "),
                                        o += "opacity"),
                                        a[c._vendorPref + c._TP] = o,
                                        a[c._vendorPref + c._TD] = i.speed + "ms",
                                        a[c._vendorPref + c._TTF] = i.css3Easing,
                                        e.css(a),
                                        setTimeout((function() {
                                            e.css(t)
                                        }
                                        ), 24)
                                    } else
                                        setTimeout((function() {
                                            e.animate(t, i.speed, i.easing)
                                        }
                                        ), 16)
                                }
                                delete c._animatedBlockTimeouts[n]
                            }
                        }(t, i, a, e), 6 >= a.delay ? 12 : a.delay))
                    }
                    ))
                }
            }),
            l.rsModules.animatedBlocks = l.rsProto._initAnimatedBlocks,
            function(e) {
                e.extend(e.rsProto, {
                    _initAutoHeight: function() {
                        var e = this;
                        if (e.st.autoHeight) {
                            var t, i, n, a = !0, o = function(o) {
                                n = e.slides[e.currSlideId],
                                (t = n.holder) && (i = t.height()) && void 0 !== i && i > (e.st.minAutoHeight || 30) && (e._wrapHeight = i,
                                e._useCSS3Transitions || !o ? e._sliderOverflow.css("height", i) : e._sliderOverflow.stop(!0, !0).animate({
                                    height: i
                                }, e.st.transitionSpeed),
                                e.ev.trigger("rsAutoHeightChange", i),
                                a && (e._useCSS3Transitions && setTimeout((function() {
                                    e._sliderOverflow.css(e._vendorPref + "transition", "height " + e.st.transitionSpeed + "ms ease-in-out")
                                }
                                ), 16),
                                a = !1))
                            };
                            e.ev.on("rsMaybeSizeReady.rsAutoHeight", (function(e, t) {
                                n === t && o()
                            }
                            )),
                            e.ev.on("rsAfterContentSet.rsAutoHeight", (function(e, t) {
                                n === t && o()
                            }
                            )),
                            e.slider.addClass("rsAutoHeight"),
                            e.ev.one("rsAfterInit", (function() {
                                setTimeout((function() {
                                    o(!1),
                                    setTimeout((function() {
                                        e.slider.append('<div style="clear:both; float: none;"></div>')
                                    }
                                    ), 16)
                                }
                                ), 16)
                            }
                            )),
                            e.ev.on("rsBeforeAnimStart", (function() {
                                o(!0)
                            }
                            )),
                            e.ev.on("rsBeforeSizeSet", (function() {
                                setTimeout((function() {
                                    o(!1)
                                }
                                ), 16)
                            }
                            ))
                        }
                    }
                }),
                e.rsModules.autoHeight = e.rsProto._initAutoHeight
            }(d),
            function(e) {
                e.extend(e.rsProto, {
                    _initGlobalCaption: function() {
                        var t = this;
                        t.st.globalCaption && (t.ev.on("rsAfterInit", (function() {
                            t.globalCaption = e('<div class="rsGCaption"></div>').appendTo(t.st.globalCaptionInside ? t._sliderOverflow : t.slider),
                            t.globalCaption.html(t.currSlide.caption || "")
                        }
                        )),
                        t.ev.on("rsBeforeAnimStart", (function() {
                            t.globalCaption.html(t.currSlide.caption || "")
                        }
                        )))
                    }
                }),
                e.rsModules.globalCaption = e.rsProto._initGlobalCaption
            }(d),
            function(e) {
                e.rsProto._initActiveClass = function() {
                    var e, t = this;
                    t.st.addActiveClass && t.ev.on("rsOnUpdateNav", (function() {
                        e && clearTimeout(e),
                        e = setTimeout((function() {
                            t._oldHolder && t._oldHolder.removeClass("rsActiveSlide"),
                            t._currHolder && t._currHolder.addClass("rsActiveSlide"),
                            e = null
                        }
                        ), 50)
                    }
                    ))
                }
                ,
                e.rsModules.activeClass = e.rsProto._initActiveClass
            }(d),
            function(e) {
                e.extend(e.rsProto, {
                    _initDeeplinking: function() {
                        var t, i, n, a = this;
                        if (a._hashDefaults = {
                            enabled: !1,
                            change: !1,
                            prefix: ""
                        },
                        a.st.deeplinking = e.extend({}, a._hashDefaults, a.st.deeplinking),
                        a.st.deeplinking.enabled) {
                            var o = a.st.deeplinking.change
                              , r = a.st.deeplinking.prefix
                              , s = "#" + r
                              , l = function() {
                                var e = window.location.hash;
                                return e && 0 < e.indexOf(r) && 0 <= (e = parseInt(e.substring(s.length), 10)) ? e - 1 : -1
                            }
                              , c = l();
                            -1 !== c && (a.st.startSlideId = c),
                            o && (e(window).on("hashchange" + a.ns, (function(e) {
                                t || (0 > (e = l()) || (e > a.numSlides - 1 && (e = a.numSlides - 1),
                                a.goTo(e)))
                            }
                            )),
                            a.ev.on("rsBeforeAnimStart", (function() {
                                i && clearTimeout(i),
                                n && clearTimeout(n)
                            }
                            )),
                            a.ev.on("rsAfterSlideChange", (function() {
                                i && clearTimeout(i),
                                n && clearTimeout(n),
                                n = setTimeout((function() {
                                    t = !0,
                                    window.location.replace(("" + window.location).split("#")[0] + s + (a.currSlideId + 1)),
                                    i = setTimeout((function() {
                                        t = !1,
                                        i = null
                                    }
                                    ), 60)
                                }
                                ), 400)
                            }
                            ))),
                            a.ev.on("rsBeforeDestroy", (function() {
                                i = n = null,
                                o && e(window).off("hashchange" + a.ns)
                            }
                            ))
                        }
                    }
                }),
                e.rsModules.deeplinking = e.rsProto._initDeeplinking
            }(d),
            function(e, t, i) {
                function n(e) {
                    return "#" + (e = e || location.href).replace(/^[^#]*#?(.*)$/, "$1")
                }
                var a = document
                  , o = e.event.special
                  , r = a.documentMode
                  , s = "onhashchange"in t && (r === i || 7 < r);
                e.fn.hashchange = function(e) {
                    return e ? this.bind("hashchange", e) : this.trigger("hashchange")
                }
                ,
                e.fn.hashchange.delay = 50,
                o.hashchange = e.extend(o.hashchange, {
                    setup: function() {
                        if (s)
                            return !1;
                        e(l.start)
                    },
                    teardown: function() {
                        if (s)
                            return !1;
                        e(l.stop)
                    }
                });
                var l = function() {
                    function o() {
                        var i = n()
                          , a = p(c);
                        i !== c ? (u(c = i, a),
                        e(t).trigger("hashchange")) : a !== c && (location.href = location.href.replace(/#.*/, "") + a),
                        r = setTimeout(o, e.fn.hashchange.delay)
                    }
                    var r, l = {}, c = n(), d = function(e) {
                        return e
                    }, u = d, p = d;
                    return l.start = function() {
                        r || o()
                    }
                    ,
                    l.stop = function() {
                        r && clearTimeout(r),
                        r = i
                    }
                    ,
                    t.attachEvent && !t.addEventListener && !s && function() {
                        var t, i;
                        l.start = function() {
                            t || (i = (i = e.fn.hashchange.src) && i + n(),
                            t = e('<iframe tabindex="-1" title="empty"/>').hide().one("load", (function() {
                                i || u(n()),
                                o()
                            }
                            )).attr("src", i || "javascript:0").insertAfter("body")[0].contentWindow,
                            a.onpropertychange = function() {
                                try {
                                    "title" === event.propertyName && (t.document.title = a.title)
                                } catch (e) {}
                            }
                            )
                        }
                        ,
                        l.stop = d,
                        p = function() {
                            return n(t.location.href)
                        }
                        ,
                        u = function(i, n) {
                            var o = t.document
                              , r = e.fn.hashchange.domain;
                            i !== n && (o.title = a.title,
                            o.open(),
                            r && o.write('<script>document.domain="' + r + '"<\/script>'),
                            o.close(),
                            t.location.hash = i)
                        }
                    }(),
                    l
                }()
            }(d, window),
            (c = d).rsProto._initVisibleNearby = function() {
                var e = this;
                e.st.visibleNearby && e.st.visibleNearby.enabled && (e._vnDefaults = {
                    enabled: !0,
                    centerArea: .6,
                    center: !0,
                    breakpoint: 0,
                    breakpointCenterArea: .8,
                    hiddenOverflow: !0,
                    navigateByCenterClick: !1
                },
                e.st.visibleNearby = c.extend({}, e._vnDefaults, e.st.visibleNearby),
                e.ev.one("rsAfterPropsSetup", (function() {
                    e._sliderVisibleNearbyWrap = e._sliderOverflow.css("overflow", "visible").wrap('<div class="rsVisibleNearbyWrap"></div>').parent(),
                    e.st.visibleNearby.hiddenOverflow || e._sliderVisibleNearbyWrap.css("overflow", "visible"),
                    e._controlsContainer = e.st.controlsInside ? e._sliderVisibleNearbyWrap : e.slider
                }
                )),
                e.ev.on("rsAfterSizePropSet", (function() {
                    var t = e.st.visibleNearby
                      , i = t.breakpoint && e.width < t.breakpoint ? t.breakpointCenterArea : t.centerArea;
                    e._slidesHorizontal ? (e._wrapWidth *= i,
                    e._sliderVisibleNearbyWrap.css({
                        height: e._wrapHeight,
                        width: e._wrapWidth / i
                    }),
                    e._minPosOffset = e._wrapWidth * (1 - i) / 2 / i) : (e._wrapHeight *= i,
                    e._sliderVisibleNearbyWrap.css({
                        height: e._wrapHeight / i,
                        width: e._wrapWidth
                    }),
                    e._minPosOffset = e._wrapHeight * (1 - i) / 2 / i),
                    t.navigateByCenterClick || (e._nextSlidePos = e._slidesHorizontal ? e._wrapWidth : e._wrapHeight),
                    t.center && e._sliderOverflow.css("margin-" + (e._slidesHorizontal ? "left" : "top"), e._minPosOffset)
                }
                )))
            }
            ,
            c.rsModules.visibleNearby = c.rsProto._initVisibleNearby
        },
        95648: function(e, t, i) {
            var n;
            function a(e) {
                return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                    return typeof e
                }
                : function(e) {
                    return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                }
                ,
                a(e)
            }
            e = i.nmd(e),
            function() {
                var o, r = {
                    boolean: !1,
                    function: !0,
                    object: !0,
                    number: !1,
                    string: !1,
                    undefined: !1
                }, s = r["undefined" == typeof window ? "undefined" : a(window)] && window || this, l = r[a(t)] && t && !t.nodeType && t, c = r[a(e)] && e && !e.nodeType && e, d = c && c.exports === l && l, u = r[void 0 === i.g ? "undefined" : a(i.g)] && i.g;
                !u || u.global !== u && u.window !== u || (s = u);
                var p = Object.prototype.toString
                  , m = RegExp("^" + String(p).replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/toString| for [^\]]+/g, ".*?") + "$")
                  , h = Math.max;
                function f() {}
                function g(e) {
                    return "function" == typeof e
                }
                function v(e) {
                    return !(!e || !r[a(e)])
                }
                g(/x/) && (g = function(e) {
                    return "function" == typeof e && "[object Function]" == p.call(e)
                }
                );
                var b, y = "function" == typeof (b = y = Date.now) && m.test(b) && y || function() {
                    return (new Date).getTime()
                }
                ;
                f.debounce = function(e, t, i) {
                    var n, a, r, s, l, c, d, u = 0, p = !1, m = !0;
                    if (!g(e))
                        throw new TypeError;
                    if (t = h(0, t) || 0,
                    !0 === i) {
                        var f = !0;
                        m = !1
                    } else
                        v(i) && (f = i.leading,
                        p = "maxWait"in i && (h(t, i.maxWait) || 0),
                        m = "trailing"in i ? i.trailing : m);
                    var b = function i() {
                        var p = t - (y() - s);
                        if (p <= 0) {
                            a && clearTimeout(a);
                            var m = d;
                            a = c = d = o,
                            m && (u = y(),
                            r = e.apply(l, n),
                            c || a || (n = l = null))
                        } else
                            c = setTimeout(i, p)
                    }
                      , w = function() {
                        c && clearTimeout(c),
                        a = c = d = o,
                        (m || p !== t) && (u = y(),
                        r = e.apply(l, n),
                        c || a || (n = l = null))
                    };
                    return function() {
                        if (n = arguments,
                        s = y(),
                        l = this,
                        d = m && (c || !f),
                        !1 === p)
                            var i = f && !c;
                        else {
                            a || f || (u = s);
                            var o = p - (s - u)
                              , h = o <= 0;
                            h ? (a && (a = clearTimeout(a)),
                            u = s,
                            r = e.apply(l, n)) : a || (a = setTimeout(w, o))
                        }
                        return h && c ? c = clearTimeout(c) : c || t === p || (c = setTimeout(b, t)),
                        i && (h = !0,
                        r = e.apply(l, n)),
                        !h || c || a || (n = l = null),
                        r
                    }
                }
                ,
                f.isFunction = g,
                f.isObject = v,
                f.now = y,
                f.VERSION = "2.4.1",
                "object" == a(i.amdO) && i.amdO ? (s._ = f,
                (n = function() {
                    return f
                }
                .call(t, i, t, e)) === o || (e.exports = n)) : l && c ? d ? (c.exports = f)._ = f : l._ = f : s._ = f
            }
            .call(this)
        },
        5091: function(e, t, i) {
            var n, a, o, r;
            function s(e) {
                return s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                    return typeof e
                }
                : function(e) {
                    return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                }
                ,
                s(e)
            }
            r = function(e) {
                return e
            }
            ,
            "object" === s(t) ? e.exports = t = r(i(17653), i(309)) : (a = [i(17653), i(309)],
            void 0 === (o = "function" == typeof (n = r) ? n.apply(t, a) : n) || (e.exports = o))
        },
        309: function(e, t, i) {
            var n, a, o;
            a = [i(17653), i(19755)],
            void 0 === (o = "function" == typeof (n = function(e, t) {
                var i, n = 7, a = 6, o = e._;
                function r(e, t) {
                    var i, n = this, a = e.$node[0], o = a.value, r = e.$node.data("value"), s = r || o, l = r ? t.formatSubmit : t.format, c = function() {
                        return a.currentStyle ? "rtl" == a.currentStyle.direction : "rtl" == getComputedStyle(e.$root[0]).direction
                    };
                    n.settings = t,
                    n.$node = e.$node,
                    n.queue = {
                        min: "measure create",
                        max: "measure create",
                        now: "now create",
                        select: "parse create validate",
                        highlight: "parse navigate create validate",
                        view: "parse create validate viewset",
                        disable: "deactivate",
                        enable: "activate"
                    },
                    n.item = {},
                    n.item.clear = null,
                    n.item.disable = (t.disable || []).slice(0),
                    n.item.enable = -(!0 === (i = n.item.disable)[0] ? i.shift() : -1),
                    n.set("min", t.min).set("max", t.max).set("now"),
                    s ? n.set("select", s, {
                        format: l,
                        defaultValue: !0
                    }) : n.set("select", null).set("highlight", n.item.now),
                    n.key = {
                        40: 7,
                        38: -7,
                        39: function() {
                            return c() ? -1 : 1
                        },
                        37: function() {
                            return c() ? 1 : -1
                        },
                        go: function(e) {
                            var t = n.item.highlight
                              , i = new Date(t.year,t.month,t.date + e);
                            n.set("highlight", i, {
                                interval: e
                            }),
                            this.render()
                        }
                    },
                    e.on("render", (function() {
                        e.$root.find("." + t.klass.selectMonth).on("change", (function() {
                            var i = this.value;
                            i && (e.set("highlight", [e.get("view").year, i, e.get("highlight").date]),
                            e.$root.find("." + t.klass.selectMonth).trigger("focus"))
                        }
                        )),
                        e.$root.find("." + t.klass.selectYear).on("change", (function() {
                            var i = this.value;
                            i && (e.set("highlight", [i, e.get("view").month, e.get("highlight").date]),
                            e.$root.find("." + t.klass.selectYear).trigger("focus"))
                        }
                        ))
                    }
                    ), 1).on("open", (function() {
                        var i = "";
                        n.disabled(n.get("now")) && (i = ":not(." + t.klass.buttonToday + ")"),
                        e.$root.find("button" + i + ", select").attr("disabled", !1)
                    }
                    ), 1).on("close", (function() {
                        e.$root.find("button, select").attr("disabled", !0)
                    }
                    ), 1)
                }
                r.prototype.set = function(e, t, i) {
                    var n = this
                      , a = n.item;
                    return null === t ? ("clear" == e && (e = "select"),
                    a[e] = t,
                    n) : (a["enable" == e ? "disable" : "flip" == e ? "enable" : e] = n.queue[e].split(" ").map((function(a) {
                        return t = n[a](e, t, i)
                    }
                    )).pop(),
                    "select" == e ? n.set("highlight", a.select, i) : "highlight" == e ? n.set("view", a.highlight, i) : e.match(/^(flip|min|max|disable|enable)$/) && (a.select && n.disabled(a.select) && n.set("select", a.select, i),
                    a.highlight && n.disabled(a.highlight) && n.set("highlight", a.highlight, i)),
                    n)
                }
                ,
                r.prototype.get = function(e) {
                    return this.item[e]
                }
                ,
                r.prototype.create = function(e, i, n) {
                    var a, r = this;
                    return (i = void 0 === i ? e : i) == -1 / 0 || i == 1 / 0 ? a = i : t.isPlainObject(i) && o.isInteger(i.pick) ? i = i.obj : t.isArray(i) ? (i = new Date(i[0],i[1],i[2]),
                    i = o.isDate(i) ? i : r.create().obj) : i = o.isInteger(i) || o.isDate(i) ? r.normalize(new Date(i), n) : r.now(e, i, n),
                    {
                        year: a || i.getFullYear(),
                        month: a || i.getMonth(),
                        date: a || i.getDate(),
                        day: a || i.getDay(),
                        obj: a || i,
                        pick: a || i.getTime()
                    }
                }
                ,
                r.prototype.createRange = function(e, i) {
                    var n = this
                      , a = function(e) {
                        return !0 === e || t.isArray(e) || o.isDate(e) ? n.create(e) : e
                    };
                    return o.isInteger(e) || (e = a(e)),
                    o.isInteger(i) || (i = a(i)),
                    o.isInteger(e) && t.isPlainObject(i) ? e = [i.year, i.month, i.date + e] : o.isInteger(i) && t.isPlainObject(e) && (i = [e.year, e.month, e.date + i]),
                    {
                        from: a(e),
                        to: a(i)
                    }
                }
                ,
                r.prototype.withinRange = function(e, t) {
                    return e = this.createRange(e.from, e.to),
                    t.pick >= e.from.pick && t.pick <= e.to.pick
                }
                ,
                r.prototype.overlapRanges = function(e, t) {
                    var i = this;
                    return e = i.createRange(e.from, e.to),
                    t = i.createRange(t.from, t.to),
                    i.withinRange(e, t.from) || i.withinRange(e, t.to) || i.withinRange(t, e.from) || i.withinRange(t, e.to)
                }
                ,
                r.prototype.now = function(e, t, i) {
                    return t = new Date,
                    i && i.rel && t.setDate(t.getDate() + i.rel),
                    this.normalize(t, i)
                }
                ,
                r.prototype.navigate = function(e, i, n) {
                    var a, o, r, s, l = t.isArray(i), c = t.isPlainObject(i), d = this.item.view;
                    if (l || c) {
                        for (c ? (o = i.year,
                        r = i.month,
                        s = i.date) : (o = +i[0],
                        r = +i[1],
                        s = +i[2]),
                        n && n.nav && d && d.month !== r && (o = d.year,
                        r = d.month),
                        o = (a = new Date(o,r + (n && n.nav ? n.nav : 0),1)).getFullYear(),
                        r = a.getMonth(); new Date(o,r,s).getMonth() !== r; )
                            s -= 1;
                        i = [o, r, s]
                    }
                    return i
                }
                ,
                r.prototype.normalize = function(e) {
                    return e.setHours(0, 0, 0, 0),
                    e
                }
                ,
                r.prototype.measure = function(e, t) {
                    var i = this;
                    return t ? "string" == typeof t ? t = i.parse(e, t) : o.isInteger(t) && (t = i.now(e, t, {
                        rel: t
                    })) : t = "min" == e ? -1 / 0 : 1 / 0,
                    t
                }
                ,
                r.prototype.viewset = function(e, t) {
                    return this.create([t.year, t.month, 1])
                }
                ,
                r.prototype.validate = function(e, i, n) {
                    var a, r, s, l, c = this, d = i, u = n && n.interval ? n.interval : 1, p = -1 === c.item.enable, m = c.item.min, h = c.item.max, f = p && c.item.disable.filter((function(e) {
                        if (t.isArray(e)) {
                            var n = c.create(e).pick;
                            n < i.pick ? a = !0 : n > i.pick && (r = !0)
                        }
                        return o.isInteger(e)
                    }
                    )).length;
                    if ((!n || !n.nav && !n.defaultValue) && (!p && c.disabled(i) || p && c.disabled(i) && (f || a || r) || !p && (i.pick <= m.pick || i.pick >= h.pick)))
                        for (p && !f && (!r && u > 0 || !a && u < 0) && (u *= -1); c.disabled(i) && (Math.abs(u) > 1 && (i.month < d.month || i.month > d.month) && (i = d,
                        u = u > 0 ? 1 : -1),
                        i.pick <= m.pick ? (s = !0,
                        u = 1,
                        i = c.create([m.year, m.month, m.date + (i.pick === m.pick ? 0 : -1)])) : i.pick >= h.pick && (l = !0,
                        u = -1,
                        i = c.create([h.year, h.month, h.date + (i.pick === h.pick ? 0 : 1)])),
                        !s || !l); )
                            i = c.create([i.year, i.month, i.date + u]);
                    return i
                }
                ,
                r.prototype.disabled = function(e) {
                    var i = this
                      , n = i.item.disable.filter((function(n) {
                        return o.isInteger(n) ? e.day === (i.settings.firstDay ? n : n - 1) % 7 : t.isArray(n) || o.isDate(n) ? e.pick === i.create(n).pick : t.isPlainObject(n) ? i.withinRange(n, e) : void 0
                    }
                    ));
                    return n = n.length && !n.filter((function(e) {
                        return t.isArray(e) && "inverted" == e[3] || t.isPlainObject(e) && e.inverted
                    }
                    )).length,
                    -1 === i.item.enable ? !n : n || e.pick < i.item.min.pick || e.pick > i.item.max.pick
                }
                ,
                r.prototype.parse = function(e, t, i) {
                    var n = this
                      , a = {};
                    return t && "string" == typeof t ? (i && i.format || ((i = i || {}).format = n.settings.format),
                    n.formats.toArray(i.format).map((function(e) {
                        var i = n.formats[e]
                          , r = i ? o.trigger(i, n, [t, a]) : e.replace(/^!/, "").length;
                        i && (a[e] = t.substr(0, r)),
                        t = t.substr(r)
                    }
                    )),
                    [a.yyyy || a.yy, +(a.mm || a.m) - 1, a.dd || a.d]) : t
                }
                ,
                r.prototype.formats = function() {
                    function e(e, t, i) {
                        var n = e.match(/[^\x00-\x7F]+|\w+/)[0];
                        return i.mm || i.m || (i.m = t.indexOf(n) + 1),
                        n.length
                    }
                    function t(e) {
                        return e.match(/\w+/)[0].length
                    }
                    return {
                        d: function(e, t) {
                            return e ? o.digits(e) : t.date
                        },
                        dd: function(e, t) {
                            return e ? 2 : o.lead(t.date)
                        },
                        ddd: function(e, i) {
                            return e ? t(e) : this.settings.weekdaysShort[i.day]
                        },
                        dddd: function(e, i) {
                            return e ? t(e) : this.settings.weekdaysFull[i.day]
                        },
                        m: function(e, t) {
                            return e ? o.digits(e) : t.month + 1
                        },
                        mm: function(e, t) {
                            return e ? 2 : o.lead(t.month + 1)
                        },
                        mmm: function(t, i) {
                            var n = this.settings.monthsShort;
                            return t ? e(t, n, i) : n[i.month]
                        },
                        mmmm: function(t, i) {
                            var n = this.settings.monthsFull;
                            return t ? e(t, n, i) : n[i.month]
                        },
                        yy: function(e, t) {
                            return e ? 2 : ("" + t.year).slice(2)
                        },
                        yyyy: function(e, t) {
                            return e ? 4 : t.year
                        },
                        toArray: function(e) {
                            return e.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)
                        },
                        toString: function(e, t) {
                            var i = this;
                            return i.formats.toArray(e).map((function(e) {
                                return o.trigger(i.formats[e], i, [0, t]) || e.replace(/^!/, "")
                            }
                            )).join("")
                        }
                    }
                }(),
                r.prototype.isDateExact = function(e, i) {
                    var n = this;
                    return o.isInteger(e) && o.isInteger(i) || "boolean" == typeof e && "boolean" == typeof i ? e === i : (o.isDate(e) || t.isArray(e)) && (o.isDate(i) || t.isArray(i)) ? n.create(e).pick === n.create(i).pick : !(!t.isPlainObject(e) || !t.isPlainObject(i)) && n.isDateExact(e.from, i.from) && n.isDateExact(e.to, i.to)
                }
                ,
                r.prototype.isDateOverlap = function(e, i) {
                    var n = this
                      , a = n.settings.firstDay ? 1 : 0;
                    return o.isInteger(e) && (o.isDate(i) || t.isArray(i)) ? (e = e % 7 + a) === n.create(i).day + 1 : o.isInteger(i) && (o.isDate(e) || t.isArray(e)) ? (i = i % 7 + a) === n.create(e).day + 1 : !(!t.isPlainObject(e) || !t.isPlainObject(i)) && n.overlapRanges(e, i)
                }
                ,
                r.prototype.flipEnable = function(e) {
                    var t = this.item;
                    t.enable = e || (-1 == t.enable ? 1 : -1)
                }
                ,
                r.prototype.deactivate = function(e, i) {
                    var n = this
                      , a = n.item.disable.slice(0);
                    return "flip" == i ? n.flipEnable() : !1 === i ? (n.flipEnable(1),
                    a = []) : !0 === i ? (n.flipEnable(-1),
                    a = []) : i.map((function(e) {
                        for (var i, r = 0; r < a.length; r += 1)
                            if (n.isDateExact(e, a[r])) {
                                i = !0;
                                break
                            }
                        i || (o.isInteger(e) || o.isDate(e) || t.isArray(e) || t.isPlainObject(e) && e.from && e.to) && a.push(e)
                    }
                    )),
                    a
                }
                ,
                r.prototype.activate = function(e, i) {
                    var n = this
                      , a = n.item.disable
                      , r = a.length;
                    return "flip" == i ? n.flipEnable() : !0 === i ? (n.flipEnable(1),
                    a = []) : !1 === i ? (n.flipEnable(-1),
                    a = []) : i.map((function(e) {
                        var i, s, l, c;
                        for (l = 0; l < r; l += 1) {
                            if (s = a[l],
                            n.isDateExact(s, e)) {
                                i = a[l] = null,
                                c = !0;
                                break
                            }
                            if (n.isDateOverlap(s, e)) {
                                t.isPlainObject(e) ? (e.inverted = !0,
                                i = e) : t.isArray(e) ? (i = e)[3] || i.push("inverted") : o.isDate(e) && (i = [e.getFullYear(), e.getMonth(), e.getDate(), "inverted"]);
                                break
                            }
                        }
                        if (i)
                            for (l = 0; l < r; l += 1)
                                if (n.isDateExact(a[l], e)) {
                                    a[l] = null;
                                    break
                                }
                        if (c)
                            for (l = 0; l < r; l += 1)
                                if (n.isDateOverlap(a[l], e)) {
                                    a[l] = null;
                                    break
                                }
                        i && a.push(i)
                    }
                    )),
                    a.filter((function(e) {
                        return null != e
                    }
                    ))
                }
                ,
                r.prototype.nodes = function(e) {
                    var t, i, r = this, s = r.settings, l = r.item, c = l.now, d = l.select, u = l.highlight, p = l.view, m = l.disable, h = l.min, f = l.max, g = (t = (s.showWeekdaysFull ? s.weekdaysFull : s.weekdaysShort).slice(0),
                    i = s.weekdaysFull.slice(0),
                    s.firstDay && (t.push(t.shift()),
                    i.push(i.shift())),
                    o.node("thead", o.node("tr", o.group({
                        min: 0,
                        max: n - 1,
                        i: 1,
                        node: "th",
                        item: function(e) {
                            return [t[e], s.klass.weekdays, 'scope=col title="' + i[e] + '"']
                        }
                    })))), v = function(e) {
                        return o.node("div", " ", s.klass["nav" + (e ? "Next" : "Prev")] + (e && p.year >= f.year && p.month >= f.month || !e && p.year <= h.year && p.month <= h.month ? " " + s.klass.navDisabled : ""), "data-nav=" + (e || -1) + " " + o.ariaAttr({
                            role: "button",
                            controls: r.$node[0].id + "_table"
                        }) + ' title="' + (e ? s.labelMonthNext : s.labelMonthPrev) + '"')
                    }, b = function() {
                        var t = s.showMonthsShort ? s.monthsShort : s.monthsFull;
                        return s.selectMonths ? o.node("select", o.group({
                            min: 0,
                            max: 11,
                            i: 1,
                            node: "option",
                            item: function(e) {
                                return [t[e], 0, "value=" + e + (p.month == e ? " selected" : "") + (p.year == h.year && e < h.month || p.year == f.year && e > f.month ? " disabled" : "")]
                            }
                        }), s.klass.selectMonth, (e ? "" : "disabled") + " " + o.ariaAttr({
                            controls: r.$node[0].id + "_table"
                        }) + ' title="' + s.labelMonthSelect + '"') : o.node("div", t[p.month], s.klass.month)
                    }, y = function() {
                        var t = p.year
                          , i = !0 === s.selectYears ? 5 : ~~(s.selectYears / 2);
                        if (i) {
                            var n = h.year
                              , a = f.year
                              , l = t - i
                              , c = t + i;
                            if (n > l && (c += n - l,
                            l = n),
                            a < c) {
                                var d = l - n
                                  , u = c - a;
                                l -= d > u ? u : d,
                                c = a
                            }
                            return o.node("select", o.group({
                                min: l,
                                max: c,
                                i: 1,
                                node: "option",
                                item: function(e) {
                                    return [e, 0, "value=" + e + (t == e ? " selected" : "")]
                                }
                            }), s.klass.selectYear, (e ? "" : "disabled") + " " + o.ariaAttr({
                                controls: r.$node[0].id + "_table"
                            }) + ' title="' + s.labelYearSelect + '"')
                        }
                        return o.node("div", t, s.klass.year)
                    };
                    return o.node("div", (s.selectYears ? y() + b() : b() + y()) + v() + v(1), s.klass.header) + o.node("table", g + o.node("tbody", o.group({
                        min: 0,
                        max: a - 1,
                        i: 1,
                        node: "tr",
                        item: function(e) {
                            var t = s.firstDay && 0 === r.create([p.year, p.month, 1]).day ? -7 : 0;
                            return [o.group({
                                min: n * e - p.day + t + 1,
                                max: function() {
                                    return this.min + n - 1
                                },
                                i: 1,
                                node: "td",
                                item: function(e) {
                                    e = r.create([p.year, p.month, e + (s.firstDay ? 1 : 0)]);
                                    var t, i = d && d.pick == e.pick, n = u && u.pick == e.pick, a = m && r.disabled(e) || e.pick < h.pick || e.pick > f.pick, l = o.trigger(r.formats.toString, r, [s.format, e]);
                                    return [o.node("div", e.date, (t = [s.klass.day],
                                    t.push(p.month == e.month ? s.klass.infocus : s.klass.outfocus),
                                    c.pick == e.pick && t.push(s.klass.now),
                                    i && t.push(s.klass.selected),
                                    n && t.push(s.klass.highlighted),
                                    a && t.push(s.klass.disabled),
                                    t.join(" ")), "data-pick=" + e.pick + " " + o.ariaAttr({
                                        role: "gridcell",
                                        label: l,
                                        selected: !(!i || r.$node.val() !== l) || null,
                                        activedescendant: !!n || null,
                                        disabled: !!a || null
                                    })), "", o.ariaAttr({
                                        role: "presentation"
                                    })]
                                }
                            })]
                        }
                    })), s.klass.table, 'id="' + r.$node[0].id + '_table" ' + o.ariaAttr({
                        role: "grid",
                        controls: r.$node[0].id,
                        readonly: !0
                    })) + o.node("div", o.node("button", s.today, s.klass.buttonToday, "type=button data-pick=" + c.pick + (e && !r.disabled(c) ? "" : " disabled") + " " + o.ariaAttr({
                        controls: r.$node[0].id
                    })) + o.node("button", s.clear, s.klass.buttonClear, "type=button data-clear=1" + (e ? "" : " disabled") + " " + o.ariaAttr({
                        controls: r.$node[0].id
                    })) + o.node("button", s.close, s.klass.buttonClose, "type=button data-close=true " + (e ? "" : " disabled") + " " + o.ariaAttr({
                        controls: r.$node[0].id
                    })), s.klass.footer)
                }
                ,
                r.defaults = {
                    labelMonthNext: "Next month",
                    labelMonthPrev: "Previous month",
                    labelMonthSelect: "Select a month",
                    labelYearSelect: "Select a year",
                    monthsFull: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
                    monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                    weekdaysFull: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                    weekdaysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                    today: "Today",
                    clear: "Clear",
                    close: "Close",
                    closeOnSelect: !0,
                    closeOnClear: !0,
                    format: "d mmmm, yyyy",
                    klass: {
                        table: (i = e.klasses().picker + "__") + "table",
                        header: i + "header",
                        navPrev: i + "nav--prev",
                        navNext: i + "nav--next",
                        navDisabled: i + "nav--disabled",
                        month: i + "month",
                        year: i + "year",
                        selectMonth: i + "select--month",
                        selectYear: i + "select--year",
                        weekdays: i + "weekday",
                        day: i + "day",
                        disabled: i + "day--disabled",
                        selected: i + "day--selected",
                        highlighted: i + "day--highlighted",
                        now: i + "day--today",
                        infocus: i + "day--infocus",
                        outfocus: i + "day--outfocus",
                        footer: i + "footer",
                        buttonClear: i + "button--clear",
                        buttonToday: i + "button--today",
                        buttonClose: i + "button--close"
                    }
                },
                e.extend("pickadate", r)
            }
            ) ? n.apply(t, a) : n) || (e.exports = o)
        },
        17653: function(e, t, i) {
            var n, a, o;
            a = [i(19755)],
            n = function(e) {
                var t = e(window)
                  , i = e(document)
                  , n = e(document.documentElement)
                  , a = null != document.documentElement.style.transition;
                function o(t, c, d, p) {
                    if (!t)
                        return o;
                    var m = !1
                      , h = {
                        id: t.id || "P" + Math.abs(~~(Math.random() * new Date))
                    }
                      , f = d ? e.extend(!0, {}, d.defaults, p) : p || {}
                      , g = e.extend({}, o.klasses(), f.klass)
                      , v = e(t)
                      , b = function() {
                        return this.start()
                    }
                      , y = b.prototype = {
                        constructor: b,
                        $node: v,
                        start: function() {
                            return h && h.start ? y : (h.methods = {},
                            h.start = !0,
                            h.open = !1,
                            h.type = t.type,
                            t.autofocus = t == u(),
                            t.readOnly = !f.editable,
                            t.id = t.id || h.id,
                            "text" != t.type && (t.type = "text"),
                            y.component = new d(y,f),
                            y.$root = e('<div class="' + g.picker + '" id="' + t.id + '_root" />'),
                            _(),
                            y.$holder = e(w()).appendTo(y.$root),
                            C(),
                            f.formatSubmit && k(),
                            S(),
                            f.containerHidden ? e(f.containerHidden).append(y._hidden) : v.after(y._hidden),
                            f.container ? e(f.container).append(y.$root) : v.after(y.$root),
                            y.on({
                                start: y.component.onStart,
                                render: y.component.onRender,
                                stop: y.component.onStop,
                                open: y.component.onOpen,
                                close: y.component.onClose,
                                set: y.component.onSet
                            }).on({
                                start: f.onStart,
                                render: f.onRender,
                                stop: f.onStop,
                                open: f.onOpen,
                                close: f.onClose,
                                set: f.onSet
                            }),
                            m = r(y.$holder[0]),
                            t.autofocus && y.open(),
                            y.trigger("start").trigger("render"))
                        },
                        render: function(t) {
                            return t ? (y.$holder = e(w()),
                            C(),
                            y.$root.html(y.$holder)) : y.$root.find("." + g.box).html(y.component.nodes(h.open)),
                            y.trigger("render")
                        },
                        stop: function() {
                            return h.start ? (y.close(),
                            y._hidden && y._hidden.parentNode.removeChild(y._hidden),
                            y.$root.remove(),
                            v.removeClass(g.input).removeData(c),
                            setTimeout((function() {
                                v.off("." + h.id)
                            }
                            ), 0),
                            t.type = h.type,
                            t.readOnly = !1,
                            y.trigger("stop"),
                            h.methods = {},
                            h.start = !1,
                            y) : y
                        },
                        open: function(a) {
                            return h.open ? y : (v.addClass(g.active),
                            l(t, "expanded", !0),
                            setTimeout((function() {
                                y.$root.addClass(g.opened),
                                l(y.$root[0], "hidden", !1)
                            }
                            ), 0),
                            !1 !== a && (h.open = !0,
                            m && n.css("overflow", "hidden").css("padding-right", "+=" + s()),
                            T(),
                            i.on("click." + h.id + " focusin." + h.id, (function(e) {
                                var i = e.target;
                                i != t && i != document && 3 != e.which && y.close(i === y.$holder[0])
                            }
                            )).on("keydown." + h.id, (function(t) {
                                var i = t.keyCode
                                  , n = y.component.key[i]
                                  , a = t.target;
                                27 == i ? y.close(!0) : a != y.$holder[0] || !n && 13 != i ? e.contains(y.$root[0], a) && 13 == i && (t.preventDefault(),
                                a.click()) : (t.preventDefault(),
                                n ? o._.trigger(y.component.key.go, y, [o._.trigger(n)]) : y.$root.find("." + g.highlighted).hasClass(g.disabled) || (y.set("select", y.component.item.highlight),
                                f.closeOnSelect && y.close(!0)))
                            }
                            ))),
                            y.trigger("open"))
                        },
                        close: function(a) {
                            return a && (f.editable ? t.focus() : (y.$holder.off("focus.toOpen").focus(),
                            setTimeout((function() {
                                y.$holder.on("focus.toOpen", x)
                            }
                            ), 0)),
                            ("Microsoft Internet Explorer" == navigator.appName || navigator.userAgent.match(/Trident/) || navigator.userAgent.match(/rv:11/) || void 0 !== e.browser && 1 == e.browser.msie) && (y.$holder.blur(),
                            e(t).off("focus"),
                            e(t).focus(),
                            e(t).select(),
                            setTimeout((function() {
                                v.on("focus." + h.id, (function(e) {
                                    e.preventDefault(),
                                    y.open()
                                }
                                ))
                            }
                            ), 0))),
                            v.removeClass(g.active),
                            l(t, "expanded", !1),
                            setTimeout((function() {
                                y.$root.removeClass(g.opened + " " + g.focused),
                                l(y.$root[0], "hidden", !0)
                            }
                            ), 0),
                            h.open ? (h.open = !1,
                            m && n.css("overflow", "").css("padding-right", "-=" + s()),
                            i.off("." + h.id),
                            y.trigger("close")) : y
                        },
                        clear: function(e) {
                            return y.set("clear", null, e)
                        },
                        set: function(t, i, n) {
                            var a, o, r = e.isPlainObject(t), s = r ? t : {};
                            if (n = r && e.isPlainObject(i) ? i : n || {},
                            t) {
                                for (a in r || (s[t] = i),
                                s)
                                    o = s[a],
                                    a in y.component.item && (void 0 === o && (o = null),
                                    y.component.set(a, o, n)),
                                    "select" != a && "clear" != a || v.val("clear" == a ? "" : y.get(a, f.format)).trigger("change");
                                y.render()
                            }
                            return n.muted ? y : y.trigger("set", s)
                        },
                        get: function(e, i) {
                            if (null != h[e = e || "value"])
                                return h[e];
                            if ("valueSubmit" == e) {
                                if (y._hidden)
                                    return y._hidden.value;
                                e = "value"
                            }
                            if ("value" == e)
                                return t.value;
                            if (e in y.component.item) {
                                if ("string" == typeof i) {
                                    var n = y.component.get(e);
                                    return n ? o._.trigger(y.component.formats.toString, y.component, [i, n]) : ""
                                }
                                return y.component.get(e)
                            }
                        },
                        on: function(t, i, n) {
                            var a, o, r = e.isPlainObject(t), s = r ? t : {};
                            if (t)
                                for (a in r || (s[t] = i),
                                s)
                                    o = s[a],
                                    n && (a = "_" + a),
                                    h.methods[a] = h.methods[a] || [],
                                    h.methods[a].push(o);
                            return y
                        },
                        off: function() {
                            var e, t, i = arguments;
                            for (e = 0,
                            namesCount = i.length; e < namesCount; e += 1)
                                (t = i[e])in h.methods && delete h.methods[t];
                            return y
                        },
                        trigger: function(e, t) {
                            var i = function(e) {
                                var i = h.methods[e];
                                i && i.map((function(e) {
                                    o._.trigger(e, y, [t])
                                }
                                ))
                            };
                            return i("_" + e),
                            i(e),
                            y
                        }
                    };
                    function w() {
                        return o._.node("div", o._.node("div", o._.node("div", o._.node("div", y.component.nodes(h.open), g.box), g.wrap), g.frame), g.holder, 'tabindex="-1"')
                    }
                    function S() {
                        v.data(c, y).addClass(g.input).val(v.data("value") ? y.get("select", f.format) : t.value),
                        f.editable || v.on("focus." + h.id + " click." + h.id, (function(e) {
                            e.preventDefault(),
                            y.open()
                        }
                        )).on("keydown." + h.id, A),
                        l(t, {
                            haspopup: !0,
                            expanded: !1,
                            readonly: !1,
                            owns: t.id + "_root"
                        })
                    }
                    function _() {
                        l(y.$root[0], "hidden", !0)
                    }
                    function C() {
                        y.$holder.on({
                            keydown: A,
                            "focus.toOpen": x,
                            blur: function() {
                                v.removeClass(g.target)
                            },
                            focusin: function(e) {
                                y.$root.removeClass(g.focused),
                                e.stopPropagation()
                            },
                            "mousedown click": function(t) {
                                var i = t.target;
                                i != y.$holder[0] && (t.stopPropagation(),
                                "mousedown" != t.type || e(i).is("input, select, textarea, button, option") || (t.preventDefault(),
                                y.$holder[0].focus()))
                            }
                        }).on("click", "[data-pick], [data-nav], [data-clear], [data-close]", (function() {
                            var t = e(this)
                              , i = t.data()
                              , n = t.hasClass(g.navDisabled) || t.hasClass(g.disabled)
                              , a = u();
                            a = a && (a.type || a.href),
                            (n || a && !e.contains(y.$root[0], a)) && y.$holder[0].focus(),
                            !n && i.nav ? y.set("highlight", y.component.item.highlight, {
                                nav: i.nav
                            }) : !n && "pick"in i ? (y.set("select", i.pick),
                            f.closeOnSelect && y.close(!0)) : i.clear ? (y.clear(),
                            f.closeOnClear && y.close(!0)) : i.close && y.close(!0)
                        }
                        ))
                    }
                    function k() {
                        var i;
                        !0 === f.hiddenName ? (i = t.name,
                        t.name = "") : i = (i = ["string" == typeof f.hiddenPrefix ? f.hiddenPrefix : "", "string" == typeof f.hiddenSuffix ? f.hiddenSuffix : "_submit"])[0] + t.name + i[1],
                        y._hidden = e('<input type=hidden name="' + i + '"' + (v.data("value") || t.value ? ' value="' + y.get("select", f.formatSubmit) + '"' : "") + ">")[0],
                        v.on("change." + h.id, (function() {
                            y._hidden.value = t.value ? y.get("select", f.formatSubmit) : ""
                        }
                        ))
                    }
                    function T() {
                        m && a ? y.$holder.find("." + g.frame).one("transitionend", (function() {
                            y.$holder[0].focus()
                        }
                        )) : a ? y.$holder.one("transitionend", (function() {
                            y.$holder[0].focus()
                        }
                        )) : y.$holder[0].focus()
                    }
                    function x(e) {
                        e.stopPropagation(),
                        v.addClass(g.target),
                        y.$root.addClass(g.focused),
                        y.open()
                    }
                    function A(e) {
                        var t = e.keyCode
                          , i = /^(8|46)$/.test(t);
                        if (27 == t)
                            return y.close(!0),
                            !1;
                        (32 == t || i || !h.open && y.component.key[t]) && (e.preventDefault(),
                        e.stopPropagation(),
                        i ? y.clear().close() : y.open())
                    }
                    return new b
                }
                function r(e) {
                    var t, i = "position";
                    return e.currentStyle ? t = e.currentStyle[i] : window.getComputedStyle && (t = getComputedStyle(e)[i]),
                    "fixed" == t
                }
                function s() {
                    if (n.height() <= t.height())
                        return 0;
                    var i = e('<div style="visibility:hidden;width:100px" />').appendTo("body")
                      , a = i[0].offsetWidth;
                    i.css("overflow", "scroll");
                    var o = e('<div style="width:100%" />').appendTo(i)[0].offsetWidth;
                    return i.remove(),
                    a - o
                }
                function l(t, i, n) {
                    if (e.isPlainObject(i))
                        for (var a in i)
                            c(t, a, i[a]);
                    else
                        c(t, i, n)
                }
                function c(e, t, i) {
                    e.setAttribute(("role" == t ? "" : "aria-") + t, i)
                }
                function d(t, i) {
                    for (var n in e.isPlainObject(t) || (t = {
                        attribute: i
                    }),
                    i = "",
                    t) {
                        var a = ("role" == n ? "" : "aria-") + n;
                        i += null == t[n] ? "" : a + '="' + t[n] + '"'
                    }
                    return i
                }
                function u() {
                    try {
                        return document.activeElement
                    } catch (e) {}
                }
                return o.klasses = function(e) {
                    return {
                        picker: e = e || "picker",
                        opened: e + "--opened",
                        focused: e + "--focused",
                        input: e + "__input",
                        active: e + "__input--active",
                        target: e + "__input--target",
                        holder: e + "__holder",
                        frame: e + "__frame",
                        wrap: e + "__wrap",
                        box: e + "__box"
                    }
                }
                ,
                o._ = {
                    group: function(e) {
                        for (var t, i = "", n = o._.trigger(e.min, e); n <= o._.trigger(e.max, e, [n]); n += e.i)
                            t = o._.trigger(e.item, e, [n]),
                            i += o._.node(e.node, t[0], t[1], t[2]);
                        return i
                    },
                    node: function(t, i, n, a) {
                        return i ? "<" + t + (n = n ? ' class="' + n + '"' : "") + (a = a ? " " + a : "") + ">" + (i = e.isArray(i) ? i.join("") : i) + "</" + t + ">" : ""
                    },
                    lead: function(e) {
                        return (e < 10 ? "0" : "") + e
                    },
                    trigger: function(e, t, i) {
                        return "function" == typeof e ? e.apply(t, i || []) : e
                    },
                    digits: function(e) {
                        return /\d/.test(e[1]) ? 2 : 1
                    },
                    isDate: function(e) {
                        return {}.toString.call(e).indexOf("Date") > -1 && this.isInteger(e.getDate())
                    },
                    isInteger: function(e) {
                        return {}.toString.call(e).indexOf("Number") > -1 && e % 1 == 0
                    },
                    ariaAttr: d
                },
                o.extend = function(t, i) {
                    e.fn[t] = function(n, a) {
                        var r = this.data(t);
                        return "picker" == n ? r : r && "string" == typeof n ? o._.trigger(r[n], r, [a]) : this.each((function() {
                            e(this).data(t) || new o(this,t,i,n)
                        }
                        ))
                    }
                    ,
                    e.fn[t].defaults = i.defaults
                }
                ,
                o
            }
            ,
            void 0 === (o = "function" == typeof n ? n.apply(t, a) : n) || (e.exports = o)
        },
        42004: function() {
            window.PICKADATE_TRANSLATIONS = {
                de: {
                    monthsFull: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
                    monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
                    weekdaysFull: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
                    weekdaysShort: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
                    today: "Heute",
                    clear: "Löschen",
                    close: "Schließen",
                    firstDay: 1,
                    format: "dddd, dd. mmmm yyyy",
                    formatSubmit: "yyyy/mm/dd"
                },
                da: {
                    monthsFull: ["januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december"],
                    monthsShort: ["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
                    weekdaysFull: ["søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"],
                    weekdaysShort: ["søn", "man", "tir", "ons", "tor", "fre", "lør"],
                    today: "i dag",
                    clear: "slet",
                    close: "luk",
                    firstDay: 1,
                    format: "d. mmmm yyyy",
                    formatSubmit: "yyyy/mm/dd"
                },
                en: {
                    firstDay: 1
                },
                fi: {
                    monthsFull: ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"],
                    monthsShort: ["tammi", "helmi", "maalis", "huhti", "touko", "kesä", "heinä", "elo", "syys", "loka", "marras", "joulu"],
                    weekdaysFull: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"],
                    weekdaysShort: ["su", "ma", "ti", "ke", "to", "pe", "la"],
                    today: "tänään",
                    clear: "tyhjennä",
                    firstDay: 1,
                    format: "d.m.yyyy",
                    formatSubmit: "yyyy/mm/dd"
                },
                no: {
                    monthsFull: ["januar", "februar", "mars", "april", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"],
                    monthsShort: ["jan", "feb", "mar", "apr", "mai", "jun", "jul", "aug", "sep", "okt", "nov", "des"],
                    weekdaysFull: ["søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"],
                    weekdaysShort: ["søn", "man", "tir", "ons", "tor", "fre", "lør"],
                    today: "i dag",
                    clear: "nullstill",
                    close: "lukk",
                    firstDay: 1,
                    format: "dd. mmm. yyyy",
                    formatSubmit: "yyyy/mm/dd"
                },
                pl: {
                    monthsFull: ["styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień"],
                    monthsShort: ["sty", "lut", "mar", "kwi", "maj", "cze", "lip", "sie", "wrz", "paź", "lis", "gru"],
                    weekdaysFull: ["niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek", "sobota"],
                    weekdaysShort: ["niedz.", "pn.", "wt.", "śr.", "cz.", "pt.", "sob."],
                    today: "Dzisiaj",
                    clear: "Usuń",
                    close: "Zamknij",
                    firstDay: 1,
                    format: "d mmmm yyyy",
                    formatSubmit: "yyyy/mm/dd"
                },
                ru: {
                    monthsFull: ["января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"],
                    monthsShort: ["янв", "фев", "мар", "апр", "май", "июн", "июл", "авг", "сен", "окт", "ноя", "дек"],
                    weekdaysFull: ["воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"],
                    weekdaysShort: ["вс", "пн", "вт", "ср", "чт", "пт", "сб"],
                    today: "сегодня",
                    clear: "удалить",
                    close: "закрыть",
                    firstDay: 1,
                    format: "d mmmm yyyy г.",
                    formatSubmit: "yyyy/mm/dd"
                },
                sv: {
                    monthsFull: ["januari", "februari", "mars", "april", "maj", "juni", "juli", "augusti", "september", "oktober", "november", "december"],
                    monthsShort: ["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
                    weekdaysFull: ["söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"],
                    weekdaysShort: ["sön", "mån", "tis", "ons", "tor", "fre", "lör"],
                    today: "Idag",
                    clear: "Rensa",
                    close: "Stäng",
                    firstDay: 1,
                    format: "yyyy-mm-dd",
                    formatSubmit: "yyyy/mm/dd",
                    labelMonthNext: "Nästa månad",
                    labelMonthPrev: "Föregående månad",
                    labelMonthSelect: "Välj månad",
                    labelYearSelect: "Välj år"
                }
            }
        }
    }, __webpack_module_cache__ = {}, deferred;
    function __webpack_require__(e) {
        var t = __webpack_module_cache__[e];
        if (void 0 !== t)
            return t.exports;
        var i = __webpack_module_cache__[e] = {
            id: e,
            loaded: !1,
            exports: {}
        };
        return __webpack_modules__[e].call(i.exports, i, i.exports, __webpack_require__),
        i.loaded = !0,
        i.exports
    }
    __webpack_require__.m = __webpack_modules__,
    __webpack_require__.amdO = {},
    deferred = [],
    __webpack_require__.O = function(e, t, i, n) {
        if (!t) {
            var a = 1 / 0;
            for (l = 0; l < deferred.length; l++) {
                t = deferred[l][0],
                i = deferred[l][1],
                n = deferred[l][2];
                for (var o = !0, r = 0; r < t.length; r++)
                    (!1 & n || a >= n) && Object.keys(__webpack_require__.O).every((function(e) {
                        return __webpack_require__.O[e](t[r])
                    }
                    )) ? t.splice(r--, 1) : (o = !1,
                    n < a && (a = n));
                if (o) {
                    deferred.splice(l--, 1);
                    var s = i();
                    void 0 !== s && (e = s)
                }
            }
            return e
        }
        n = n || 0;
        for (var l = deferred.length; l > 0 && deferred[l - 1][2] > n; l--)
            deferred[l] = deferred[l - 1];
        deferred[l] = [t, i, n]
    }
    ,
    __webpack_require__.n = function(e) {
        var t = e && e.__esModule ? function() {
            return e.default
        }
        : function() {
            return e
        }
        ;
        return __webpack_require__.d(t, {
            a: t
        }),
        t
    }
    ,
    __webpack_require__.d = function(e, t) {
        for (var i in t)
            __webpack_require__.o(t, i) && !__webpack_require__.o(e, i) && Object.defineProperty(e, i, {
                enumerable: !0,
                get: t[i]
            })
    }
    ,
    __webpack_require__.g = function() {
        if ("object" == typeof globalThis)
            return globalThis;
        try {
            return this || new Function("return this")()
        } catch (e) {
            if ("object" == typeof window)
                return window
        }
    }(),
    __webpack_require__.o = function(e, t) {
        return Object.prototype.hasOwnProperty.call(e, t)
    }
    ,
    __webpack_require__.r = function(e) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
            value: "Module"
        }),
        Object.defineProperty(e, "__esModule", {
            value: !0
        })
    }
    ,
    __webpack_require__.nmd = function(e) {
        return e.paths = [],
        e.children || (e.children = []),
        e
    }
    ,
    function() {
        var e = {
            47: 0
        };
        __webpack_require__.O.j = function(t) {
            return 0 === e[t]
        }
        ;
        var t = function(t, i) {
            var n, a, o = i[0], r = i[1], s = i[2], l = 0;
            if (o.some((function(t) {
                return 0 !== e[t]
            }
            ))) {
                for (n in r)
                    __webpack_require__.o(r, n) && (__webpack_require__.m[n] = r[n]);
                if (s)
                    var c = s(__webpack_require__)
            }
            for (t && t(i); l < o.length; l++)
                a = o[l],
                __webpack_require__.o(e, a) && e[a] && e[a][0](),
                e[o[l]] = 0;
            return __webpack_require__.O(c)
        }
          , i = self.webpackChunkxena_static = self.webpackChunkxena_static || [];
        i.forEach(t.bind(null, 0)),
        i.push = t.bind(null, i.push.bind(i))
    }();
    var __webpack_exports__ = __webpack_require__.O(void 0, [498], (function() {
        return __webpack_require__(27927)
    }
    ));
    __webpack_exports__ = __webpack_require__.O(__webpack_exports__)
}
)();
