PageSourceSearch

https://vnpost.vn/apps/frontend/js/owl.carousel.min.js

js vnpost.vn collected 2026-10-01 12:11:35 UTC 71,669 bytes, 2,054 lines download raw bytes

1/**
2 * Owl Carousel v2.3.4
3 * Copyright 2013-2018 David Deutsch
4 * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
5 */
6!(function (a, b, c, d) {
7  function e(b, c) {
8    (this.settings = null),
9      (this.options = a.extend({}, e.Defaults, c)),
10      (this.$element = a(b)),
11      (this._handlers = {}),
12      (this._plugins = {}),
13      (this._supress = {}),
14      (this._current = null),
15      (this._speed = null),
16      (this._coordinates = []),
17      (this._breakpoint = null),
18      (this._width = null),
19      (this._items = []),
20      (this._clones = []),
21      (this._mergers = []),
22      (this._widths = []),
23      (this._invalidated = {}),
24      (this._pipe = []),
25      (this._drag = {
26        time: null,
27        target: null,
28        pointer: null,
29        stage: { start: null, current: null },
30        direction: null,
31      }),
32      (this._states = {
33        current: {},
34        tags: {
35          initializing: ["busy"],
36          animating: ["busy"],
37          dragging: ["interacting"],
38        },
39      }),
40      a.each(
41        ["onResize", "onThrottledResize"],
42        a.proxy(function (b, c) {
43          this._handlers[c] = a.proxy(this[c], this);
44        }, this)
45      ),
46      a.each(
47        e.Plugins,
48        a.proxy(function (a, b) {
49          this._plugins[a.charAt(0).toLowerCase() + a.slice(1)] = new b(this);
50        }, this)
51      ),
52      a.each(
53        e.Workers,
54        a.proxy(function (b, c) {
55          this._pipe.push({ filter: c.filter, run: a.proxy(c.run, this) });
56        }, this)
57      ),
58      this.setup(),
59      this.initialize();
60  }
61  (e.Defaults = {
62    items: 3,
63    loop: !1,
64    center: !1,
65    rewind: !1,
66    checkVisibility: !0,
67    mouseDrag: !0,
68    touchDrag: !0,
69    pullDrag: !0,
70    freeDrag: !1,
71    margin: 0,
72    stagePadding: 0,
73    merge: !1,
74    mergeFit: !0,
75    autoWidth: !1,
76    startPosition: 0,
77    rtl: !1,
78    smartSpeed: 250,
79    fluidSpeed: !1,
80    dragEndSpeed: !1,
81    responsive: {},
82    responsiveRefreshRate: 200,
83    responsiveBaseElement: b,
84    fallbackEasing: "swing",
85    slideTransition: "",
86    info: !1,
87    nestedItemSelector: !1,
88    itemElement: "div",
89    stageElement: "div",
90    refreshClass: "owl-refresh",
91    loadedClass: "owl-loaded",
92    loadingClass: "owl-loading",
93    rtlClass: "owl-rtl",
94    responsiveClass: "owl-responsive",
95    dragClass: "owl-drag",
96    itemClass: "owl-item",
97    stageClass: "owl-stage",
98    stageOuterClass: "owl-stage-outer",
99    grabClass: "owl-grab",
100  }),
101    (e.Width = { Default: "default", Inner: "inner", Outer: "outer" }),
102    (e.Type = { Event: "event", State: "state" }),
103    (e.Plugins = {}),
104    (e.Workers = [
105      {
106        filter: ["width", "settings"],
107        run: function () {
108          this._width = this.$element.width();
109        },
110      },
111      {
112        filter: ["width", "items", "settings"],
113        run: function (a) {
114          a.current = this._items && this._items[this.relative(this._current)];
115        },
116      },
117      {
118        filter: ["items", "settings"],
119        run: function () {
120          this.$stage.children(".cloned").remove();
121        },
122      },
123      {
124        filter: ["width", "items", "settings"],
125        run: function (a) {
126          var b = this.settings.margin || "",
127            c = !this.settings.autoWidth,
128            d = this.settings.rtl,
129            e = {
130              width: "auto",
131              "margin-left": d ? b : "",
132              "margin-right": d ? "" : b,
133            };
134          !c && this.$stage.children().css(e), (a.css = e);
135        },
136      },
137      {
138        filter: ["width", "items", "settings"],
139        run: function (a) {
140          var b =
141              (this.width() / this.settings.items).toFixed(3) -
142              this.settings.margin,
143            c = null,
144            d = this._items.length,
145            e = !this.settings.autoWidth,
146            f = [];
147          for (a.items = { merge: !1, width: b }; d--; )
148            (c = this._mergers[d]),
149              (c =
150                (this.settings.mergeFit && Math.min(c, this.settings.items)) ||
151                c),
152              (a.items.merge = c > 1 || a.items.merge),
153              (f[d] = e ? b * c : this._items[d].width());
154          this._widths = f;
155        },
156      },
157      {
158        filter: ["items", "settings"],
159        run: function () {
160          var b = [],
161            c = this._items,
162            d = this.settings,
163            e = Math.max(2 * d.items, 4),
164            f = 2 * Math.ceil(c.length / 2),
165            g = d.loop && c.length ? (d.rewind ? e : Math.max(e, f)) : 0,
166            h = "",
167            i = "";
168          for (g /= 2; g > 0; )
169            b.push(this.normalize(b.length / 2, !0)),
170              (h += c[b[b.length - 1]][0].outerHTML),
171              b.push(this.normalize(c.length - 1 - (b.length - 1) / 2, !0)),
172              (i = c[b[b.length - 1]][0].outerHTML + i),
173              (g -= 1);
174          (this._clones = b),
175            a(h).addClass("cloned").appendTo(this.$stage),
176            a(i).addClass("cloned").prependTo(this.$stage);
177        },
178      },
179      {
180        filter: ["width", "items", "settings"],
181        run: function () {
182          for (
183            var a = this.settings.rtl ? 1 : -1,
184              b = this._clones.length + this._items.length,
185              c = -1,
186              d = 0,
187              e = 0,
188              f = [];
189            ++c < b;
190
191          )
192            (d = f[c - 1] || 0),
193              (e = this._widths[this.relative(c)] + this.settings.margin),
194              f.push(d + e * a);
195          this._coordinates = f;
196        },
197      },
198      {
199        filter: ["width", "items", "settings"],
200        run: function () {
201          var a = this.settings.stagePadding,
202            b = this._coordinates,
203            c = {
204              width: Math.ceil(Math.abs(b[b.length - 1])) + 2 * a,
205              "padding-left": a || "",
206              "padding-right": a || "",
207            };
208          this.$stage.css(c);
209        },
210      },
211      {
212        filter: ["width", "items", "settings"],
213        run: function (a) {
214          var b = this._coordinates.length,
215            c = !this.settings.autoWidth,
216            d = this.$stage.children();
217          if (c && a.items.merge)
218            for (; b--; )
219              (a.css.width = this._widths[this.relative(b)]),
220                d.eq(b).css(a.css);
221          else c && ((a.css.width = a.items.width), d.css(a.css));
222        },
223      },
224      {
225        filter: ["items"],
226        run: function () {
227          this._coordinates.length < 1 && this.$stage.removeAttr("style");
228        },
229      },
230      {
231        filter: ["width", "items", "settings"],
232        run: function (a) {
233          (a.current = a.current ? this.$stage.children().index(a.current) : 0),
234            (a.current = Math.max(
235              this.minimum(),
236              Math.min(this.maximum(), a.current)
237            )),
238            this.reset(a.current);
239        },
240      },
241      {
242        filter: ["position"],
243        run: function () {
244          this.animate(this.coordinates(this._current));
245        },
246      },
247      {
248        filter: ["width", "position", "items", "settings"],
249        run: function () {
250          var a,
251            b,
252            c,
253            d,
254            e = this.settings.rtl ? 1 : -1,
255            f = 2 * this.settings.stagePadding,
256            g = this.coordinates(this.current()) + f,
257            h = g + this.width() * e,
258            i = [];
259          for (c = 0, d = this._coordinates.length; c < d; c++)
260            (a = this._coordinates[c - 1] || 0),
261              (b = Math.abs(this._coordinates[c]) + f * e),
262              ((this.op(a, "<=", g) && this.op(a, ">", h)) ||
263                (this.op(b, "<", g) && this.op(b, ">", h))) &&
264                i.push(c);
265          this.$stage.children(".active").removeClass("active"),
266            this.$stage
267              .children(":eq(" + i.join("), :eq(") + ")")
268              .addClass("active"),
269            this.$stage.children(".center").removeClass("center"),
270            this.settings.center &&
271              this.$stage.children().eq(this.current()).addClass("center");
272        },
273      },
274    ]),
275    (e.prototype.initializeStage = function () {
276      (this.$stage = this.$element.find("." + this.settings.stageClass)),
277        this.$stage.length ||
278          (this.$element.addClass(this.options.loadingClass),
279          (this.$stage = a("<" + this.settings.stageElement + ">", {
280            class: this.settings.stageClass,
281          }).wrap(a("<div/>", { class: this.settings.stageOuterClass }))),
282          this.$element.append(this.$stage.parent()));
283    }),
284    (e.prototype.initializeItems = function () {
285      var b = this.$element.find(".owl-item");
286      if (b.length)
287        return (
288          (this._items = b.get().map(function (b) {
289            return a(b);
290          })),
291          (this._mergers = this._items.map(function () {
292            return 1;
293          })),
294          void this.refresh()
295        );
296      this.replace(this.$element.children().not(this.$stage.parent())),
297        this.isVisible() ? this.refresh() : this.invalidate("width"),
298        this.$element
299          .removeClass(this.options.loadingClass)
300          .addClass(this.options.loadedClass);
301    }),
302    (e.prototype.initialize = function () {
303      if (
304        (this.enter("initializing"),
305        this.trigger("initialize"),
306        this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl),
307        this.settings.autoWidth && !this.is("pre-loading"))
308      ) {
309        var a, b, c;
310        (a = this.$element.find("img")),
311          (b = this.settings.nestedItemSelector
312            ? "." + this.settings.nestedItemSelector
313            : d),
314          (c = this.$element.children(b).width()),
315          a.length && c <= 0 && this.preloadAutoWidthImages(a);
316      }
317      this.initializeStage(),
318        this.initializeItems(),
319        this.registerEventHandlers(),
320        this.leave("initializing"),
321        this.trigger("initialized");
322    }),
323    (e.prototype.isVisible = function () {
324      return !this.settings.checkVisibility || this.$element.is(":visible");
325    }),
326    (e.prototype.setup = function () {
327      var b = this.viewport(),
328        c = this.options.responsive,
329        d = -1,
330        e = null;
331      c
332        ? (a.each(c, function (a) {
333            a <= b && a > d && (d = Number(a));
334          }),
335          (e = a.extend({}, this.options, c[d])),
336          "function" == typeof e.stagePadding &&
337            (e.stagePadding = e.stagePadding()),
338          delete e.responsive,
339          e.responsiveClass &&
340            this.$element.attr(
341              "class",
342              this.$element
343                .attr("class")
344                .replace(
345                  new RegExp(
346                    "(" + this.options.responsiveClass + "-)\\S+\\s",
347                    "g"
348                  ),
349                  "$1" + d
350                )
351            ))
352        : (e = a.extend({}, this.options)),
353        this.trigger("change", { property: { name: "settings", value: e } }),
354        (this._breakpoint = d),
355        (this.settings = e),
356        this.invalidate("settings"),
357        this.trigger("changed", {
358          property: { name: "settings", value: this.settings },
359        });
360    }),
361    (e.prototype.optionsLogic = function () {
362      this.settings.autoWidth &&
363        ((this.settings.stagePadding = !1), (this.settings.merge = !1));
364    }),
365    (e.prototype.prepare = function (b) {
366      var c = this.trigger("prepare", { content: b });
367      return (
368        c.data ||
369          (c.data = a("<" + this.settings.itemElement + "/>")
370            .addClass(this.options.itemClass)
371            .append(b)),
372        this.trigger("prepared", { content: c.data }),
373        c.data
374      );
375    }),
376    (e.prototype.update = function () {
377      for (
378        var b = 0,
379          c = this._pipe.length,
380          d = a.proxy(function (a) {
381            return this[a];
382          }, this._invalidated),
383          e = {};
384        b < c;
385
386      )
387        (this._invalidated.all || a.grep(this._pipe[b].filter, d).length > 0) &&
388          this._pipe[b].run(e),
389          b++;
390      (this._invalidated = {}), !this.is("valid") && this.enter("valid");
391    }),
392    (e.prototype.width = function (a) {
393      switch ((a = a || e.Width.Default)) {
394        case e.Width.Inner:
395        case e.Width.Outer:
396          return this._width;
397        default:
398          return (
399            this._width - 2 * this.settings.stagePadding + this.settings.margin
400          );
401      }
402    }),
403    (e.prototype.refresh = function () {
404      this.enter("refreshing"),
405        this.trigger("refresh"),
406        this.setup(),
407        this.optionsLogic(),
408        this.$element.addClass(this.options.refreshClass),
409        this.update(),
410        this.$element.removeClass(this.options.refreshClass),
411        this.leave("refreshing"),
412        this.trigger("refreshed");
413    }),
414    (e.prototype.onThrottledResize = function () {
415      b.clearTimeout(this.resizeTimer),
416        (this.resizeTimer = b.setTimeout(
417          this._handlers.onResize,
418          this.settings.responsiveRefreshRate
419        ));
420    }),
421    (e.prototype.onResize = function () {
422      return (
423        !!this._items.length &&
424        this._width !== this.$element.width() &&
425        !!this.isVisible() &&
426        (this.enter("resizing"),
427        this.trigger("resize").isDefaultPrevented()
428          ? (this.leave("resizing"), !1)
429          : (this.invalidate("width"),
430            this.refresh(),
431            this.leave("resizing"),
432            void this.trigger("resized")))
433      );
434    }),
435    (e.prototype.registerEventHandlers = function () {
436      a.support.transition &&
437        this.$stage.on(
438          a.support.transition.end + ".owl.core",
439          a.proxy(this.onTransitionEnd, this)
440        ),
441        !1 !== this.settings.responsive &&
442          this.on(b, "resize", this._handlers.onThrottledResize),
443        this.settings.mouseDrag &&
444          (this.$element.addClass(this.options.dragClass),
445          this.$stage.on("mousedown.owl.core", a.proxy(this.onDragStart, this)),
446          this.$stage.on(
447            "dragstart.owl.core selectstart.owl.core",
448            function () {
449              return !1;
450            }
451          )),
452        this.settings.touchDrag &&
453          (this.$stage.on(
454            "touchstart.owl.core",
455            a.proxy(this.onDragStart, this)
456          ),
457          this.$stage.on(
458            "touchcancel.owl.core",
459            a.proxy(this.onDragEnd, this)
460          ));
461    }),
462    (e.prototype.onDragStart = function (b) {
463      var d = null;
464      3 !== b.which &&
465        (a.support.transform
466          ? ((d = this.$stage
467              .css("transform")
468              .replace(/.*\(|\)| /g, "")
469              .split(",")),
470            (d = {
471              x: d[16 === d.length ? 12 : 4],
472              y: d[16 === d.length ? 13 : 5],
473            }))
474          : ((d = this.$stage.position()),
475            (d = {
476              x: this.settings.rtl
477                ? d.left +
478                  this.$stage.width() -
479                  this.width() +
480                  this.settings.margin
481                : d.left,
482              y: d.top,
483            })),
484        this.is("animating") &&
485          (a.support.transform ? this.animate(d.x) : this.$stage.stop(),
486          this.invalidate("position")),
487        this.$element.toggleClass(
488          this.options.grabClass,
489          "mousedown" === b.type
490        ),
491        this.speed(0),
492        (this._drag.time = new Date().getTime()),
493        (this._drag.target = a(b.target)),
494        (this._drag.stage.start = d),
495        (this._drag.stage.current = d),
496        (this._drag.pointer = this.pointer(b)),
497        a(c).on(
498          "mouseup.owl.core touchend.owl.core",
499          a.proxy(this.onDragEnd, this)
500        ),
501        a(c).one(
502          "mousemove.owl.core touchmove.owl.core",
503          a.proxy(function (b) {
504            var d = this.difference(this._drag.pointer, this.pointer(b));
505            a(c).on(
506              "mousemove.owl.core touchmove.owl.core",
507              a.proxy(this.onDragMove, this)
508            ),
509              (Math.abs(d.x) < Math.abs(d.y) && this.is("valid")) ||
510                (b.preventDefault(),
511                this.enter("dragging"),
512                this.trigger("drag"));
513          }, this)
514        ));
515    }),
516    (e.prototype.onDragMove = function (a) {
517      var b = null,
518        c = null,
519        d = null,
520        e = this.difference(this._drag.pointer, this.pointer(a)),
521        f = this.difference(this._drag.stage.start, e);
522      this.is("dragging") &&
523        (a.preventDefault(),
524        this.settings.loop
525          ? ((b = this.coordinates(this.minimum())),
526            (c = this.coordinates(this.maximum() + 1) - b),
527            (f.x = ((((f.x - b) % c) + c) % c) + b))
528          : ((b = this.settings.rtl
529              ? this.coordinates(this.maximum())
530              : this.coordinates(this.minimum())),
531            (c = this.settings.rtl
532              ? this.coordinates(this.minimum())
533              : this.coordinates(this.maximum())),
534            (d = this.settings.pullDrag ? (-1 * e.x) / 5 : 0),
535            (f.x = Math.max(Math.min(f.x, b + d), c + d))),
536        (this._drag.stage.current = f),
537        this.animate(f.x));
538    }),
539    (e.prototype.onDragEnd = function (b) {
540      var d = this.difference(this._drag.pointer, this.pointer(b)),
541        e = this._drag.stage.current,
542        f = (d.x > 0) ^ this.settings.rtl ? "left" : "right";
543      a(c).off(".owl.core"),
544        this.$element.removeClass(this.options.grabClass),
545        ((0 !== d.x && this.is("dragging")) || !this.is("valid")) &&
546          (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed),
547          this.current(this.closest(e.x, 0 !== d.x ? f : this._drag.direction)),
548          this.invalidate("position"),
549          this.update(),
550          (this._drag.direction = f),
551          (Math.abs(d.x) > 3 || new Date().getTime() - this._drag.time > 300) &&
552            this._drag.target.one("click.owl.core", function () {
553              return !1;
554            })),
555        this.is("dragging") &&
556          (this.leave("dragging"), this.trigger("dragged"));
557    }),
558    (e.prototype.closest = function (b, c) {
559      var e = -1,
560        f = 30,
561        g = this.width(),
562        h = this.coordinates();
563      return (
564        this.settings.freeDrag ||
565          a.each(
566            h,
567            a.proxy(function (a, i) {
568              return (
569                "left" === c && b > i - f && b < i + f
570                  ? (e = a)
571                  : "right" === c && b > i - g - f && b < i - g + f
572                  ? (e = a + 1)
573                  : this.op(b, "<", i) &&
574                    this.op(b, ">", h[a + 1] !== d ? h[a + 1] : i - g) &&
575                    (e = "left" === c ? a + 1 : a),
576                -1 === e
577              );
578            }, this)
579          ),
580        this.settings.loop ||
581          (this.op(b, ">", h[this.minimum()])
582            ? (e = b = this.minimum())
583            : this.op(b, "<", h[this.maximum()]) && (e = b = this.maximum())),
584        e
585      );
586    }),
587    (e.prototype.animate = function (b) {
588      var c = this.speed() > 0;
589      this.is("animating") && this.onTransitionEnd(),
590        c && (this.enter("animating"), this.trigger("translate")),
591        a.support.transform3d && a.support.transition
592          ? this.$stage.css({
593              transform: "translate3d(" + b + "px,0px,0px)",
594              transition:
595                this.speed() / 1e3 +
596                "s" +
597                (this.settings.slideTransition
598                  ? " " + this.settings.slideTransition
599                  : ""),
600            })
601          : c
602          ? this.$stage.animate(
603              { left: b + "px" },
604              this.speed(),
605              this.settings.fallbackEasing,
606              a.proxy(this.onTransitionEnd, this)
607            )
608          : this.$stage.css({ left: b + "px" });
609    }),
610    (e.prototype.is = function (a) {
611      return this._states.current[a] && this._states.current[a] > 0;
612    }),
613    (e.prototype.current = function (a) {
614      if (a === d) return this._current;
615      if (0 === this._items.length) return d;
616      if (((a = this.normalize(a)), this._current !== a)) {
617        var b = this.trigger("change", {
618          property: { name: "position", value: a },
619        });
620        b.data !== d && (a = this.normalize(b.data)),
621          (this._current = a),
622          this.invalidate("position"),
623          this.trigger("changed", {
624            property: { name: "position", value: this._current },
625          });
626      }
627      return this._current;
628    }),
629    (e.prototype.invalidate = function (b) {
630      return (
631        "string" === a.type(b) &&
632          ((this._invalidated[b] = !0),
633          this.is("valid") && this.leave("valid")),
634        a.map(this._invalidated, function (a, b) {
635          return b;
636        })
637      );
638    }),
639    (e.prototype.reset = function (a) {
640      (a = this.normalize(a)) !== d &&
641        ((this._speed = 0),
642        (this._current = a),
643        this.suppress(["translate", "translated"]),
644        this.animate(this.coordinates(a)),
645        this.release(["translate", "translated"]));
646    }),
647    (e.prototype.normalize = function (a, b) {
648      var c = this._items.length,
649        e = b ? 0 : this._clones.length;
650      return (
651        !this.isNumeric(a) || c < 1
652          ? (a = d)
653          : (a < 0 || a >= c + e) &&
654            (a = ((((a - e / 2) % c) + c) % c) + e / 2),
655        a
656      );
657    }),
658    (e.prototype.relative = function (a) {
659      return (a -= this._clones.length / 2), this.normalize(a, !0);
660    }),
661    (e.prototype.maximum = function (a) {
662      var b,
663        c,
664        d,
665        e = this.settings,
666        f = this._coordinates.length;
667      if (e.loop) f = this._clones.length / 2 + this._items.length - 1;
668      else if (e.autoWidth || e.merge) {
669        if ((b = this._items.length))
670          for (
671            c = this._items[--b].width(), d = this.$element.width();
672            b-- && !((c += this._items[b].width() + this.settings.margin) > d);
673
674          );
675        f = b + 1;
676      } else
677        f = e.center ? this._items.length - 1 : this._items.length - e.items;
678      return a && (f -= this._clones.length / 2), Math.max(f, 0);
679    }),
680    (e.prototype.minimum = function (a) {
681      return a ? 0 : this._clones.length / 2;
682    }),
683    (e.prototype.items = function (a) {
684      return a === d
685        ? this._items.slice()
686        : ((a = this.normalize(a, !0)), this._items[a]);
687    }),
688    (e.prototype.mergers = function (a) {
689      return a === d
690        ? this._mergers.slice()
691        : ((a = this.normalize(a, !0)), this._mergers[a]);
692    }),
693    (e.prototype.clones = function (b) {
694      var c = this._clones.length / 2,
695        e = c + this._items.length,
696        f = function (a) {
697          return a % 2 == 0 ? e + a / 2 : c - (a + 1) / 2;
698        };
699      return b === d
700        ? a.map(this._clones, function (a, b) {
701            return f(b);
702          })
703        : a.map(this._clones, function (a, c) {
704            return a === b ? f(c) : null;
705          });
706    }),
707    (e.prototype.speed = function (a) {
708      return a !== d && (this._speed = a), this._speed;
709    }),
710    (e.prototype.coordinates = function (b) {
711      var c,
712        e = 1,
713        f = b - 1;
714      return b === d
715        ? a.map(
716            this._coordinates,
717            a.proxy(function (a, b) {
718              return this.coordinates(b);
719            }, this)
720          )
721        : (this.settings.center
722            ? (this.settings.rtl && ((e = -1), (f = b + 1)),
723              (c = this._coordinates[b]),
724              (c += ((this.width() - c + (this._coordinates[f] || 0)) / 2) * e))
725            : (c = this._coordinates[f] || 0),
726          (c = Math.ceil(c)));
727    }),
728    (e.prototype.duration = function (a, b, c) {
729      return 0 === c
730        ? 0
731        : Math.min(Math.max(Math.abs(b - a), 1), 6) *
732            Math.abs(c || this.settings.smartSpeed);
733    }),
734    (e.prototype.to = function (a, b) {
735      var c = this.current(),
736        d = null,
737        e = a - this.relative(c),
738        f = (e > 0) - (e < 0),
739        g = this._items.length,
740        h = this.minimum(),
741        i = this.maximum();
742      this.settings.loop
743        ? (!this.settings.rewind && Math.abs(e) > g / 2 && (e += -1 * f * g),
744          (a = c + e),
745          (d = ((((a - h) % g) + g) % g) + h) !== a &&
746            d - e <= i &&
747            d - e > 0 &&
748            ((c = d - e), (a = d), this.reset(c)))
749        : this.settings.rewind
750        ? ((i += 1), (a = ((a % i) + i) % i))
751        : (a = Math.max(h, Math.min(i, a))),
752        this.speed(this.duration(c, a, b)),
753        this.current(a),
754        this.isVisible() && this.update();
755    }),
756    (e.prototype.next = function (a) {
757      (a = a || !1), this.to(this.relative(this.current()) + 1, a);
758    }),
759    (e.prototype.prev = function (a) {
760      (a = a || !1), this.to(this.relative(this.current()) - 1, a);
761    }),
762    (e.prototype.onTransitionEnd = function (a) {
763      if (
764        a !== d &&
765        (a.stopPropagation(),
766        (a.target || a.srcElement || a.originalTarget) !== this.$stage.get(0))
767      )
768        return !1;
769      this.leave("animating"), this.trigger("translated");
770    }),
771    (e.prototype.viewport = function () {
772      var d;
773      return (
774        this.options.responsiveBaseElement !== b
775          ? (d = a(this.options.responsiveBaseElement).width())
776          : b.innerWidth
777          ? (d = b.innerWidth)
778          : c.documentElement && c.documentElement.clientWidth
779          ? (d = c.documentElement.clientWidth)
780          : console.warn("Can not detect viewport width."),
781        d
782      );
783    }),
784    (e.prototype.replace = function (b) {
785      this.$stage.empty(),
786        (this._items = []),
787        b && (b = b instanceof jQuery ? b : a(b)),
788        this.settings.nestedItemSelector &&
789          (b = b.find("." + this.settings.nestedItemSelector)),
790        b
791          .filter(function () {
792            return 1 === this.nodeType;
793          })
794          .each(
795            a.proxy(function (a, b) {
796              (b = this.prepare(b)),
797                this.$stage.append(b),
798                this._items.push(b),
799                this._mergers.push(
800                  1 *
801                    b
802                      .find("[data-merge]")
803                      .addBack("[data-merge]")
804                      .attr("data-merge") || 1
805                );
806            }, this)
807          ),
808        this.reset(
809          this.isNumeric(this.settings.startPosition)
810            ? this.settings.startPosition
811            : 0
812        ),
813        this.invalidate("items");
814    }),
815    (e.prototype.add = function (b, c) {
816      var e = this.relative(this._current);
817      (c = c === d ? this._items.length : this.normalize(c, !0)),
818        (b = b instanceof jQuery ? b : a(b)),
819        this.trigger("add", { content: b, position: c }),
820        (b = this.prepare(b)),
821        0 === this._items.length || c === this._items.length
822          ? (0 === this._items.length && this.$stage.append(b),
823            0 !== this._items.length && this._items[c - 1].after(b),
824            this._items.push(b),
825            this._mergers.push(
826              1 *
827                b
828                  .find("[data-merge]")
829                  .addBack("[data-merge]")
830                  .attr("data-merge") || 1
831            ))
832          : (this._items[c].before(b),
833            this._items.splice(c, 0, b),
834            this._mergers.splice(
835              c,
836              0,
837              1 *
838                b
839                  .find("[data-merge]")
840                  .addBack("[data-merge]")
841                  .attr("data-merge") || 1
842            )),
843        this._items[e] && this.reset(this._items[e].index()),
844        this.invalidate("items"),
845        this.trigger("added", { content: b, position: c });
846    }),
847    (e.prototype.remove = function (a) {
848      (a = this.normalize(a, !0)) !== d &&
849        (this.trigger("remove", { content: this._items[a], position: a }),
850        this._items[a].remove(),
851        this._items.splice(a, 1),
852        this._mergers.splice(a, 1),
853        this.invalidate("items"),
854        this.trigger("removed", { content: null, position: a }));
855    }),
856    (e.prototype.preloadAutoWidthImages = function (b) {
857      b.each(
858        a.proxy(function (b, c) {
859          this.enter("pre-loading"),
860            (c = a(c)),
861            a(new Image())
862              .one(
863                "load",
864                a.proxy(function (a) {
865                  c.attr("src", a.target.src),
866                    c.css("opacity", 1),
867                    this.leave("pre-loading"),
868                    !this.is("pre-loading") &&
869                      !this.is("initializing") &&
870                      this.refresh();
871                }, this)
872              )
873              .attr(
874                "src",
875                c.attr("src") || c.attr("data-src") || c.attr("data-src-retina")
876              );
877        }, this)
878      );
879    }),
880    (e.prototype.destroy = function () {
881      this.$element.off(".owl.core"),
882        this.$stage.off(".owl.core"),
883        a(c).off(".owl.core"),
884        !1 !== this.settings.responsive &&
885          (b.clearTimeout(this.resizeTimer),
886          this.off(b, "resize", this._handlers.onThrottledResize));
887      for (var d in this._plugins) this._plugins[d].destroy();
888      this.$stage.children(".cloned").remove(),
889        this.$stage.unwrap(),
890        this.$stage.children().contents().unwrap(),
891        this.$stage.children().unwrap(),
892        this.$stage.remove(),
893        this.$element
894          .removeClass(this.options.refreshClass)
895          .removeClass(this.options.loadingClass)
896          .removeClass(this.options.loadedClass)
897          .removeClass(this.options.rtlClass)
898          .removeClass(this.options.dragClass)
899          .removeClass(this.options.grabClass)
900          .attr(
901            "class",
902            this.$element
903              .attr("class")
904              .replace(
905                new RegExp(this.options.responsiveClass + "-\\S+\\s", "g"),
906                ""
907              )
908          )
909          .removeData("owl.carousel");
910    }),
911    (e.prototype.op = function (a, b, c) {
912      var d = this.settings.rtl;
913      switch (b) {
914        case "<":
915          return d ? a > c : a < c;
916        case ">":
917          return d ? a < c : a > c;
918        case ">=":
919          return d ? a <= c : a >= c;
920        case "<=":
921          return d ? a >= c : a <= c;
922      }
923    }),
924    (e.prototype.on = function (a, b, c, d) {
925      a.addEventListener
926        ? a.addEventListener(b, c, d)
927        : a.attachEvent && a.attachEvent("on" + b, c);
928    }),
929    (e.prototype.off = function (a, b, c, d) {
930      a.removeEventListener
931        ? a.removeEventListener(b, c, d)
932        : a.detachEvent && a.detachEvent("on" + b, c);
933    }),
934    (e.prototype.trigger = function (b, c, d, f, g) {
935      var h = { item: { count: this._items.length, index: this.current() } },
936        i = a.camelCase(
937          a
938            .grep(["on", b, d], function (a) {
939              return a;
940            })
941            .join("-")
942            .toLowerCase()
943        ),
944        j = a.Event(
945          [b, "owl", d || "carousel"].join(".").toLowerCase(),
946          a.extend({ relatedTarget: this }, h, c)
947        );
948      return (
949        this._supress[b] ||
950          (a.each(this._plugins, function (a, b) {
951            b.onTrigger && b.onTrigger(j);
952          }),
953          this.register({ type: e.Type.Event, name: b }),
954          this.$element.trigger(j),
955          this.settings &&
956            "function" == typeof this.settings[i] &&
957            this.settings[i].call(this, j)),
958        j
959      );
960    }),
961    (e.prototype.enter = function (b) {
962      a.each(
963        [b].concat(this._states.tags[b] || []),
964        a.proxy(function (a, b) {
965          this._states.current[b] === d && (this._states.current[b] = 0),
966            this._states.current[b]++;
967        }, this)
968      );
969    }),
970    (e.prototype.leave = function (b) {
971      a.each(
972        [b].concat(this._states.tags[b] || []),
973        a.proxy(function (a, b) {
974          this._states.current[b]--;
975        }, this)
976      );
977    }),
978    (e.prototype.register = function (b) {
979      if (b.type === e.Type.Event) {
980        if (
981          (a.event.special[b.name] || (a.event.special[b.name] = {}),
982          !a.event.special[b.name].owl)
983        ) {
984          var c = a.event.special[b.name]._default;
985          (a.event.special[b.name]._default = function (a) {
986            return !c ||
987              !c.apply ||
988              (a.namespace && -1 !== a.namespace.indexOf("owl"))
989              ? a.namespace && a.namespace.indexOf("owl") > -1
990              : c.apply(this, arguments);
991          }),
992            (a.event.special[b.name].owl = !0);
993        }
994      } else
995        b.type === e.Type.State &&
996          (this._states.tags[b.name]
997            ? (this._states.tags[b.name] = this._states.tags[b.name].
997concat(
998                b.tags
999              ))
1000            : (this._states.tags[b.name] = b.tags),
1001          (this._states.tags[b.name] = a.grep(
1002            this._states.tags[b.name],
1003            a.proxy(function (c, d) {
1004              return a.inArray(c, this._states.tags[b.name]) === d;
1005            }, this)
1006          )));
1007    }),
1008    (e.prototype.suppress = function (b) {
1009      a.each(
1010        b,
1011        a.proxy(function (a, b) {
1012          this._supress[b] = !0;
1013        }, this)
1014      );
1015    }),
1016    (e.prototype.release = function (b) {
1017      a.each(
1018        b,
1019        a.proxy(function (a, b) {
1020          delete this._supress[b];
1021        }, this)
1022      );
1023    }),
1024    (e.prototype.pointer = function (a) {
1025      var c = { x: null, y: null };
1026      return (
1027        (a = a.originalEvent || a || b.event),
1028        (a =
1029          a.touches && a.touches.length
1030            ? a.touches[0]
1031            : a.changedTouches && a.changedTouches.length
1032            ? a.changedTouches[0]
1033            : a),
1034        a.pageX
1035          ? ((c.x = a.pageX), (c.y = a.pageY))
1036          : ((c.x = a.clientX), (c.y = a.clientY)),
1037        c
1038      );
1039    }),
1040    (e.prototype.isNumeric = function (a) {
1041      return !isNaN(parseFloat(a));
1042    }),
1043    (e.prototype.difference = function (a, b) {
1044      return { x: a.x - b.x, y: a.y - b.y };
1045    }),
1046    (a.fn.owlCarousel = function (b) {
1047      var c = Array.prototype.slice.call(arguments, 1);
1048      return this.each(function () {
1049        var d = a(this),
1050          f = d.data("owl.carousel");
1051        f ||
1052          ((f = new e(this, "object" == typeof b && b)),
1053          d.data("owl.carousel", f),
1054          a.each(
1055            [
1056              "next",
1057              "prev",
1058              "to",
1059              "destroy",
1060              "refresh",
1061              "replace",
1062              "add",
1063              "remove",
1064            ],
1065            function (b, c) {
1066              f.register({ type: e.Type.Event, name: c }),
1067                f.$element.on(
1068                  c + ".owl.carousel.core",
1069                  a.proxy(function (a) {
1070                    a.namespace &&
1071                      a.relatedTarget !== this &&
1072                      (this.suppress([c]),
1073                      f[c].apply(this, [].slice.call(arguments, 1)),
1074                      this.release([c]));
1075                  }, f)
1076                );
1077            }
1078          )),
1079          "string" == typeof b && "_" !== b.charAt(0) && f[b].apply(f, c);
1080      });
1081    }),
1082    (a.fn.owlCarousel.Constructor = e);
1083})(window.Zepto || window.jQuery, window, document),
1084  (function (a, b, c, d) {
1085    var e = function (b) {
1086      (this._core = b),
1087        (this._interval = null),
1088        (this._visible = null),
1089        (this._handlers = {
1090          "initialized.owl.carousel": a.proxy(function (a) {
1091            a.namespace && this._core.settings.autoRefresh && this.watch();
1092          }, this),
1093        }),
1094        (this._core.options = a.extend({}, e.Defaults, this._core.options)),
1095        this._core.$element.on(this._handlers);
1096    };
1097    (e.Defaults = { autoRefresh: !0, autoRefreshInterval: 500 }),
1098      (e.prototype.watch = function () {
1099        this._interval ||
1100          ((this._visible = this._core.isVisible()),
1101          (this._interval = b.setInterval(
1102            a.proxy(this.refresh, this),
1103            this._core.settings.autoRefreshInterval
1104          )));
1105      }),
1106      (e.prototype.refresh = function () {
1107        this._core.isVisible() !== this._visible &&
1108          ((this._visible = !this._visible),
1109          this._core.$element.toggleClass("owl-hidden", !this._visible),
1110          this._visible &&
1111            this._core.invalidate("width") &&
1112            this._core.refresh());
1113      }),
1114      (e.prototype.destroy = function () {
1115        var a, c;
1116        b.clearInterval(this._interval);
1117        for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
1118        for (c in Object.getOwnPropertyNames(this))
1119          "function" != typeof this[c] && (this[c] = null);
1120      }),
1121      (a.fn.owlCarousel.Constructor.Plugins.AutoRefresh = e);
1122  })(window.Zepto || window.jQuery, window, document),
1123  (function (a, b, c, d) {
1124    var e = function (b) {
1125      (this._core = b),
1126        (this._loaded = []),
1127        (this._handlers = {
1128          "initialized.owl.carousel change.owl.carousel resized.owl.carousel":
1129            a.proxy(function (b) {
1130              if (
1131                b.namespace &&
1132                this._core.settings &&
1133                this._core.settings.lazyLoad &&
1134                ((b.property && "position" == b.property.name) ||
1135                  "initialized" == b.type)
1136              ) {
1137                var c = this._core.settings,
1138                  e = (c.center && Math.ceil(c.items / 2)) || c.items,
1139                  f = (c.center && -1 * e) || 0,
1140                  g =
1141                    (b.property && b.property.value !== d
1142                      ? b.property.value
1143                      : this._core.current()) + f,
1144                  h = this._core.clones().length,
1145                  i = a.proxy(function (a, b) {
1146                    this.load(b);
1147                  }, this);
1148                for (
1149                  c.lazyLoadEager > 0 &&
1150                  ((e += c.lazyLoadEager),
1151                  c.loop && ((g -= c.lazyLoadEager), e++));
1152                  f++ < e;
1153
1154                )
1155                  this.load(h / 2 + this._core.relative(g)),
1156                    h && a.each(this._core.clones(this._core.relative(g)), i),
1157                    g++;
1158              }
1159            }, this),
1160        }),
1161        (this._core.options = a.extend({}, e.Defaults, this._core.options)),
1162        this._core.$element.on(this._handlers);
1163    };
1164    (e.Defaults = { lazyLoad: !1, lazyLoadEager: 0 }),
1165      (e.prototype.load = function (c) {
1166        var d = this._core.$stage.children().eq(c),
1167          e = d && d.find(".owl-lazy");
1168        !e ||
1169          a.inArray(d.get(0), this._loaded) > -1 ||
1170          (e.each(
1171            a.proxy(function (c, d) {
1172              var e,
1173                f = a(d),
1174                g =
1175                  (b.devicePixelRatio > 1 && f.attr("data-src-retina")) ||
1176                  f.attr("data-src") ||
1177                  f.attr("data-srcset");
1178              this._core.trigger("load", { element: f, url: g }, "lazy"),
1179                f.is("img")
1180                  ? f
1181                      .one(
1182                        "load.owl.lazy",
1183                        a.proxy(function () {
1184                          f.css("opacity", 1),
1185                            this._core.trigger(
1186                              "loaded",
1187                              { element: f, url: g },
1188                              "lazy"
1189                            );
1190                        }, this)
1191                      )
1192                      .attr("src", g)
1193                  : f.is("source")
1194                  ? f
1195                      .one(
1196                        "load.owl.lazy",
1197                        a.proxy(function () {
1198                          this._core.trigger(
1199                            "loaded",
1200                            { element: f, url: g },
1201                            "lazy"
1202                          );
1203                        }, this)
1204                      )
1205                      .attr("srcset", g)
1206                  : ((e = new Image()),
1207                    (e.onload = a.proxy(function () {
1208                      f.css({
1209                        "background-image": 'url("' + g + '")',
1210                        opacity: "1",
1211                      }),
1212                        this._core.trigger(
1213                          "loaded",
1214                          { element: f, url: g },
1215                          "lazy"
1216                        );
1217                    }, this)),
1218                    (e.src = g));
1219            }, this)
1220          ),
1221          this._loaded.push(d.get(0)));
1222      }),
1223      (e.prototype.destroy = function () {
1224        var a, b;
1225        for (a in this.handlers) this._core.$element.off(a, this.handlers[a]);
1226        for (b in Object.getOwnPropertyNames(this))
1227          "function" != typeof this[b] && (this[b] = null);
1228      }),
1229      (a.fn.owlCarousel.Constructor.Plugins.Lazy = e);
1230  })(window.Zepto || window.jQuery, window, document),
1231  (function (a, b, c, d) {
1232    var e = function (c) {
1233      (this._core = c),
1234        (this._previousHeight = null),
1235        (this._handlers = {
1236          "initialized.owl.carousel refreshed.owl.carousel": a.proxy(function (
1237            a
1238          ) {
1239            a.namespace && this._core.settings.autoHeight && this.update();
1240          },
1241          this),
1242          "changed.owl.carousel": a.proxy(function (a) {
1243            a.namespace &&
1244              this._core.settings.autoHeight &&
1245              "position" === a.property.name &&
1246              this.update();
1247          }, this),
1248          "loaded.owl.lazy": a.proxy(function (a) {
1249            a.namespace &&
1250              this._core.settings.autoHeight &&
1251              a.element.closest("." + this._core.settings.itemClass).index() ===
1252                this._core.current() &&
1253              this.update();
1254          }, this),
1255        }),
1256        (this._core.options = a.extend({}, e.Defaults, this._core.options)),
1257        this._core.$element.on(this._handlers),
1258        (this._intervalId = null);
1259      var d = this;
1260      a(b).on("load", function () {
1261        d._core.settings.autoHeight && d.update();
1262      }),
1263        a(b).resize(function () {
1264          d._core.settings.autoHeight &&
1265            (null != d._intervalId && clearTimeout(d._intervalId),
1266            (d._intervalId = setTimeout(function () {
1267              d.update();
1268            }, 250)));
1269        });
1270    };
1271    (e.Defaults = { autoHeight: !1, autoHeightClass: "owl-height" }),
1272      (e.prototype.update = function () {
1273        var b = this._core._current,
1274          c = b + this._core.settings.items,
1275          d = this._core.settings.lazyLoad,
1276          e = this._core.$stage.children().toArray().slice(b, c),
1277          f = [],
1278          g = 0;
1279        a.each(e, function (b, c) {
1280          f.push(a(c).height());
1281        }),
1282          (g = Math.max.apply(null, f)),
1283          g <= 1 && d && this._previousHeight && (g = this._previousHeight),
1284          (this._previousHeight = g),
1285          this._core.$stage
1286            .parent()
1287            .height(g)
1288            .addClass(this._core.settings.autoHeightClass);
1289      }),
1290      (e.prototype.destroy = function () {
1291        var a, b;
1292        for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
1293        for (b in Object.getOwnPropertyNames(this))
1294          "function" != typeof this[b] && (this[b] = null);
1295      }),
1296      (a.fn.owlCarousel.Constructor.Plugins.AutoHeight = e);
1297  })(window.Zepto || window.jQuery, window, document),
1298  (function (a, b, c, d) {
1299    var e = function (b) {
1300      (this._core = b),
1301        (this._videos = {}),
1302        (this._playing = null),
1303        (this._handlers = {
1304          "initialized.owl.carousel": a.proxy(function (a) {
1305            a.namespace &&
1306              this._core.register({
1307                type: "state",
1308                name: "playing",
1309                tags: ["interacting"],
1310              });
1311          }, this),
1312          "resize.owl.carousel": a.proxy(function (a) {
1313            a.namespace &&
1314              this._core.settings.video &&
1315              this.isInFullScreen() &&
1316              a.preventDefault();
1317          }, this),
1318          "refreshed.owl.carousel": a.proxy(function (a) {
1319            a.namespace &&
1320              this._core.is("resizing") &&
1321              this._core.$stage.find(".cloned .owl-video-frame").remove();
1322          }, this),
1323          "changed.owl.carousel": a.proxy(function (a) {
1324            a.namespace &&
1325              "position" === a.property.name &&
1326              this._playing &&
1327              this.stop();
1328          }, this),
1329          "prepared.owl.carousel": a.proxy(function (b) {
1330            if (b.namespace) {
1331              var c = a(b.content).find(".owl-video");
1332              c.length &&
1333                (c.css("display", "none"), this.fetch(c, a(b.content)));
1334            }
1335          }, this),
1336        }),
1337        (this._core.options = a.extend({}, e.Defaults, this._core.options)),
1338        this._core.$element.on(this._handlers),
1339        this._core.$element.on(
1340          "click.owl.video",
1341          ".owl-video-play-icon",
1342          a.proxy(function (a) {
1343            this.play(a);
1344          }, this)
1345        );
1346    };
1347    (e.Defaults = { video: !1, videoHeight: !1, videoWidth: !1 }),
1348      (e.prototype.fetch = function (a, b) {
1349        var c = (function () {
1350            return a.attr("data-vimeo-id")
1351              ? "vimeo"
1352              : a.attr("data-vzaar-id")
1353              ? "vzaar"
1354              : "youtube";
1355          })(),
1356          d =
1357            a.attr("data-vimeo-id") ||
1358            a.attr("data-youtube-id") ||
1359            a.attr("data-vzaar-id"),
1360          e = a.attr("data-width") || this._core.settings.videoWidth,
1361          f = a.attr("data-height") || this._core.settings.videoHeight,
1362          g = a.attr("href");
1363        if (!g) throw new Error("Missing video URL.");
1364        if (
1365          ((d = g.match(
1366            /(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/
1367          )),
1368          d[3].indexOf("youtu") > -1)
1369        )
1370          c = "youtube";
1371        else if (d[3].indexOf("vimeo") > -1) c = "vimeo";
1372        else {
1373          if (!(d[3].indexOf("vzaar") > -1))
1374            throw new Error("Video URL not supported.");
1375          c = "vzaar";
1376        }
1377        (d = d[6]),
1378          (this._videos[g] = { type: c, id: d, width: e, height: f }),
1379          b.attr("data-video", g),
1380          this.thumbnail(a, this._videos[g]);
1381      }),
1382      (e.prototype.thumbnail = function (b, c) {
1383        var d,
1384          e,
1385          f,
1386          g =
1387            c.width && c.height
1388              ? "width:" + c.width + "px;height:" + c.height + "px;"
1389              : "",
1390          h = b.find("img"),
1391          i = "src",
1392          j = "",
1393          k = this._core.settings,
1394          l = function (c) {
1395            (e = '<div class="owl-video-play-icon"></div>'),
1396              (d = k.lazyLoad
1397                ? a("<div/>", { class: "owl-video-tn " + j, srcType: c })
1398                : a("<div/>", {
1399                    class: "owl-video-tn",
1400                    style: "opacity:1;background-image:url(" + c + ")",
1401                  })),
1402              b.after(d),
1403              b.after(e);
1404          };
1405        if (
1406          (b.wrap(a("<div/>", { class: "owl-video-wrapper", style: g })),
1407          this._core.settings.lazyLoad && ((i = "data-src"), (j = "owl-lazy")),
1408          h.length)
1409        )
1410          return l(h.attr(i)), h.remove(), !1;
1411        "youtube" === c.type
1412          ? ((f = "//img.youtube.com/vi/" + c.id + "/hqdefault.jpg"), l(f))
1413          : "vimeo" === c.type
1414          ? a.ajax({
1415              type: "GET",
1416              url: "//vimeo.com/api/v2/video/" + c.id + ".json",
1417              jsonp: "callback",
1418              dataType: "jsonp",
1419              success: function (a) {
1420                (f = a[0].thumbnail_large), l(f);
1421              },
1422            })
1423          : "vzaar" === c.type &&
1424            a.ajax({
1425              type: "GET",
1426              url: "//vzaar.com/api/videos/" + c.id + ".json",
1427              jsonp: "callback",
1428              dataType: "jsonp",
1429              success: function (a) {
1430                (f = a.framegrab_url), l(f);
1431              },
1432            });
1433      }),
1434      (e.prototype.stop = function () {
1435        this._core.trigger("stop", null, "video"),
1436          this._playing.find(".owl-video-frame").remove(),
1437          this._playing.removeClass("owl-video-playing"),
1438          (this._playing = null),
1439          this._core.leave("playing"),
1440          this._core.trigger("stopped", null, "video");
1441      }),
1442      (e.prototype.play = function (b) {
1443        var c,
1444          d = a(b.target),
1445          e = d.closest("." + this._core.settings.itemClass),
1446          f = this._videos[e.attr("data-video")],
1447          g = f.width || "100%",
1448          h = f.height || this._core.$stage.height();
1449        this._playing ||
1450          (this._core.enter("playing"),
1451          this._core.trigger("play", null, "video"),
1452          (e = this._core.items(this._core.relative(e.index()))),
1453          this._core.reset(e.index()),
1454          (c = a(
1455            '<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>'
1456          )),
1457          c.attr("height", h),
1458          c.attr("width", g),
1459          "youtube" === f.type
1460            ? c.attr(
1461                "src",
1462                "//www.youtube.com/embed/" +
1463                  f.id +
1464                  "?autoplay=1&rel=0&v=" +
1465                  f.id
1466              )
1467            : "vimeo" === f.type
1468            ? c.attr("src", "//player.vimeo.com/video/" + f.id + "?autoplay=1")
1469            : "vzaar" === f.type &&
1470              c.attr(
1471                "src",
1472                "//view.vzaar.com/" + f.id + "/player?autoplay=true"
1473              ),
1474          a(c)
1475            .wrap('<div class="owl-video-frame" />')
1476            .insertAfter(e.find(".owl-video")),
1477          (this._playing = e.addClass("owl-video-playing")));
1478      }),
1479      (e.prototype.isInFullScreen = function () {
1480        var b =
1481          c.fullscreenElement ||
1482          c.mozFullScreenElement ||
1483          c.webkitFullscreenElement;
1484        return b && a(b).parent().hasClass("owl-video-frame");
1485      }),
1486      (e.prototype.destroy = function () {
1487        var a, b;
1488        this._core.$element.off("click.owl.video");
1489        for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
1490        for (b in Object.getOwnPropertyNames(this))
1491          "function" != typeof this[b] && (this[b] = null);
1492      }),
1493      (a.fn.owlCarousel.Constructor.Plugins.Video = e);
1494  })(window.Zepto || window.jQuery, window, document),
1495  (function (a, b, c, d) {
1496    var e = function (b) {
1497      (this.core = b),
1498        (this.core.options = a.extend({}, e.Defaults, this.core.options)),
1499        (this.swapping = !0),
1500        (this.previous = d),
1501        (this.next = d),
1502        (this.handlers = {
1503          "change.owl.carousel": a.proxy(function (a) {
1504            a.namespace &&
1505              "position" == a.property.name &&
1506              ((this.previous = this.core.current()),
1507              (this.next = a.property.value));
1508          }, this),
1509          "drag.owl.carousel dragged.owl.carousel translated.owl.carousel":
1510            a.proxy(function (a) {
1511              a.namespace && (this.swapping = "translated" == a.type);
1512            }, this),
1513          "translate.owl.carousel": a.proxy(function (a) {
1514            a.namespace &&
1515              this.swapping &&
1516              (this.core.options.animateOut || this.core.options.animateIn) &&
1517              this.swap();
1518          }, this),
1519        }),
1520        this.core.$element.on(this.handlers);
1521    };
1522    (e.Defaults = { animateOut: !1, animateIn: !1 }),
1523      (e.prototype.swap = function () {
1524        if (
1525          1 === this.core.settings.items &&
1526          a.support.animation &&
1527          a.support.transition
1528        ) {
1529          this.core.speed(0);
1530          var b,
1531            c = a.proxy(this.clear, this),
1532            d = this.core.$stage.children().eq(this.previous),
1533            e = this.core.$stage.children().eq(this.next),
1534            f = this.core.settings.animateIn,
1535            g = this.core.settings.animateOut;
1536          this.core.current() !== this.previous &&
1537            (g &&
1538              ((b =
1539                this.core.coordinates(this.previous) -
1540                this.core.coordinates(this.next)),
1541              d
1542                .one(a.support.animation.end, c)
1543                .css({ left: b + "px" })
1544                .addClass("animated owl-animated-out")
1545                .addClass(g)),
1546            f &&
1547              e
1548                .one(a.support.animation.end, c)
1549                .addClass("animated owl-animated-in")
1550                .addClass(f));
1551        }
1552      }),
1553      (e.prototype.clear = function (b) {
1554        a(b.target)
1555          .css({ left: "" })
1556          .removeClass("animated owl-animated-out owl-animated-in")
1557          .removeClass(this.core.settings.animateIn)
1558          .removeClass(this.core.settings.animateOut),
1559          this.core.onTransitionEnd();
1560      }),
1561      (e.prototype.destroy = function () {
1562        var a, b;
1563        for (a in this.handlers) this.core.$element.off(a, this.handlers[a]);
1564        for (b in Object.getOwnPropertyNames(this))
1565          "function" != typeof this[b] && (this[b] = null);
1566      }),
1567      (a.fn.owlCarousel.Constructor.Plugins.Animate = e);
1568  })(window.Zepto || window.jQuery, window, document),
1569  (function (a, b, c, d) {
1570    var e = function (b) {
1571      (this._core = b),
1572        (this._call = null),
1573        (this._time = 0),
1574        (this._timeout = 0),
1575        (this._paused = !0),
1576        (this._handlers = {
1577          "changed.owl.carousel": a.proxy(function (a) {
1578            a.namespace && "settings" === a.property.name
1579              ? this._core.settings.autoplay
1580                ? this.play()
1581                : this.stop()
1582              : a.namespace &&
1583                "position" === a.property.name &&
1584                this._paused &&
1585                (this._time = 0);
1586          }, this),
1587          "initialized.owl.carousel": a.proxy(function (a) {
1588            a.namespace && this._core.settings.autoplay && this.play();
1589          }, this),
1590          "play.owl.autoplay": a.proxy(function (a, b, c) {
1591            a.namespace && this.play(b, c);
1592          }, this),
1593          "stop.owl.autoplay": a.proxy(function (a) {
1594            a.namespace && this.stop();
1595          }, this),
1596          "mouseover.owl.autoplay": a.proxy(function () {
1597            this._core.settings.autoplayHoverPause &&
1598              this._core.is("rotating") &&
1599              this.pause();
1600          }, this),
1601          "mouseleave.owl.autoplay": a.proxy(function () {
1602            this._core.settings.autoplayHoverPause &&
1603              this._core.is("rotating") &&
1604              this.play();
1605          }, this),
1606          "touchstart.owl.core": a.proxy(function () {
1607            this._core.settings.autoplayHoverPause &&
1608              this._core.is("rotating") &&
1609              this.pause();
1610          }, this),
1611          "touchend.owl.core": a.proxy(function () {
1612            this._core.settings.autoplayHoverPause && this.play();
1613          }, this),
1614        }),
1615        this._core.$element.on(this._handlers),
1616        (this._core.options = a.extend({}, e.Defaults, this._core.options));
1617    };
1618    (e.Defaults = {
1619      autoplay: !1,
1620      autoplayTimeout: 5e3,
1621      autoplayHoverPause: !1,
1622      autoplaySpeed: !1,
1623    }),
1624      (e.prototype._next = function (d) {
1625        (this._call = b.setTimeout(
1626          a.proxy(this._next, this, d),
1627          this._timeout * (Math.round(this.read() / this._timeout) + 1) -
1628            this.read()
1629        )),
1630          this._core.is("interacting") ||
1631            c.hidden ||
1632            this._core.next(d || this._core.settings.autoplaySpeed);
1633      }),
1634      (e.prototype.read = function () {
1635        return new Date().getTime() - this._time;
1636      }),
1637      (e.prototype.play = function (c, d) {
1638        var e;
1639        this._core.is("rotating") || this._core.enter("rotating"),
1640          (c = c || this._core.settings.autoplayTimeout),
1641          (e = Math.min(this._time % (this._timeout || c), c)),
1642          this._paused
1643            ? ((this._time = this.read()), (this._paused = !1))
1644            : b.clearTimeout(this._call),
1645          (this._time += (this.read() % c) - e),
1646          (this._timeout = c),
1647          (this._call = b.setTimeout(a.proxy(this._next, this, d), c - e));
1648      }),
1649      (e.prototype.stop = function () {
1650        this._core.is("rotating") &&
1651          ((this._time = 0),
1652          (this._paused = !0),
1653          b.clearTimeout(this._call),
1654          this._core.leave("rotating"));
1655      }),
1656      (e.prototype.pause = function () {
1657        this._core.is("rotating") &&
1658          !this._paused &&
1659          ((this._time = this.read()),
1660          (this._paused = !0),
1661          b.clearTimeout(this._call));
1662      }),
1663      (e.prototype.destroy = function () {
1664        var a, b;
1665        this.stop();
1666        for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
1667        for (b in Object.getOwnPropertyNames(this))
1668          "function" != typeof this[b] && (this[b] = null);
1669      }),
1670      (a.fn.owlCarousel.Constructor.Plugins.autoplay = e);
1671  })(window.Zepto || window.jQuery, window, document),
1672  (function (a, b, c, d) {
1673    "use strict";
1674    var e = function (b) {
1675      (this._core = b),
1676        (this._initialized = !1),
1677        (this._pages = []),
1678        (this._controls = {}),
1679        (this._templates = []),
1680        (this.$element = this._core.$element),
1681        (this._overrides = {
1682          next: this._core.next,
1683          prev: this._core.prev,
1684          to: this._core.to,
1685        }),
1686        (this._handlers = {
1687          "prepared.owl.carousel": a.proxy(function (b) {
1688            b.namespace &&
1689              this._core.settings.dotsData &&
1690              this._templates.push(
1691                '<div class="' +
1692                  this._core.settings.dotClass +
1693                  '">' +
1694                  a(b.content)
1695                    .find("[data-dot]")
1696                    .addBack("[data-dot]")
1697                    .attr("data-dot") +
1698                  "</div>"
1699              );
1700          }, this),
1701          "added.owl.carousel": a.proxy(function (a) {
1702            a.namespace &&
1703              this._core.settings.dotsData &&
1704              this._templates.splice(a.position, 0, this._templates.pop());
1705          }, this),
1706          "remove.owl.carousel": a.proxy(function (a) {
1707            a.namespace &&
1708              this._core.settings.dotsData &&
1709              this._templates.splice(a.position, 1);
1710          }, this),
1711          "changed.owl.carousel": a.proxy(function (a) {
1712            a.namespace && "position" == a.property.name && this.draw();
1713          }, this),
1714          "initialized.owl.carousel": a.proxy(function (a) {
1715            a.namespace &&
1716              !this._initialized &&
1717              (this._core.trigger("initialize", null, "navigation"),
1718              this.initialize(),
1719              this.update(),
1720              this.draw(),
1721              (this._initialized = !0),
1722              this._core.trigger("initialized", null, "navigation"));
1723          }, this),
1724          "refreshed.owl.carousel": a.proxy(function (a) {
1725            a.namespace &&
1726              this._initialized &&
1727              (this._core.trigger("refresh", null, "navigation"),
1728              this.update(),
1729              this.draw(),
1730              this._core.trigger("refreshed", null, "navigation"));
1731          }, this),
1732        }),
1733        (this._core.options = a.extend({}, e.Defaults, this._core.options)),
1734        this.$element.on(this._handlers);
1735    };
1736    (e.Defaults = {
1737      nav: !1,
1738      navText: [
1739        '<span aria-label="Previous">&#x2039;</span>',
1740        '<span aria-label="Next">&#x203a;</span>',
1741      ],
1742      navSpeed: !1,
1743      navElement: 'button type="button" role="presentation"',
1744      navContainer: !1,
1745      navContainerClass: "owl-nav",
1746      navClass: ["owl-prev", "owl-next"],
1747      slideBy: 1,
1748      dotClass: "owl-dot",
1749      dotsClass: "owl-dots",
1750      dots: !0,
1751      dotsEach: !1,
1752      dotsData: !1,
1753      dotsSpeed: !1,
1754      dotsContainer: !1,
1755    }),
1756      (e.prototype.initialize = function () {
1757        var b,
1758          c = this._core.settings;
1759        (this._controls.$relative = (
1760          c.navContainer
1761            ? a(c.navContainer)
1762            : a("<div>").addClass(c.navContainerClass).appendTo(this.$element)
1763        ).addClass("disabled")),
1764          (this._controls.$previous = a("<" + c.navElement + ">")
1765            .addClass(c.navClass[0])
1766            .html(c.navText[0])
1767            .prependTo(this._controls.$relative)
1768            .on(
1769              "click",
1770              a.proxy(function (a) {
1771                this.prev(c.navSpeed);
1772              }, this)
1773            )),
1774          (this._controls.$next = a("<" + c.navElement + ">")
1775            .addClass(c.navClass[1])
1776            .html(c.navText[1])
1777            .appendTo(this._controls.$relative)
1778            .on(
1779              "click",
1780              a.proxy(function (a) {
1781                this.next(c.navSpeed);
1782              }, this)
1783            )),
1784          c.dotsData ||
1785            (this._templates = [
1786              a('<button role="button">')
1787                .addClass(c.dotClass)
1788                .append(a("<span>"))
1789                .prop("outerHTML"),
1790            ]),
1791          (this._controls.$absolute = (
1792            c.dotsContainer
1793              ? a(c.dotsContainer)
1794              : a("<div>").addClass(c.dotsClass).appendTo(this.$element)
1795          ).addClass("disabled")),
1796          this._controls.$absolute.on(
1797            "click",
1798            "button",
1799            a.proxy(function (b) {
1800              var d = a(b.target).parent().is(this._controls.$absolute)
1801                ? a(b.target).index()
1802                : a(b.target).parent().index();
1803              b.preventDefault(), this.to(d, c.dotsSpeed);
1804            }, this)
1805          );
1806        for (b in this._overrides) this._core[b] = a.proxy(this[b], this);
1807      }),
1808      (e.prototype.destroy = function () {
1809        var a, b, c, d, e;
1810        e = this._core.settings;
1811        for (a in this._handlers) this.$element.off(a, this._handlers[a]);
1812        for (b in this._controls)
1813          "$relative" === b && e.navContainer
1814            ? this._controls[b].html("")
1815            : this._controls[b].remove();
1816        for (d in this.overides) this._core[d] = this._overrides[d];
1817        for (c in Object.getOwnPropertyNames(this))
1818          "function" != typeof this[c] && (this[c] = null);
1819      }),
1820      (e.prototype.update = function () {
1821        var a,
1822          b,
1823          c,
1824          d = this._core.clones().length / 2,
1825          e = d + this._core.items().length,
1826          f = this._core.maximum(!0),
1827          g = this._core.settings,
1828          h = g.center || g.autoWidth || g.dotsData ? 1 : g.dotsEach || g.items;
1829        if (
1830          ("page" !== g.slideBy && (g.slideBy = Math.min(g.slideBy, g.items)),
1831          g.dots || "page" == g.slideBy)
1832        )
1833          for (this._pages = [], a = d, b = 0, c = 0; a < e; a++) {
1834            if (b >= h || 0 === b) {
1835              if (
1836                (this._pages.push({
1837                  start: Math.min(f, a - d),
1838                  end: a - d + h - 1,
1839                }),
1840                Math.min(f, a - d) === f)
1841              )
1842                break;
1843              (b = 0), ++c;
1844            }
1845            b += this._core.mergers(this._core.relative(a));
1846          }
1847      }),
1848      (e.prototype.draw = function () {
1849        var b,
1850          c = this._core.settings,
1851          d = this._core.items().length <= c.items,
1852          e = this._core.relative(this._core.current()),
1853          f = c.loop || c.rewind;
1854        this._controls.$relative.toggleClass("disabled", !c.nav || d),
1855          c.nav &&
1856            (this._controls.$previous.toggleClass(
1857              "disabled",
1858              !f && e <= this._core.minimum(!0)
1859            ),
1860            this._controls.$next.toggleClass(
1861              "disabled",
1862              !f && e >= this._core.maximum(!0)
1863            )),
1864          this._controls.$absolute.toggleClass("disabled", !c.dots || d),
1865          c.dots &&
1866            ((b =
1867              this._pages.length - this._controls.$absolute.children().length),
1868            c.dotsData && 0 !== b
1869              ? this._controls.$absolute.html(this._templates.join(""))
1870              : b > 0
1871              ? this._controls.$absolute.append(
1872                  new Array(b + 1).join(this._templates[0])
1873                )
1874              : b < 0 && this._controls.$absolute.children().slice(b).remove(),
1875            this._controls.$absolute.find(".active").removeClass("active"),
1876            this._controls.$absolute
1877              .children()
1878              .eq(a.inArray(this.current(), this._pages))
1879              .addClass("active"));
1880      }),
1881      (e.prototype.onTrigger = function (b) {
1882        var c = this._core.settings;
1883        b.page = {
1884          index: a.inArray(this.current(), this._pages),
1885          count: this._pages.length,
1886          size:
1887            c &&
1888            (c.center || c.autoWidth || c.dotsData ? 1 : c.dotsEach || c.items),
1889        };
1890      }),
1891      (e.prototype.current = function () {
1892        var b = this._core.relative(this._core.current());
1893        return a
1894          .grep(
1895            this._pages,
1896            a.proxy(function (a, c) {
1897              return a.start <= b && a.end >= b;
1898            }, this)
1899          )
1900          .pop();
1901      }),
1902      (e.prototype.getPosition = function (b) {
1903        var c,
1904          d,
1905          e = this._core.settings;
1906        return (
1907          "page" == e.slideBy
1908            ? ((c = a.inArray(this.current(), this._pages)),
1909              (d = this._pages.length),
1910              b ? ++c : --c,
1911              (c = this._pages[((c % d) + d) % d].start))
1912            : ((c = this._core.relative(this._core.current())),
1913              (d = this._core.items().length),
1914              b ? (c += e.slideBy) : (c -= e.slideBy)),
1915          c
1916        );
1917      }),
1918      (e.prototype.next = function (b) {
1919        a.proxy(this._overrides.to, this._core)(this.getPosition(!0), b);
1920      }),
1921      (e.prototype.prev = function (b) {
1922        a.proxy(this._overrides.to, this._core)(this.getPosition(!1), b);
1923      }),
1924      (e.prototype.to = function (b, c, d) {
1925        var e;
1926        !d && this._pages.length
1927          ? ((e = this._pages.length),
1928            a.proxy(this._overrides.to, this._core)(
1929              this._pages[((b % e) + e) % e].start,
1930              c
1931            ))
1932          : a.proxy(this._overrides.to, this._core)(b, c);
1933      }),
1934      (a.fn.owlCarousel.Constructor.Plugins.Navigation = e);
1935  })(window.Zepto || window.jQuery, window, document),
1936  (function (a, b, c, d) {
1937    "use strict";
1938    var e = function (c) {
1939      (this._core = c),
1940        (this._hashes = {}),
1941        (this.$element = this._core.$element),
1942        (this._handlers = {
1943          "initialized.owl.carousel": a.proxy(function (c) {
1944            c.namespace &&
1945              "URLHash" === this._core.settings.startPosition &&
1946              a(b).trigger("hashchange.owl.navigation");
1947          }, this),
1948          "prepared.owl.carousel": a.proxy(function (b) {
1949            if (b.namespace) {
1950              var c = a(b.content)
1951                .find("[data-hash]")
1952                .addBack("[data-hash]")
1953                .attr("data-hash");
1954              if (!c) return;
1955              this._hashes[c] = b.content;
1956            }
1957          }, this),
1958          "changed.owl.carousel": a.proxy(function (c) {
1959            if (c.namespace && "position" === c.property.name) {
1960              var d = this._core.items(
1961                  this._core.relative(this._core.current())
1962                ),
1963                e = a
1964                  .map(this._hashes, function (a, b) {
1965                    return a === d ? b : null;
1966                  })
1967                  .join();
1968              if (!e || b.location.hash.slice(1) === e) return;
1969              b.location.hash = e;
1970            }
1971          }, this),
1972        }),
1973        (this._core.options = a.extend({}, e.Defaults, this._core.options)),
1974        this.$element.on(this._handlers),
1975        a(b).on(
1976          "hashchange.owl.navigation",
1977          a.proxy(function (a) {
1978            var c = b.location.hash.substring(1),
1979              e = this._core.$stage.children(),
1980              f = this._hashes[c] && e.index(this._hashes[c]);
1981            f !== d &&
1982              f !== this._core.current() &&
1983              this._core.to(this._core.relative(f), !1, !0);
1984          }, this)
1985        );
1986    };
1987    (e.Defaults = { URLhashListener: !1 }),
1988      (e.prototype.destroy = function () {
1989        var c, d;
1990        a(b).off("hashchange.owl.navigation");
1991        for (c in this._handlers) this._core.$element.off(c, this._handlers[c]);
1992        for (d in Object.getOwnPropertyNames(this))
1993          "function" != typeof this[d] && (this[d] = null);
1994      }),
1995      (a.fn.owlCarousel.Constructor.Plugins.Hash = e);
1996  })(window.Zepto || window.jQuery, window, document),
1997  (function (a, b, c, d) {
1998    function e(b, c) {
1999      var e = !1,
2000        f = b.charAt(0).toUpperCase() + b.slice(1);
2001      return (
2002        a.each((b + " " + h.join(f + " ") + f).split(" "), function (a, b) {
2003          if (g[b] !== d) return (e = !c || b), !1;
2004        }),
2005        e
2006      );
2007    }
2008    function f(a) {
2009      return e(a, !0);
2010    }
2011    var g = a("<support>").get(0).style,
2012      h = "Webkit Moz O ms".split(" "),
2013      i = {
2014        transition: {
2015          end: {
2016            WebkitTransition: "webkitTransitionEnd",
2017            MozTransition: "transitionend",
2018            OTransition: "oTransitionEnd",
2019            transition: "transitionend",
2020          },
2021        },
2022        animation: {
2023          end: {
2024            WebkitAnimation: "webkitAnim
2024ationEnd",
2025            MozAnimation: "animationend",
2026            OAnimation: "oAnimationEnd",
2027            animation: "animationend",
2028          },
2029        },
2030      },
2031      j = {
2032        csstransforms: function () {
2033          return !!e("transform");
2034        },
2035        csstransforms3d: function () {
2036          return !!e("perspective");
2037        },
2038        csstransitions: function () {
2039          return !!e("transition");
2040        },
2041        cssanimations: function () {
2042          return !!e("animation");
2043        },
2044      };
2045    j.csstransitions() &&
2046      ((a.support.transition = new String(f("transition"))),
2047      (a.support.transition.end = i.transition.end[a.support.transition])),
2048      j.cssanimations() &&
2049        ((a.support.animation = new String(f("animation"))),
2050        (a.support.animation.end = i.animation.end[a.support.animation])),
2051      j.csstransforms() &&
2052        ((a.support.transform = new String(f("transform"))),
2053        (a.support.transform3d = j.csstransforms3d()));
2054  })(window.Zepto || window.jQuery, window, document);

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.