highos.goldoffers.co
Open in
urlscan Pro
94.237.26.82
Public Scan
Submitted URL: http://highos.goldoffers.co/dl/pre/pw/v2_js/confetti.js
Effective URL: https://highos.goldoffers.co/dl/pre/pw/v2_js/confetti.js
Submission: On May 05 via api from US — Scanned from FI
Effective URL: https://highos.goldoffers.co/dl/pre/pw/v2_js/confetti.js
Submission: On May 05 via api from US — Scanned from FI
Form analysis
0 forms found in the DOMText Content
/* Confetti by Patrik Svensson (http://metervara.net) */ function confettiFN () { //$('.steps-wrap').append('<div id="confetti"></div>'); var frameRate = 100; var dt = 1.2 / frameRate; var DEG_TO_RAD = Math.PI / 180; var RAD_TO_DEG = 180 / Math.PI; var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); var colors = [ ["#F87BFD", "#4C76FE"], // ["#97b91f", "#f79825"], // ["#e70b83", "#c1b900"], // ["#3d95ce", "#e2e01f"] ]; var gradient = ctx.createLinearGradient(0,5, 0,350); gradient.addColorStop(0, '#F87BFD'); gradient.addColorStop(.34, '#4C76FE'); gradient.addColorStop(.45, '#02FFE8'); gradient.addColorStop(.52, '#4DB8FF'); gradient.addColorStop(.60, '#F0F8BD'); gradient.addColorStop(.70, '#D0C7F6'); gradient.addColorStop(1, '#4EA2FC'); function Vector2(_x, _y) { this.x = _x, this.y = _y; this.Length = function() { return Math.sqrt(this.SqrLength()); } this.SqrLength = function() { return this.x * this.x + this.y * this.y; } this.Equals = function(_vec0, _vec1) { return _vec0.x == _vec1.x && _vec0.y == _vec1.y; } this.Add = function(_vec) { this.x += _vec.x; this.y += _vec.y; } this.Sub = function(_vec) { this.x -= _vec.x; this.y -= _vec.y; } this.Div = function(_f) { this.x /= _f; this.y /= _f; } this.Mul = function(_f) { this.x *= _f; this.y *= _f; } this.Normalize = function() { var sqrLen = this.SqrLength(); if (sqrLen != 0) { var factor = 1.0 / Math.sqrt(sqrLen); this.x *= factor; this.y *= factor; } } this.Normalized = function() { var sqrLen = this.SqrLength(); if (sqrLen != 0) { var factor = 1.0 / Math.sqrt(sqrLen); return new Vector2(this.x * factor, this.y * factor); } return new Vector2(0, 0); } } Vector2.Lerp = function(_vec0, _vec1, _t) { return new Vector2((_vec1.x - _vec0.x) * _t + _vec0.x, (_vec1.y - _vec0.y) * _t + _vec0.y); } Vector2.Distance = function(_vec0, _vec1) { return Math.sqrt(Vector2.SqrDistance(_vec0, _vec1)); } Vector2.SqrDistance = function(_vec0, _vec1) { var x = _vec0.x - _vec1.x; var y = _vec0.y - _vec1.y; return (x * x + y * y + z * z); } Vector2.Scale = function(_vec0, _vec1) { return new Vector2(_vec0.x * _vec1.x, _vec0.y * _vec1.y); } Vector2.Min = function(_vec0, _vec1) { return new Vector2(Math.min(_vec0.x, _vec1.x), Math.min(_vec0.y, _vec1.y)); } Vector2.Max = function(_vec0, _vec1) { return new Vector2(Math.max(_vec0.x, _vec1.x), Math.max(_vec0.y, _vec1.y)); } Vector2.ClampMagnitude = function(_vec0, _len) { var vecNorm = _vec0.Normalized; return new Vector2(vecNorm.x * _len, vecNorm.y * _len); } Vector2.Sub = function(_vec0, _vec1) { return new Vector2(_vec0.x - _vec1.x, _vec0.y - _vec1.y, _vec0.z - _vec1.z); } function EulerMass(_x, _y, _mass, _drag) { this.position = new Vector2(_x, _y); this.mass = _mass; this.drag = _drag; this.force = new Vector2(0, 0); this.velocity = new Vector2(0, 0); this.AddForce = function(_f) { this.force.Add(_f); } this.Integrate = function(_dt) { var acc = this.CurrentForce(this.position); acc.Div(this.mass); var posDelta = new Vector2(this.velocity.x, this.velocity.y); posDelta.Mul(_dt); this.position.Add(posDelta); acc.Mul(_dt); this.velocity.Add(acc); this.force = new Vector2(0, 0); } this.CurrentForce = function(_pos, _vel) { var totalForce = new Vector2(this.force.x, this.force.y); var speed = this.velocity.Length(); var dragVel = new Vector2(this.velocity.x, this.velocity.y); dragVel.Mul(this.drag * this.mass * speed); totalForce.Sub(dragVel); return totalForce; } } function ConfettiPaper(_x, _y) { this.pos = new Vector2(_x, _y); this.rotationSpeed = Math.random() * 600 + 800; this.angle = DEG_TO_RAD * Math.random() * 360; this.rotation = DEG_TO_RAD * Math.random() * 360; this.cosA = 1.0; this.size = 5.0; this.oscillationSpeed = Math.random() * 1.5 + 0.5; this.xSpeed = 40.0; this.ySpeed = Math.random() * 60 + 50.0; this.corners = new Array(); this.time = Math.random(); var ci = Math.round(Math.random() * (colors.length - 1)); this.frontColor = gradient; this.backColor = gradient; // this.frontColor = colors[ci][0]; // this.backColor = colors[ci][1]; for (var i = 0; i < 4; i++) { var dx = Math.cos(this.angle + DEG_TO_RAD * (i * 90 + 45)); var dy = Math.sin(this.angle + DEG_TO_RAD * (i * 90 + 45)); this.corners[i] = new Vector2(dx, dy); } this.Update = function(_dt) { this.time += _dt; this.rotation += this.rotationSpeed * _dt; this.cosA = Math.cos(DEG_TO_RAD * this.rotation); this.pos.x += Math.cos(this.time * this.oscillationSpeed) * this.xSpeed * _dt this.pos.y += this.ySpeed * _dt; if (this.pos.y > ConfettiPaper.bounds.y) { this.pos.x = Math.random() * ConfettiPaper.bounds.x; this.pos.y = 0; } } this.Draw = function(_g) { if (this.cosA > 0) { _g.fillStyle = this.frontColor; } else { _g.fillStyle = this.backColor; } _g.beginPath(); _g.moveTo(this.pos.x + this.corners[0].x * this.size, this.pos.y + this.corners[0].y * this.size * this.cosA); for (var i = 1; i < 4; i++) { _g.lineTo(this.pos.x + this.corners[i].x * this.size, this.pos.y + this.corners[i].y * this.size * this.cosA); } _g.closePath(); _g.fill(); } } ConfettiPaper.bounds = new Vector2(0, 0); function ConfettiRibbon(_x, _y, _count, _dist, _thickness, _angle, _mass, _drag) { this.particleDist = _dist; this.particleCount = _count; this.particleMass = _mass; this.particleDrag = _drag; this.particles = new Array(); var ci = Math.round(Math.random() * (colors.length - 1)); this.frontColor = gradient; this.backColor = gradient; // this.frontColor = colors[ci][0]; // this.backColor = colors[ci][1]; this.xOff = Math.cos(DEG_TO_RAD * _angle) * _thickness; this.yOff = Math.sin(DEG_TO_RAD * _angle) * _thickness; this.position = new Vector2(_x, _y); this.prevPosition = new Vector2(_x, _y); this.velocityInherit = Math.random() * 2 + 4; this.time = Math.random() * 100; this.oscillationSpeed = Math.random() * 2 + 2; this.oscillationDistance = Math.random() * 40 + 40; this.ySpeed = Math.random() * 40 + 80; for (var i = 0; i < this.particleCount; i++) { this.particles[i] = new EulerMass(_x, _y - i * this.particleDist, this.particleMass, this.particleDrag); } this.Update = function(_dt) { var i = 0; this.time += _dt * this.oscillationSpeed; this.position.y += this.ySpeed * _dt; this.position.x += Math.cos(this.time) * this.oscillationDistance * _dt; this.particles[0].position = this.position; var dX = this.prevPosition.x - this.position.x; var dY = this.prevPosition.y - this.position.y; var delta = Math.sqrt(dX * dX + dY * dY); this.prevPosition = new Vector2(this.position.x, this.position.y); for (i = 1; i < this.particleCount; i++) { var dirP = Vector2.Sub(this.particles[i - 1].position, this.particles[i].position); dirP.Normalize(); dirP.Mul((delta / _dt) * this.velocityInherit); this.particles[i].AddForce(dirP); } for (i = 1; i < this.particleCount; i++) { this.particles[i].Integrate(_dt); } for (i = 1; i < this.particleCount; i++) { var rp2 = new Vector2(this.particles[i].position.x, this.particles[i].position.y); rp2.Sub(this.particles[i - 1].position); rp2.Normalize(); rp2.Mul(this.particleDist); rp2.Add(this.particles[i - 1].position); this.particles[i].position = rp2; } if (this.position.y > ConfettiRibbon.bounds.y + this.particleDist * this.particleCount) { this.Reset(); } } this.Reset = function() { this.position.y = -Math.random() * ConfettiRibbon.bounds.y; this.position.x = Math.random() * ConfettiRibbon.bounds.x; this.prevPosition = new Vector2(this.position.x, this.position.y); this.velocityInherit = Math.random() * 2 + 4; this.time = Math.random() * 100; this.oscillationSpeed = Math.random() * 2.0 + 1.5; this.oscillationDistance = Math.random() * 40 + 40; this.ySpeed = Math.random() * 40 + 80; var ci = Math.round(Math.random() * (colors.length - 1)); this.frontColor = gradient; this.backColor = gradient; // this.frontColor = colors[ci][0]; // this.backColor = colors[ci][1]; this.particles = new Array(); for (var i = 0; i < this.particleCount; i++) { this.particles[i] = new EulerMass(this.position.x, this.position.y - i * this.particleDist, this.particleMass, this.particleDrag); } } this.Draw = function(_g) { for (var i = 0; i < this.particleCount - 1; i++) { var p0 = new Vector2(this.particles[i].position.x + this.xOff, this.particles[i].position.y + this.yOff); var p1 = new Vector2(this.particles[i + 1].position.x + this.xOff, this.particles[i + 1].position.y + this.yOff); if (this.Side(this.particles[i].position.x, this.particles[i].position.y, this.particles[i + 1].position.x, this.particles[i + 1].position.y, p1.x, p1.y) < 0) { _g.fillStyle = this.frontColor; _g.strokeStyle = this.frontColor; } else { _g.fillStyle = this.backColor; _g.strokeStyle = this.backColor; } if (i == 0) { _g.beginPath(); _g.moveTo(this.particles[i].position.x, this.particles[i].position.y); _g.lineTo(this.particles[i + 1].position.x, this.particles[i + 1].position.y); _g.lineTo((this.particles[i + 1].position.x + p1.x) * 0.5, (this.particles[i + 1].position.y + p1.y) * 0.5); _g.closePath(); _g.stroke(); _g.fill(); _g.beginPath(); _g.moveTo(p1.x, p1.y); _g.lineTo(p0.x, p0.y); _g.lineTo((this.particles[i + 1].position.x + p1.x) * 0.5, (this.particles[i + 1].position.y + p1.y) * 0.5); _g.closePath(); _g.stroke(); _g.fill(); } else if (i == this.particleCount - 2) { _g.beginPath(); _g.moveTo(this.particles[i].position.x, this.particles[i].position.y); _g.lineTo(this.particles[i + 1].position.x, this.particles[i + 1].position.y); _g.lineTo((this.particles[i].position.x + p0.x) * 0.5, (this.particles[i].position.y + p0.y) * 0.5); _g.closePath(); _g.stroke(); _g.fill(); _g.beginPath(); _g.moveTo(p1.x, p1.y); _g.lineTo(p0.x, p0.y); _g.lineTo((this.particles[i].position.x + p0.x) * 0.5, (this.particles[i].position.y + p0.y) * 0.5); _g.closePath(); _g.stroke(); _g.fill(); } else { _g.beginPath(); _g.moveTo(this.particles[i].position.x, this.particles[i].position.y); _g.lineTo(this.particles[i + 1].position.x, this.particles[i + 1].position.y); _g.lineTo(p1.x, p1.y); _g.lineTo(p0.x, p0.y); _g.closePath(); _g.stroke(); _g.fill(); } } } this.Side = function(x1, y1, x2, y2, x3, y3) { return ((x1 - x2) * (y3 - y2) - (y1 - y2) * (x3 - x2)); } } ConfettiRibbon.bounds = new Vector2(0, 0); confetti = {}; confetti.Context = function(parent) { var i = 0; var canvasParent = document.getElementById(parent); var canvas = document.createElement('canvas'); canvas.width = canvasParent.offsetWidth; canvas.height = canvasParent.offsetHeight; canvasParent.appendChild(canvas); var context = canvas.getContext('2d'); var interval = null; var confettiRibbonCount = 7; var rpCount = 30; var rpDist = 8.0; var rpThick = 8.0; var confettiRibbons = new Array(); ConfettiRibbon.bounds = new Vector2(canvas.width, canvas.height); for (i = 0; i < confettiRibbonCount; i++) { confettiRibbons[i] = new ConfettiRibbon(Math.random() * canvas.width, -Math.random() * canvas.height, rpCount, rpDist, rpThick, 45, 1, 0.05); } var confettiPaperCount = 25; var confettiPapers = new Array(); ConfettiPaper.bounds = new Vector2(canvas.width, canvas.height); for (i = 0; i < confettiPaperCount; i++) { confettiPapers[i] = new ConfettiPaper(Math.random() * canvas.width, Math.random() * canvas.height); } this.resize = function() { canvas.width = canvasParent.offsetWidth; canvas.height = canvasParent.offsetHeight; ConfettiPaper.bounds = new Vector2(canvas.width, canvas.height); ConfettiRibbon.bounds = new Vector2(canvas.width, canvas.height); } this.start = function() { this.stop() var context = this this.interval = setInterval(function() { confetti.update(); }, 1000.0 / frameRate) } this.stop = function() { clearInterval(this.interval); } this.update = function() { var i = 0; context.clearRect(0, 0, canvas.width, canvas.height); for (i = 0; i < confettiPaperCount; i++) { confettiPapers[i].Update(dt); confettiPapers[i].Draw(context); } for (i = 0; i < confettiRibbonCount; i++) { confettiRibbons[i].Update(dt); confettiRibbons[i].Draw(context); } } } var confetti = new confetti.Context('confetti'); confetti.start(); $(window).resize(function() { confetti.resize(); }); }; // Confetti type 2 /** * Minified by jsDelivr using Terser v5.3.5. * Original file: /npm/canvas-confetti@1.4.0/dist/confetti.browser.js * * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files */ ! function(t, e) { ! function t(e, n, a, i) { var o = !!(e.Worker && e.Blob && e.Promise && e.OffscreenCanvas && e.OffscreenCanvasRenderingContext2D && e.HTMLCanvasElement && e.HTMLCanvasElement.prototype.transferControlToOffscreen && e.URL && e.URL.createObjectURL); function r() {} function l(t) { var a = n.exports.Promise, i = void 0 !== a ? a : e.Promise; return "function" == typeof i ? new i(t) : (t(r, r), null) } var c, s, u, d, f, h, g, m, b = (u = Math.floor(1e3 / 60), d = {}, f = 0, "function" == typeof requestAnimationFrame && "function" == typeof cancelAnimationFrame ? (c = function(t) { var e = Math.random(); return d[e] = requestAnimationFrame((function n(a) { f === a || f + u - 1 < a ? (f = a, delete d[e], t()) : d[e] = requestAnimationFrame(n) })), e }, s = function(t) { d[t] && cancelAnimationFrame(d[t]) }) : (c = function(t) { return setTimeout(t, u) }, s = function(t) { return clearTimeout(t) }), { frame: c, cancel: s }), v = (m = {}, function() { if (h) return h; if (!a && o) { var e = ["var CONFETTI, SIZE = {}, module = {};", "(" + t.toString() + ")(this, module, true, SIZE);", "onmessage = function(msg) {", " if (msg.data.options) {", " CONFETTI(msg.data.options).then(function () {", " if (msg.data.callback) {", " postMessage({ callback: msg.data.callback });", " }", " });", " } else if (msg.data.reset) {", " CONFETTI.reset();", " } else if (msg.data.resize) {", " SIZE.width = msg.data.resize.width;", " SIZE.height = msg.data.resize.height;", " } else if (msg.data.canvas) {", " SIZE.width = msg.data.canvas.width;", " SIZE.height = msg.data.canvas.height;", " CONFETTI = module.exports.create(msg.data.canvas);", " }", "}"].join("\n"); try { h = new Worker(URL.createObjectURL(new Blob([e]))) } catch (t) { return void 0 !== typeof console && "function" == typeof console.warn && console.warn("🎊 Could not load worker", t), null }! function(t) { function e(e, n) { t.postMessage({ options: e || {}, callback: n }) } t.init = function(e) { var n = e.transferControlToOffscreen(); t.postMessage({ canvas: n }, [n]) }, t.fire = function(n, a, i) { if (g) return e(n, null), g; var o = Math.random().toString(36).slice(2); return g = l((function(a) { function r(e) { e.data.callback === o && (delete m[o], t.removeEventListener("message", r), g = null, i(), a()) } t.addEventListener("message", r), e(n, o), m[o] = r.bind(null, { data: { callback: o } }) })) }, t.reset = function() { for (var e in t.postMessage({ reset: !0 }), m) m[e](), delete m[e] } }(h) } return h }), y = { particleCount: 50, angle: 90, spread: 45, startVelocity: 45, decay: .9, gravity: 1, drift: 0, ticks: 200, x: .5, y: .5, shapes: ["circle"], zIndex: 100, colors: ["#26ccff", "#a25afd", "#ff5e7e", "#88ff5a", "#fcff42", "#ffa62d", "#ff36ff"], disableForReducedMotion: !1, scalar: 1 }; function p(t, e, n) { return function(t, e) { return e ? e(t) : t }(t && null != t[e] ? t[e] : y[e], n) } function M(t) { return t < 0 ? 0 : Math.floor(t) } function w(t) { return parseInt(t, 16) } function x(t) { return t.map(C) } function C(t) { var e = String(t).replace(/[^0-9a-f]/gi, ""); return e.length < 6 && (e = e[0] + e[0] + e[1] + e[1] + e[2] + e[2]), { r: w(e.substring(0, 2)), g: w(e.substring(2, 4)), b: w(e.substring(4, 6)) } } function k(t) { t.width = document.documentElement.clientWidth, t.height = document.documentElement.clientHeight } function I(t) { var e = t.getBoundingClientRect(); t.width = e.width, t.height = e.height } function T(t, e, n, o, r) { var c, s, u = e.slice(), d = t.getContext("2d"), f = l((function(e) { function l() { c = s = null, d.clearRect(0, 0, o.width, o.height), r(), e() } c = b.frame((function e() { !a || o.width === i.width && o.height === i.height || (o.width = t.width = i.width, o.height = t.height = i.height), o.width || o.height || (n(t), o.width = t.width, o.height = t.height), d.clearRect(0, 0, o.width, o.height), (u = u.filter((function(t) { return function(t, e) { e.x += Math.cos(e.angle2D) * e.velocity + e.drift, e.y += Math.sin(e.angle2D) * e.velocity + e.gravity, e.wobble += .1, e.velocity *= e.decay, e.tiltAngle += .1, e.tiltSin = Math.sin(e.tiltAngle), e.tiltCos = Math.cos(e.tiltAngle), e.random = Math.random() + 5, e.wobbleX = e.x + 10 * e.scalar * Math.cos(e.wobble), e.wobbleY = e.y + 10 * e.scalar * Math.sin(e.wobble); var n = e.tick++/e.totalTicks,a=e.x+e.random*e.tiltCos,i=e.y+e.random*e.tiltSin,o=e.wobbleX+e.random*e.tiltCos,r=e.wobbleY+e.random*e.tiltSin;return t.fillStyle="rgba("+e.color.r+", "+e.color.g+", "+e.color.b+", "+(1-n)+")",t.beginPath(),"circle"===e.shape?t.ellipse?t.ellipse(e.x,e.y,Math.abs(o-a)*e.ovalScalar,Math.abs(r-i)*e.ovalScalar,Math.PI/ 10 * e.wobble, 0, 2 * Math.PI): function(t, e, n, a, i, o, r, l, c) { t.save(), t.translate(e, n), t.rotate(o), t.scale(a, i), t.arc(0, 0, 1, r, l, c), t.restore() }(t, e.x, e.y, Math.abs(o - a) * e.ovalScalar, Math.abs(r - i) * e.ovalScalar, Math.PI / 10 * e.wobble, 0, 2 * Math.PI): (t.moveTo(Math.floor(e.x), Math.floor(e.y)), t.lineTo(Math.floor(e.wobbleX), Math.floor(i)), t.lineTo(Math.floor(o), Math.floor(r)), t.lineTo(Math.floor(a), Math.floor(e.wobbleY))), t.closePath(), t.fill(), e.tick < e.totalTicks }(d, t) }))).length ? c = b.frame(e) : l() })), s = l })); return { addFettis: function(t) { return u = u.concat(t), f }, canvas: t, promise: f, reset: function() { c && b.cancel(c), s && s() } } } function E(t, n) { var a, i = !t, r = !!p(n || {}, "resize"), c = p(n, "disableForReducedMotion", Boolean), s = o && !!p(n || {}, "useWorker") ? v() : null, u = i ? k : I, d = !(!t || !s) && !!t.__confetti_initialized, f = "function" == typeof matchMedia && matchMedia("(prefers-reduced-motion)").matches; function h(e, n, i) { for (var o, r, l, c, s, d = p(e, "particleCount", M), f = p(e, "angle", Number), h = p(e, "spread", Number), g = p(e, "startVelocity", Number), m = p(e, "decay", Number), b = p(e, "gravity", Number), v = p(e, "drift", Number), y = p(e, "colors", x), w = p(e, "ticks", Number), C = p(e, "shapes"), k = p(e, "scalar"), I = function(t) { var e = p(t, "origin", Object); return e.x = p(e, "x", Number), e.y = p(e, "y", Number), e }(e), E = d, S = [], F = t.width * I.x, N = t.height * I.y; E--;) S.push((o = { x: F, y: N, angle: f, spread: h, startVelocity: g, color: y[E % y.length], shape: C[(c = 0, s = C.length, Math.floor(Math.random() * (s - c)) + c)], ticks: w, decay: m, gravity: b, drift: v, scalar: k }, r = void 0, l = void 0, r = o.angle * (Math.PI / 180), l = o.spread * (Math.PI / 180), { x: o.x, y: o.y, wobble: 10 * Math.random(), velocity: .5 * o.startVelocity + Math.random() * o.startVelocity, angle2D: -r + (.5 * l - Math.random() * l), tiltAngle: Math.random() * Math.PI, color: o.color, shape: o.shape, tick: 0, totalTicks: o.ticks, decay: o.decay, drift: o.drift, random: Math.random() + 5, tiltSin: 0, tiltCos: 0, wobbleX: 0, wobbleY: 0, gravity: 3 * o.gravity, ovalScalar: .6, scalar: o.scalar })); return a ? a.addFettis(S) : (a = T(t, S, u, n, i)).promise } function g(n) { var o = c || p(n, "disableForReducedMotion", Boolean), g = p(n, "zIndex", Number); if (o && f) return l((function(t) { t() })); i && a ? t = a.canvas : i && !t && (t = function(t) { var e = document.createElement("canvas"); return e.style.position = "fixed", e.style.top = "0px", e.style.left = "0px", e.style.pointerEvents = "none", e.style.zIndex = t, e }(g), document.body.appendChild(t)), r && !d && u(t); var m = { width: t.width, height: t.height }; function b() { if (s) { var e = { getBoundingClientRect: function() { if (!i) return t.getBoundingClientRect() } }; return u(e), void s.postMessage({ resize: { width: e.width, height: e.height } }) } m.width = m.height = null } function v() { a = null, r && e.removeEventListener("resize", b), i && t && (document.body.removeChild(t), t = null, d = !1) } return s && !d && s.init(t), d = !0, s && (t.__confetti_initialized = !0), r && e.addEventListener("resize", b, !1), s ? s.fire(n, m, v) : h(n, m, v) } return g.reset = function() { s && s.reset(), a && a.reset() }, g } n.exports = E(null, { useWorker: !0, resize: !0 }), n.exports.create = E }(function() { return void 0 !== t ? t : "undefined" != typeof self ? self : this || {} }(), e, !1), t.confetti = e.exports }(window, {});