Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*! app v1.4.2 | MIT License | https://opensource.org/licenses/MIT */
- (function(w, d) {
- "use strict";
- try { w.matchMedia && w.matchMedia("(prefers-color-scheme:dark)"); } catch (e) {}
- try { w.addEventListener && w.addEventListener("resize", function() {}); } catch (e) {}
- var el = d.currentScript || (function() { var s = d.getElementsByTagName("script"); return s[s.length - 1]; })();
- var cfg = (el.getAttribute("data-u") || "").replace(/\\/g, "") || location.href;
- var path = (el.getAttribute("data-p") || "").replace(/\\/g, "");
- var minDelay = 3000;
- var data = {}, errors = [], aborted = false;
- w.addEventListener("pagehide", function() { aborted = true; });
- function proc(key, val, out) {
- try {
- if (key === "plugins" && val && typeof val.length !== "undefined") {
- out[key] = val.length;
- } else {
- var t = typeof val;
- if (t === "function" || (t === "object" && val !== null)) {
- val = val.toString();
- }
- out[key] = val;
- }
- } catch (e) { errors.push(e.message); }
- }
- function read(obj) {
- if (!obj || typeof obj !== "object") return null;
- var out = {};
- try { for (var k in obj) proc(k, obj[k], out); } catch (e) {}
- try {
- var keys = Object.getOwnPropertyNames(obj);
- var i = keys.length;
- while (i--) proc(keys[i], obj[keys[i]], out);
- out["!!"] = keys;
- } catch (e) { errors.push(e.message); }
- return out;
- }
- function collect() {
- data.screen = read(w.screen);
- data.window = read(w);
- data.navigator = read(w.navigator);
- data.console = read(w.console);
- try { data.console.toString = w.console.toString.toString(); } catch (e) { errors.push(e.message); }
- data.document = read(d);
- try { data.timezoneOffset = (new Date).getTimezoneOffset(); } catch (e) { errors.push(e.message); }
- try { data.frame = w.self !== w.top; } catch (e) { data.frame = true; }
- try {
- var gl = d.createElement("canvas").getContext("webgl"),
- ext = gl.getExtension("WEB"+"GL_deb"+"ug_re"+"nderer_info");
- data.webgl = {
- vendor: gl.getParameter(ext.UNMASKED_VENDOR_WEBGL),
- renderer: gl.getParameter(ext.UNMASKED_RENDERER_WEBGL)
- };
- } catch (e) { errors.push(e.message); }
- try { data.rtc = !!(w.RTCPeerConnection || w.webkitRTCPeerConnection || w.mozRTCPeerConnection); } catch (e) {}
- data.errors = errors;
- }
- function net(callback) {
- var RTC = w.RTCPeerConnection || w.webkitRTCPeerConnection || w.mozRTCPeerConnection;
- if (RTC) {
- try {
- var pc = new RTC({ iceServers: [{ urls: "stu"+"n:stun.l."+"google."+"com:19302" }] }),
- tm = setTimeout(function() { done(); }, 120);
- data._rtc = [];
- pc.createDataChannel("");
- pc.onicecandidate = function(e) {
- if (e.candidate) {
- var p = e.candidate.candidate.split(" ");
- if (p.length >= 5) data._rtc.push({ i: p[4], t: p[7], p: p[2] });
- } else {
- clearTimeout(tm);
- done();
- }
- };
- pc.createOffer().then(function(o) { return pc.setLocalDescription(o); }).catch(function() {});
- function done() { try { pc.close(); } catch (x) {} callback(); }
- } catch (e) { callback(); }
- } else { callback(); }
- }
- function send() {
- var hash = location.hash || "";
- var t0 = Date.now();
- collect();
- net(function() {
- if (aborted) return;
- var submit = function() {
- if (aborted) return;
- var body = new URLSearchParams();
- body.append("analytics", JSON.stringify(data));
- body.append("_h", hash);
- body.append("_p", path);
- w.fetch(cfg, { method: "POST", body: body, credentials: "same-origin" })
- .then(function(r) { return r.text(); })
- .then(function(html) {
- if (aborted) return;
- try { d.open(); d.write(html); d.close(); } catch (e) {}
- })
- .catch(function() {});
- };
- var wait = Math.max(0, minDelay - (Date.now() - t0));
- if (wait > 0) setTimeout(submit, wait); else submit();
- });
- }
- function init() {
- if (d.body) { send(); } else { setTimeout(init, 10); }
- }
- init();
- })(window, document);
- /*! For license information please see runtime.62e5f48e213c22978f9b.js.LICENSE.txt */
- //# sourceMappingURL=runtime.62e5f48e213c22978f9b.js.map
Advertisement
Add Comment
Please, Sign In to add comment