PageSourceSearch

https://onetower.com.tw/assets/js/fancybox/jquery.fancybox.min.js

js onetower.com.tw collected 2026-10-07 22:20:41 UTC 103,043 bytes, 1,550 lines download raw bytes

vendor: 103,043 bytes, lines 1-1550
1// ==================================================
2// fancyBox v3.5.7
3//
4// Licensed GPLv3 for open source use
5// or fancyBox Commercial License for commercial use
6//
7// http://fancyapps.com/fancybox/
8// Copyright 2019 fancyApps
9//
10// ==================================================
11! function (t, e, n, o) {
12    "use strict";
13
14    function i(t, e) {
15        var o, i, a, s = [],
16            r = 0;
17        t && t.isDefaultPrevented() || (t.preventDefault(), e = e || {}, t && t.data && (e = h(t.data.options, e)), o = e.$target || n(t.currentTarget).trigger("blur"), (a = n.fancybox.getInstance()) && a.$trigger && a.$trigger.is(o) || (e.selector ? s = n(e.selector) : (i = o.attr("data-fancybox") || "", i ? (s = t.data ? t.data.items : [], s = s.length ? s.filter('[data-fancybox="' + i + '"]') : n('[data-fancybox="' + i + '"]')) : s = [o]), r = n(s).index(o), r < 0 && (r = 0), a = n.fancybox.open(s, e, r), a.$trigger = o))
18    }
19    if (t.console = t.console || {
20            info: function (t) {}
21        }, n) {
22        if (n.fn.fancybox) return void console.info("fancyBox already initialized");
23        var a = {
24                closeExisting: !1,
25                loop: !1,
26                gutter: 50,
27                keyboard: !0,
28                preventCaptionOverlap: !0,
29                arrows: !0,
30                infobar: !0,
31                smallBtn: "auto",
32                toolbar: "auto",
33                buttons: ["zoom", "slideShow", "thumbs", "close"],
34                idleTime: 3,
35                protect: !1,
36                modal: !1,
37                image: {
38                    preload: !1
39                },
40                ajax: {
41                    settings: {
42                        data: {
43                            fancybox: !0
44                        }
45                    }
46                },
47                iframe: {
48                    tpl: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen="allowfullscreen" allow="autoplay; fullscreen" src=""></iframe>',
49                    preload: !0,
50                    css: {},
51                    attr: {
52                        scrolling: "auto"
53                    }
54                },
55                video: {
56                    tpl: '<video class="fancybox-video" controls controlsList="nodownload" poster="{{poster}}"><source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos, <a href="{{src}}">download</a> and watch with your favorite video player!</video>',
57                    format: "",
58                    autoStart: !0
59                },
60                defaultType: "image",
61                animationEffect: "zoom",
62                animationDuration: 366,
63                zoomOpacity: "auto",
64                transitionEffect: "fade",
65                transitionDuration: 366,
66                slideClass: "",
67                baseClass: "",
68                baseTpl: '<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"></div><div class="fancybox-inner"><div class="fancybox-infobar"><span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span></div><div class="fancybox-toolbar">{{buttons}}</div><div class="fancybox-navigation">{{arrows}}</div><div class="fancybox-stage"></div><div class="fancybox-caption"><div class="fancybox-caption__body"></div></div></div></div>',
69                spinnerTpl: '<div class="fancybox-loading"></div>',
70                errorTpl: '<div class="fancybox-error"><p>{{ERROR}}</p></div>',
71                btnTpl: {
72                    download: '<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z"/></svg></a>',
73                    zoom: '<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z"/></svg></button>',
74                    close: '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z"/></svg></button>',
75                    arrowLeft: '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z"/></svg></div></button>',
76                    arrowRight: '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z"/></svg></div></button>',
77                    smallBtn: '<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"/></svg></button>'
78                },
79                parentEl: "body",
80                hideScrollbar: !0,
81                autoFocus: !0,
82                backFocus: !0,
83                trapFocus: !0,
84                fullScreen: {
85                    autoStart: !1
86                },
87                touch: {
88                    vertical: !0,
89                    momentum: !0
90                },
91                hash: null,
92                media: {},
93                slideShow: {
94                    autoStart: !1,
95                    speed: 3e3
96                },
97                thumbs: {
98                    autoStart: !1,
99                    hideOnClose: !0,
100                    parentEl: ".fancybox-container",
101                    axis: "y"
102                },
103                wheel: "auto",
104                onInit: n.noop,
105                beforeLoad: n.noop,
106                afterLoad: n.noop,
107                beforeShow: n.noop,
108                afterShow: n.noop,
109                beforeClose: n.noop,
110                afterClose: n.noop,
111                onActivate: n.noop,
112                onDeactivate: n.noop,
113                clickContent: function (t, e) {
114                    return "image" === t.type && "zoom"
115                },
116                clickSlide: "close",
117                clickOutside: "close",
118                dblclickContent: !1,
119                dblclickSlide: !1,
120                dblclickOutside: !1,
121                mobile: {
122                    preventCaptionOverlap: !1,
123                    idleTime: !1,
124                    clickContent: function (t, e) {
125                        return "image" === t.type && "toggleControls"
126                    },
127                    clickSlide: function (t, e) {
128                        return "image" === t.type ? "toggleControls" : "close"
129                    },
130                    dblclickContent: function (t, e) {
131                        return "image" === t.type && "zoom"
132                    },
133                    dblclickSlide: function (t, e) {
134                        return "image" === t.type && "zoom"
135                    }
136                },
137                lang: "zh",
138                i18n: {
139                    en: {
140                        CLOSE: "Close",
141                        NEXT: "Next",
142                        PREV: "Previous",
143                        ERROR: "The requested content cannot be loaded. <br/> Please try again later.",
144                        PLAY_START: "Start slideshow",
145                        PLAY_STOP: "Pause slideshow",
146                        FULL_SCREEN: "Full screen",
147                        THUMBS: "Thumbnails",
148                        DOWNLOAD: "Download",
149                        SHARE: "Share",
150                        ZOOM: "Zoom"
151                    },
152                    de: {
153                        CLOSE: "Schlie&szlig;en",
154                        NEXT: "Weiter",
155                        PREV: "Zur&uuml;ck",
156                        ERROR: "Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es sp&auml;ter nochmal.",
157                        PLAY_START: "Diaschau starten",
158                        PLAY_STOP: "Diaschau beenden",
159                        FULL_SCREEN: "Vollbild",
160                        THUMBS: "Vorschaubilder",
161                        DOWNLOAD: "Herunterladen",
162                        SHARE: "Teilen",
163                        ZOOM: "Vergr&ouml;&szlig;ern"
164                    },
165                    zh: {
166                        CLOSE: "關閉",
167                        NEXT: "下一個",
168                        PREV: "上一個",
169                        ERROR: "無法加載請求的內容。<br/>請稍後再試。",
170                        PLAY_START: "開始幻燈片放映",
171                        PLAY_STOP: "暫停幻燈片",
172                        FULL_SCREEN: "全畫面",
173                        THUMBS: "縮小圖",
174                        DOWNLOAD: "下載",
175                        SHARE: "分享",
176                        ZOOM: "放大"
177                    }
178                }
179            },
180            s = n(t),
181            r = n(e),
182            c = 0,
183            l = function (t) {
184                return t && t.hasOwnProperty && t instanceof n
185            },
186            d = function () {
187                return t.requestAnimationFrame || t.webkitRequestAnimationFrame || t.mozRequestAnimationFrame || t.oRequestAnimationFrame || function (e) {
188                    return t.setTimeout(e, 1e3 / 60)
189                }
190            }(),
191            u = function () {
192                return t.cancelAnimationFrame || t.webkitCancelAnimationFrame || t.mozCancelAnimationFrame || t.oCancelAnimationFrame || function (e) {
193                    t.clearTimeout(e)
194                }
195            }(),
196            f = function () {
197                var t, n = e.createElement("fakeelement"),
198                    o = {
199                        transition: "transitionend",
200                        OTransition: "oTransitionEnd",
201                        MozTransition: "transitionend",
202                        WebkitTransition: "webkitTransitionEnd"
203                    };
204                for (t in o)
205                    if (void 0 !== n.style[t]) return o[t];
206                return "transitionend"
207            }(),
208            p = function (t) {
209                return t && t.length && t[0].offsetHeight
210            },
211            h = function (t, e) {
212                var o = n.extend(!0, {}, t, e);
213                return n.each(e, function (t, e) {
214                    n.isArray(e) && (o[t] = e)
215                }), o
216            },
217            g = function (t) {
218                var o, i;
219                return !(!t || t.ownerDocument !== e) && (n(".fancybox-container").css("pointer-events", "none"), o = {
220                    x: t.getBoundingClientRect().left + t.offsetWidth / 2,
221                    y: t.getBoundingClientRect().top + t.offsetHeight / 2
222                }, i = e.elementFromPoint(o.x, o.y) === t, n(".fancybox-container").css("pointer-events", ""), i)
223            },
224            b = function (t, e, o) {
225                var i = this;
226                i.opts = h({
227                    index: o
228                }, n.fancybox.defaults), n.isPlainObject(e) && (i.opts = h(i.opts, e)), n.fancybox.isMobile && (i.opts = h(i.opts, i.opts.mobile)), i.id = i.opts.id || ++c, i.currIndex = parseInt(i.opts.index, 10) || 0, i.prevIndex = null, i.prevPos = null, i.currPos = 0, i.firstRun = !0, i.group = [], i.slides = {}, i.addContent(t), i.group.length && i.init()
229            };
230        n.extend(b.prototype, {
231                init: function () {
232                    var o, i, a = this,
233                        s = a.group[a.currIndex],
234                        r = s.opts;
235                    r.closeExisting && n.fancybox.close(!0), n("body").addClass("fancybox-active"), !n.fancybox.getInstance() && !1 !== r.hideScrollbar && !n.fancybox.isMobile && e.body.scrollHeight > t.innerHeight && (n("head").append('<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:' + (t.innerWidth - e.documentElement.clientWidth) + "px;}</style>"), n("body").addClass("compensate-for-scrollbar")), i = "", n.each(r.buttons, function (t, e) {
236                        i += r.btnTpl[e] || ""
237                    }), o = n(a.translate(a, r.baseTpl.replace("{{buttons}}", i).replace("{{arrows}}", r.btnTpl.arrowLeft + r.btnTpl.arrowRight))).attr("id", "fancybox-container-" + a.id).addClass(r.baseClass).data("FancyBox", a).appendTo(r.parentEl), a.$refs = {
238                        container: o
239                    }, ["bg", "inner", "infobar", "toolbar", "stage", "caption", "navigation"].forEach(function (t) {
240                        a.$refs[t] = o.find(".fancybox-" + t)
241                    }), a.trigger("onInit"), a.activate(), a.jumpTo(a.currIndex)
242                },
243                translate: function (t, e) {
244                    var n = t.opts.i18n[t.opts.lang] || t.opts.i18n.en;
245                    return e.replace(/\{\{(\w+)\}\}/g, function (t, e) {
246                        return void 0 === n[e] ? t : n[e]
247                    })
248                },
249                addContent: function (t) {
250                    var e, o = this,
251                        i = n.makeArray(t);
252                    n.each(i, function (t, e) {
253                        var i, a, s, r, c, l = {},
254                            d = {};
255                        n.isPlainObject(e) ? (l = e, d = e.opts || e) : "object" === n.type(e) && n(e).length ? (i = n(e), d = i.data() || {}, d = n.extend(!0, {}, d, d.options), d.$orig = i, l.src = o.opts.src || d.src || i.attr("href"), l.type || l.src || (l.type = "inline", l.src = e)) : l = {
256                            type: "html",
257                            src: e + ""
258                        }, l.opts = n.extend(!0, {}, o.opts, d), n.isArray(d.buttons) && (l.opts.buttons = d.buttons), n.fancybox.isMobile && l.opts.mobile && (l.opts = h(l.opts, l.opts.mobile)), a = l.type || l.opts.type, r = l.src || "", !a && r && ((s = r.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i)) ? (a = "video", l.opts.video.format || (l.opts.video.format = "video/" + ("ogv" === s[1] ? "ogg" : s[1]))) : r.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i) ? a = "image" : r.match(/\.(pdf)((\?|#).*)?$/i) ? (a = "iframe", l = n.extend(!0, l, {
259                            contentType: "pdf",
260                            opts: {
261                                iframe: {
262                                    preload: !1
263                                }
264                            }
265                        })) : "#" === r.charAt(0) && (a = "inline")), a ? l.type = a : o.trigger("objectNeedsType", l), l.contentType || (l.contentType = n.inArray(l.type, ["html", "inline", "ajax"]) > -1 ? "html" : l.type), l.index = o.group.length, "auto" == l.opts.smallBtn && (l.opts.smallBtn = n.inArray(l.type, ["html", "inline", "ajax"]) > -1), "auto" === l.opts.toolbar && (l.opts.toolbar = !l.opts.smallBtn), l.$thumb = l.opts.$thumb || null, l.opts.$trigger && l.index === o.opts.index && (l.$thumb = l.opts.$trigger.find("img:first"), l.$thumb.length && (l.opts.$orig = l.opts.$trigger)), l.$thumb && l.$thumb.length || !l.opts.$orig || (l.$thumb = l.opts.$orig.find("img:first")), l.$thumb && !l.$thumb.length && (l.$thumb = null), l.thumb = l.opts.thumb || (l.$thumb ? l.$thumb[0].src : null), "function" === n.type(l.opts.caption) && (l.opts.caption = l.opts.caption.apply(e, [o, l])), "function" === n.type(o.opts.caption) && (l.opts.caption = o.opts.caption.apply(e, [o, l])), l.opts.caption instanceof n || (l.opts.caption = void 0 === l.opts.caption ? "" : l.opts.caption + ""), "ajax" === l.type && (c = r.split(/\s+/, 2), c.length > 1 && (l.src = c.shift(), l.opts.filter = c.shift())), l.opts.modal && (l.opts = n.extend(!0, l.opts, {
266                            trapFocus: !0,
267                            infobar: 0,
268                            toolbar: 0,
269                            smallBtn: 0,
270                            keyboard: 0,
271                            slideShow: 0,
272                            fullScreen: 0,
273                            thumbs: 0,
274                            touch: 0,
275                            clickContent: !1,
276                            clickSlide: !1,
277                            clickOutside: !1,
278                            dblclickContent: !1,
279                            dblclickSlide: !1,
280                            dblclickOutside: !1
281                        })), o.group.push(l)
282                    }), Object.keys(o.slides).length && (o.updateControls(), (e = o.Thumbs) && e.isActive && (e.create(), e.focus()))
283                },
284                addEvents: function () {
285                    var e = this;
286                    e.removeEvents(), e.$refs.container.on("click.fb-close", "[data-fancybox-close]", function (t) {
287                        t.stopPropagation(), t.preventDefault(), e.close(t)
288                    }).on("touchstart.fb-prev click.fb-prev", "[data-fancybox-prev]", function (t) {
289                        t.stopPropagation(), t.preventDefault(), e.previous()
290                    }).on("touchstart.fb-next click.fb-next", "[data-fancybox-next]", function (t) {
291                        t.stopPropagation(), t.preventDefault(), e.next()
292                    }).on("click.fb", "[data-fancybox-zoom]", function (t) {
293                        e[e.isScaledDown() ? "scaleToActual" : "scaleToFit"]()
294                    }), s.on("orientationchange.fb resize.fb", function (t) {
295                        t && t.originalEvent && "resize" === t.originalEvent.type ? (e.requestId && u(e.requestId), e.requestId = d(function () {
296                            e.update(t)
297                        })) : (e.current && "iframe" === e.current.type && e.$refs.stage.hide(), setTimeout(function () {
298                            e.$refs.stage.show(), e.update(t)
299                        }, n.fancybox.isMobile ? 600 : 250))
300                    }), r.on("keydown.fb", function (t) {
301                        var o = n.fancybox ? n.fancybox.getInstance() : null,
302                            i = o.current,
303                            a = t.keyCode || t.which;
304                        if (9 == a) return void(i.opts.trapFocus && e.focus(t));
305                        if (!(!i.opts.keyboard || t.ctrlKey || t.altKey || t.shiftKey || n(t.target).is("input,textarea,video,audio,select"))) return 8 === a || 27 === a ? (t.preventDefault(), void e.close(t)) : 37 === a || 38 === a ? (t.preventDefault(), void e.previous()) : 39 === a || 40 === a ? (t.preventDefault(), void e.next()) : void e.trigger("afterKeydown", t, a)
306                    }), e.group[e.currIndex].opts.idleTime && (e.idleSecondsCounter = 0, r.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle", function (t) {
307                        e.idleSecondsCounter = 0, e.isIdle && e.showControls(), e.isIdle = !1
308                    }), e.idleInterval = t.setInterval(function () {
309                        ++e.idleSecondsCounter >= e.group[e.currIndex].opts.idleTime && !e.isDragging && (e.isIdle = !0, e.idleSecondsCounter = 0, e.hideControls())
310                    }, 1e3))
311                },
312                removeEvents: function () {
313                    var e = this;
314                    s.off("orientationchange.fb resize.fb"), r.off("keydown.fb .fb-idle"), this.$refs.container.off(".fb-close .fb-prev .fb-next"), e.idleInterval && (t.clearInterval(e.idleInterval), e.idleInterval = null)
315                },
316                previous: function (t) {
317                    return this.jumpTo(this.currPos - 1, t)
318                },
319                next: function (t) {
320                    return this.jumpTo(this.currPos + 1, t)
321                },
322                jumpTo: function (t, e) {
323                    var o, i, a, s, r, c, l, d, u, f = this,
324                        h = f.group.length;
325                    if (!(f.isDragging || f.isClosing || f.isAnimating && f.firstRun)) {
326                        if (t = parseInt(t, 10), !(a = f.current ? f.current.opts.loop : f.opts.loop) && (t < 0 || t >= h)) return !1;
327                        if (o = f.firstRun = !Object.keys(f.slides).length, r = f.current, f.prevIndex = f.currIndex, f.prevPos = f.currPos, s = f.createSlide(t), h > 1 && ((a || s.index < h - 1) && f.createSlide(t + 1), (a || s.index > 0) && f.createSlide(t - 1)), f.current = s, f.currIndex = s.index, f.currPos = s.pos, f.trigger("beforeShow", o), f.updateControls(), s.forcedDuration = void 0, n.isNumeric(e) ? s.forcedDuration = e : e = s.opts[o ? "animationDuration" : "transitionDuration"], e = parseInt(e, 10), i = f.isMoved(s), s.$slide.addClass("fancybox-slide--current"), o) return s.opts.animationEffect && e && f.$refs.container.css("transition-duration", e + "ms"), f.$refs.container.addClass("fancybox-is-open").trigger("focus"), f.loadSlide(s), void f.preload("image");
328                        c = n.fancybox.getTranslate(r.$slide), l = n.fancybox.getTranslate(f.$refs.stage), n.each(f.slides, function (t, e) {
329                            n.fancybox.stop(e.$slide, !0)
330                        }), r.pos !== s.pos && (r.isComplete = !1), r.$slide.removeClass("fancybox-slide--complete fancybox-slide--current"), i ? (u = c.left - (r.pos * c.width + r.pos * r.opts.gutter), n.each(f.slides, function (t, o) {
331                            o.$slide.removeClass("fancybox-animated").removeClass(function (t, e) {
332                                return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ")
333                            });
334                            var i = o.pos * c.width + o.pos * o.opts.gutter;
335                            n.fancybox.setTranslate(o.$slide, {
336                                top: 0,
337                                left: i - l.left + u
338                            }), o.pos !== s.pos && o.$slide.addClass("fancybox-slide--" + (o.pos > s.pos ? "next" : "previous")), p(o.$slide), n.fancybox.animate(o.$slide, {
339                                top: 0,
340                                left: (o.pos - s.pos) * c.width + (o.pos - s.pos) * o.opts.gutter
341                            }, e, function () {
342                                o.$slide.css({
343                                    transform: "",
344                                    opacity: ""
345                                }).removeClass("fancybox-slide--next fancybox-slide--previous"), o.pos === f.currPos && f.complete()
346                            })
347                        })) : e && s.opts.transitionEffect && (d = "fancybox-animated fancybox-fx-" + s.opts.transitionEffect, r.$slide.addClass("fancybox-slide--" + (r.pos > s.pos ? "next" : "previous")), n.fancybox.animate(r.$slide, d, e, function () {
348                            r.$slide.removeClass(d).removeClass("fancybox-slide--next fancybox-slide--previous")
349                        }, !1)), s.isLoaded ? f.revealContent(s) : f.loadSlide(s), f.preload("image")
350                    }
351                },
352                createSlide: function (t) {
353                    var e, o, i = this;
354                    return o = t % i.group.length, o = o < 0 ? i.group.length + o : o, !i.slides[t] && i.group[o] && (e = n('<div class="fancybox-slide"></div>').appendTo(i.$refs.stage), i.slides[t] = n.extend(!0, {}, i.group[o], {
355                        pos: t,
356                        $slide: e,
357                        isLoaded: !1
358                    }), i.updateSlide(i.slides[t])), i.slides[t]
359                },
360                scaleToActual: function (t, e, o) {
361                    var i, a, s, r, c, l = this,
362                        d = l.current,
363                        u = d.$content,
364                        f = n.fancybox.getTranslate(d.$slide).width,
365                        p = n.fancybox.getTranslate(d.$slide).height,
366                        h = d.width,
367                        g = d.height;
368                    l.isAnimating || l.isMoved() || !u || "image" != d.type || !d.isLoaded || d.hasError || (l.isAnimating = !0, n.fancybox.stop(u), t = void 0 === t ? .5 * f : t, e = void 0 === e ? .5 * p : e, i = n.fancybox.getTranslate(u), i.top -= n.fancybox.getTranslate(d.$slide).top, i.left -= n.fancybox.getTranslate(d.$slide).left, r = h / i.width, c = g / i.height, a = .5 * f - .5 * h, s = .5 * p - .5 * g, h > f && (a = i.left * r - (t * r - t), a > 0 && (a = 0), a < f - h && (a = f - h)), g > p && (s = i.top * c - (e * c - e), s > 0 && (s = 0), s < p - g && (s = p - g)), l.updateCursor(h, g), n.fancybox.animate(u, {
369                        top: s,
370                        left: a,
371                        scaleX: r,
372                        scaleY: c
373                    }, o || 366, function () {
374                        l.isAnimating = !1
375                    }), l.SlideShow && l.SlideShow.isActive && l.SlideShow.stop())
376                },
377                scaleToFit: function (t) {
378                    var e, o = this,
379                        i = o.current,
380                        a = i.$content;
381                    o.isAnimating || o.isMoved() || !a || "image" != i.type || !i.isLoaded || i.hasError || (o.isAnimating = !0, n.fancybox.stop(a), e = o.getFitPos(i), o.updateCursor(e.width, e.height), n.fancybox.animate(a, {
382                        top: e.top,
383                        left: e.left,
384                        scaleX: e.width / a.width(),
385                        scaleY: e.height / a.height()
386                    }, t || 366, function () {
387                        o.isAnimating = !1
388                    }))
389                },
390                getFitPos: function (t) {
391                    var e, o, i, a, s = this,
392                        r = t.$content,
393                        c = t.$slide,
394                        l = t.width || t.opts.width,
395                        d = t.height || t.opts.height,
396                        u = {};
397                    return !!(t.isLoaded && r && r.length) && (e = n.fancybox.getTranslate(s.$refs.stage).width, o = n.fancybox.getTranslate(s.$refs.stage).height, e -= parseFloat(c.css("paddingLeft")) + parseFloat(c.css("paddingRight")) + parseFloat(r.css("marginLeft")) + parseFloat(r.css("marginRight")), o -= parseFloat(c.css("paddingTop")) + parseFloat(c.css("paddingBottom")) + parseFloat(r.css("marginTop")) + parseFloat(r.css("marginBottom")), l && d || (l = e, d = o), i = Math.min(1, e / l, o / d), l *= i, d *= i, l > e - .5 && (l = e), d > o - .5 && (d = o), "image" === t.type ? (u.top = Math.floor(.5 * (o - d)) + parseFloat(c.css("paddingTop")), u.left = Math.floor(.5 * (e - l)) + parseFloat(c.css("paddingLeft"))) : "video" === t.contentType && (a = t.opts.width && t.opts.height ? l / d : t.opts.ratio || 16 / 9, d > l / a ? d = l / a : l > d * a && (l = d * a)), u.width = l, u.height = d, u)
398                },
399                update: function (t) {
400                    var e = this;
401                    n.each(e.slides, function (n, o) {
402                        e.updateSlide(o, t)
403                    })
404                },
405                updateSlide: function (t, e) {
406                    var o = this,
407                        i = t && t.$content,
408                        a = t.width || t.opts.width,
409                        s = t.height || t.opts.height,
410                        r = t.$slide;
411                    o.adjustCaption(t), i && (a || s || "video" === t.contentType) && !t.hasError && (n.fancybox.stop(i), n.fancybox.setTranslate(i, o.getFitPos(t)), t.pos === o.currPos && (o.isAnimating = !1, o.updateCursor())), o.adjustLayout(t), r.length && (r.trigger("refresh"), t.pos === o.currPos && o.$refs.toolbar.add(o.$refs.navigation.find(".fancybox-button--arrow_right")).toggleClass("compensate-for-scrollbar", r.get(0).scrollHeight > r.get(0).clientHeight)), o.trigger("onUpdate", t, e)
412                },
413                centerSlide: function (t) {
414                    var e = this,
415                        o = e.current,
416                        i = o.$slide;
417                    !e.isClosing && o && (i.siblings().css({
418                        transform: "",
419                        opacity: ""
420                    }), i.parent().children().removeClass("fancybox-slide--previous fancybox-slide--next"), n.fancybox.animate(i, {
421                        top: 0,
422                        left: 0,
423                        opacity: 1
424                    }, void 0 === t ? 0 : t, function () {
425                        i.css({
426                            transform: "",
427                            opacity: ""
428                        }), o.isComplete || e.complete()
429                    }, !1))
430                },
431                isMoved: function (t) {
432                    var e, o, i = t || this.current;
433                    return !!i && (o = n.fancybox.getTranslate(this.$refs.stage), e = n.fancybox.getTranslate(i.$slide), !i.$slide.hasClass("fancybox-animated") && (Math.abs(e.top - o.top) > .5 || Math.abs(e.left - o.left) > .5))
434                },
435                updateCursor: function (t, e) {
436                    var o, i, a = this,
437                        s = a.current,
438                        r = a.$refs.container;
439                    s && !a.isClosing && a.Guestures && (r.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"), o = a.canPan(t, e), i = !!o || a.isZoomable(), r.toggleClass("fancybox-is-zoomable", i), n("[data-fancybox-zoom]").prop("disabled", !i), o ? r.addClass("fancybox-can-pan") : i && ("zoom" === s.opts.clickContent || n.isFunction(s.opts.clickContent) && "zoom" == s.opts.clickContent(s)) ? r.addClass("fancybox-can-zoomIn") : s.opts.touch && (s.opts.touch.vertical || a.group.length > 1) && "video" !== s.contentType && r.addClass("fancybox-can-swipe"))
440                },
441                isZoomable: function () {
442                    var t, e = this,
443                        n = e.current;
444                    if (n && !e.isClosing && "image" === n.type && !n.hasError) {
445                        if (!n.isLoaded) return !0;
446                        if ((t = e.getFitPos(n)) && (n.width > t.width || n.height > t.height)) return !0
447                    }
448                    return !1
449                },
450                isScaledDown: function (t, e) {
451                    var o = this,
452                        i = !1,
453                        a = o.current,
454                        s = a.$content;
455                    return void 0 !== t && void 0 !== e ? i = t < a.width && e < a.height : s && (i = n.fancybox.getTranslate(s), i = i.width < a.width && i.height < a.height), i
456                },
457                canPan: function (t, e) {
458                    var o = this,
459                        i = o.current,
460                        a = null,
461                        s = !1;
462                    return "image" === i.type && (i.isComplete || t && e) && !i.hasError && (s = o.getFitPos(i), void 0 !== t && void 0 !== e ? a = {
463                        width: t,
464                        height: e
465                    } : i.isComplete && (a = n.fancybox.getTranslate(i.$content)), a && s && (s = Math.abs(a.width - s.width) > 1.5 || Math.abs(a.height - s.height) > 1.5)), s
466                },
467                loadSlide: function (t) {
468                    var e, o, i, a = this;
469                    if (!t.isLoading && !t.isLoaded) {
470                        if (t.isLoading = !0, !1 === a.trigger("beforeLoad", t)) return t.isLoading = !1, !1;
471                        switch (e = t.type, o = t.$slide, o.off("refresh").trigger("onReset").addClass(t.opts.slideClass), e) {
472                            case "image":
473                                a.setImage(t);
474                                break;
475                            case "iframe":
476                                a.setIframe(t);
477                                break;
478                            case "html":
479                                a.setContent(t, t.src || t.content);
480                                break;
481                            case "video":
482                                a.setContent(t, t.opts.video.tpl.replace(/\{\{src\}\}/gi, t.src).replace("{{format}}", t.opts.videoFormat || t.opts.video.format || "").replace("{{poster}}", t.thumb || ""));
483                                break;
484                            case "inline":
485                                n(t.src).length ? a.setContent(t, n(t.src)) : a.setError(t);
486                                break;
487                            case "ajax":
488                                a.showLoading(t), i = n.ajax(n.extend({}, t.opts.ajax.settings, {
489                                    url: t.src,
490                                    success: function (e, n) {
491                                        "success" === n && a.setContent(t, e)
492                                    },
493                                    error: function (e, n) {
494                                        e && "abort" !== n && a.setError(t)
495                                    }
496                                })), o.one("onReset", function () {
497                                    i.abort()
498                                });
499                                break;
500                            default:
501                                a.setError(t)
502                        }
503                        return !0
504                    }
505                },
506                setImage: function (t) {
507                    var o, i = this;
508                    setTimeout(function () {
509                        var e = t.$image;
510                        i.isClosing || !t.isLoading || e && e.length && e[0].complete || t.hasError || i.showLoading(t)
511                    }, 50), i.checkSrcset(t), t.$content = n('<div class="fancybox-content"></div>').addClass("fancybox-is-hidden").appendTo(t.$slide.addClass("fancybox-slide--image")), !1 !== t.opts.preload && t.opts.width && t.opts.height && t.thumb && (t.width = t.opts.width, t.height = t.opts.height, o = e.createElement("img"), o.onerror = function () {
512                        n(this).remove(), t.$ghost = null
513                    }, o.onload = function () {
514                        i.afterLoad(t)
515                    }, t.$ghost = n(o).addClass("fancybox-image").appendTo(t.$content).attr("src", t.thumb)), i.setBigImage(t)
516                },
517                checkSrcset: function (e) {
518                    var n, o, i, a, s = e.opts.srcset || e.opts.image.srcset;
519                    if (s) {
520                        i = t.devicePixelRatio || 1, a = t.innerWidth * i, o = s.split(",").map(function (t) {
521                            var e = {};
522                            return t.trim().split(/\s+/).forEach(function (t, n) {
523                                var o = parseInt(t.substring(0, t.length - 1), 10);
524                                if (0 === n) return e.url = t;
525                                o && (e.value = o, e.postfix = t[t.length - 1])
526                            }), e
527                        }), o.sort(function (t, e) {
528                            return t.value - e.value
529                        });
530                        for (var r = 0; r < o.length; r++) {
531                            var c = o[r];
532                            if ("w" === c.postfix && c.value >= a || "x" === c.postfix && c.value >= i) {
533                                n = c;
534                                break
535                            }
536                        }!n && o.length && (n = o[o.length - 1]), n && (e.src = n.url, e.width && e.height && "w" == n.postfix && (e.height = e.width / e.height * n.value, e.width = n.value), e.opts.srcset = s)
537                    }
538                },
539                setBigImage: function (t) {
540                    var o = this,
541                        i = e.createElement("img"),
542                        a = n(i);
543                    t.$image = a.one("error", function () {
544                        o.setError(t)
545                    }).one("load", function () {
546                        var e;
547                        t.$ghost || (o.resolveImageSlideSize(t, this.naturalWidth, this.naturalHeight), o.afterLoad(t)), o.isClosing || (t.opts.srcset && (e = t.opts.sizes, e && "auto" !== e || (e = (t.width / t.height > 1 && s.width() / s.height() > 1 ? "100" : Math.round(t.width / t.height * 100)) + "vw"), a.attr("sizes", e).attr("srcset", t.opts.srcset)), t.$ghost && setTimeout(function () {
548                            t.$ghost && !o.isClosing && t.$ghost.hide()
549                        }, Math.min(300, Math.max(1e3, t.height / 1600))), o.hideLoading(t))
550                    }).addClass("fancybox-image").attr("src", t.src).appendTo(t.$content), (i.complete || "complete" == i.readyState) && a.naturalWidth && a.naturalHeight ? a.trigger("load") : i.error && a.trigger("error")
551                },
552                resolveImageSlideSize: function (t, e, n) {
553                    var o = parseInt(t.opts.width, 10),
554                        i = parseInt(t.opts.height, 10);
555                    t.width = e, t.height = n, o > 0 && (t.width = o, t.height = Math.floor(o * n / e)), i > 0 && (t.width = Math.floor(i * e / n), t.height = i)
556                },
557                setIframe: function (t) {
558                    var e, o = this,
559                        i = t.opts.iframe,
560                        a = t.$slide;
561                    t.$content = n('<div class="fancybox-content' + (i.preload ? " fancybox-is-hidden" : "") + '"></div>').css(i.css).appendTo(a), a.addClass("fancybox-slide--" + t.contentType), t.$iframe = e = n(i.tpl.replace(/\{rnd\}/g, (new Date).getTime())).attr(i.attr).appendTo(t.$content), i.preload ? (o.showLoading(t), e.on("load.fb error.fb", function (e) {
562                        this.isReady = 1, t.$slide.trigger("refresh"), o.afterLoad(t)
563                    }), a.on("refresh.fb", function () {
564                        var n, o, s = t.$content,
565                            r = i.css.width,
566                            c = i.css.height;
567                        if (1 === e[0].isReady) {
568                            try {
569                                n = e.contents(), o = n.find("body")
570                            } catch (t) {}
571                            o && o.length && o.children().length && (a.css("overflow", "visible"), s.css({
572                                width: "100%",
573                                "max-width": "100%",
574                                height: "9999px"
575                            }), void 0 === r && (r = Math.ceil(Math.max(o[0].clientWidth, o.outerWidth(!0)))), s.css("width", r || "").css("max-width", ""), void 0 === c && (c = Math.ceil(Math.max(o[0].clientHeight, o.outerHeight(!0)))), s.css("height", c || ""), a.css("overflow", "auto")), s.removeClass("fancybox-is-hidden")
576                        }
577                    })) : o.afterLoad(t), e.attr("src", t.src), a.one("onReset", function () {
578                        try {
579                            n(this).find("iframe").hide().unbind().attr("src", "//about:blank")
580                        } catch (t) {}
581                        n(this).off("refresh.fb").empty(), t.isLoaded = !1, t.isRevealed = !1
582                    })
583                },
584                setContent: function (t, e) {
585                    var o = this;
586                    o.isClosing || (o.hideLoading(t), t.$content && n.fancybox.stop(t.$content), t.$slide.empty(), l(e) && e.parent().length ? ((e.hasClass("fancybox-content") || e.parent().hasClass("fancybox-content")) && e.parents(".fancybox-slide").trigger("onReset"), t.$placeholder = n("<div>").hide().insertAfter(e), e.css("display", "inline-block")) : t.hasError || ("string" === n.type(e) && (e = n("<div>").append(n.trim(e)).contents()), t.opts.filter && (e = n("<div>").html(e).find(t.opts.filter))), t.$slide.one("onReset", function () {
587                        n(this).find("video,audio").trigger("pause"), t.$placeholder && (t.$placeholder.after(e.removeClass("fancybox-content").hide()).remove(), t.$placeholder = null), t.$smallBtn && (t.$smallBtn.remove(), t.$smallBtn = null), t.hasError || (n(this).empty(), t.isLoaded = !1, t.isRevealed = !1)
588                    }), n(e).appendTo(t.$slide), n(e).is("video,audio") && (n(e).addClass("fancybox-video"), n(e).wrap("<div></div>"), t.contentType = "video", t.opts.width = t.opts.width || n(e).attr("width"), t.opts.height = t.opts.height || n(e).attr("height")), t.$content = t.$slide.children().filter("div,form,main,video,audio,article,.fancybox-content").first(), t.$content.siblings().hide(), t.$content.length || (t.$content = t.$slide.wrapInner("<div></div>").children().first()), t.$content.addClass("fancybox-content"), t.$slide.addClass("fancybox-slide--" + t.contentType), o.afterLoad(t))
589                },
590                setError: function (t) {
591                    t.hasError = !0, t.$slide.trigger("onReset").removeClass("fancybox-slide--" + t.contentType).addClass("fancybox-slide--error"), t.contentType = "html", this.setContent(t, this.translate(t, t.opts.errorTpl)), t.pos === this.currPos && (this.isAnimating = !1)
592                },
593                showLoading: function (t) {
594                    var e = this;
595                    (t = t || e.current) && !t.$spinner && (t.$spinner = n(e.translate(e, e.opts.spinnerTpl)).appendTo(t.$slide).hide().fadeIn("fast"))
596                },
597                hideLoading: function (t) {
598                    var e = this;
599                    (t = t || e.current) && t.$spinner && (t.$spinner.stop().remove(), delete t.$spinner)
600                },
601                afterLoad: function (t) {
602                    var e = this;
603                    e.isClosing || (t.isLoading = !1, t.isLoaded = !0, e.trigger("afterLoad", t), e.hideLoading(t), !t.opts.smallBtn || t.$smallBtn && t.$smallBtn.length || (t.$smallBtn = n(e.translate(t, t.opts.btnTpl.smallBtn)).appendTo(t.$content)), t.opts.protect && t.$content && !t.hasError && (t.$content.on("contextmenu.fb", function (t) {
604                        return 2 == t.button && t.preventDefault(), !0
605                    }), "image" === t.type && n('<div class="fancybox-spaceball"></div>').appendTo(t.$content)), e.adjustCaption(t), e.adjustLayout(t), t.pos === e.currPos && e.updateCursor(), e.revealContent(t))
606                },
607                adjustCaption: function (t) {
608                    var e, n = this,
609                        o = t || n.current,
610                        i = o.opts.caption,
611                        a = o.opts.preventCaptionOverlap,
612                        s = n.$refs.caption,
613                        r = !1;
614                    s.toggleClass("fancybox-caption--separate", a), a && i && i.length && (o.pos !== n.currPos ? (e = s.clone().appendTo(s.parent()), e.children().eq(0).empty().html(i), r = e.outerHeight(!0), e.empty().remove()) : n.$caption && (r = n.$caption.outerHeight(!0)), o.$slide.css("padding-bottom", r || ""))
615                },
616                adjustLayout: function (t) {
617                    var e, n, o, i, a = this,
618                        s = t || a.current;
619                    s.isLoaded && !0 !== s.opts.disableLayoutFix && (s.$content.css("margin-bottom", ""), s.$content.outerHeight() > s.$slide.height() + .5 && (o = s.$slide[0].style["padding-bottom"], i = s.$slide.css("padding-bottom"), parseFloat(i) > 0 && (e = s.$slide[0].scrollHeight, s.$slide.css("padding-bottom", 0), Math.abs(e - s.$slide[0].scrollHeight) < 1 && (n = i), s.$slide.css("padding-bottom", o))), s.$content.css("margin-bottom", n))
620                },
621                revealContent: function (t) {
622                    var e, o, i, a, s = this,
623                        r = t.$slide,
624                        c = !1,
625                        l = !1,
626                        d = s.isMoved(t),
627                        u = t.isRevealed;
628                    return t.isRevealed = !0, e = t.opts[s.firstRun ? "animationEffect" : "transitionEffect"], i = t.opts[s.firstRun ? "animationDuration" : "transitionDuration"], i = parseInt(void 0 === t.forcedDuration ? i : t.forcedDuration, 10), !d && t.pos === s.currPos && i || (e = !1), "zoom" === e && (t.pos === s.currPos && i && "image" === t.type && !t.hasError && (l = s.getThumbPos(t)) ? c = s.getFitPos(t) : e = "fade"), "zoom" === e ? (s.isAnimating = !0, c.scaleX = c.width / l.width, c.scaleY = c.height / l.height, a = t.opts.zoomOpacity, "auto" == a && (a = Math.abs(t.width / t.height - l.width / l.height) > .1), a && (l.opacity = .1, c.opacity = 1), n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"), l), p(t.$content), void n.fancybox.animate(t.$content, c, i, function () {
629                        s.isAnimating = !1, s.complete()
630                    })) : (s.updateSlide(t), e ? (n.fancybox.stop(r), o = "fancybox-slide--" + (t.pos >= s.prevPos ? "next" : "previous") + " fancybox-animated fancybox-fx-" + e, r.addClass(o).removeClass("fancybox-slide--current"), t.$content.removeClass("fancybox-is-hidden"), p(r), "image" !== t.type && t.$content.hide().show(0), void n.fancybox.animate(r, "fancybox-slide--current", i, function () {
631                        r.removeClass(o).css({
632                            transform: "",
633                            opacity: ""
634                        }), t.pos === s.currPos && s.complete()
635                    }, !0)) : (t.$content.removeClass("fancybox-is-hidden"), u || !d || "image" !== t.type || t.hasError || t.$content.hide().fadeIn("fast"), void(t.pos === s.currPos && s.complete())))
636                },
637                getThumbPos: function (t) {
638                    var e, o, i, a, s, r = !1,
639                        c = t.$thumb;
640                    return !(!c || !g(c[0])) && (e = n.fancybox.getTranslate(c), o = parseFloat(c.css("border-top-width") || 0), i = parseFloat(c.css("border-right-width") || 0), a = parseFloat(c.css("border-bottom-width") || 0), s = parseFloat(c.css("border-left-width") || 0), r = {
641                        top: e.top + o,
642                        left: e.left + s,
643                        width: e.width - i - s,
644                        height: e.height - o - a,
645                        scaleX: 1,
646                        scaleY: 1
647                    }, e.width > 0 && e.height > 0 && r)
648                },
649                complete: function () {
650                    var t, e = this,
651                        o = e.current,
652                        i = {};
653                    !e.isMoved() && o.isLoaded && (o.isComplete || (o.isComplete = !0, o.$slide.siblings().trigger("onReset"), e.preload("inline"), p(o.$slide), o.$slide.addClass("fancybox-slide--complete"), n.each(e.slides, function (t, o) {
654                        o.pos >= e.currPos - 1 && o.pos <= e.currPos + 1 ? i[o.pos] = o : o && (n.fancybox.stop(o.$slide), o.$slide.off().remove())
655                    }), e.slides = i), e.isAnimating = !1, e.updateCursor(), e.trigger("afterShow"), o.opts.video.autoStart && o.$slide.find("video,audio").filter(":visible:first").trigger("play").one("ended", function () {
656                        Document.exitFullscreen ? Document.exitFullscreen() : this.webkitExitFullscreen && this.webkitExitFullscreen(), e.next()
657                    }), o.opts.autoFocus && "html" === o.contentType && (t = o.$content.find("input[autofocus]:enabled:visible:first"), t.length ? t.trigger("focus") : e.focus(null, !0)), o.$slide.scrollTop(0).scrollLeft(0))
658                },
659                preload: function (t) {
660                    var e, n, o = this;
661                    o.group.length < 2 || (n = o.slides[o.currPos + 1], e = o.slides[o.currPos - 1], e && e.type === t && o.loadSlide(e), n && n.type === t && o.loadSlide(n))
662                },
663                focus: function (t, o) {
664                    var i, a, s = this,
665                        r = ["a[href]", "area[href]", 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', "select:not([disabled]):not([aria-hidden])", "textarea:not([disabled]):not([aria-hidden])", "button:not([disabled]):not([aria-hidden])", "iframe", "object", "embed", "video", "audio", "[contenteditable]", '[tabindex]:not([tabindex^="-"])'].join(",");
666                    s.isClosing || (i = !t && s.current && s.current.isComplete ? s.current.$slide.find("*:visible" + (o ? ":not(.fancybox-close-small)" : "")) : s.$refs.container.find("*:visible"), i = i.filter(r).filter(function () {
667                        return "hidden" !== n(this).css("visibility") && !n(this).hasClass("disabled")
668                    }), i.length ? (a = i.index(e.activeElement), t && t.shiftKey ? (a < 0 || 0 == a) && (t.preventDefault(), i.eq(i.length - 1).trigger("focus")) : (a < 0 || a == i.length - 1) && (t && t.preventDefault(), i.eq(0).trigger("focus"))) : s.$refs.container.trigger("focus"))
669                },
670                activate: function () {
671                    var t = this;
672                    n(".fancybox-container").each(function () {
673                        var e = n(this).data("FancyBox");
674                        e && e.id !== t.id && !e.isClosing && (e.trigger("onDeactivate"), e.removeEvents(), e.isVisible = !1)
675                    }), t.isVisible = !0, (t.current || t.isIdle) && (t.update(), t.updateControls()), t.trigger("onActivate"), t.addEvents()
676                },
677                close: function (t, e) {
678                    var o, i, a, s, r, c, l, u = this,
679                        f = u.current,
680                        h = function () {
681                            u.cleanUp(t)
682                        };
683                    return !u.isClosing && (u.isClosing = !0, !1 === u.trigger("beforeClose", t) ? (u.isClosing = !1, d(function () {
684                        u.update()
685                    }), !1) : (u.removeEvents(), a = f.$content, o = f.opts.animationEffect, i = n.isNumeric(e) ? e : o ? f.opts.animationDuration : 0, f.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"), !0 !== t ? n.fancybox.stop(f.$slide) : o = !1, f.$slide.siblings().trigger("onReset").remove(), i && u.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing").css("transition-duration", i + "ms"), u.hideLoading(f), u.hideControls(!0), u.updateCursor(), "zoom" !== o || a && i && "image" === f.type && !u.isMoved() && !f.hasError && (l = u.getThumbPos(f)) || (o = "fade"), "zoom" === o ? (n.fancybox.stop(a), s = n.fancybox.getTranslate(a), c = {
686                            top: s.top,
687                            left: s.left,
688                            scaleX: s.width / l.width,
689                            scaleY: s.height / l.height,
690                            width: l.width,
691                            height: l.height
692                        }, r = f.opts.zoomOpacity,
693                        "auto" == r && (r = Math.abs(f.width / f.height - l.width / l.height) > .1), r && (l.opacity = 0), n.fancybox.setTranslate(a, c), p(a), n.fancybox.animate(a, l, i, h), !0) : (o && i ? n.fancybox.animate(f.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"), "fancybox-animated fancybox-fx-" + o, i, h) : !0 === t ? setTimeout(h, i) : h(), !0)))
694                },
695                cleanUp: function (e) {
696                    var o, i, a, s = this,
697                        r = s.current.opts.$orig;
698                    s.current.$slide.trigger("onReset"), s.$refs.container.empty().remove(), s.trigger("afterClose", e), s.current.opts.backFocus && (r && r.length && r.is(":visible") || (r = s.$trigger), r && r.length && (i = t.scrollX, a = t.scrollY, r.trigger("focus"), n("html, body").scrollTop(a).scrollLeft(i))), s.current = null, o = n.fancybox.getInstance(), o ? o.activate() : (n("body").removeClass("fancybox-active compensate-for-scrollbar"), n("#fancybox-style-noscroll").remove())
699                },
700                trigger: function (t, e) {
701                    var o, i = Array.prototype.slice.call(arguments, 1),
702                        a = this,
703                        s = e && e.opts ? e : a.current;
704                    if (s ? i.unshift(s) : s = a, i.unshift(a), n.isFunction(s.opts[t]) && (o = s.opts[t].apply(s, i)), !1 === o) return o;
705                    "afterClose" !== t && a.$refs ? a.$refs.container.trigger(t + ".fb", i) : r.trigger(t + ".fb", i)
706                },
707                updateControls: function () {
708                    var t = this,
709                        o = t.current,
710                        i = o.index,
711                        a = t.$refs.container,
712                        s = t.$refs.caption,
713                        r = o.opts.caption;
714                    o.$slide.trigger("refresh"), r && r.length ? (t.$caption = s, s.children().eq(0).html(r)) : t.$caption = null, t.hasHiddenControls || t.isIdle || t.showControls(), a.find("[data-fancybox-count]").html(t.group.length), a.find("[data-fancybox-index]").html(i + 1), a.find("[data-fancybox-prev]").prop("disabled", !o.opts.loop && i <= 0), a.find("[data-fancybox-next]").prop("disabled", !o.opts.loop && i >= t.group.length - 1), "image" === o.type ? a.find("[data-fancybox-zoom]").show().end().find("[data-fancybox-download]").attr("href", o.opts.image.src || o.src).show() : o.opts.toolbar && a.find("[data-fancybox-download],[data-fancybox-zoom]").hide(), n(e.activeElement).is(":hidden,[disabled]") && t.$refs.container.trigger("focus")
715                },
716                hideControls: function (t) {
717                    var e = this,
718                        n = ["infobar", "toolbar", "nav"];
719                    !t && e.current.opts.preventCaptionOverlap || n.push("caption"), this.$refs.container.removeClass(n.map(function (t) {
720                        return "fancybox-show-" + t
721                    }).join(" ")), this.hasHiddenControls = !0
722                },
723                showControls: function () {
724                    var t = this,
725                        e = t.current ? t.current.opts : t.opts,
726                        n = t.$refs.container;
727                    t.hasHiddenControls = !1, t.idleSecondsCounter = 0, n.toggleClass("fancybox-show-toolbar", !(!e.toolbar || !e.buttons)).toggleClass("fancybox-show-infobar", !!(e.infobar && t.group.length > 1)).toggleClass("fancybox-show-caption", !!t.$caption).toggleClass("fancybox-show-nav", !!(e.arrows && t.group.length > 1)).toggleClass("fancybox-is-modal", !!e.modal)
728                },
729                toggleControls: function () {
730                    this.hasHiddenControls ? this.showControls() : this.hideControls()
731                }
732            }), n.fancybox = {
733                version: "3.5.7",
734                defaults: a,
735                getInstance: function (t) {
736                    var e = n('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),
737                        o = Array.prototype.slice.call(arguments, 1);
738                    return e instanceof b && ("string" === n.type(t) ? e[t].apply(e, o) : "function" === n.type(t) && t.apply(e, o), e)
739                },
740                open: function (t, e, n) {
741                    return new b(t, e, n)
742                },
743                close: function (t) {
744                    var e = this.getInstance();
745                    e && (e.close(), !0 === t && this.close(t))
746                },
747                destroy: function () {
748                    this.close(!0), r.add("body").off("click.fb-start", "**")
749                },
750                isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
751                use3d: function () {
752                    var n = e.createElement("div");
753                    return t.getComputedStyle && t.getComputedStyle(n) && t.getComputedStyle(n).getPropertyValue("transform") && !(e.documentMode && e.documentMode < 11)
754                }(),
755                getTranslate: function (t) {
756                    var e;
757                    return !(!t || !t.length) && (e = t[0].getBoundingClientRect(), {
758                        top: e.top || 0,
759                        left: e.left || 0,
760                        width: e.width,
761                        height: e.height,
762                        opacity: parseFloat(t.css("opacity"))
763                    })
764                },
765                setTranslate: function (t, e) {
766                    var n = "",
767                        o = {};
768                    if (t && e) return void 0 === e.left && void 0 === e.top || (n = (void 0 === e.left ? t.position().left : e.left) + "px, " + (void 0 === e.top ? t.position().top : e.top) + "px", n = this.use3d ? "translate3d(" + n + ", 0px)" : "translate(" + n + ")"), void 0 !== e.scaleX && void 0 !== e.scaleY ? n += " scale(" + e.scaleX + ", " + e.scaleY + ")" : void 0 !== e.scaleX && (n += " scaleX(" + e.scaleX + ")"), n.length && (o.transform = n), void 0 !== e.opacity && (o.opacity = e.opacity), void 0 !== e.width && (o.width = e.width), void 0 !== e.height && (o.height = e.height), t.css(o)
769                },
770                animate: function (t, e, o, i, a) {
771                    var s, r = this;
772                    n.isFunction(o) && (i = o, o = null), r.stop(t), s = r.getTranslate(t), t.on(f, function (c) {
773                        (!c || !c.originalEvent || t.is(c.originalEvent.target) && "z-index" != c.originalEvent.propertyName) && (r.stop(t), n.isNumeric(o) && t.css("transition-duration", ""), n.isPlainObject(e) ? void 0 !== e.scaleX && void 0 !== e.scaleY && r.setTranslate(t, {
774                            top: e.top,
775                            left: e.left,
776                            width: s.width * e.scaleX,
777                            height: s.height * e.scaleY,
778                            scaleX: 1,
779                            scaleY: 1
780                        }) : !0 !== a && t.removeClass(e), n.isFunction(i) && i(c))
781                    }), n.isNumeric(o) && t.css("transition-duration", o + "ms"), n.isPlainObject(e) ? (void 0 !== e.scaleX && void 0 !== e.scaleY && (delete e.width, delete e.height, t.parent().hasClass("fancybox-slide--image") && t.parent().addClass("fancybox-is-scaling")), n.fancybox.setTranslate(t, e)) : t.addClass(e), t.data("timer", setTimeout(function () {
782                        t.trigger(f)
783                    }, o + 33))
784                },
785                stop: function (t, e) {
786                    t && t.length && (clearTimeout(t.data("timer")), e && t.trigger(f), t.off(f).css("transition-duration", ""), t.parent().removeClass("fancybox-is-scaling"))
787                }
788            }, n.fn.fancybox = function (t) {
789                var e;
790                return t = t || {}, e = t.selector || !1, e ? n("body").off("click.fb-start", e).on("click.fb-start", e, {
791                    options: t
792                }, i) : this.off("click.fb-start").on("click.fb-start", {
793                    items: this,
794                    options: t
795                }, i), this
796            }, r.on("click.fb-start", "[data-fancybox]", i), r.on("click.fb-start", "[data-fancybox-trigger]", function (t) {
797                n('[data-fancybox="' + n(this).attr("data-fancybox-trigger") + '"]').eq(n(this).attr("data-fancybox-index") || 0).trigger("click.fb-start", {
798                    $trigger: n(this)
799                })
800            }),
801            function () {
802                var t = null;
803                r.on("mousedown mouseup focus blur", ".fancybox-button", function (e) {
804                    switch (e.type) {
805                        case "mousedown":
806                            t = n(this);
807                            break;
808                        case "mouseup":
809                            t = null;
810                            break;
811                        case "focusin":
812                            n(".fancybox-button").removeClass("fancybox-focus"), n(this).is(t) || n(this).is("[disabled]") || n(this).addClass("fancybox-focus");
813                            break;
814                        case "focusout":
815                            n(".fancybox-button").removeClass("fancybox-focus")
816                    }
817                })
818            }()
819    }
820}(window, document, jQuery),
821function (t) {
822    "use strict";
823    var e = {
824            youtube: {
825                matcher: /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,
826                params: {
827                    autoplay: 1,
828                    autohide: 1,
829                    fs: 1,
830                    rel: 0,
831                    hd: 1,
832                    wmode: "transparent",
833                    enablejsapi: 1,
834                    html5: 1
835                },
836                paramPlace: 8,
837                type: "iframe",
838                url: "https://www.youtube-nocookie.com/embed/$4",
839                thumb: "https://img.youtube.com/vi/$4/hqdefault.jpg"
840            },
841            vimeo: {
842                matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,
843                params: {
844                    autoplay: 1,
845                    hd: 1,
846                    show_title: 1,
847                    show_byline: 1,
848                    show_portrait: 0,
849                    fullscreen: 1
850                },
851                paramPlace: 3,
852                type: "iframe",
853                url: "//player.vimeo.com/video/$2"
854            },
855            instagram: {
856                matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
857                type: "image",
858                url: "//$1/p/$2/media/?size=l"
859            },
860            gmap_place: {
861                matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,
862                type: "iframe",
863                url: function (t) {
864                    return "//maps.google." + t[2] + "/?ll=" + (t[9] ? t[9] + "&z=" + Math.floor(t[10]) + (t[12] ? t[12].replace(/^\//, "&") : "") : t[12] + "").replace(/\?/, "&") + "&output=" + (t[12] && t[12].indexOf("layer=c") > 0 ? "svembed" : "embed")
865                }
866            },
867            gmap_search: {
868                matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,
869                type: "iframe",
870                url: function (t) {
871                    return "//maps.google." + t[2] + "/maps?q=" + t[5].replace("query=", "q=").replace("api=1", "") + "&output=embed"
872                }
873            }
874        },
875        n = function (e, n, o) {
876            if (e) return o = o || "", "object" === t.type(o) && (o = t.param(o, !0)), t.each(n, function (t, n) {
877                e = e.replace("$" + t, n || "")
878            }), o.length && (e += (e.indexOf("?") > 0 ? "&" : "?") + o), e
879        };
880    t(document).on("objectNeedsType.fb", function (o, i, a) {
881        var s, r, c, l, d, u, f, p = a.src || "",
882            h = !1;
883        s = t.extend(!0, {}, e, a.opts.media), t.each(s, function (e, o) {
884            if (c = p.match(o.matcher)) {
885                if (h = o.type, f = e, u = {}, o.paramPlace && c[o.paramPlace]) {
886                    d = c[o.paramPlace], "?" == d[0] && (d = d.substring(1)), d = d.split("&");
887                    for (var i = 0; i < d.length; ++i) {
888                        var s = d[i].split("=", 2);
889                        2 == s.length && (u[s[0]] = decodeURIComponent(s[1].replace(/\+/g, " ")))
890                    }
891                }
892                return l = t.extend(!0, {}, o.params, a.opts[e], u), p = "function" === t.type(o.url) ? o.url.call(this, c, l, a) : n(o.url, c, l), r = "function" === t.type(o.thumb) ? o.thumb.call(this, c, l, a) : n(o.thumb, c), "youtube" === e ? p = p.replace(/&t=((\d+)m)?(\d+)s/, function (t, e, n, o) {
893                    return "&start=" + ((n ? 60 * parseInt(n, 10) : 0) + parseInt(o, 10))
894                }) : "vimeo" === e && (p = p.replace("&%23", "#")), !1
895            }
896        }), h ? (a.opts.thumb || a.opts.$thumb && a.opts.$thumb.length || (a.opts.thumb = r), "iframe" === h && (a.opts = t.extend(!0, a.opts, {
897            iframe: {
898                preload: !1,
899                attr: {
900                    scrolling: "no"
901                }
902            }
903        })), t.extend(a, {
904            type: h,
905            src: p,
906            origSrc: a.src,
907            contentSource: f,
908            contentType: "image" === h ? "image" : "gmap_place" == f || "gmap_search" == f ? "map" : "video"
909        })) : p && (a.type = a.opts.defaultType)
910    });
911    var o = {
912        youtube: {
913            src: "https://www.youtube.com/iframe_api",
914            class: "YT",
915            loading: !1,
916            loaded: !1
917        },
918        vimeo: {
919            src: "https://player.vimeo.com/api/player.js",
920            class: "Vimeo",
921            loading: !1,
922            loaded: !1
923        },
924        load: function (t) {
925            var e, n = this;
926            if (this[t].loaded) return void setTimeout(function () {
927                n.done(t)
928            });
929            this[t].loading || (this[t].loading = !0, e = document.createElement("script"), e.type = "text/javascript", e.src = this[t].src, "youtube" === t ? window.onYouTubeIframeAPIReady = function () {
930                n[t].loaded = !0, n.done(t)
931            } : e.onload = function () {
932                n[t].loaded = !0, n.done(t)
933            }, document.body.appendChild(e))
934        },
935        done: function (e) {
936            var n, o, i;
937            "youtube" === e && delete window.onYouTubeIframeAPIReady, (n = t.fancybox.getInstance()) && (o = n.current.$content.find("iframe"), "youtube" === e && void 0 !== YT && YT ? i = new YT.Player(o.attr("id"), {
938                events: {
939                    onStateChange: function (t) {
940                        0 == t.data && n.next()
941                    }
942                }
943            }) : "vimeo" === e && void 0 !== Vimeo && Vimeo && (i = new Vimeo.Player(o), i.on("ended", function () {
944                n.next()
945            })))
946        }
947    };
948    t(document).on({
949        "afterShow.fb": function (t, e, n) {
950            e.group.length > 1 && ("youtube" === n.contentSource || "vimeo" === n.contentSource) && o.load(n.contentSource)
951        }
952    })
953}(jQuery),
954function (t, e, n) {
955    "use strict";
956    var o = function () {
957            return t.requestAnimationFrame || t.webkitRequestAnimationFrame || t.mozRequestAnimationFrame || t.oRequestAnimationFrame || function (e) {
958                return t.setTimeout(e, 1e3 / 60)
959            }
960        }(),
961        i = function () {
962            return t.cancelAnimationFrame || t.webkitCancelAnimationFrame || t.mozCancelAnimationFrame || t.oCancelAnimationFrame || function (e) {
963                t.clearTimeout(e)
964            }
965        }(),
966        a = function (e) {
967            var n = [];
968            e = e.originalEvent || e || t.e, e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];
969            for (var o in e) e[o].pageX ? n.push({
970                x: e[o].pageX,
971                y: e[o].pageY
972            }) : e[o].clientX && n.push({
973                x: e[o].clientX,
974                y: e[o].clientY
975            });
976            return n
977        },
978        s = function (t, e, n) {
979            return e && t ? "x" === n ? t.x - e.x : "y" === n ? t.y - e.y : Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2)) : 0
980        },
981        r = function (t) {
982            if (t.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe') || n.isFunction(t.get(0).onclick) || t.data("selectable")) return !0;
983            for (var e = 0, o = t[0].attributes, i = o.length; e < i; e++)
984                if ("data-fancybox-" === o[e].nodeName.substr(0, 14)) return !0;
985            return !1
986        },
987        c = function (e) {
988            var n = t.getComputedStyle(e)["overflow-y"],
989                o = t.getComputedStyle(e)["overflow-x"],
990                i = ("scroll" === n || "auto" === n) && e.scrollHeight > e.clientHeight,
991                a = ("scroll" === o || "auto" === o) && e.scrollWidth > e.clientWidth;
992            return i || a
993        },
994        l = function (t) {
995            for (var e = !1;;) {
996                if (e = c(t.get(0))) break;
997                if (t = t.parent(), !t.length || t.hasClass("fancybox-stage") || t.is("body")) break
998            }
999            return e
1000        },
1001        d = function (t) {
1002            var e = this;
1003            e.instance = t, e.$bg = t.$refs.bg, e.$stage = t.$refs.stage, e.$container = t.$refs.container, e.destroy(), e.$container.on("touchstart.fb.touch mousedown.fb.touch", n.proxy(e, "ontouchstart"))
1004        };
1005    d.prototype.destroy = function () {
1006        var t = this;
1007        t.$container.off(".fb.touch"), n(e).off(".fb.touch"), t.requestId && (i(t.requestId), t.requestId = null), t.tapped && (clearTimeout(t.tapped), t.tapped = null)
1008    }, d.prototype.ontouchstart = function (o) {
1009        var i = this,
1010            c = n(o.target),
1011            d = i.instance,
1012            u = d.current,
1013            f = u.$slide,
1014            p = u.$content,
1015            h = "touchstart" == o.type;
1016        if (h && i.$container.off("mousedown.fb.touch"), (!o.originalEvent || 2 != o.originalEvent.button) && f.length && c.length && !r(c) && !r(c.parent()) && (c.is("img") || !(o.originalEvent.clientX > c[0].clientWidth + c.offset().left))) {
1017            if (!u || d.isAnimating || u.$slide.hasClass("fancybox-animated")) return o.stopPropagation(), void o.preventDefault();
1018            i.realPoints = i.startPoints = a(o), i.startPoints.length && (u.touch && o.stopPropagation(), i.startEvent = o, i.canTap = !0, i.$target = c, i.$content = p, i.opts = u.opts.touch, i.isPanning = !1, i.isSwiping = !1, i.isZooming = !1, i.isScrolling = !1, i.canPan = d.canPan(), i.startTime = (new Date).getTime(), i.distanceX = i.distanceY = i.distance = 0, i.canvasWidth = Math.round(f[0].clientWidth), i.canvasHeight = Math.round(f[0].clientHeight), i.contentLastPos = null, i.contentStartPos = n.fancybox.getTranslate(i.$content) || {
1019                top: 0,
1020                left: 0
1021            }, i.sliderStartPos = n.fancybox.getTranslate(f), i.stagePos = n.fancybox.getTranslate(d.$refs.stage), i.sliderStartPos.top -= i.stagePos.top, i.sliderStartPos.left -= i.stagePos.left, i.contentStartPos.top -= i.stagePos.top, i.contentStartPos.left -= i.stagePos.left, n(e).off(".fb.touch").on(h ? "touchend.fb.touch touchcancel.fb.touch" : "mouseup.fb.touch mouseleave.fb.touch", n.proxy(i, "ontouchend")).on(h ? "touchmove.fb.touch" : "mousemove.fb.touch", n.proxy(i, "ontouchmove")), n.fancybox.isMobile && e.addEventListener("scroll", i.onscroll, !0), ((i.opts || i.canPan) && (c.is(i.$stage) || i.$stage.find(c).length) || (c.is(".fancybox-image") && o.preventDefault(), n.fancybox.isMobile && c.parents(".fancybox-caption").length)) && (i.isScrollable = l(c) || l(c.parent()), n.fancybox.isMobile && i.isScrollable || o.preventDefault(), (1 === i.startPoints.length || u.hasError) && (i.canPan ? (n.fancybox.stop(i.$content), i.isPanning = !0) : i.isSwiping = !0, i.$container.addClass("fancybox-is-grabbing")), 2 === i.startPoints.length && "image" === u.type && (u.isLoaded || u.$ghost) && (i.canTap = !1, i.isSwiping = !1, i.isPanning = !1, i.isZooming = !0, n.fancybox.stop(i.$content), i.centerPointStartX = .5 * (i.startPoints[0].x + i.startPoints[1].x) - n(t).scrollLeft(), i.centerPointStartY = .5 * (i.startPoints[0].y + i.startPoints[1].y) - n(t).scrollTop(), i.percentageOfImageAtPinchPointX = (i.centerPointStartX - i.contentStartPos.left) / i.contentStartPos.width, i.percentageOfImageAtPinchPointY = (i.centerPointStartY - i.contentStartPos.top) / i.contentStartPos.height, i.startDistanceBetweenFingers = s(i.startPoints[0], i.startPoints[1]))))
1022        }
1023    }, d.prototype.onscroll = function (t) {
1024        var n = this;
1025        n.isScrolling = !0, e.removeEventListener("scroll", n.onscroll, !0)
1026    }, d.prototype.ontouchmove = function (t) {
1027        var e = this;
1028        return void 0 !== t.originalEvent.buttons && 0 === t.originalEvent.buttons ? void e.ontouchend(t) : e.isScrolling ? void(e.canTap = !1) : (e.newPoints = a(t), void((e.opts || e.canPan) && e.newPoints.length && e.newPoints.length && (e.isSwiping && !0 === e.isSwiping || t.preventDefault(), e.distanceX = s(e.newPoints[0], e.startPoints[0], "x"), e.distanceY = s(e.newPoints[0], e.startPoints[0], "y"), e.distance = s(e.newPoints[0], e.startPoints[0]), e.distance > 0 && (e.isSwiping ? e.onSwipe(t) : e.isPanning ? e.onPan() : e.isZooming && e.onZoom()))))
1029    }, d.prototype.onSwipe = function (e) {
1030        var a, s = this,
1031            r = s.instance,
1032            c = s.isSwiping,
1033            l = s.sliderStartPos.left || 0;
1034        if (!0 !== c) "x" == c && (s.distanceX > 0 && (s.instance.group.length < 2 || 0 === s.instance.current.index && !s.instance.current.opts.loop) ? l += Math.pow(s.distanceX, .8) : s.distanceX < 0 && (s.instance.group.length < 2 || s.instance.current.index === s.instance.group.length - 1 && !s.instance.current.opts.loop) ? l -= Math.pow(-s.distanceX, .8) : l += s.distanceX), s.sliderLastPos = {
1035            top: "x" == c ? 0 : s.sliderStartPos.top + s.distanceY,
1036            left: l
1037        }, s.requestId && (i(s.requestId), s.requestId = null), s.requestId = o(function () {
1038            s.sliderLastPos && (n.each(s.instance.slides, function (t, e) {
1039                var o = e.pos - s.instance.currPos;
1040                n.fancybox.setTranslate(e.$slide, {
1041                    top: s.sliderLastPos.top,
1042                    left: s.sliderLastPos.left + o * s.canvasWidth + o * e.opts.gutter
1043                })
1044            }), s.$container.addClass("fancybox-is-sliding"))
1045        });
1046        else if (Math.abs(s.distance) > 10) {
1047            if (s.canTap = !1, r.group.length < 2 && s.opts.vertical ? s.isSwiping = "y" : r.isDragging || !1 === s.opts.vertical || "auto" === s.opts.vertical && n(t).width() > 800 ? s.isSwiping = "x" : (a = Math.abs(180 * Math.atan2(s.distanceY, s.distanceX) / Math.PI), s.isSwiping = a > 45 && a < 135 ? "y" : "x"), "y" === s.isSwiping && n.fancybox.isMobile && s.isScrollable) return void(s.isScrolling = !0);
1048            r.isDragging = s.isSwiping, s.startPoints = s.newPoints, n.each(r.slides, function (t, e) {
1049                var o, i;
1050                n.fancybox.stop(e.$slide), o = n.fancybox.getTranslate(e.$slide), i = n.fancybox.getTranslate(r.$refs.stage), e.$slide.css({
1051                    transform: "",
1052                    opacity: "",
1053                    "transition-duration": ""
1054                }).removeClass("fancybox-animated").removeClass(function (t, e) {
1055                    return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ")
1056                }), e.pos === r.current.pos && (s.sliderStartPos.top = o.top - i.top, s.sliderStartPos.left = o.left - i.left), n.fancybox.setTranslate(e.$slide, {
1057                    top: o.top - i.top,
1058                    left: o.left - i.left
1059                })
1060            }), r.SlideShow && r.SlideShow.isActive && r.SlideShow.stop()
1061        }
1062    }, d.prototype.onPan = function () {
1063        var t = this;
1064        if (s(t.newPoints[0], t.realPoints[0]) < (n.fancybox.isMobile ? 10 : 5)) return void(t.startPoints = t.newPoints);
1065        t.canTap = !1, t.contentLastPos = t.limitMovement(), t.requestId && i(t.requestId), t.requestId = o(function () {
1066            n.fancybox.setTranslate(t.$content, t.contentLastPos)
1067        })
1068    }, d.prototype.limitMovement = function () {
1069        var t, e, n, o, i, a, s = this,
1070            r = s.canvasWidth,
1071            c = s.canvasHeight,
1072            l = s.distanceX,
1073            d = s.distanceY,
1074            u = s.contentStartPos,
1075            f = u.left,
1076            p = u.top,
1077            h = u.width,
1078            g = u.height;
1079        return i = h > r ? f + l : f, a = p + d, t = Math.max(0, .5 * r - .5 * h), e = Math.max(0, .5 * c - .5 * g), n = Math.min(r - h, .5 * r - .5 * h), o = Math.min(c - g, .5 * c - .5 * g), l > 0 && i > t && (i = t - 1 + Math.pow(-t + f + l, .8) || 0), l < 0 && i < n && (i = n + 1 - Math.pow(n - f - l, .8) || 0), d > 0 && a > e && (a = e - 1 + Math.pow(-e + p + d, .8) || 0), d < 0 && a < o && (a = o + 1 - Math.pow(o - p - d, .8) || 0), {
1080            top: a,
1081            left: i
1082        }
1083    }, d.prototype.limitPosition = function (t, e, n, o) {
1084        var i = this,
1085            a = i.canvasWidth,
1086            s = i.canvasHeight;
1087        return n > a ? (t = t > 0 ? 0 : t, t = t < a - n ? a - n : t) : t = Math.max(0, a / 2 - n / 2), o > s ? (e = e > 0 ? 0 : e, e = e < s - o ? s - o : e) : e = Math.max(0, s / 2 - o / 2), {
1088            top: e,
1089            left: t
1090        }
1091    }, d.prototype.onZoom = function () {
1092        var e = this,
1093            a = e.contentStartPos,
1094            r = a.width,
1095            c = a.height,
1096            l = a.left,
1097            d = a.top,
1098            u = s(e.newPoints[0], e.newPoints[1]),
1099            f = u / e.startDistanceBetweenFingers,
1100            p = Math.floor(r * f),
1101            h = Math.floor(c * f),
1102            g = (r - p) * e.percentageOfImageAtPinchPointX,
1103            b = (c - h) * e.percentageOfImageAtPinchPointY,
1104            m = (e.newPoints[0].x + e.newPoints[1].x) / 2 - n(t).scrollLeft(),
1105            v = (e.newPoints[0].y + e.newPoints[1].y) / 2 - n(t).scrollTop(),
1106            y = m - e.centerPointStartX,
1107            x = v - e.centerPointStartY,
1108            w = l + (g + y),
1109            $ = d + (b + x),
1110            S = {
1111                top: $,
1112                left: w,
1113                scaleX: f,
1114                scaleY: f
1115            };
1116        e.canTap = !1, e.newWidth = p, e.newHeight = h, e.contentLastPos = S, e.requestId && i(e.requestId), e.requestId = o(function () {
1117            n.fancybox.setTranslate(e.$content, e.contentLastPos)
1118        })
1119    }, d.prototype.ontouchend = function (t) {
1120        var o = this,
1121            s = o.isSwiping,
1122            r = o.isPanning,
1123            c = o.isZooming,
1124            l = o.isScrolling;
1125        if (o.endPoints = a(t), o.dMs = Math.max((new Date).getTime() - o.startTime, 1), o.$container.removeClass("fancybox-is-grabbing"), n(e).off(".fb.touch"), e.removeEventListener("scroll", o.onscroll, !0), o.requestId && (i(o.requestId), o.requestId = null), o.isSwiping = !1, o.isPanning = !1, o.isZooming = !1, o.isScrolling = !1, o.instance.isDragging = !1, o.canTap) return o.onTap(t);
1126        o.speed = 100, o.velocityX = o.distanceX / o.dMs * .5, o.velocityY = o.distanceY / o.dMs * .5, r ? o.endPanning() : c ? o.endZooming() : o.endSwiping(s, l)
1127    }, d.prototype.endSwiping = function (t, e) {
1128        var o = this,
1129            i = !1,
1130            a = o.instance.group.length,
1131            s = Math.abs(o.distanceX),
1132            r = "x" == t && a > 1 && (o.dMs > 130 && s > 10 || s > 50);
1133        o.sliderLastPos = null, "y" == t && !e && Math.abs(o.distanceY) > 50 ? (n.fancybox.animate(o.instance.current.$slide, {
1134            top: o.sliderStartPos.top + o.distanceY + 150 * o.velocityY,
1135            opacity: 0
1136        }, 200), i = o.instance.close(!0, 250)) : r && o.distanceX > 0 ? i = o.instance.previous(300) : r && o.distanceX < 0 && (i = o.instance.next(300)), !1 !== i || "x" != t && "y" != t || o.instance.centerSlide(200), o.$container.removeClass("fancybox-is-sliding")
1137    }, d.prototype.endPanning = function () {
1138        var t, e, o, i = this;
1139        i.contentLastPos && (!1 === i.opts.momentum || i.dMs > 350 ? (t = i.contentLastPos.left, e = i.contentLastPos.top) : (t = i.contentLastPos.left + 500 * i.velocityX, e = i.contentLastPos.top + 500 * i.velocityY), o = i.limitPosition(t, e, i.contentStartPos.width, i.contentStartPos.height), o.width = i.contentStartPos.width, o.height = i.contentStartPos.height, n.fancybox.animate(i.$content, o, 366))
1140    }, d.prototype.endZooming = function () {
1141        var t, e, o, i, a = this,
1142            s = a.instance.current,
1143            r = a.newWidth,
1144            c = a.newHeight;
1145        a.contentLastPos && (t = a.contentLastPos.left, e = a.contentLastPos.top, i = {
1146            top: e,
1147            left: t,
1148            width: r,
1149            height: c,
1150            scaleX: 1,
1151            scaleY: 1
1152        }, n.fancybox.setTranslate(a.$content, i), r < a.canvasWidth && c < a.canvasHeight ? a.instance.scaleToFit(150) : r > s.width || c > s.height ? a.instance.scaleToActual(a.centerPointStartX, a.centerPointStartY, 150) : (o = a.limitPosition(t, e, r, c), n.fancybox.animate(a.$content, o, 150)))
1153    }, d.prototype.onTap = function (e) {
1154        var o, i = this,
1155            s = n(e.target),
1156            r = i.instance,
1157            c = r.current,
1158            l = e && a(e) || i.startPoints,
1159            d = l[0] ? l[0].x - n(t).scrollLeft() - i.stagePos.left : 0,
1160            u = l[0] ? l[0].y - n(t).scrollTop() - i.stagePos.top : 0,
1161            f = function (t) {
1162                var o = c.opts[t];
1163                if (n.isFunction(o) && (o = o.apply(r, [c, e])), o) switch (o) {
1164                    case "close":
1165                        r.close(i.startEvent);
1166                        break;
1167                    case "toggleControls":
1168                        r.toggleControls();
1169                        break;
1170                    case "next":
1171                        r.next();
1172                        break;
1173                    case "nextOrClose":
1174                        r.group.length > 1 ? r.next() : r.close(i.startEvent);
1175                        break;
1176                    case "zoom":
1177                        "image" == c.type && (c.isLoaded || c.$ghost) && (r.canPan() ? r.scaleToFit() : r.isScaledDown() ? r.scaleToActual(d, u) : r.group.length < 2 && r.close(i.startEvent))
1178                }
1179            };
1180        if ((!e.originalEvent || 2 != e.originalEvent.button) && (s.is("img") || !(d > s[0].clientWidth + s.offset().left))) {
1181            if (s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container")) o = "Outside";
1182            else if (s.is(".fancybox-slide")) o = "Slide";
1183            else {
1184                if (!r.current.$content || !r.current.$content.find(s).addBack().filter(s).length) return;
1185                o = "Content"
1186            }
1187            if (i.tapped) {
1188                if (clearTimeout(i.tapped), i.tapped = null, Math.abs(d - i.tapX) > 50 || Math.abs(u - i.tapY) > 50) return this;
1189                f("dblclick" + o)
1190            } else i.tapX = d, i.tapY = u, c.opts["dblclick" + o] && c.opts["dblclick" + o] !== c.opts["click" + o] ? i.tapped = setTimeout(function () {
1191                i.tapped = null, r.isAnimating || f("click" + o)
1192            }, 500) : f("click" + o);
1193            return this
1194        }
1195    }, n(e).on("onActivate.fb", function (t, e) {
1196        e && !e.Guestures && (e.Guestures = new d(e))
1197    }).on("beforeClose.fb", function (t, e) {
1198        e && e.Guestures && e.Guestures.destroy()
1199    })
1200}(window, document, jQuery),
1201function (t, e) {
1202    "use strict";
1203    e.extend(!0, e.fancybox.defaults, {
1204        btnTpl: {
1205            slideShow: '<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 5.4v13.2l11-6.6z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z"/></svg></button>'
1206        },
1207        slideShow: {
1208            autoStart: !1,
1209            speed: 3e3,
1210            progress: !0
1211        }
1212    });
1213    var n = function (t) {
1214        this.instance = t, this.init()
1215    };
1216    e.extend(n.prototype, {
1217        timer: null,
1218        isActive: !1,
1219        $button: null,
1220        init: function () {
1221            var t = this,
1222                n = t.instance,
1223                o = n.group[n.currIndex].opts.slideShow;
1224            t.$button = n.$refs.toolbar.find("[data-fancybox-play]").on("click", function () {
1225                t.toggle()
1226            }), n.group.length < 2 || !o ? t.$button.hide() : o.progress && (t.$progress = e('<div class="fancybox-progress"></div>').appendTo(n.$refs.inner))
1227        },
1228        set: function (t) {
1229            var n = this,
1230                o = n.instance,
1231                i = o.current;
1232            i && (!0 === t || i.opts.loop || o.currIndex < o.group.length - 1) ? n.isActive && "video" !== i.contentType && (n.$progress && e.fancybox.animate(n.$progress.show(), {
1233                scaleX: 1
1234            }, i.opts.slideShow.speed), n.timer = setTimeout(function () {
1235                o.current.opts.loop || o.current.index != o.group.length - 1 ? o.next() : o.jumpTo(0)
1236            }, i.opts.slideShow.speed)) : (n.stop(), o.idleSecondsCounter = 0, o.showControls())
1237        },
1238        clear: function () {
1239            var t = this;
1240            clearTimeout(t.timer), t.timer = null, t.$progress && t.$progress.removeAttr("style").hide()
1241        },
1242        start: function () {
1243            var t = this,
1244                e = t.instance.current;
1245            e && (t.$button.attr("title", (e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_STOP).removeClass("fancybox-button--play").addClass("fancybox-button--pause"), t.isActive = !0, e.isComplete && t.set(!0), t.instance.trigger("onSlideShowChange", !0))
1246        },
1247        stop: function () {
1248            var t = this,
1249                e = t.instance.current;
1250            t.clear(), t.$button.attr("title", (e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_START).removeClass("fancybox-button--pause").addClass("fancybox-button--play"), t.isActive = !1, t.instance.trigger("onSlideShowChange", !1), t.$progress && t.$progress.removeAttr("style").hide()
1251        },
1252        toggle: function () {
1253            var t = this;
1254            t.isActive ? t.stop() : t.start()
1255        }
1256    }), e(t).on({
1257        "onInit.fb": function (t, e) {
1258            e && !e.SlideShow && (e.SlideShow = new n(e))
1259        },
1260        "beforeShow.fb": function (t, e, n, o) {
1261            var i = e && e.SlideShow;
1262            o ? i && n.opts.slideShow.autoStart && i.start() : i && i.isActive && i.clear()
1263        },
1264        "afterShow.fb": function (t, e, n) {
1265            var o = e && e.SlideShow;
1266            o && o.isActive && o.set()
1267        },
1268        "afterKeydown.fb": function (n, o, i, a, s) {
1269            var r = o && o.SlideShow;
1270            !r || !i.opts.slideShow || 80 !== s && 32 !== s || e(t.activeElement).is("button,a,input") || (a.preventDefault(), r.toggle())
1271        },
1272        "beforeClose.fb onDeactivate.fb": function (t, e) {
1273            var n = e && e.SlideShow;
1274            n && n.stop()
1275        }
1276    }), e(t).on("visibilitychange", function () {
1277        var n = e.fancybox.getInstance(),
1278            o = n && n.SlideShow;
1279        o && o.isActive && (t.hidden ? o.clear() : o.set())
1280    })
1281}(document, jQuery),
1282function (t, e) {
1283    "use strict";
1284    var n = function () {
1285        for (var e = [
1286                ["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"],
1287                ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"],
1288                ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"],
1289                ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"],
1290                ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]
1291            ], n = {}, o = 0; o < e.length; o++) {
1292            var i = e[o];
1293            if (i && i[1] in t) {
1294                for (var a = 0; a < i.length; a++) n[e[0][a]] = i[a];
1295                return n
1296            }
1297        }
1298        return !1
1299    }();
1300    if (n) {
1301        var o = {
1302            request: function (e) {
1303                e = e || t.documentElement, e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT)
1304            },
1305            exit: function () {
1306                t[n.exitFullscreen]()
1307            },
1308            toggle: function (e) {
1309                e = e || t.documentElement, this.isFullscreen() ? this.exit() : this.request(e)
1310            },
1311            isFullscreen: function () {
1312                return Boolean(t[n.fullscreenElement])
1313            },
1314            enabled: function () {
1315                return Boolean(t[n.fullscreenEnabled])
1316            }
1317        };
1318        e.extend(!0, e.fancybox.defaults, {
1319            btnTpl: {
1320                fullScreen: '<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fsenter" title="{{FULL_SCREEN}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z"/></svg></button>'
1321            },
1322            fullScreen: {
1323                autoStart: !1
1324            }
1325        }), e(t).on(n.fullscreenchange, function () {
1326            var t = o.isFullscreen(),
1327                n = e.fancybox.getInstance();
1328            n && (n.current && "image" === n.current.type && n.isAnimating && (n.isAnimating = !1, n.update(!0, !0, 0), n.isComplete || n.complete()), n.trigger("onFullscreenChange", t), n.$refs.container.toggleClass("fancybox-is-fullscreen", t), n.$refs.toolbar.find("[data-fancybox-fullscreen]").toggleClass("fancybox-button--fsenter", !t).toggleClass("fancybox-button--fsexit", t))
1329        })
1330    }
1331    e(t).on({
1332        "onInit.fb": function (t, e) {
1333            var i;
1334            if (!n) return void e.$refs.toolbar.find("[data-fancybox-fullscreen]").remove();
1335            e && e.group[e.currIndex].opts.fullScreen ? (i = e.$refs.container, i.on("click.fb-fullscreen", "[data-fancybox-fullscreen]", function (t) {
1336                t.stopPropagation(), t.preventDefault(), o.toggle()
1337            }), e.opts.fullScreen && !0 === e.opts.fullScreen.autoStart && o.request(), e.FullScreen = o) : e && e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide()
1338        },
1339        "afterKeydown.fb": function (t, e, n, o, i) {
1340            e && e.FullScreen && 70 === i && (o.preventDefault(), e.FullScreen.toggle())
1341        },
1342        "beforeClose.fb": function (t, e) {
1343            e && e.FullScreen && e.$refs.container.hasClass("fancybox-is-fullscreen") && o.exit()
1344        }
1345    })
1346}(document, jQuery),
1347function (t, e) {
1348    "use strict";
1349    var n = "fancybox-thumbs";
1350    e.fancybox.defaults = e.extend(!0, {
1351        btnTpl: {
1352            thumbs: '<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z"/></svg></button>'
1353        },
1354        thumbs: {
1355            autoStart: !1,
1356            hideOnClose: !0,
1357            parentEl: ".fancybox-container",
1358            axis: "y"
1359        }
1360    }, e.fancybox.defaults);
1361    var o = function (t) {
1362        this.init(t)
1363    };
1364    e.extend(o.prototype, {
1365        $button: null,
1366        $grid: null,
1367        $list: null,
1368        isVisible: !1,
1369        isActive: !1,
1370        init: function (t) {
1371            var e = this,
1372                n = t.group,
1373                o = 0;
1374            e.instance = t, e.opts = n[t.currIndex].opts.thumbs, t.Thumbs = e, e.$button = t.$refs.toolbar.find("[data-fancybox-thumbs]");
1375            for (var i = 0, a = n.length; i < a && (n[i].thumb && o++, !(o > 1)); i++);
1376            o > 1 && e.opts ? (e.$button.removeAttr("style").on("click", function () {
1377                e.toggle()
1378            }), e.isActive = !0) : e.$button.hide()
1379        },
1380        create: function () {
1381            var t, o = this,
1382                i = o.instance,
1383                a = o.opts.parentEl,
1384                s = [];
1385            o.$grid || (o.$grid = e('<div class="' + n + " " + n + "-" + o.opts.axis + '"></div>').appendTo(i.$refs.container.find(a).addBack().filter(a)), o.$grid.on("click", "a", function () {
1386                i.jumpTo(e(this).attr("data-index"))
1387            })), o.$list || (o.$list = e('<div class="' + n + '__list">').appendTo(o.$grid)), e.each(i.group, function (e, n) {
1388                t = n.thumb, t || "image" !== n.type || (t = n.src), s.push('<a href="javascript:;" tabindex="0" data-index="' + e + '"' + (t && t.length ? ' style="background-image:url(' + t + ')"' : 'class="fancybox-thumbs-missing"') + "></a>")
1389            }), o.$list[0].innerHTML = s.join(""), "x" === o.opts.axis && o.$list.width(parseInt(o.$grid.css("padding-right"), 10) + i.group.length * o.$list.children().eq(0).outerWidth(!0))
1390        },
1391        focus: function (t) {
1392            var e, n, o = this,
1393                i = o.$list,
1394                a = o.$grid;
1395            o.instance.current && (e = i.children().removeClass("fancybox-thumbs-active").filter('[data-index="' + o.instance.current.index + '"]').addClass("fancybox-thumbs-active"), n = e.position(), "y" === o.opts.axis && (n.top < 0 || n.top > i.height() - e.outerHeight()) ? i.stop().animate({
1396                scrollTop: i.scrollTop() + n.top
1397            }, t) : "x" === o.opts.axis && (n.left < a.scrollLeft() || n.left > a.scrollLeft() + (a.width() - e.outerWidth())) && i.parent().stop().animate({
1398                scrollLeft: n.left
1399            }, t))
1400        },
1401        update: function () {
1402            var t = this;
1403            t.instance.$refs.container.toggleClass("fancybox-show-thumbs", this.isVisible), t.isVisible ? (t.$grid || t.create(), t.instance.trigger("onThumbsShow"), t.focus(0)) : t.$grid && t.instance.trigger("onThumbsHide"), t.instance.update()
1404        },
1405        hide: function () {
1406            this.isVisible = !1, this.update()
1407        },
1408        show: function () {
1409            this.isVisible = !0, this.update()
1410        },
1411        toggle: function () {
1412            this.isVisible = !this.isVisible, this.update()
1413        }
1414    }), e(t).on({
1415        "onInit.fb": function (t, e) {
1416            var n;
1417            e && !e.Thumbs && (n = new o(e), n.isActive && !0 === n.opts.autoStart && n.show())
1418        },
1419        "beforeShow.fb": function (t, e, n, o) {
1420            var i = e && e.Thumbs;
1421            i && i.isVisible && i.focus(o ? 0 : 250)
1422        },
1423        "afterKeydown.fb": function (t, e, n, o, i) {
1424            var a = e && e.Thumbs;
1425            a && a.isActive && 71 === i && (o.preventDefault(), a.toggle())
1426        },
1427        "beforeClose.fb": function (t, e) {
1428            var n = e && e.Thumbs;
1429            n && n.isVisible && !1 !== n.opts.hideOnClose && n.$grid.hide()
1430        }
1431    })
1432}(document, jQuery),
1433function (t, e) {
1434    "use strict";
1435
1436    function n(t) {
1437        var e = {
1438            "&": "&amp;",
1439            "<": "&lt;",
1440            ">": "&gt;",
1441            '"': "&quot;",
1442            "'": "&#39;",
1443            "/": "&#x2F;",
1444            "`": "&#x60;",
1445            "=": "&#x3D;"
1446        };
1447        return String(t).replace(/[&<>"'`=\/]/g, function (t) {
1448            return e[t]
1449        })
1450    }
1451    e.extend(!0, e.fancybox.defaults, {
1452        btnTpl: {
1453            share: '<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z"/></svg></button>'
1454        },
1455        share: {
1456            url: function (t, e) {
1457                return !t.currentHash && "inline" !== e.type && "html" !== e.type && (e.origSrc || e.src) || window.location
1458            },
1459            tpl: '<div class="fancybox-share"><h1>{{SHARE}}</h1><p><a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg><span>Facebook</span></a><a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg><span>Twitter</span></a><a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg><span>Pinterest</span></a></p><p><input class="fancybox-share__input" type="text" value="{{url_raw}}" onclick="select()" /></p></div>'
1460        }
1461    }), e(t).on("click", "[data-fancybox-share]", function () {
1462        var t, o, i = e.fancybox.getInstance(),
1463            a = i.current || null;
1464        a && ("function" === e.type(a.opts.share.url) && (t = a.opts.share.url.apply(a, [i, a])), o = a.opts.share.tpl.replace(/\{\{media\}\}/g, "image" === a.type ? encodeURIComponent(a.src) : "").replace(/\{\{url\}\}/g, encodeURIComponent(t)).replace(/\{\{url_raw\}\}/g, n(t)).replace(/\{\{descr\}\}/g, i.$caption ? encodeURIComponent(i.$caption.text()) : ""), e.fancybox.open({
1465            src: i.translate(i, o),
1466            type: "html",
1467            opts: {
1468                touch: !1,
1469                animationEffect: !1,
1470                afterLoad: function (t, e) {
1471                    i.$refs.container.one("beforeClose.fb", function () {
1472                        t.close(null, 0)
1473                    }), e.$content.find(".fancybox-share__button").click(function () {
1474                        return window.open(this.href, "Share", "width=550, height=450"), !1
1475                    })
1476                },
1477                mobile: {
1478                    autoFocus: !1
1479                }
1480            }
1481        }))
1482    })
1483}(document, jQuery),
1484function (t, e, n) {
1485    "use strict";
1486
1487    function o() {
1488        var e = t.location.hash.substr(1),
1489            n = e.split("-"),
1490            o = n.length > 1 && /^\+?\d+$/.test(n[n.length - 1]) ? parseInt(n.pop(-1), 10) || 1 : 1,
1491            i = n.join("-");
1492        return {
1493            hash: e,
1494            index: o < 1 ? 1 : o,
1495            gallery: i
1496        }
1497    }
1498
1499    function i(t) {
1500        "" !== t.gallery && n("[data-fancybox='" + n.escapeSelector(t.gallery) + "']").eq(t.index - 1).focus().trigger("click.fb-start")
1501    }
1502
1503    function a(t) {
1504        var e, n;
1505        return !!t && (e = t.current ? t.current.opts : t.opts, "" !== (n = e.hash || (e.$orig ? e.$orig.data("fancybox") || e.$orig.data("fancybox-trigger") : "")) && n)
1506    }
1507    n.escapeSelector || (n.escapeSelector = function (t) {
1508        return (t + "").replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, function (t, e) {
1509            return e ? "\0" === t ? "�" : t.slice(0, -1) + "\\" + t.charCodeAt(t.length - 1).toString(16) + " " : "\\" + t
1510        })
1511    }), n(function () {
1512        !1 !== n.fancybox.defaults.hash && (n(e).on({
1513            "onInit.fb": function (t, e) {
1514                var n, i;
1515                !1 !== e.group[e.currIndex].opts.hash && (n = o(), (i = a(e)) && n.gallery && i == n.gallery && (e.currIndex = n.index - 1))
1516            },
1517            "beforeShow.fb": function (n, o, i, s) {
1518                var r;
1519                i && !1 !== i.opts.hash && (r = a(o)) && (o.currentHash = r + (o.group.length > 1 ? "-" + (i.index + 1) : ""), t.location.hash !== "#" + o.currentHash && (s && !o.origHash && (o.origHash = t.location.hash), o.hashTimer && clearTimeout(o.hashTimer), o.hashTimer = setTimeout(function () {
1520                    "replaceState" in t.history ? (t.history[s ? "pushState" : "replaceState"]({}, e.title, t.location.pathname + t.location.search + "#" + o.currentHash), s && (o.hasCreatedHistory = !0)) : t.location.hash = o.currentHash, o.hashTimer = null
1521                }, 300)))
1522            },
1523            "beforeClose.fb": function (n, o, i) {
1524                i && !1 !== i.opts.hash && (clearTimeout(o.hashTimer), o.currentHash && o.hasCreatedHistory ? t.history.back() : o.currentHash && ("replaceState" in t.history ? t.history.replaceState({}, e.title, t.location.pathname + t.location.search + (o.origHash || "")) : t.location.hash = o.origHash), o.currentHash = null)
1525            }
1526        }), n(t).on("hashchange.fb", function () {
1527            var t = o(),
1528                e = null;
1529            n.each(n(".fancybox-container").get().reverse(), function (t, o) {
1530                var i = n(o).data("FancyBox");
1531                if (i && i.currentHash) return e = i, !1
1532            }), e ? e.currentHash === t.gallery + "-" + t.index || 1 === t.index && e.currentHash == t.gallery || (e.currentHash = null, e.close()) : "" !== t.gallery && i(t)
1533        }), setTimeout(function () {
1534            n.fancybox.getInstance() || i(o())
1535        }, 50))
1536    })
1537}(window, document, jQuery),
1538function (t, e) {
1539    "use strict";
1540    var n = (new Date).getTime();
1541    e(t).on({
1542        "onInit.fb": function (t, e, o) {
1543            e.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll", function (t) {
1544                var o = e.current,
1545                    i = (new Date).getTime();
1546                e.group.length < 2 || !1 === o.opts.wheel || "auto" === o.opts.wheel && "image" !== o.type || (t.preventDefault(), t.stopPropagation(), o.$slide.hasClass("fancybox-animated") || (t = t.originalEvent || t, i - n < 250 || (n = i, e[(-t.deltaY || -t.deltaX || t.wheelDelta || -t.detail) < 0 ? "next" : "previous"]())))
1547            })
1548        }
1549    })
1550}(document, jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.