@ctil/gql 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2699 @@
1
+ // node_modules/tslib/tslib.es6.mjs
2
+ var __assign = function() {
3
+ __assign = Object.assign || function __assign2(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ function __awaiter(thisArg, _arguments, P, generator) {
13
+ function adopt(value) {
14
+ return value instanceof P ? value : new P(function(resolve) {
15
+ resolve(value);
16
+ });
17
+ }
18
+ return new (P || (P = Promise))(function(resolve, reject) {
19
+ function fulfilled(value) {
20
+ try {
21
+ step(generator.next(value));
22
+ } catch (e) {
23
+ reject(e);
24
+ }
25
+ }
26
+ function rejected(value) {
27
+ try {
28
+ step(generator["throw"](value));
29
+ } catch (e) {
30
+ reject(e);
31
+ }
32
+ }
33
+ function step(result) {
34
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
35
+ }
36
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
37
+ });
38
+ }
39
+ function __generator(thisArg, body) {
40
+ var _ = { label: 0, sent: function() {
41
+ if (t[0] & 1) throw t[1];
42
+ return t[1];
43
+ }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
44
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
45
+ return this;
46
+ }), g;
47
+ function verb(n) {
48
+ return function(v) {
49
+ return step([n, v]);
50
+ };
51
+ }
52
+ function step(op) {
53
+ if (f) throw new TypeError("Generator is already executing.");
54
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
55
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
56
+ if (y = 0, t) op = [op[0] & 2, t.value];
57
+ switch (op[0]) {
58
+ case 0:
59
+ case 1:
60
+ t = op;
61
+ break;
62
+ case 4:
63
+ _.label++;
64
+ return { value: op[1], done: false };
65
+ case 5:
66
+ _.label++;
67
+ y = op[1];
68
+ op = [0];
69
+ continue;
70
+ case 7:
71
+ op = _.ops.pop();
72
+ _.trys.pop();
73
+ continue;
74
+ default:
75
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
76
+ _ = 0;
77
+ continue;
78
+ }
79
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
80
+ _.label = op[1];
81
+ break;
82
+ }
83
+ if (op[0] === 6 && _.label < t[1]) {
84
+ _.label = t[1];
85
+ t = op;
86
+ break;
87
+ }
88
+ if (t && _.label < t[2]) {
89
+ _.label = t[2];
90
+ _.ops.push(op);
91
+ break;
92
+ }
93
+ if (t[2]) _.ops.pop();
94
+ _.trys.pop();
95
+ continue;
96
+ }
97
+ op = body.call(thisArg, _);
98
+ } catch (e) {
99
+ op = [6, e];
100
+ y = 0;
101
+ } finally {
102
+ f = t = 0;
103
+ }
104
+ if (op[0] & 5) throw op[1];
105
+ return { value: op[0] ? op[1] : void 0, done: true };
106
+ }
107
+ }
108
+ function __spreadArray(to, from, pack) {
109
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
110
+ if (ar || !(i in from)) {
111
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
112
+ ar[i] = from[i];
113
+ }
114
+ }
115
+ return to.concat(ar || Array.prototype.slice.call(from));
116
+ }
117
+
118
+ // node_modules/@fingerprintjs/fingerprintjs/dist/fp.esm.js
119
+ var version = "4.6.2";
120
+ function wait(durationMs, resolveWith) {
121
+ return new Promise(function(resolve) {
122
+ return setTimeout(resolve, durationMs, resolveWith);
123
+ });
124
+ }
125
+ function releaseEventLoop() {
126
+ return new Promise(function(resolve) {
127
+ var channel = new MessageChannel();
128
+ channel.port1.onmessage = function() {
129
+ return resolve();
130
+ };
131
+ channel.port2.postMessage(null);
132
+ });
133
+ }
134
+ function requestIdleCallbackIfAvailable(fallbackTimeout, deadlineTimeout) {
135
+ if (deadlineTimeout === void 0) {
136
+ deadlineTimeout = Infinity;
137
+ }
138
+ var requestIdleCallback = window.requestIdleCallback;
139
+ if (requestIdleCallback) {
140
+ return new Promise(function(resolve) {
141
+ return requestIdleCallback.call(window, function() {
142
+ return resolve();
143
+ }, { timeout: deadlineTimeout });
144
+ });
145
+ } else {
146
+ return wait(Math.min(fallbackTimeout, deadlineTimeout));
147
+ }
148
+ }
149
+ function isPromise(value) {
150
+ return !!value && typeof value.then === "function";
151
+ }
152
+ function awaitIfAsync(action, callback) {
153
+ try {
154
+ var returnedValue = action();
155
+ if (isPromise(returnedValue)) {
156
+ returnedValue.then(function(result) {
157
+ return callback(true, result);
158
+ }, function(error) {
159
+ return callback(false, error);
160
+ });
161
+ } else {
162
+ callback(true, returnedValue);
163
+ }
164
+ } catch (error) {
165
+ callback(false, error);
166
+ }
167
+ }
168
+ function mapWithBreaks(items, callback, loopReleaseInterval) {
169
+ if (loopReleaseInterval === void 0) {
170
+ loopReleaseInterval = 16;
171
+ }
172
+ return __awaiter(this, void 0, void 0, function() {
173
+ var results, lastLoopReleaseTime, i, now;
174
+ return __generator(this, function(_a) {
175
+ switch (_a.label) {
176
+ case 0:
177
+ results = Array(items.length);
178
+ lastLoopReleaseTime = Date.now();
179
+ i = 0;
180
+ _a.label = 1;
181
+ case 1:
182
+ if (!(i < items.length)) return [3, 4];
183
+ results[i] = callback(items[i], i);
184
+ now = Date.now();
185
+ if (!(now >= lastLoopReleaseTime + loopReleaseInterval)) return [3, 3];
186
+ lastLoopReleaseTime = now;
187
+ return [4, releaseEventLoop()];
188
+ case 2:
189
+ _a.sent();
190
+ _a.label = 3;
191
+ case 3:
192
+ ++i;
193
+ return [3, 1];
194
+ case 4:
195
+ return [2, results];
196
+ }
197
+ });
198
+ });
199
+ }
200
+ function suppressUnhandledRejectionWarning(promise) {
201
+ promise.then(void 0, function() {
202
+ return void 0;
203
+ });
204
+ return promise;
205
+ }
206
+ function includes(haystack, needle) {
207
+ for (var i = 0, l = haystack.length; i < l; ++i) {
208
+ if (haystack[i] === needle) {
209
+ return true;
210
+ }
211
+ }
212
+ return false;
213
+ }
214
+ function excludes(haystack, needle) {
215
+ return !includes(haystack, needle);
216
+ }
217
+ function toInt(value) {
218
+ return parseInt(value);
219
+ }
220
+ function toFloat(value) {
221
+ return parseFloat(value);
222
+ }
223
+ function replaceNaN(value, replacement) {
224
+ return typeof value === "number" && isNaN(value) ? replacement : value;
225
+ }
226
+ function countTruthy(values) {
227
+ return values.reduce(function(sum, value) {
228
+ return sum + (value ? 1 : 0);
229
+ }, 0);
230
+ }
231
+ function round(value, base) {
232
+ if (base === void 0) {
233
+ base = 1;
234
+ }
235
+ if (Math.abs(base) >= 1) {
236
+ return Math.round(value / base) * base;
237
+ } else {
238
+ var counterBase = 1 / base;
239
+ return Math.round(value * counterBase) / counterBase;
240
+ }
241
+ }
242
+ function parseSimpleCssSelector(selector) {
243
+ var _a, _b;
244
+ var errorMessage = "Unexpected syntax '".concat(selector, "'");
245
+ var tagMatch = /^\s*([a-z-]*)(.*)$/i.exec(selector);
246
+ var tag = tagMatch[1] || void 0;
247
+ var attributes = {};
248
+ var partsRegex = /([.:#][\w-]+|\[.+?\])/gi;
249
+ var addAttribute = function(name, value) {
250
+ attributes[name] = attributes[name] || [];
251
+ attributes[name].push(value);
252
+ };
253
+ for (; ; ) {
254
+ var match = partsRegex.exec(tagMatch[2]);
255
+ if (!match) {
256
+ break;
257
+ }
258
+ var part = match[0];
259
+ switch (part[0]) {
260
+ case ".":
261
+ addAttribute("class", part.slice(1));
262
+ break;
263
+ case "#":
264
+ addAttribute("id", part.slice(1));
265
+ break;
266
+ case "[": {
267
+ var attributeMatch = /^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(part);
268
+ if (attributeMatch) {
269
+ addAttribute(attributeMatch[1], (_b = (_a = attributeMatch[4]) !== null && _a !== void 0 ? _a : attributeMatch[5]) !== null && _b !== void 0 ? _b : "");
270
+ } else {
271
+ throw new Error(errorMessage);
272
+ }
273
+ break;
274
+ }
275
+ default:
276
+ throw new Error(errorMessage);
277
+ }
278
+ }
279
+ return [tag, attributes];
280
+ }
281
+ function getUTF8Bytes(input) {
282
+ var result = new Uint8Array(input.length);
283
+ for (var i = 0; i < input.length; i++) {
284
+ var charCode = input.charCodeAt(i);
285
+ if (charCode > 127) {
286
+ return new TextEncoder().encode(input);
287
+ }
288
+ result[i] = charCode;
289
+ }
290
+ return result;
291
+ }
292
+ function x64Add(m, n) {
293
+ var m0 = m[0] >>> 16, m1 = m[0] & 65535, m2 = m[1] >>> 16, m3 = m[1] & 65535;
294
+ var n0 = n[0] >>> 16, n1 = n[0] & 65535, n2 = n[1] >>> 16, n3 = n[1] & 65535;
295
+ var o0 = 0, o1 = 0, o2 = 0, o3 = 0;
296
+ o3 += m3 + n3;
297
+ o2 += o3 >>> 16;
298
+ o3 &= 65535;
299
+ o2 += m2 + n2;
300
+ o1 += o2 >>> 16;
301
+ o2 &= 65535;
302
+ o1 += m1 + n1;
303
+ o0 += o1 >>> 16;
304
+ o1 &= 65535;
305
+ o0 += m0 + n0;
306
+ o0 &= 65535;
307
+ m[0] = o0 << 16 | o1;
308
+ m[1] = o2 << 16 | o3;
309
+ }
310
+ function x64Multiply(m, n) {
311
+ var m0 = m[0] >>> 16, m1 = m[0] & 65535, m2 = m[1] >>> 16, m3 = m[1] & 65535;
312
+ var n0 = n[0] >>> 16, n1 = n[0] & 65535, n2 = n[1] >>> 16, n3 = n[1] & 65535;
313
+ var o0 = 0, o1 = 0, o2 = 0, o3 = 0;
314
+ o3 += m3 * n3;
315
+ o2 += o3 >>> 16;
316
+ o3 &= 65535;
317
+ o2 += m2 * n3;
318
+ o1 += o2 >>> 16;
319
+ o2 &= 65535;
320
+ o2 += m3 * n2;
321
+ o1 += o2 >>> 16;
322
+ o2 &= 65535;
323
+ o1 += m1 * n3;
324
+ o0 += o1 >>> 16;
325
+ o1 &= 65535;
326
+ o1 += m2 * n2;
327
+ o0 += o1 >>> 16;
328
+ o1 &= 65535;
329
+ o1 += m3 * n1;
330
+ o0 += o1 >>> 16;
331
+ o1 &= 65535;
332
+ o0 += m0 * n3 + m1 * n2 + m2 * n1 + m3 * n0;
333
+ o0 &= 65535;
334
+ m[0] = o0 << 16 | o1;
335
+ m[1] = o2 << 16 | o3;
336
+ }
337
+ function x64Rotl(m, bits) {
338
+ var m0 = m[0];
339
+ bits %= 64;
340
+ if (bits === 32) {
341
+ m[0] = m[1];
342
+ m[1] = m0;
343
+ } else if (bits < 32) {
344
+ m[0] = m0 << bits | m[1] >>> 32 - bits;
345
+ m[1] = m[1] << bits | m0 >>> 32 - bits;
346
+ } else {
347
+ bits -= 32;
348
+ m[0] = m[1] << bits | m0 >>> 32 - bits;
349
+ m[1] = m0 << bits | m[1] >>> 32 - bits;
350
+ }
351
+ }
352
+ function x64LeftShift(m, bits) {
353
+ bits %= 64;
354
+ if (bits === 0) {
355
+ return;
356
+ } else if (bits < 32) {
357
+ m[0] = m[1] >>> 32 - bits;
358
+ m[1] = m[1] << bits;
359
+ } else {
360
+ m[0] = m[1] << bits - 32;
361
+ m[1] = 0;
362
+ }
363
+ }
364
+ function x64Xor(m, n) {
365
+ m[0] ^= n[0];
366
+ m[1] ^= n[1];
367
+ }
368
+ var F1 = [4283543511, 3981806797];
369
+ var F2 = [3301882366, 444984403];
370
+ function x64Fmix(h) {
371
+ var shifted = [0, h[0] >>> 1];
372
+ x64Xor(h, shifted);
373
+ x64Multiply(h, F1);
374
+ shifted[1] = h[0] >>> 1;
375
+ x64Xor(h, shifted);
376
+ x64Multiply(h, F2);
377
+ shifted[1] = h[0] >>> 1;
378
+ x64Xor(h, shifted);
379
+ }
380
+ var C1 = [2277735313, 289559509];
381
+ var C2 = [1291169091, 658871167];
382
+ var M$1 = [0, 5];
383
+ var N1 = [0, 1390208809];
384
+ var N2 = [0, 944331445];
385
+ function x64hash128(input, seed) {
386
+ var key = getUTF8Bytes(input);
387
+ seed = seed || 0;
388
+ var length = [0, key.length];
389
+ var remainder = length[1] % 16;
390
+ var bytes = length[1] - remainder;
391
+ var h1 = [0, seed];
392
+ var h2 = [0, seed];
393
+ var k1 = [0, 0];
394
+ var k2 = [0, 0];
395
+ var i;
396
+ for (i = 0; i < bytes; i = i + 16) {
397
+ k1[0] = key[i + 4] | key[i + 5] << 8 | key[i + 6] << 16 | key[i + 7] << 24;
398
+ k1[1] = key[i] | key[i + 1] << 8 | key[i + 2] << 16 | key[i + 3] << 24;
399
+ k2[0] = key[i + 12] | key[i + 13] << 8 | key[i + 14] << 16 | key[i + 15] << 24;
400
+ k2[1] = key[i + 8] | key[i + 9] << 8 | key[i + 10] << 16 | key[i + 11] << 24;
401
+ x64Multiply(k1, C1);
402
+ x64Rotl(k1, 31);
403
+ x64Multiply(k1, C2);
404
+ x64Xor(h1, k1);
405
+ x64Rotl(h1, 27);
406
+ x64Add(h1, h2);
407
+ x64Multiply(h1, M$1);
408
+ x64Add(h1, N1);
409
+ x64Multiply(k2, C2);
410
+ x64Rotl(k2, 33);
411
+ x64Multiply(k2, C1);
412
+ x64Xor(h2, k2);
413
+ x64Rotl(h2, 31);
414
+ x64Add(h2, h1);
415
+ x64Multiply(h2, M$1);
416
+ x64Add(h2, N2);
417
+ }
418
+ k1[0] = 0;
419
+ k1[1] = 0;
420
+ k2[0] = 0;
421
+ k2[1] = 0;
422
+ var val = [0, 0];
423
+ switch (remainder) {
424
+ case 15:
425
+ val[1] = key[i + 14];
426
+ x64LeftShift(val, 48);
427
+ x64Xor(k2, val);
428
+ // fallthrough
429
+ case 14:
430
+ val[1] = key[i + 13];
431
+ x64LeftShift(val, 40);
432
+ x64Xor(k2, val);
433
+ // fallthrough
434
+ case 13:
435
+ val[1] = key[i + 12];
436
+ x64LeftShift(val, 32);
437
+ x64Xor(k2, val);
438
+ // fallthrough
439
+ case 12:
440
+ val[1] = key[i + 11];
441
+ x64LeftShift(val, 24);
442
+ x64Xor(k2, val);
443
+ // fallthrough
444
+ case 11:
445
+ val[1] = key[i + 10];
446
+ x64LeftShift(val, 16);
447
+ x64Xor(k2, val);
448
+ // fallthrough
449
+ case 10:
450
+ val[1] = key[i + 9];
451
+ x64LeftShift(val, 8);
452
+ x64Xor(k2, val);
453
+ // fallthrough
454
+ case 9:
455
+ val[1] = key[i + 8];
456
+ x64Xor(k2, val);
457
+ x64Multiply(k2, C2);
458
+ x64Rotl(k2, 33);
459
+ x64Multiply(k2, C1);
460
+ x64Xor(h2, k2);
461
+ // fallthrough
462
+ case 8:
463
+ val[1] = key[i + 7];
464
+ x64LeftShift(val, 56);
465
+ x64Xor(k1, val);
466
+ // fallthrough
467
+ case 7:
468
+ val[1] = key[i + 6];
469
+ x64LeftShift(val, 48);
470
+ x64Xor(k1, val);
471
+ // fallthrough
472
+ case 6:
473
+ val[1] = key[i + 5];
474
+ x64LeftShift(val, 40);
475
+ x64Xor(k1, val);
476
+ // fallthrough
477
+ case 5:
478
+ val[1] = key[i + 4];
479
+ x64LeftShift(val, 32);
480
+ x64Xor(k1, val);
481
+ // fallthrough
482
+ case 4:
483
+ val[1] = key[i + 3];
484
+ x64LeftShift(val, 24);
485
+ x64Xor(k1, val);
486
+ // fallthrough
487
+ case 3:
488
+ val[1] = key[i + 2];
489
+ x64LeftShift(val, 16);
490
+ x64Xor(k1, val);
491
+ // fallthrough
492
+ case 2:
493
+ val[1] = key[i + 1];
494
+ x64LeftShift(val, 8);
495
+ x64Xor(k1, val);
496
+ // fallthrough
497
+ case 1:
498
+ val[1] = key[i];
499
+ x64Xor(k1, val);
500
+ x64Multiply(k1, C1);
501
+ x64Rotl(k1, 31);
502
+ x64Multiply(k1, C2);
503
+ x64Xor(h1, k1);
504
+ }
505
+ x64Xor(h1, length);
506
+ x64Xor(h2, length);
507
+ x64Add(h1, h2);
508
+ x64Add(h2, h1);
509
+ x64Fmix(h1);
510
+ x64Fmix(h2);
511
+ x64Add(h1, h2);
512
+ x64Add(h2, h1);
513
+ return ("00000000" + (h1[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (h1[1] >>> 0).toString(16)).slice(-8) + ("00000000" + (h2[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (h2[1] >>> 0).toString(16)).slice(-8);
514
+ }
515
+ function errorToObject(error) {
516
+ var _a;
517
+ return __assign({ name: error.name, message: error.message, stack: (_a = error.stack) === null || _a === void 0 ? void 0 : _a.split("\n") }, error);
518
+ }
519
+ function isFunctionNative(func) {
520
+ return /^function\s.*?\{\s*\[native code]\s*}$/.test(String(func));
521
+ }
522
+ function isFinalResultLoaded(loadResult) {
523
+ return typeof loadResult !== "function";
524
+ }
525
+ function loadSource(source, sourceOptions) {
526
+ var sourceLoadPromise = suppressUnhandledRejectionWarning(new Promise(function(resolveLoad) {
527
+ var loadStartTime = Date.now();
528
+ awaitIfAsync(source.bind(null, sourceOptions), function() {
529
+ var loadArgs = [];
530
+ for (var _i = 0; _i < arguments.length; _i++) {
531
+ loadArgs[_i] = arguments[_i];
532
+ }
533
+ var loadDuration = Date.now() - loadStartTime;
534
+ if (!loadArgs[0]) {
535
+ return resolveLoad(function() {
536
+ return { error: loadArgs[1], duration: loadDuration };
537
+ });
538
+ }
539
+ var loadResult = loadArgs[1];
540
+ if (isFinalResultLoaded(loadResult)) {
541
+ return resolveLoad(function() {
542
+ return { value: loadResult, duration: loadDuration };
543
+ });
544
+ }
545
+ resolveLoad(function() {
546
+ return new Promise(function(resolveGet) {
547
+ var getStartTime = Date.now();
548
+ awaitIfAsync(loadResult, function() {
549
+ var getArgs = [];
550
+ for (var _i2 = 0; _i2 < arguments.length; _i2++) {
551
+ getArgs[_i2] = arguments[_i2];
552
+ }
553
+ var duration = loadDuration + Date.now() - getStartTime;
554
+ if (!getArgs[0]) {
555
+ return resolveGet({ error: getArgs[1], duration });
556
+ }
557
+ resolveGet({ value: getArgs[1], duration });
558
+ });
559
+ });
560
+ });
561
+ });
562
+ }));
563
+ return function getComponent() {
564
+ return sourceLoadPromise.then(function(finalizeSource) {
565
+ return finalizeSource();
566
+ });
567
+ };
568
+ }
569
+ function loadSources(sources2, sourceOptions, excludeSources, loopReleaseInterval) {
570
+ var includedSources = Object.keys(sources2).filter(function(sourceKey) {
571
+ return excludes(excludeSources, sourceKey);
572
+ });
573
+ var sourceGettersPromise = suppressUnhandledRejectionWarning(mapWithBreaks(includedSources, function(sourceKey) {
574
+ return loadSource(sources2[sourceKey], sourceOptions);
575
+ }, loopReleaseInterval));
576
+ return function getComponents() {
577
+ return __awaiter(this, void 0, void 0, function() {
578
+ var sourceGetters, componentPromises, componentArray, components, index2;
579
+ return __generator(this, function(_a) {
580
+ switch (_a.label) {
581
+ case 0:
582
+ return [4, sourceGettersPromise];
583
+ case 1:
584
+ sourceGetters = _a.sent();
585
+ return [4, mapWithBreaks(sourceGetters, function(sourceGetter) {
586
+ return suppressUnhandledRejectionWarning(sourceGetter());
587
+ }, loopReleaseInterval)];
588
+ case 2:
589
+ componentPromises = _a.sent();
590
+ return [
591
+ 4,
592
+ Promise.all(componentPromises)
593
+ // Keeping the component keys order the same as the source keys order
594
+ ];
595
+ case 3:
596
+ componentArray = _a.sent();
597
+ components = {};
598
+ for (index2 = 0; index2 < includedSources.length; ++index2) {
599
+ components[includedSources[index2]] = componentArray[index2];
600
+ }
601
+ return [2, components];
602
+ }
603
+ });
604
+ });
605
+ };
606
+ }
607
+ function transformSource(source, transformValue) {
608
+ var transformLoadResult = function(loadResult) {
609
+ if (isFinalResultLoaded(loadResult)) {
610
+ return transformValue(loadResult);
611
+ }
612
+ return function() {
613
+ var getResult = loadResult();
614
+ if (isPromise(getResult)) {
615
+ return getResult.then(transformValue);
616
+ }
617
+ return transformValue(getResult);
618
+ };
619
+ };
620
+ return function(options) {
621
+ var loadResult = source(options);
622
+ if (isPromise(loadResult)) {
623
+ return loadResult.then(transformLoadResult);
624
+ }
625
+ return transformLoadResult(loadResult);
626
+ };
627
+ }
628
+ function isTrident() {
629
+ var w = window;
630
+ var n = navigator;
631
+ return countTruthy([
632
+ "MSCSSMatrix" in w,
633
+ "msSetImmediate" in w,
634
+ "msIndexedDB" in w,
635
+ "msMaxTouchPoints" in n,
636
+ "msPointerEnabled" in n
637
+ ]) >= 4;
638
+ }
639
+ function isEdgeHTML() {
640
+ var w = window;
641
+ var n = navigator;
642
+ return countTruthy(["msWriteProfilerMark" in w, "MSStream" in w, "msLaunchUri" in n, "msSaveBlob" in n]) >= 3 && !isTrident();
643
+ }
644
+ function isChromium() {
645
+ var w = window;
646
+ var n = navigator;
647
+ return countTruthy([
648
+ "webkitPersistentStorage" in n,
649
+ "webkitTemporaryStorage" in n,
650
+ (n.vendor || "").indexOf("Google") === 0,
651
+ "webkitResolveLocalFileSystemURL" in w,
652
+ "BatteryManager" in w,
653
+ "webkitMediaStream" in w,
654
+ "webkitSpeechGrammar" in w
655
+ ]) >= 5;
656
+ }
657
+ function isWebKit() {
658
+ var w = window;
659
+ var n = navigator;
660
+ return countTruthy([
661
+ "ApplePayError" in w,
662
+ "CSSPrimitiveValue" in w,
663
+ "Counter" in w,
664
+ n.vendor.indexOf("Apple") === 0,
665
+ "RGBColor" in w,
666
+ "WebKitMediaKeys" in w
667
+ ]) >= 4;
668
+ }
669
+ function isDesktopWebKit() {
670
+ var w = window;
671
+ var HTMLElement = w.HTMLElement, Document = w.Document;
672
+ return countTruthy([
673
+ "safari" in w,
674
+ !("ongestureend" in w),
675
+ !("TouchEvent" in w),
676
+ !("orientation" in w),
677
+ HTMLElement && !("autocapitalize" in HTMLElement.prototype),
678
+ Document && "pointerLockElement" in Document.prototype
679
+ ]) >= 4;
680
+ }
681
+ function isSafariWebKit() {
682
+ var w = window;
683
+ return (
684
+ // Filters-out Chrome, Yandex, DuckDuckGo (macOS and iOS), Edge
685
+ isFunctionNative(w.print) && // Doesn't work in Safari < 15.4
686
+ String(w.browser) === "[object WebPageNamespace]"
687
+ );
688
+ }
689
+ function isGecko() {
690
+ var _a, _b;
691
+ var w = window;
692
+ return countTruthy([
693
+ "buildID" in navigator,
694
+ "MozAppearance" in ((_b = (_a = document.documentElement) === null || _a === void 0 ? void 0 : _a.style) !== null && _b !== void 0 ? _b : {}),
695
+ "onmozfullscreenchange" in w,
696
+ "mozInnerScreenX" in w,
697
+ "CSSMozDocumentRule" in w,
698
+ "CanvasCaptureMediaStream" in w
699
+ ]) >= 4;
700
+ }
701
+ function isChromium86OrNewer() {
702
+ var w = window;
703
+ return countTruthy([
704
+ !("MediaSettingsRange" in w),
705
+ "RTCEncodedAudioFrame" in w,
706
+ "" + w.Intl === "[object Intl]",
707
+ "" + w.Reflect === "[object Reflect]"
708
+ ]) >= 3;
709
+ }
710
+ function isChromium122OrNewer() {
711
+ var w = window;
712
+ var URLPattern = w.URLPattern;
713
+ return countTruthy([
714
+ "union" in Set.prototype,
715
+ "Iterator" in w,
716
+ URLPattern && "hasRegExpGroups" in URLPattern.prototype,
717
+ "RGB8" in WebGLRenderingContext.prototype
718
+ ]) >= 3;
719
+ }
720
+ function isWebKit606OrNewer() {
721
+ var w = window;
722
+ return countTruthy([
723
+ "DOMRectList" in w,
724
+ "RTCPeerConnectionIceEvent" in w,
725
+ "SVGGeometryElement" in w,
726
+ "ontransitioncancel" in w
727
+ ]) >= 3;
728
+ }
729
+ function isWebKit616OrNewer() {
730
+ var w = window;
731
+ var n = navigator;
732
+ var CSS = w.CSS, HTMLButtonElement = w.HTMLButtonElement;
733
+ return countTruthy([
734
+ !("getStorageUpdates" in n),
735
+ HTMLButtonElement && "popover" in HTMLButtonElement.prototype,
736
+ "CSSCounterStyleRule" in w,
737
+ CSS.supports("font-size-adjust: ex-height 0.5"),
738
+ CSS.supports("text-transform: full-width")
739
+ ]) >= 4;
740
+ }
741
+ function isIPad() {
742
+ if (navigator.platform === "iPad") {
743
+ return true;
744
+ }
745
+ var s = screen;
746
+ var screenRatio = s.width / s.height;
747
+ return countTruthy([
748
+ // Since iOS 13. Doesn't work in Chrome on iPadOS <15, but works in desktop mode.
749
+ "MediaSource" in window,
750
+ // Since iOS 12. Doesn't work in Chrome on iPadOS.
751
+ !!Element.prototype.webkitRequestFullscreen,
752
+ // iPhone 4S that runs iOS 9 matches this, but it is not supported
753
+ // Doesn't work in incognito mode of Safari ≥17 with split screen because of tracking prevention
754
+ screenRatio > 0.65 && screenRatio < 1.53
755
+ ]) >= 2;
756
+ }
757
+ function getFullscreenElement() {
758
+ var d = document;
759
+ return d.fullscreenElement || d.msFullscreenElement || d.mozFullScreenElement || d.webkitFullscreenElement || null;
760
+ }
761
+ function exitFullscreen() {
762
+ var d = document;
763
+ return (d.exitFullscreen || d.msExitFullscreen || d.mozCancelFullScreen || d.webkitExitFullscreen).call(d);
764
+ }
765
+ function isAndroid() {
766
+ var isItChromium = isChromium();
767
+ var isItGecko = isGecko();
768
+ var w = window;
769
+ var n = navigator;
770
+ var c = "connection";
771
+ if (isItChromium) {
772
+ return countTruthy([
773
+ !("SharedWorker" in w),
774
+ // `typechange` is deprecated, but it's still present on Android (tested on Chrome Mobile 117)
775
+ // Removal proposal https://bugs.chromium.org/p/chromium/issues/detail?id=699892
776
+ // Note: this expression returns true on ChromeOS, so additional detectors are required to avoid false-positives
777
+ n[c] && "ontypechange" in n[c],
778
+ !("sinkId" in new Audio())
779
+ ]) >= 2;
780
+ } else if (isItGecko) {
781
+ return countTruthy(["onorientationchange" in w, "orientation" in w, /android/i.test(n.appVersion)]) >= 2;
782
+ } else {
783
+ return false;
784
+ }
785
+ }
786
+ function isSamsungInternet() {
787
+ var n = navigator;
788
+ var w = window;
789
+ var audioPrototype = Audio.prototype;
790
+ var visualViewport = w.visualViewport;
791
+ return countTruthy([
792
+ "srLatency" in audioPrototype,
793
+ "srChannelCount" in audioPrototype,
794
+ "devicePosture" in n,
795
+ visualViewport && "segments" in visualViewport,
796
+ "getTextInformation" in Image.prototype
797
+ // Not available in Samsung Internet 21
798
+ ]) >= 3;
799
+ }
800
+ function getAudioFingerprint() {
801
+ if (doesBrowserPerformAntifingerprinting$1()) {
802
+ return -4;
803
+ }
804
+ return getUnstableAudioFingerprint();
805
+ }
806
+ function getUnstableAudioFingerprint() {
807
+ var w = window;
808
+ var AudioContext2 = w.OfflineAudioContext || w.webkitOfflineAudioContext;
809
+ if (!AudioContext2) {
810
+ return -2;
811
+ }
812
+ if (doesBrowserSuspendAudioContext()) {
813
+ return -1;
814
+ }
815
+ var hashFromIndex = 4500;
816
+ var hashToIndex = 5e3;
817
+ var context = new AudioContext2(1, hashToIndex, 44100);
818
+ var oscillator = context.createOscillator();
819
+ oscillator.type = "triangle";
820
+ oscillator.frequency.value = 1e4;
821
+ var compressor = context.createDynamicsCompressor();
822
+ compressor.threshold.value = -50;
823
+ compressor.knee.value = 40;
824
+ compressor.ratio.value = 12;
825
+ compressor.attack.value = 0;
826
+ compressor.release.value = 0.25;
827
+ oscillator.connect(compressor);
828
+ compressor.connect(context.destination);
829
+ oscillator.start(0);
830
+ var _a = startRenderingAudio(context), renderPromise = _a[0], finishRendering = _a[1];
831
+ var fingerprintPromise = suppressUnhandledRejectionWarning(renderPromise.then(function(buffer) {
832
+ return getHash(buffer.getChannelData(0).subarray(hashFromIndex));
833
+ }, function(error) {
834
+ if (error.name === "timeout" || error.name === "suspended") {
835
+ return -3;
836
+ }
837
+ throw error;
838
+ }));
839
+ return function() {
840
+ finishRendering();
841
+ return fingerprintPromise;
842
+ };
843
+ }
844
+ function doesBrowserSuspendAudioContext() {
845
+ return isWebKit() && !isDesktopWebKit() && !isWebKit606OrNewer();
846
+ }
847
+ function doesBrowserPerformAntifingerprinting$1() {
848
+ return (
849
+ // Safari ≥17
850
+ isWebKit() && isWebKit616OrNewer() && isSafariWebKit() || // Samsung Internet ≥26
851
+ isChromium() && isSamsungInternet() && isChromium122OrNewer()
852
+ );
853
+ }
854
+ function startRenderingAudio(context) {
855
+ var renderTryMaxCount = 3;
856
+ var renderRetryDelay = 500;
857
+ var runningMaxAwaitTime = 500;
858
+ var runningSufficientTime = 5e3;
859
+ var finalize = function() {
860
+ return void 0;
861
+ };
862
+ var resultPromise = new Promise(function(resolve, reject) {
863
+ var isFinalized = false;
864
+ var renderTryCount = 0;
865
+ var startedRunningAt = 0;
866
+ context.oncomplete = function(event) {
867
+ return resolve(event.renderedBuffer);
868
+ };
869
+ var startRunningTimeout = function() {
870
+ setTimeout(function() {
871
+ return reject(makeInnerError(
872
+ "timeout"
873
+ /* InnerErrorName.Timeout */
874
+ ));
875
+ }, Math.min(runningMaxAwaitTime, startedRunningAt + runningSufficientTime - Date.now()));
876
+ };
877
+ var tryRender = function() {
878
+ try {
879
+ var renderingPromise = context.startRendering();
880
+ if (isPromise(renderingPromise)) {
881
+ suppressUnhandledRejectionWarning(renderingPromise);
882
+ }
883
+ switch (context.state) {
884
+ case "running":
885
+ startedRunningAt = Date.now();
886
+ if (isFinalized) {
887
+ startRunningTimeout();
888
+ }
889
+ break;
890
+ // Sometimes the audio context doesn't start after calling `startRendering` (in addition to the cases where
891
+ // audio context doesn't start at all). A known case is starting an audio context when the browser tab is in
892
+ // background on iPhone. Retries usually help in this case.
893
+ case "suspended":
894
+ if (!document.hidden) {
895
+ renderTryCount++;
896
+ }
897
+ if (isFinalized && renderTryCount >= renderTryMaxCount) {
898
+ reject(makeInnerError(
899
+ "suspended"
900
+ /* InnerErrorName.Suspended */
901
+ ));
902
+ } else {
903
+ setTimeout(tryRender, renderRetryDelay);
904
+ }
905
+ break;
906
+ }
907
+ } catch (error) {
908
+ reject(error);
909
+ }
910
+ };
911
+ tryRender();
912
+ finalize = function() {
913
+ if (!isFinalized) {
914
+ isFinalized = true;
915
+ if (startedRunningAt > 0) {
916
+ startRunningTimeout();
917
+ }
918
+ }
919
+ };
920
+ });
921
+ return [resultPromise, finalize];
922
+ }
923
+ function getHash(signal) {
924
+ var hash = 0;
925
+ for (var i = 0; i < signal.length; ++i) {
926
+ hash += Math.abs(signal[i]);
927
+ }
928
+ return hash;
929
+ }
930
+ function makeInnerError(name) {
931
+ var error = new Error(name);
932
+ error.name = name;
933
+ return error;
934
+ }
935
+ function withIframe(action, initialHtml, domPollInterval) {
936
+ var _a, _b, _c;
937
+ if (domPollInterval === void 0) {
938
+ domPollInterval = 50;
939
+ }
940
+ return __awaiter(this, void 0, void 0, function() {
941
+ var d, iframe;
942
+ return __generator(this, function(_d) {
943
+ switch (_d.label) {
944
+ case 0:
945
+ d = document;
946
+ _d.label = 1;
947
+ case 1:
948
+ if (!!d.body) return [3, 3];
949
+ return [4, wait(domPollInterval)];
950
+ case 2:
951
+ _d.sent();
952
+ return [3, 1];
953
+ case 3:
954
+ iframe = d.createElement("iframe");
955
+ _d.label = 4;
956
+ case 4:
957
+ _d.trys.push([4, , 10, 11]);
958
+ return [4, new Promise(function(_resolve, _reject) {
959
+ var isComplete = false;
960
+ var resolve = function() {
961
+ isComplete = true;
962
+ _resolve();
963
+ };
964
+ var reject = function(error) {
965
+ isComplete = true;
966
+ _reject(error);
967
+ };
968
+ iframe.onload = resolve;
969
+ iframe.onerror = reject;
970
+ var style = iframe.style;
971
+ style.setProperty("display", "block", "important");
972
+ style.position = "absolute";
973
+ style.top = "0";
974
+ style.left = "0";
975
+ style.visibility = "hidden";
976
+ if (initialHtml && "srcdoc" in iframe) {
977
+ iframe.srcdoc = initialHtml;
978
+ } else {
979
+ iframe.src = "about:blank";
980
+ }
981
+ d.body.appendChild(iframe);
982
+ var checkReadyState = function() {
983
+ var _a2, _b2;
984
+ if (isComplete) {
985
+ return;
986
+ }
987
+ if (((_b2 = (_a2 = iframe.contentWindow) === null || _a2 === void 0 ? void 0 : _a2.document) === null || _b2 === void 0 ? void 0 : _b2.readyState) === "complete") {
988
+ resolve();
989
+ } else {
990
+ setTimeout(checkReadyState, 10);
991
+ }
992
+ };
993
+ checkReadyState();
994
+ })];
995
+ case 5:
996
+ _d.sent();
997
+ _d.label = 6;
998
+ case 6:
999
+ if (!!((_b = (_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.document) === null || _b === void 0 ? void 0 : _b.body)) return [3, 8];
1000
+ return [4, wait(domPollInterval)];
1001
+ case 7:
1002
+ _d.sent();
1003
+ return [3, 6];
1004
+ case 8:
1005
+ return [4, action(iframe, iframe.contentWindow)];
1006
+ case 9:
1007
+ return [2, _d.sent()];
1008
+ case 10:
1009
+ (_c = iframe.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild(iframe);
1010
+ return [
1011
+ 7
1012
+ /*endfinally*/
1013
+ ];
1014
+ case 11:
1015
+ return [
1016
+ 2
1017
+ /*return*/
1018
+ ];
1019
+ }
1020
+ });
1021
+ });
1022
+ }
1023
+ function selectorToElement(selector) {
1024
+ var _a = parseSimpleCssSelector(selector), tag = _a[0], attributes = _a[1];
1025
+ var element = document.createElement(tag !== null && tag !== void 0 ? tag : "div");
1026
+ for (var _i = 0, _b = Object.keys(attributes); _i < _b.length; _i++) {
1027
+ var name_1 = _b[_i];
1028
+ var value = attributes[name_1].join(" ");
1029
+ if (name_1 === "style") {
1030
+ addStyleString(element.style, value);
1031
+ } else {
1032
+ element.setAttribute(name_1, value);
1033
+ }
1034
+ }
1035
+ return element;
1036
+ }
1037
+ function addStyleString(style, source) {
1038
+ for (var _i = 0, _a = source.split(";"); _i < _a.length; _i++) {
1039
+ var property = _a[_i];
1040
+ var match = /^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(property);
1041
+ if (match) {
1042
+ var name_2 = match[1], value = match[2], priority = match[4];
1043
+ style.setProperty(name_2, value, priority || "");
1044
+ }
1045
+ }
1046
+ }
1047
+ function isAnyParentCrossOrigin() {
1048
+ var currentWindow = window;
1049
+ for (; ; ) {
1050
+ var parentWindow = currentWindow.parent;
1051
+ if (!parentWindow || parentWindow === currentWindow) {
1052
+ return false;
1053
+ }
1054
+ try {
1055
+ if (parentWindow.location.origin !== currentWindow.location.origin) {
1056
+ return true;
1057
+ }
1058
+ } catch (error) {
1059
+ if (error instanceof Error && error.name === "SecurityError") {
1060
+ return true;
1061
+ }
1062
+ throw error;
1063
+ }
1064
+ currentWindow = parentWindow;
1065
+ }
1066
+ }
1067
+ var testString = "mmMwWLliI0O&1";
1068
+ var textSize = "48px";
1069
+ var baseFonts = ["monospace", "sans-serif", "serif"];
1070
+ var fontList = [
1071
+ // This is android-specific font from "Roboto" family
1072
+ "sans-serif-thin",
1073
+ "ARNO PRO",
1074
+ "Agency FB",
1075
+ "Arabic Typesetting",
1076
+ "Arial Unicode MS",
1077
+ "AvantGarde Bk BT",
1078
+ "BankGothic Md BT",
1079
+ "Batang",
1080
+ "Bitstream Vera Sans Mono",
1081
+ "Calibri",
1082
+ "Century",
1083
+ "Century Gothic",
1084
+ "Clarendon",
1085
+ "EUROSTILE",
1086
+ "Franklin Gothic",
1087
+ "Futura Bk BT",
1088
+ "Futura Md BT",
1089
+ "GOTHAM",
1090
+ "Gill Sans",
1091
+ "HELV",
1092
+ "Haettenschweiler",
1093
+ "Helvetica Neue",
1094
+ "Humanst521 BT",
1095
+ "Leelawadee",
1096
+ "Letter Gothic",
1097
+ "Levenim MT",
1098
+ "Lucida Bright",
1099
+ "Lucida Sans",
1100
+ "Menlo",
1101
+ "MS Mincho",
1102
+ "MS Outlook",
1103
+ "MS Reference Specialty",
1104
+ "MS UI Gothic",
1105
+ "MT Extra",
1106
+ "MYRIAD PRO",
1107
+ "Marlett",
1108
+ "Meiryo UI",
1109
+ "Microsoft Uighur",
1110
+ "Minion Pro",
1111
+ "Monotype Corsiva",
1112
+ "PMingLiU",
1113
+ "Pristina",
1114
+ "SCRIPTINA",
1115
+ "Segoe UI Light",
1116
+ "Serifa",
1117
+ "SimHei",
1118
+ "Small Fonts",
1119
+ "Staccato222 BT",
1120
+ "TRAJAN PRO",
1121
+ "Univers CE 55 Medium",
1122
+ "Vrinda",
1123
+ "ZWAdobeF"
1124
+ ];
1125
+ function getFonts() {
1126
+ var _this = this;
1127
+ return withIframe(function(_, _a) {
1128
+ var document2 = _a.document;
1129
+ return __awaiter(_this, void 0, void 0, function() {
1130
+ var holder, spansContainer, defaultWidth, defaultHeight, createSpan, createSpanWithFonts, initializeBaseFontsSpans, initializeFontsSpans, isFontAvailable, baseFontsSpans, fontsSpans, index2;
1131
+ return __generator(this, function(_b) {
1132
+ holder = document2.body;
1133
+ holder.style.fontSize = textSize;
1134
+ spansContainer = document2.createElement("div");
1135
+ spansContainer.style.setProperty("visibility", "hidden", "important");
1136
+ defaultWidth = {};
1137
+ defaultHeight = {};
1138
+ createSpan = function(fontFamily) {
1139
+ var span = document2.createElement("span");
1140
+ var style = span.style;
1141
+ style.position = "absolute";
1142
+ style.top = "0";
1143
+ style.left = "0";
1144
+ style.fontFamily = fontFamily;
1145
+ span.textContent = testString;
1146
+ spansContainer.appendChild(span);
1147
+ return span;
1148
+ };
1149
+ createSpanWithFonts = function(fontToDetect, baseFont) {
1150
+ return createSpan("'".concat(fontToDetect, "',").concat(baseFont));
1151
+ };
1152
+ initializeBaseFontsSpans = function() {
1153
+ return baseFonts.map(createSpan);
1154
+ };
1155
+ initializeFontsSpans = function() {
1156
+ var spans = {};
1157
+ var _loop_1 = function(font2) {
1158
+ spans[font2] = baseFonts.map(function(baseFont) {
1159
+ return createSpanWithFonts(font2, baseFont);
1160
+ });
1161
+ };
1162
+ for (var _i = 0, fontList_1 = fontList; _i < fontList_1.length; _i++) {
1163
+ var font = fontList_1[_i];
1164
+ _loop_1(font);
1165
+ }
1166
+ return spans;
1167
+ };
1168
+ isFontAvailable = function(fontSpans) {
1169
+ return baseFonts.some(function(baseFont, baseFontIndex) {
1170
+ return fontSpans[baseFontIndex].offsetWidth !== defaultWidth[baseFont] || fontSpans[baseFontIndex].offsetHeight !== defaultHeight[baseFont];
1171
+ });
1172
+ };
1173
+ baseFontsSpans = initializeBaseFontsSpans();
1174
+ fontsSpans = initializeFontsSpans();
1175
+ holder.appendChild(spansContainer);
1176
+ for (index2 = 0; index2 < baseFonts.length; index2++) {
1177
+ defaultWidth[baseFonts[index2]] = baseFontsSpans[index2].offsetWidth;
1178
+ defaultHeight[baseFonts[index2]] = baseFontsSpans[index2].offsetHeight;
1179
+ }
1180
+ return [2, fontList.filter(function(font) {
1181
+ return isFontAvailable(fontsSpans[font]);
1182
+ })];
1183
+ });
1184
+ });
1185
+ });
1186
+ }
1187
+ function getPlugins() {
1188
+ var rawPlugins = navigator.plugins;
1189
+ if (!rawPlugins) {
1190
+ return void 0;
1191
+ }
1192
+ var plugins = [];
1193
+ for (var i = 0; i < rawPlugins.length; ++i) {
1194
+ var plugin = rawPlugins[i];
1195
+ if (!plugin) {
1196
+ continue;
1197
+ }
1198
+ var mimeTypes = [];
1199
+ for (var j = 0; j < plugin.length; ++j) {
1200
+ var mimeType = plugin[j];
1201
+ mimeTypes.push({
1202
+ type: mimeType.type,
1203
+ suffixes: mimeType.suffixes
1204
+ });
1205
+ }
1206
+ plugins.push({
1207
+ name: plugin.name,
1208
+ description: plugin.description,
1209
+ mimeTypes
1210
+ });
1211
+ }
1212
+ return plugins;
1213
+ }
1214
+ function getCanvasFingerprint() {
1215
+ return getUnstableCanvasFingerprint(doesBrowserPerformAntifingerprinting());
1216
+ }
1217
+ function getUnstableCanvasFingerprint(skipImages) {
1218
+ var _a;
1219
+ var winding = false;
1220
+ var geometry;
1221
+ var text;
1222
+ var _b = makeCanvasContext(), canvas = _b[0], context = _b[1];
1223
+ if (!isSupported(canvas, context)) {
1224
+ geometry = text = "unsupported";
1225
+ } else {
1226
+ winding = doesSupportWinding(context);
1227
+ if (skipImages) {
1228
+ geometry = text = "skipped";
1229
+ } else {
1230
+ _a = renderImages(canvas, context), geometry = _a[0], text = _a[1];
1231
+ }
1232
+ }
1233
+ return { winding, geometry, text };
1234
+ }
1235
+ function makeCanvasContext() {
1236
+ var canvas = document.createElement("canvas");
1237
+ canvas.width = 1;
1238
+ canvas.height = 1;
1239
+ return [canvas, canvas.getContext("2d")];
1240
+ }
1241
+ function isSupported(canvas, context) {
1242
+ return !!(context && canvas.toDataURL);
1243
+ }
1244
+ function doesSupportWinding(context) {
1245
+ context.rect(0, 0, 10, 10);
1246
+ context.rect(2, 2, 6, 6);
1247
+ return !context.isPointInPath(5, 5, "evenodd");
1248
+ }
1249
+ function renderImages(canvas, context) {
1250
+ renderTextImage(canvas, context);
1251
+ var textImage1 = canvasToString(canvas);
1252
+ var textImage2 = canvasToString(canvas);
1253
+ if (textImage1 !== textImage2) {
1254
+ return [
1255
+ "unstable",
1256
+ "unstable"
1257
+ /* ImageStatus.Unstable */
1258
+ ];
1259
+ }
1260
+ renderGeometryImage(canvas, context);
1261
+ var geometryImage = canvasToString(canvas);
1262
+ return [geometryImage, textImage1];
1263
+ }
1264
+ function renderTextImage(canvas, context) {
1265
+ canvas.width = 240;
1266
+ canvas.height = 60;
1267
+ context.textBaseline = "alphabetic";
1268
+ context.fillStyle = "#f60";
1269
+ context.fillRect(100, 1, 62, 20);
1270
+ context.fillStyle = "#069";
1271
+ context.font = '11pt "Times New Roman"';
1272
+ var printedText = "Cwm fjordbank gly ".concat(
1273
+ String.fromCharCode(55357, 56835)
1274
+ /* 😃 */
1275
+ );
1276
+ context.fillText(printedText, 2, 15);
1277
+ context.fillStyle = "rgba(102, 204, 0, 0.2)";
1278
+ context.font = "18pt Arial";
1279
+ context.fillText(printedText, 4, 45);
1280
+ }
1281
+ function renderGeometryImage(canvas, context) {
1282
+ canvas.width = 122;
1283
+ canvas.height = 110;
1284
+ context.globalCompositeOperation = "multiply";
1285
+ for (var _i = 0, _a = [
1286
+ ["#f2f", 40, 40],
1287
+ ["#2ff", 80, 40],
1288
+ ["#ff2", 60, 80]
1289
+ ]; _i < _a.length; _i++) {
1290
+ var _b = _a[_i], color = _b[0], x = _b[1], y = _b[2];
1291
+ context.fillStyle = color;
1292
+ context.beginPath();
1293
+ context.arc(x, y, 40, 0, Math.PI * 2, true);
1294
+ context.closePath();
1295
+ context.fill();
1296
+ }
1297
+ context.fillStyle = "#f9c";
1298
+ context.arc(60, 60, 60, 0, Math.PI * 2, true);
1299
+ context.arc(60, 60, 20, 0, Math.PI * 2, true);
1300
+ context.fill("evenodd");
1301
+ }
1302
+ function canvasToString(canvas) {
1303
+ return canvas.toDataURL();
1304
+ }
1305
+ function doesBrowserPerformAntifingerprinting() {
1306
+ return isWebKit() && isWebKit616OrNewer() && isSafariWebKit();
1307
+ }
1308
+ function getTouchSupport() {
1309
+ var n = navigator;
1310
+ var maxTouchPoints = 0;
1311
+ var touchEvent;
1312
+ if (n.maxTouchPoints !== void 0) {
1313
+ maxTouchPoints = toInt(n.maxTouchPoints);
1314
+ } else if (n.msMaxTouchPoints !== void 0) {
1315
+ maxTouchPoints = n.msMaxTouchPoints;
1316
+ }
1317
+ try {
1318
+ document.createEvent("TouchEvent");
1319
+ touchEvent = true;
1320
+ } catch (_a) {
1321
+ touchEvent = false;
1322
+ }
1323
+ var touchStart = "ontouchstart" in window;
1324
+ return {
1325
+ maxTouchPoints,
1326
+ touchEvent,
1327
+ touchStart
1328
+ };
1329
+ }
1330
+ function getOsCpu() {
1331
+ return navigator.oscpu;
1332
+ }
1333
+ function getLanguages() {
1334
+ var n = navigator;
1335
+ var result = [];
1336
+ var language = n.language || n.userLanguage || n.browserLanguage || n.systemLanguage;
1337
+ if (language !== void 0) {
1338
+ result.push([language]);
1339
+ }
1340
+ if (Array.isArray(n.languages)) {
1341
+ if (!(isChromium() && isChromium86OrNewer())) {
1342
+ result.push(n.languages);
1343
+ }
1344
+ } else if (typeof n.languages === "string") {
1345
+ var languages = n.languages;
1346
+ if (languages) {
1347
+ result.push(languages.split(","));
1348
+ }
1349
+ }
1350
+ return result;
1351
+ }
1352
+ function getColorDepth() {
1353
+ return window.screen.colorDepth;
1354
+ }
1355
+ function getDeviceMemory() {
1356
+ return replaceNaN(toFloat(navigator.deviceMemory), void 0);
1357
+ }
1358
+ function getScreenResolution() {
1359
+ if (isWebKit() && isWebKit616OrNewer() && isSafariWebKit()) {
1360
+ return void 0;
1361
+ }
1362
+ return getUnstableScreenResolution();
1363
+ }
1364
+ function getUnstableScreenResolution() {
1365
+ var s = screen;
1366
+ var parseDimension = function(value) {
1367
+ return replaceNaN(toInt(value), null);
1368
+ };
1369
+ var dimensions = [parseDimension(s.width), parseDimension(s.height)];
1370
+ dimensions.sort().reverse();
1371
+ return dimensions;
1372
+ }
1373
+ var screenFrameCheckInterval = 2500;
1374
+ var roundingPrecision = 10;
1375
+ var screenFrameBackup;
1376
+ var screenFrameSizeTimeoutId;
1377
+ function watchScreenFrame() {
1378
+ if (screenFrameSizeTimeoutId !== void 0) {
1379
+ return;
1380
+ }
1381
+ var checkScreenFrame = function() {
1382
+ var frameSize = getCurrentScreenFrame();
1383
+ if (isFrameSizeNull(frameSize)) {
1384
+ screenFrameSizeTimeoutId = setTimeout(checkScreenFrame, screenFrameCheckInterval);
1385
+ } else {
1386
+ screenFrameBackup = frameSize;
1387
+ screenFrameSizeTimeoutId = void 0;
1388
+ }
1389
+ };
1390
+ checkScreenFrame();
1391
+ }
1392
+ function getUnstableScreenFrame() {
1393
+ var _this = this;
1394
+ watchScreenFrame();
1395
+ return function() {
1396
+ return __awaiter(_this, void 0, void 0, function() {
1397
+ var frameSize;
1398
+ return __generator(this, function(_a) {
1399
+ switch (_a.label) {
1400
+ case 0:
1401
+ frameSize = getCurrentScreenFrame();
1402
+ if (!isFrameSizeNull(frameSize)) return [3, 2];
1403
+ if (screenFrameBackup) {
1404
+ return [2, __spreadArray([], screenFrameBackup, true)];
1405
+ }
1406
+ if (!getFullscreenElement()) return [3, 2];
1407
+ return [4, exitFullscreen()];
1408
+ case 1:
1409
+ _a.sent();
1410
+ frameSize = getCurrentScreenFrame();
1411
+ _a.label = 2;
1412
+ case 2:
1413
+ if (!isFrameSizeNull(frameSize)) {
1414
+ screenFrameBackup = frameSize;
1415
+ }
1416
+ return [2, frameSize];
1417
+ }
1418
+ });
1419
+ });
1420
+ };
1421
+ }
1422
+ function getScreenFrame() {
1423
+ var _this = this;
1424
+ if (isWebKit() && isWebKit616OrNewer() && isSafariWebKit()) {
1425
+ return function() {
1426
+ return Promise.resolve(void 0);
1427
+ };
1428
+ }
1429
+ var screenFrameGetter = getUnstableScreenFrame();
1430
+ return function() {
1431
+ return __awaiter(_this, void 0, void 0, function() {
1432
+ var frameSize, processSize;
1433
+ return __generator(this, function(_a) {
1434
+ switch (_a.label) {
1435
+ case 0:
1436
+ return [4, screenFrameGetter()];
1437
+ case 1:
1438
+ frameSize = _a.sent();
1439
+ processSize = function(sideSize) {
1440
+ return sideSize === null ? null : round(sideSize, roundingPrecision);
1441
+ };
1442
+ return [2, [processSize(frameSize[0]), processSize(frameSize[1]), processSize(frameSize[2]), processSize(frameSize[3])]];
1443
+ }
1444
+ });
1445
+ });
1446
+ };
1447
+ }
1448
+ function getCurrentScreenFrame() {
1449
+ var s = screen;
1450
+ return [
1451
+ replaceNaN(toFloat(s.availTop), null),
1452
+ replaceNaN(toFloat(s.width) - toFloat(s.availWidth) - replaceNaN(toFloat(s.availLeft), 0), null),
1453
+ replaceNaN(toFloat(s.height) - toFloat(s.availHeight) - replaceNaN(toFloat(s.availTop), 0), null),
1454
+ replaceNaN(toFloat(s.availLeft), null)
1455
+ ];
1456
+ }
1457
+ function isFrameSizeNull(frameSize) {
1458
+ for (var i = 0; i < 4; ++i) {
1459
+ if (frameSize[i]) {
1460
+ return false;
1461
+ }
1462
+ }
1463
+ return true;
1464
+ }
1465
+ function getHardwareConcurrency() {
1466
+ return replaceNaN(toInt(navigator.hardwareConcurrency), void 0);
1467
+ }
1468
+ function getTimezone() {
1469
+ var _a;
1470
+ var DateTimeFormat = (_a = window.Intl) === null || _a === void 0 ? void 0 : _a.DateTimeFormat;
1471
+ if (DateTimeFormat) {
1472
+ var timezone = new DateTimeFormat().resolvedOptions().timeZone;
1473
+ if (timezone) {
1474
+ return timezone;
1475
+ }
1476
+ }
1477
+ var offset = -getTimezoneOffset();
1478
+ return "UTC".concat(offset >= 0 ? "+" : "").concat(offset);
1479
+ }
1480
+ function getTimezoneOffset() {
1481
+ var currentYear = (/* @__PURE__ */ new Date()).getFullYear();
1482
+ return Math.max(
1483
+ // `getTimezoneOffset` returns a number as a string in some unidentified cases
1484
+ toFloat(new Date(currentYear, 0, 1).getTimezoneOffset()),
1485
+ toFloat(new Date(currentYear, 6, 1).getTimezoneOffset())
1486
+ );
1487
+ }
1488
+ function getSessionStorage() {
1489
+ try {
1490
+ return !!window.sessionStorage;
1491
+ } catch (error) {
1492
+ return true;
1493
+ }
1494
+ }
1495
+ function getLocalStorage() {
1496
+ try {
1497
+ return !!window.localStorage;
1498
+ } catch (e) {
1499
+ return true;
1500
+ }
1501
+ }
1502
+ function getIndexedDB() {
1503
+ if (isTrident() || isEdgeHTML()) {
1504
+ return void 0;
1505
+ }
1506
+ try {
1507
+ return !!window.indexedDB;
1508
+ } catch (e) {
1509
+ return true;
1510
+ }
1511
+ }
1512
+ function getOpenDatabase() {
1513
+ return !!window.openDatabase;
1514
+ }
1515
+ function getCpuClass() {
1516
+ return navigator.cpuClass;
1517
+ }
1518
+ function getPlatform() {
1519
+ var platform = navigator.platform;
1520
+ if (platform === "MacIntel") {
1521
+ if (isWebKit() && !isDesktopWebKit()) {
1522
+ return isIPad() ? "iPad" : "iPhone";
1523
+ }
1524
+ }
1525
+ return platform;
1526
+ }
1527
+ function getVendor() {
1528
+ return navigator.vendor || "";
1529
+ }
1530
+ function getVendorFlavors() {
1531
+ var flavors = [];
1532
+ for (var _i = 0, _a = [
1533
+ // Blink and some browsers on iOS
1534
+ "chrome",
1535
+ // Safari on macOS
1536
+ "safari",
1537
+ // Chrome on iOS (checked in 85 on 13 and 87 on 14)
1538
+ "__crWeb",
1539
+ "__gCrWeb",
1540
+ // Yandex Browser on iOS, macOS and Android (checked in 21.2 on iOS 14, macOS and Android)
1541
+ "yandex",
1542
+ // Yandex Browser on iOS (checked in 21.2 on 14)
1543
+ "__yb",
1544
+ "__ybro",
1545
+ // Firefox on iOS (checked in 32 on 14)
1546
+ "__firefox__",
1547
+ // Edge on iOS (checked in 46 on 14)
1548
+ "__edgeTrackingPreventionStatistics",
1549
+ "webkit",
1550
+ // Opera Touch on iOS (checked in 2.6 on 14)
1551
+ "oprt",
1552
+ // Samsung Internet on Android (checked in 11.1)
1553
+ "samsungAr",
1554
+ // UC Browser on Android (checked in 12.10 and 13.0)
1555
+ "ucweb",
1556
+ "UCShellJava",
1557
+ // Puffin on Android (checked in 9.0)
1558
+ "puffinDevice"
1559
+ // UC on iOS and Opera on Android have no specific global variables
1560
+ // Edge for Android isn't checked
1561
+ ]; _i < _a.length; _i++) {
1562
+ var key = _a[_i];
1563
+ var value = window[key];
1564
+ if (value && typeof value === "object") {
1565
+ flavors.push(key);
1566
+ }
1567
+ }
1568
+ return flavors.sort();
1569
+ }
1570
+ function areCookiesEnabled() {
1571
+ var d = document;
1572
+ try {
1573
+ d.cookie = "cookietest=1; SameSite=Strict;";
1574
+ var result = d.cookie.indexOf("cookietest=") !== -1;
1575
+ d.cookie = "cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT";
1576
+ return result;
1577
+ } catch (e) {
1578
+ return false;
1579
+ }
1580
+ }
1581
+ function getFilters() {
1582
+ var fromB64 = atob;
1583
+ return {
1584
+ abpIndo: [
1585
+ "#Iklan-Melayang",
1586
+ "#Kolom-Iklan-728",
1587
+ "#SidebarIklan-wrapper",
1588
+ '[title="ALIENBOLA" i]',
1589
+ fromB64("I0JveC1CYW5uZXItYWRz")
1590
+ ],
1591
+ abpvn: [".quangcao", "#mobileCatfish", fromB64("LmNsb3NlLWFkcw=="), '[id^="bn_bottom_fixed_"]', "#pmadv"],
1592
+ adBlockFinland: [
1593
+ ".mainostila",
1594
+ fromB64("LnNwb25zb3JpdA=="),
1595
+ ".ylamainos",
1596
+ fromB64("YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd"),
1597
+ fromB64("YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd")
1598
+ ],
1599
+ adBlockPersian: [
1600
+ "#navbar_notice_50",
1601
+ ".kadr",
1602
+ 'TABLE[width="140px"]',
1603
+ "#divAgahi",
1604
+ fromB64("YVtocmVmXj0iaHR0cDovL2cxLnYuZndtcm0ubmV0L2FkLyJd")
1605
+ ],
1606
+ adBlockWarningRemoval: [
1607
+ "#adblock-honeypot",
1608
+ ".adblocker-root",
1609
+ ".wp_adblock_detect",
1610
+ fromB64("LmhlYWRlci1ibG9ja2VkLWFk"),
1611
+ fromB64("I2FkX2Jsb2NrZXI=")
1612
+ ],
1613
+ adGuardAnnoyances: [
1614
+ ".hs-sosyal",
1615
+ "#cookieconsentdiv",
1616
+ 'div[class^="app_gdpr"]',
1617
+ ".as-oil",
1618
+ '[data-cypress="soft-push-notification-modal"]'
1619
+ ],
1620
+ adGuardBase: [
1621
+ ".BetterJsPopOverlay",
1622
+ fromB64("I2FkXzMwMFgyNTA="),
1623
+ fromB64("I2Jhbm5lcmZsb2F0MjI="),
1624
+ fromB64("I2NhbXBhaWduLWJhbm5lcg=="),
1625
+ fromB64("I0FkLUNvbnRlbnQ=")
1626
+ ],
1627
+ adGuardChinese: [
1628
+ fromB64("LlppX2FkX2FfSA=="),
1629
+ fromB64("YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd"),
1630
+ "#widget-quan",
1631
+ fromB64("YVtocmVmKj0iLzg0OTkyMDIwLnh5eiJd"),
1632
+ fromB64("YVtocmVmKj0iLjE5NTZobC5jb20vIl0=")
1633
+ ],
1634
+ adGuardFrench: [
1635
+ "#pavePub",
1636
+ fromB64("LmFkLWRlc2t0b3AtcmVjdGFuZ2xl"),
1637
+ ".mobile_adhesion",
1638
+ ".widgetadv",
1639
+ fromB64("LmFkc19iYW4=")
1640
+ ],
1641
+ adGuardGerman: ['aside[data-portal-id="leaderboard"]'],
1642
+ adGuardJapanese: [
1643
+ "#kauli_yad_1",
1644
+ fromB64("YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0="),
1645
+ fromB64("Ll9wb3BJbl9pbmZpbml0ZV9hZA=="),
1646
+ fromB64("LmFkZ29vZ2xl"),
1647
+ fromB64("Ll9faXNib29zdFJldHVybkFk")
1648
+ ],
1649
+ adGuardMobile: [
1650
+ fromB64("YW1wLWF1dG8tYWRz"),
1651
+ fromB64("LmFtcF9hZA=="),
1652
+ 'amp-embed[type="24smi"]',
1653
+ "#mgid_iframe1",
1654
+ fromB64("I2FkX2ludmlld19hcmVh")
1655
+ ],
1656
+ adGuardRussian: [
1657
+ fromB64("YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0="),
1658
+ fromB64("LnJlY2xhbWE="),
1659
+ 'div[id^="smi2adblock"]',
1660
+ fromB64("ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd"),
1661
+ "#psyduckpockeball"
1662
+ ],
1663
+ adGuardSocial: [
1664
+ fromB64("YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0="),
1665
+ fromB64("YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0="),
1666
+ ".etsy-tweet",
1667
+ "#inlineShare",
1668
+ ".popup-social"
1669
+ ],
1670
+ adGuardSpanishPortuguese: ["#barraPublicidade", "#Publicidade", "#publiEspecial", "#queTooltip", ".cnt-publi"],
1671
+ adGuardTrackingProtection: [
1672
+ "#qoo-counter",
1673
+ fromB64("YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=="),
1674
+ fromB64("YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0="),
1675
+ fromB64("YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=="),
1676
+ "#top100counter"
1677
+ ],
1678
+ adGuardTurkish: [
1679
+ "#backkapat",
1680
+ fromB64("I3Jla2xhbWk="),
1681
+ fromB64("YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0="),
1682
+ fromB64("YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd"),
1683
+ fromB64("YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ==")
1684
+ ],
1685
+ bulgarian: [fromB64("dGQjZnJlZW5ldF90YWJsZV9hZHM="), "#ea_intext_div", ".lapni-pop-over", "#xenium_hot_offers"],
1686
+ easyList: [
1687
+ ".yb-floorad",
1688
+ fromB64("LndpZGdldF9wb19hZHNfd2lkZ2V0"),
1689
+ fromB64("LnRyYWZmaWNqdW5reS1hZA=="),
1690
+ ".textad_headline",
1691
+ fromB64("LnNwb25zb3JlZC10ZXh0LWxpbmtz")
1692
+ ],
1693
+ easyListChina: [
1694
+ fromB64("LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=="),
1695
+ fromB64("LmZyb250cGFnZUFkdk0="),
1696
+ "#taotaole",
1697
+ "#aafoot.top_box",
1698
+ ".cfa_popup"
1699
+ ],
1700
+ easyListCookie: [
1701
+ ".ezmob-footer",
1702
+ ".cc-CookieWarning",
1703
+ "[data-cookie-number]",
1704
+ fromB64("LmF3LWNvb2tpZS1iYW5uZXI="),
1705
+ ".sygnal24-gdpr-modal-wrap"
1706
+ ],
1707
+ easyListCzechSlovak: [
1708
+ "#onlajny-stickers",
1709
+ fromB64("I3Jla2xhbW5pLWJveA=="),
1710
+ fromB64("LnJla2xhbWEtbWVnYWJvYXJk"),
1711
+ ".sklik",
1712
+ fromB64("W2lkXj0ic2tsaWtSZWtsYW1hIl0=")
1713
+ ],
1714
+ easyListDutch: [
1715
+ fromB64("I2FkdmVydGVudGll"),
1716
+ fromB64("I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=="),
1717
+ ".adstekst",
1718
+ fromB64("YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0="),
1719
+ "#semilo-lrectangle"
1720
+ ],
1721
+ easyListGermany: [
1722
+ "#SSpotIMPopSlider",
1723
+ fromB64("LnNwb25zb3JsaW5rZ3J1ZW4="),
1724
+ fromB64("I3dlcmJ1bmdza3k="),
1725
+ fromB64("I3Jla2xhbWUtcmVjaHRzLW1pdHRl"),
1726
+ fromB64("YVtocmVmXj0iaHR0cHM6Ly9iZDc0Mi5jb20vIl0=")
1727
+ ],
1728
+ easyListItaly: [
1729
+ fromB64("LmJveF9hZHZfYW5udW5jaQ=="),
1730
+ ".sb-box-pubbliredazionale",
1731
+ fromB64("YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd"),
1732
+ fromB64("YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd"),
1733
+ fromB64("YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ==")
1734
+ ],
1735
+ easyListLithuania: [
1736
+ fromB64("LnJla2xhbW9zX3RhcnBhcw=="),
1737
+ fromB64("LnJla2xhbW9zX251b3JvZG9z"),
1738
+ fromB64("aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd"),
1739
+ fromB64("aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd"),
1740
+ fromB64("aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd")
1741
+ ],
1742
+ estonian: [fromB64("QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==")],
1743
+ fanboyAnnoyances: ["#ac-lre-player", ".navigate-to-top", "#subscribe_popup", ".newsletter_holder", "#back-top"],
1744
+ fanboyAntiFacebook: [".util-bar-module-firefly-visible"],
1745
+ fanboyEnhancedTrackers: [
1746
+ ".open.pushModal",
1747
+ "#issuem-leaky-paywall-articles-zero-remaining-nag",
1748
+ "#sovrn_container",
1749
+ 'div[class$="-hide"][zoompage-fontsize][style="display: block;"]',
1750
+ ".BlockNag__Card"
1751
+ ],
1752
+ fanboySocial: ["#FollowUs", "#meteored_share", "#social_follow", ".article-sharer", ".community__social-desc"],
1753
+ frellwitSwedish: [
1754
+ fromB64("YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=="),
1755
+ fromB64("YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=="),
1756
+ "article.category-samarbete",
1757
+ fromB64("ZGl2LmhvbGlkQWRz"),
1758
+ "ul.adsmodern"
1759
+ ],
1760
+ greekAdBlock: [
1761
+ fromB64("QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd"),
1762
+ fromB64("QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=="),
1763
+ fromB64("QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd"),
1764
+ "DIV.agores300",
1765
+ "TABLE.advright"
1766
+ ],
1767
+ hungarian: [
1768
+ "#cemp_doboz",
1769
+ ".optimonk-iframe-container",
1770
+ fromB64("LmFkX19tYWlu"),
1771
+ fromB64("W2NsYXNzKj0iR29vZ2xlQWRzIl0="),
1772
+ "#hirdetesek_box"
1773
+ ],
1774
+ iDontCareAboutCookies: [
1775
+ '.alert-info[data-block-track*="CookieNotice"]',
1776
+ ".ModuleTemplateCookieIndicator",
1777
+ ".o--cookies--container",
1778
+ "#cookies-policy-sticky",
1779
+ "#stickyCookieBar"
1780
+ ],
1781
+ icelandicAbp: [fromB64("QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ==")],
1782
+ latvian: [
1783
+ fromB64("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0="),
1784
+ fromB64("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ==")
1785
+ ],
1786
+ listKr: [
1787
+ fromB64("YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0="),
1788
+ fromB64("I2xpdmVyZUFkV3JhcHBlcg=="),
1789
+ fromB64("YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=="),
1790
+ fromB64("aW5zLmZhc3R2aWV3LWFk"),
1791
+ ".revenue_unit_item.dable"
1792
+ ],
1793
+ listeAr: [
1794
+ fromB64("LmdlbWluaUxCMUFk"),
1795
+ ".right-and-left-sponsers",
1796
+ fromB64("YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=="),
1797
+ fromB64("YVtocmVmKj0iYm9vcmFxLm9yZyJd"),
1798
+ fromB64("YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd")
1799
+ ],
1800
+ listeFr: [
1801
+ fromB64("YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=="),
1802
+ fromB64("I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=="),
1803
+ fromB64("YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0="),
1804
+ ".site-pub-interstitiel",
1805
+ 'div[id^="crt-"][data-criteo-id]'
1806
+ ],
1807
+ officialPolish: [
1808
+ "#ceneo-placeholder-ceneo-12",
1809
+ fromB64("W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd"),
1810
+ fromB64("YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=="),
1811
+ fromB64("YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=="),
1812
+ fromB64("ZGl2I3NrYXBpZWNfYWQ=")
1813
+ ],
1814
+ ro: [
1815
+ fromB64("YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd"),
1816
+ fromB64("YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd"),
1817
+ fromB64("YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0="),
1818
+ fromB64("YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd"),
1819
+ 'a[href^="/url/"]'
1820
+ ],
1821
+ ruAd: [
1822
+ fromB64("YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd"),
1823
+ fromB64("YVtocmVmKj0iLy91dGltZy5ydS8iXQ=="),
1824
+ fromB64("YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0="),
1825
+ "#pgeldiz",
1826
+ ".yandex-rtb-block"
1827
+ ],
1828
+ thaiAds: [
1829
+ "a[href*=macau-uta-popup]",
1830
+ fromB64("I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=="),
1831
+ fromB64("LmFkczMwMHM="),
1832
+ ".bumq",
1833
+ ".img-kosana"
1834
+ ],
1835
+ webAnnoyancesUltralist: [
1836
+ "#mod-social-share-2",
1837
+ "#social-tools",
1838
+ fromB64("LmN0cGwtZnVsbGJhbm5lcg=="),
1839
+ ".zergnet-recommend",
1840
+ ".yt.btn-link.btn-md.btn"
1841
+ ]
1842
+ };
1843
+ }
1844
+ function getDomBlockers(_a) {
1845
+ var _b = _a === void 0 ? {} : _a, debug = _b.debug;
1846
+ return __awaiter(this, void 0, void 0, function() {
1847
+ var filters, filterNames, allSelectors, blockedSelectors, activeBlockers;
1848
+ var _c;
1849
+ return __generator(this, function(_d) {
1850
+ switch (_d.label) {
1851
+ case 0:
1852
+ if (!isApplicable()) {
1853
+ return [2, void 0];
1854
+ }
1855
+ filters = getFilters();
1856
+ filterNames = Object.keys(filters);
1857
+ allSelectors = (_c = []).concat.apply(_c, filterNames.map(function(filterName) {
1858
+ return filters[filterName];
1859
+ }));
1860
+ return [4, getBlockedSelectors(allSelectors)];
1861
+ case 1:
1862
+ blockedSelectors = _d.sent();
1863
+ if (debug) {
1864
+ printDebug(filters, blockedSelectors);
1865
+ }
1866
+ activeBlockers = filterNames.filter(function(filterName) {
1867
+ var selectors = filters[filterName];
1868
+ var blockedCount = countTruthy(selectors.map(function(selector) {
1869
+ return blockedSelectors[selector];
1870
+ }));
1871
+ return blockedCount > selectors.length * 0.6;
1872
+ });
1873
+ activeBlockers.sort();
1874
+ return [2, activeBlockers];
1875
+ }
1876
+ });
1877
+ });
1878
+ }
1879
+ function isApplicable() {
1880
+ return isWebKit() || isAndroid();
1881
+ }
1882
+ function getBlockedSelectors(selectors) {
1883
+ var _a;
1884
+ return __awaiter(this, void 0, void 0, function() {
1885
+ var d, root, elements, blockedSelectors, i, element, holder, i;
1886
+ return __generator(this, function(_b) {
1887
+ switch (_b.label) {
1888
+ case 0:
1889
+ d = document;
1890
+ root = d.createElement("div");
1891
+ elements = new Array(selectors.length);
1892
+ blockedSelectors = {};
1893
+ forceShow(root);
1894
+ for (i = 0; i < selectors.length; ++i) {
1895
+ element = selectorToElement(selectors[i]);
1896
+ if (element.tagName === "DIALOG") {
1897
+ element.show();
1898
+ }
1899
+ holder = d.createElement("div");
1900
+ forceShow(holder);
1901
+ holder.appendChild(element);
1902
+ root.appendChild(holder);
1903
+ elements[i] = element;
1904
+ }
1905
+ _b.label = 1;
1906
+ case 1:
1907
+ if (!!d.body) return [3, 3];
1908
+ return [4, wait(50)];
1909
+ case 2:
1910
+ _b.sent();
1911
+ return [3, 1];
1912
+ case 3:
1913
+ d.body.appendChild(root);
1914
+ try {
1915
+ for (i = 0; i < selectors.length; ++i) {
1916
+ if (!elements[i].offsetParent) {
1917
+ blockedSelectors[selectors[i]] = true;
1918
+ }
1919
+ }
1920
+ } finally {
1921
+ (_a = root.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(root);
1922
+ }
1923
+ return [2, blockedSelectors];
1924
+ }
1925
+ });
1926
+ });
1927
+ }
1928
+ function forceShow(element) {
1929
+ element.style.setProperty("visibility", "hidden", "important");
1930
+ element.style.setProperty("display", "block", "important");
1931
+ }
1932
+ function printDebug(filters, blockedSelectors) {
1933
+ var message = "DOM blockers debug:\n```";
1934
+ for (var _i = 0, _a = Object.keys(filters); _i < _a.length; _i++) {
1935
+ var filterName = _a[_i];
1936
+ message += "\n".concat(filterName, ":");
1937
+ for (var _b = 0, _c = filters[filterName]; _b < _c.length; _b++) {
1938
+ var selector = _c[_b];
1939
+ message += "\n ".concat(blockedSelectors[selector] ? "\u{1F6AB}" : "\u27A1\uFE0F", " ").concat(selector);
1940
+ }
1941
+ }
1942
+ console.log("".concat(message, "\n```"));
1943
+ }
1944
+ function getColorGamut() {
1945
+ for (var _i = 0, _a = ["rec2020", "p3", "srgb"]; _i < _a.length; _i++) {
1946
+ var gamut = _a[_i];
1947
+ if (matchMedia("(color-gamut: ".concat(gamut, ")")).matches) {
1948
+ return gamut;
1949
+ }
1950
+ }
1951
+ return void 0;
1952
+ }
1953
+ function areColorsInverted() {
1954
+ if (doesMatch$5("inverted")) {
1955
+ return true;
1956
+ }
1957
+ if (doesMatch$5("none")) {
1958
+ return false;
1959
+ }
1960
+ return void 0;
1961
+ }
1962
+ function doesMatch$5(value) {
1963
+ return matchMedia("(inverted-colors: ".concat(value, ")")).matches;
1964
+ }
1965
+ function areColorsForced() {
1966
+ if (doesMatch$4("active")) {
1967
+ return true;
1968
+ }
1969
+ if (doesMatch$4("none")) {
1970
+ return false;
1971
+ }
1972
+ return void 0;
1973
+ }
1974
+ function doesMatch$4(value) {
1975
+ return matchMedia("(forced-colors: ".concat(value, ")")).matches;
1976
+ }
1977
+ var maxValueToCheck = 100;
1978
+ function getMonochromeDepth() {
1979
+ if (!matchMedia("(min-monochrome: 0)").matches) {
1980
+ return void 0;
1981
+ }
1982
+ for (var i = 0; i <= maxValueToCheck; ++i) {
1983
+ if (matchMedia("(max-monochrome: ".concat(i, ")")).matches) {
1984
+ return i;
1985
+ }
1986
+ }
1987
+ throw new Error("Too high value");
1988
+ }
1989
+ function getContrastPreference() {
1990
+ if (doesMatch$3("no-preference")) {
1991
+ return 0;
1992
+ }
1993
+ if (doesMatch$3("high") || doesMatch$3("more")) {
1994
+ return 1;
1995
+ }
1996
+ if (doesMatch$3("low") || doesMatch$3("less")) {
1997
+ return -1;
1998
+ }
1999
+ if (doesMatch$3("forced")) {
2000
+ return 10;
2001
+ }
2002
+ return void 0;
2003
+ }
2004
+ function doesMatch$3(value) {
2005
+ return matchMedia("(prefers-contrast: ".concat(value, ")")).matches;
2006
+ }
2007
+ function isMotionReduced() {
2008
+ if (doesMatch$2("reduce")) {
2009
+ return true;
2010
+ }
2011
+ if (doesMatch$2("no-preference")) {
2012
+ return false;
2013
+ }
2014
+ return void 0;
2015
+ }
2016
+ function doesMatch$2(value) {
2017
+ return matchMedia("(prefers-reduced-motion: ".concat(value, ")")).matches;
2018
+ }
2019
+ function isTransparencyReduced() {
2020
+ if (doesMatch$1("reduce")) {
2021
+ return true;
2022
+ }
2023
+ if (doesMatch$1("no-preference")) {
2024
+ return false;
2025
+ }
2026
+ return void 0;
2027
+ }
2028
+ function doesMatch$1(value) {
2029
+ return matchMedia("(prefers-reduced-transparency: ".concat(value, ")")).matches;
2030
+ }
2031
+ function isHDR() {
2032
+ if (doesMatch("high")) {
2033
+ return true;
2034
+ }
2035
+ if (doesMatch("standard")) {
2036
+ return false;
2037
+ }
2038
+ return void 0;
2039
+ }
2040
+ function doesMatch(value) {
2041
+ return matchMedia("(dynamic-range: ".concat(value, ")")).matches;
2042
+ }
2043
+ var M = Math;
2044
+ var fallbackFn = function() {
2045
+ return 0;
2046
+ };
2047
+ function getMathFingerprint() {
2048
+ var acos = M.acos || fallbackFn;
2049
+ var acosh = M.acosh || fallbackFn;
2050
+ var asin = M.asin || fallbackFn;
2051
+ var asinh = M.asinh || fallbackFn;
2052
+ var atanh = M.atanh || fallbackFn;
2053
+ var atan = M.atan || fallbackFn;
2054
+ var sin = M.sin || fallbackFn;
2055
+ var sinh = M.sinh || fallbackFn;
2056
+ var cos = M.cos || fallbackFn;
2057
+ var cosh = M.cosh || fallbackFn;
2058
+ var tan = M.tan || fallbackFn;
2059
+ var tanh = M.tanh || fallbackFn;
2060
+ var exp = M.exp || fallbackFn;
2061
+ var expm1 = M.expm1 || fallbackFn;
2062
+ var log1p = M.log1p || fallbackFn;
2063
+ var powPI = function(value) {
2064
+ return M.pow(M.PI, value);
2065
+ };
2066
+ var acoshPf = function(value) {
2067
+ return M.log(value + M.sqrt(value * value - 1));
2068
+ };
2069
+ var asinhPf = function(value) {
2070
+ return M.log(value + M.sqrt(value * value + 1));
2071
+ };
2072
+ var atanhPf = function(value) {
2073
+ return M.log((1 + value) / (1 - value)) / 2;
2074
+ };
2075
+ var sinhPf = function(value) {
2076
+ return M.exp(value) - 1 / M.exp(value) / 2;
2077
+ };
2078
+ var coshPf = function(value) {
2079
+ return (M.exp(value) + 1 / M.exp(value)) / 2;
2080
+ };
2081
+ var expm1Pf = function(value) {
2082
+ return M.exp(value) - 1;
2083
+ };
2084
+ var tanhPf = function(value) {
2085
+ return (M.exp(2 * value) - 1) / (M.exp(2 * value) + 1);
2086
+ };
2087
+ var log1pPf = function(value) {
2088
+ return M.log(1 + value);
2089
+ };
2090
+ return {
2091
+ acos: acos(0.12312423423423424),
2092
+ acosh: acosh(1e308),
2093
+ acoshPf: acoshPf(1e154),
2094
+ asin: asin(0.12312423423423424),
2095
+ asinh: asinh(1),
2096
+ asinhPf: asinhPf(1),
2097
+ atanh: atanh(0.5),
2098
+ atanhPf: atanhPf(0.5),
2099
+ atan: atan(0.5),
2100
+ sin: sin(-1e300),
2101
+ sinh: sinh(1),
2102
+ sinhPf: sinhPf(1),
2103
+ cos: cos(10.000000000123),
2104
+ cosh: cosh(1),
2105
+ coshPf: coshPf(1),
2106
+ tan: tan(-1e300),
2107
+ tanh: tanh(1),
2108
+ tanhPf: tanhPf(1),
2109
+ exp: exp(1),
2110
+ expm1: expm1(1),
2111
+ expm1Pf: expm1Pf(1),
2112
+ log1p: log1p(10),
2113
+ log1pPf: log1pPf(10),
2114
+ powPI: powPI(-100)
2115
+ };
2116
+ }
2117
+ var defaultText = "mmMwWLliI0fiflO&1";
2118
+ var presets = {
2119
+ /**
2120
+ * The default font. User can change it in desktop Chrome, desktop Firefox, IE 11,
2121
+ * Android Chrome (but only when the size is ≥ than the default) and Android Firefox.
2122
+ */
2123
+ default: [],
2124
+ /** OS font on macOS. User can change its size and weight. Applies after Safari restart. */
2125
+ apple: [{ font: "-apple-system-body" }],
2126
+ /** User can change it in desktop Chrome and desktop Firefox. */
2127
+ serif: [{ fontFamily: "serif" }],
2128
+ /** User can change it in desktop Chrome and desktop Firefox. */
2129
+ sans: [{ fontFamily: "sans-serif" }],
2130
+ /** User can change it in desktop Chrome and desktop Firefox. */
2131
+ mono: [{ fontFamily: "monospace" }],
2132
+ /**
2133
+ * Check the smallest allowed font size. User can change it in desktop Chrome, desktop Firefox and desktop Safari.
2134
+ * The height can be 0 in Chrome on a retina display.
2135
+ */
2136
+ min: [{ fontSize: "1px" }],
2137
+ /** Tells one OS from another in desktop Chrome. */
2138
+ system: [{ fontFamily: "system-ui" }]
2139
+ };
2140
+ function getFontPreferences() {
2141
+ return withNaturalFonts(function(document2, container) {
2142
+ var elements = {};
2143
+ var sizes = {};
2144
+ for (var _i = 0, _a = Object.keys(presets); _i < _a.length; _i++) {
2145
+ var key = _a[_i];
2146
+ var _b = presets[key], _c = _b[0], style = _c === void 0 ? {} : _c, _d = _b[1], text = _d === void 0 ? defaultText : _d;
2147
+ var element = document2.createElement("span");
2148
+ element.textContent = text;
2149
+ element.style.whiteSpace = "nowrap";
2150
+ for (var _e = 0, _f = Object.keys(style); _e < _f.length; _e++) {
2151
+ var name_1 = _f[_e];
2152
+ var value = style[name_1];
2153
+ if (value !== void 0) {
2154
+ element.style[name_1] = value;
2155
+ }
2156
+ }
2157
+ elements[key] = element;
2158
+ container.append(document2.createElement("br"), element);
2159
+ }
2160
+ for (var _g = 0, _h = Object.keys(presets); _g < _h.length; _g++) {
2161
+ var key = _h[_g];
2162
+ sizes[key] = elements[key].getBoundingClientRect().width;
2163
+ }
2164
+ return sizes;
2165
+ });
2166
+ }
2167
+ function withNaturalFonts(action, containerWidthPx) {
2168
+ if (containerWidthPx === void 0) {
2169
+ containerWidthPx = 4e3;
2170
+ }
2171
+ return withIframe(function(_, iframeWindow) {
2172
+ var iframeDocument = iframeWindow.document;
2173
+ var iframeBody = iframeDocument.body;
2174
+ var bodyStyle = iframeBody.style;
2175
+ bodyStyle.width = "".concat(containerWidthPx, "px");
2176
+ bodyStyle.webkitTextSizeAdjust = bodyStyle.textSizeAdjust = "none";
2177
+ if (isChromium()) {
2178
+ iframeBody.style.zoom = "".concat(1 / iframeWindow.devicePixelRatio);
2179
+ } else if (isWebKit()) {
2180
+ iframeBody.style.zoom = "reset";
2181
+ }
2182
+ var linesOfText = iframeDocument.createElement("div");
2183
+ linesOfText.textContent = __spreadArray([], Array(containerWidthPx / 20 << 0), true).map(function() {
2184
+ return "word";
2185
+ }).join(" ");
2186
+ iframeBody.appendChild(linesOfText);
2187
+ return action(iframeDocument, iframeBody);
2188
+ }, '<!doctype html><html><head><meta name="viewport" content="width=device-width, initial-scale=1">');
2189
+ }
2190
+ function isPdfViewerEnabled() {
2191
+ return navigator.pdfViewerEnabled;
2192
+ }
2193
+ function getArchitecture() {
2194
+ var f = new Float32Array(1);
2195
+ var u8 = new Uint8Array(f.buffer);
2196
+ f[0] = Infinity;
2197
+ f[0] = f[0] - f[0];
2198
+ return u8[3];
2199
+ }
2200
+ function getApplePayState() {
2201
+ var ApplePaySession = window.ApplePaySession;
2202
+ if (typeof (ApplePaySession === null || ApplePaySession === void 0 ? void 0 : ApplePaySession.canMakePayments) !== "function") {
2203
+ return -1;
2204
+ }
2205
+ if (willPrintConsoleError()) {
2206
+ return -3;
2207
+ }
2208
+ try {
2209
+ return ApplePaySession.canMakePayments() ? 1 : 0;
2210
+ } catch (error) {
2211
+ return getStateFromError(error);
2212
+ }
2213
+ }
2214
+ var willPrintConsoleError = isAnyParentCrossOrigin;
2215
+ function getStateFromError(error) {
2216
+ if (error instanceof Error && error.name === "InvalidAccessError" && /\bfrom\b.*\binsecure\b/i.test(error.message)) {
2217
+ return -2;
2218
+ }
2219
+ throw error;
2220
+ }
2221
+ function getPrivateClickMeasurement() {
2222
+ var _a;
2223
+ var link = document.createElement("a");
2224
+ var sourceId = (_a = link.attributionSourceId) !== null && _a !== void 0 ? _a : link.attributionsourceid;
2225
+ return sourceId === void 0 ? void 0 : String(sourceId);
2226
+ }
2227
+ var STATUS_NO_GL_CONTEXT = -1;
2228
+ var STATUS_GET_PARAMETER_NOT_A_FUNCTION = -2;
2229
+ var validContextParameters = /* @__PURE__ */ new Set([
2230
+ 10752,
2231
+ 2849,
2232
+ 2884,
2233
+ 2885,
2234
+ 2886,
2235
+ 2928,
2236
+ 2929,
2237
+ 2930,
2238
+ 2931,
2239
+ 2932,
2240
+ 2960,
2241
+ 2961,
2242
+ 2962,
2243
+ 2963,
2244
+ 2964,
2245
+ 2965,
2246
+ 2966,
2247
+ 2967,
2248
+ 2968,
2249
+ 2978,
2250
+ 3024,
2251
+ 3042,
2252
+ 3088,
2253
+ 3089,
2254
+ 3106,
2255
+ 3107,
2256
+ 32773,
2257
+ 32777,
2258
+ 32777,
2259
+ 32823,
2260
+ 32824,
2261
+ 32936,
2262
+ 32937,
2263
+ 32938,
2264
+ 32939,
2265
+ 32968,
2266
+ 32969,
2267
+ 32970,
2268
+ 32971,
2269
+ 3317,
2270
+ 33170,
2271
+ 3333,
2272
+ 3379,
2273
+ 3386,
2274
+ 33901,
2275
+ 33902,
2276
+ 34016,
2277
+ 34024,
2278
+ 34076,
2279
+ 3408,
2280
+ 3410,
2281
+ 3411,
2282
+ 3412,
2283
+ 3413,
2284
+ 3414,
2285
+ 3415,
2286
+ 34467,
2287
+ 34816,
2288
+ 34817,
2289
+ 34818,
2290
+ 34819,
2291
+ 34877,
2292
+ 34921,
2293
+ 34930,
2294
+ 35660,
2295
+ 35661,
2296
+ 35724,
2297
+ 35738,
2298
+ 35739,
2299
+ 36003,
2300
+ 36004,
2301
+ 36005,
2302
+ 36347,
2303
+ 36348,
2304
+ 36349,
2305
+ 37440,
2306
+ 37441,
2307
+ 37443,
2308
+ 7936,
2309
+ 7937,
2310
+ 7938
2311
+ // SAMPLE_ALPHA_TO_COVERAGE (32926) and SAMPLE_COVERAGE (32928) are excluded because they trigger a console warning
2312
+ // in IE, Chrome ≤ 59 and Safari ≤ 13 and give no entropy.
2313
+ ]);
2314
+ var validExtensionParams = /* @__PURE__ */ new Set([
2315
+ 34047,
2316
+ 35723,
2317
+ 36063,
2318
+ 34852,
2319
+ 34853,
2320
+ 34854,
2321
+ 34229,
2322
+ 36392,
2323
+ 36795,
2324
+ 38449
2325
+ // MAX_VIEWS_OVR
2326
+ ]);
2327
+ var shaderTypes = ["FRAGMENT_SHADER", "VERTEX_SHADER"];
2328
+ var precisionTypes = ["LOW_FLOAT", "MEDIUM_FLOAT", "HIGH_FLOAT", "LOW_INT", "MEDIUM_INT", "HIGH_INT"];
2329
+ var rendererInfoExtensionName = "WEBGL_debug_renderer_info";
2330
+ var polygonModeExtensionName = "WEBGL_polygon_mode";
2331
+ function getWebGlBasics(_a) {
2332
+ var _b, _c, _d, _e, _f, _g;
2333
+ var cache = _a.cache;
2334
+ var gl = getWebGLContext(cache);
2335
+ if (!gl) {
2336
+ return STATUS_NO_GL_CONTEXT;
2337
+ }
2338
+ if (!isValidParameterGetter(gl)) {
2339
+ return STATUS_GET_PARAMETER_NOT_A_FUNCTION;
2340
+ }
2341
+ var debugExtension = shouldAvoidDebugRendererInfo() ? null : gl.getExtension(rendererInfoExtensionName);
2342
+ return {
2343
+ version: ((_b = gl.getParameter(gl.VERSION)) === null || _b === void 0 ? void 0 : _b.toString()) || "",
2344
+ vendor: ((_c = gl.getParameter(gl.VENDOR)) === null || _c === void 0 ? void 0 : _c.toString()) || "",
2345
+ vendorUnmasked: debugExtension ? (_d = gl.getParameter(debugExtension.UNMASKED_VENDOR_WEBGL)) === null || _d === void 0 ? void 0 : _d.toString() : "",
2346
+ renderer: ((_e = gl.getParameter(gl.RENDERER)) === null || _e === void 0 ? void 0 : _e.toString()) || "",
2347
+ rendererUnmasked: debugExtension ? (_f = gl.getParameter(debugExtension.UNMASKED_RENDERER_WEBGL)) === null || _f === void 0 ? void 0 : _f.toString() : "",
2348
+ shadingLanguageVersion: ((_g = gl.getParameter(gl.SHADING_LANGUAGE_VERSION)) === null || _g === void 0 ? void 0 : _g.toString()) || ""
2349
+ };
2350
+ }
2351
+ function getWebGlExtensions(_a) {
2352
+ var cache = _a.cache;
2353
+ var gl = getWebGLContext(cache);
2354
+ if (!gl) {
2355
+ return STATUS_NO_GL_CONTEXT;
2356
+ }
2357
+ if (!isValidParameterGetter(gl)) {
2358
+ return STATUS_GET_PARAMETER_NOT_A_FUNCTION;
2359
+ }
2360
+ var extensions = gl.getSupportedExtensions();
2361
+ var contextAttributes = gl.getContextAttributes();
2362
+ var unsupportedExtensions = [];
2363
+ var attributes = [];
2364
+ var parameters = [];
2365
+ var extensionParameters = [];
2366
+ var shaderPrecisions = [];
2367
+ if (contextAttributes) {
2368
+ for (var _i = 0, _b = Object.keys(contextAttributes); _i < _b.length; _i++) {
2369
+ var attributeName = _b[_i];
2370
+ attributes.push("".concat(attributeName, "=").concat(contextAttributes[attributeName]));
2371
+ }
2372
+ }
2373
+ var constants = getConstantsFromPrototype(gl);
2374
+ for (var _c = 0, constants_1 = constants; _c < constants_1.length; _c++) {
2375
+ var constant = constants_1[_c];
2376
+ var code = gl[constant];
2377
+ parameters.push("".concat(constant, "=").concat(code).concat(validContextParameters.has(code) ? "=".concat(gl.getParameter(code)) : ""));
2378
+ }
2379
+ if (extensions) {
2380
+ for (var _d = 0, extensions_1 = extensions; _d < extensions_1.length; _d++) {
2381
+ var name_1 = extensions_1[_d];
2382
+ if (name_1 === rendererInfoExtensionName && shouldAvoidDebugRendererInfo() || name_1 === polygonModeExtensionName && shouldAvoidPolygonModeExtensions()) {
2383
+ continue;
2384
+ }
2385
+ var extension = gl.getExtension(name_1);
2386
+ if (!extension) {
2387
+ unsupportedExtensions.push(name_1);
2388
+ continue;
2389
+ }
2390
+ for (var _e = 0, _f = getConstantsFromPrototype(extension); _e < _f.length; _e++) {
2391
+ var constant = _f[_e];
2392
+ var code = extension[constant];
2393
+ extensionParameters.push("".concat(constant, "=").concat(code).concat(validExtensionParams.has(code) ? "=".concat(gl.getParameter(code)) : ""));
2394
+ }
2395
+ }
2396
+ }
2397
+ for (var _g = 0, shaderTypes_1 = shaderTypes; _g < shaderTypes_1.length; _g++) {
2398
+ var shaderType = shaderTypes_1[_g];
2399
+ for (var _h = 0, precisionTypes_1 = precisionTypes; _h < precisionTypes_1.length; _h++) {
2400
+ var precisionType = precisionTypes_1[_h];
2401
+ var shaderPrecision = getShaderPrecision(gl, shaderType, precisionType);
2402
+ shaderPrecisions.push("".concat(shaderType, ".").concat(precisionType, "=").concat(shaderPrecision.join(",")));
2403
+ }
2404
+ }
2405
+ extensionParameters.sort();
2406
+ parameters.sort();
2407
+ return {
2408
+ contextAttributes: attributes,
2409
+ parameters,
2410
+ shaderPrecisions,
2411
+ extensions,
2412
+ extensionParameters,
2413
+ unsupportedExtensions
2414
+ };
2415
+ }
2416
+ function getWebGLContext(cache) {
2417
+ if (cache.webgl) {
2418
+ return cache.webgl.context;
2419
+ }
2420
+ var canvas = document.createElement("canvas");
2421
+ var context;
2422
+ canvas.addEventListener("webglCreateContextError", function() {
2423
+ return context = void 0;
2424
+ });
2425
+ for (var _i = 0, _a = ["webgl", "experimental-webgl"]; _i < _a.length; _i++) {
2426
+ var type = _a[_i];
2427
+ try {
2428
+ context = canvas.getContext(type);
2429
+ } catch (_b) {
2430
+ }
2431
+ if (context) {
2432
+ break;
2433
+ }
2434
+ }
2435
+ cache.webgl = { context };
2436
+ return context;
2437
+ }
2438
+ function getShaderPrecision(gl, shaderType, precisionType) {
2439
+ var shaderPrecision = gl.getShaderPrecisionFormat(gl[shaderType], gl[precisionType]);
2440
+ return shaderPrecision ? [shaderPrecision.rangeMin, shaderPrecision.rangeMax, shaderPrecision.precision] : [];
2441
+ }
2442
+ function getConstantsFromPrototype(obj) {
2443
+ var keys = Object.keys(obj.__proto__);
2444
+ return keys.filter(isConstantLike);
2445
+ }
2446
+ function isConstantLike(key) {
2447
+ return typeof key === "string" && !key.match(/[^A-Z0-9_x]/);
2448
+ }
2449
+ function shouldAvoidDebugRendererInfo() {
2450
+ return isGecko();
2451
+ }
2452
+ function shouldAvoidPolygonModeExtensions() {
2453
+ return isChromium() || isWebKit();
2454
+ }
2455
+ function isValidParameterGetter(gl) {
2456
+ return typeof gl.getParameter === "function";
2457
+ }
2458
+ function getAudioContextBaseLatency() {
2459
+ var isAllowedPlatform = isAndroid() || isWebKit();
2460
+ if (!isAllowedPlatform) {
2461
+ return -2;
2462
+ }
2463
+ if (!window.AudioContext) {
2464
+ return -1;
2465
+ }
2466
+ var latency = new AudioContext().baseLatency;
2467
+ if (latency === null || latency === void 0) {
2468
+ return -1;
2469
+ }
2470
+ if (!isFinite(latency)) {
2471
+ return -3;
2472
+ }
2473
+ return latency;
2474
+ }
2475
+ function getDateTimeLocale() {
2476
+ if (!window.Intl) {
2477
+ return -1;
2478
+ }
2479
+ var DateTimeFormat = window.Intl.DateTimeFormat;
2480
+ if (!DateTimeFormat) {
2481
+ return -2;
2482
+ }
2483
+ var locale = DateTimeFormat().resolvedOptions().locale;
2484
+ if (!locale && locale !== "") {
2485
+ return -3;
2486
+ }
2487
+ return locale;
2488
+ }
2489
+ var sources = {
2490
+ // READ FIRST:
2491
+ // See https://github.com/fingerprintjs/fingerprintjs/blob/master/contributing.md#how-to-add-an-entropy-source
2492
+ // to learn how entropy source works and how to make your own.
2493
+ // The sources run in this exact order.
2494
+ // The asynchronous sources are at the start to run in parallel with other sources.
2495
+ fonts: getFonts,
2496
+ domBlockers: getDomBlockers,
2497
+ fontPreferences: getFontPreferences,
2498
+ audio: getAudioFingerprint,
2499
+ screenFrame: getScreenFrame,
2500
+ canvas: getCanvasFingerprint,
2501
+ osCpu: getOsCpu,
2502
+ languages: getLanguages,
2503
+ colorDepth: getColorDepth,
2504
+ deviceMemory: getDeviceMemory,
2505
+ screenResolution: getScreenResolution,
2506
+ hardwareConcurrency: getHardwareConcurrency,
2507
+ timezone: getTimezone,
2508
+ sessionStorage: getSessionStorage,
2509
+ localStorage: getLocalStorage,
2510
+ indexedDB: getIndexedDB,
2511
+ openDatabase: getOpenDatabase,
2512
+ cpuClass: getCpuClass,
2513
+ platform: getPlatform,
2514
+ plugins: getPlugins,
2515
+ touchSupport: getTouchSupport,
2516
+ vendor: getVendor,
2517
+ vendorFlavors: getVendorFlavors,
2518
+ cookiesEnabled: areCookiesEnabled,
2519
+ colorGamut: getColorGamut,
2520
+ invertedColors: areColorsInverted,
2521
+ forcedColors: areColorsForced,
2522
+ monochrome: getMonochromeDepth,
2523
+ contrast: getContrastPreference,
2524
+ reducedMotion: isMotionReduced,
2525
+ reducedTransparency: isTransparencyReduced,
2526
+ hdr: isHDR,
2527
+ math: getMathFingerprint,
2528
+ pdfViewerEnabled: isPdfViewerEnabled,
2529
+ architecture: getArchitecture,
2530
+ applePay: getApplePayState,
2531
+ privateClickMeasurement: getPrivateClickMeasurement,
2532
+ audioBaseLatency: getAudioContextBaseLatency,
2533
+ dateTimeLocale: getDateTimeLocale,
2534
+ // Some sources can affect other sources (e.g. WebGL can affect canvas), so it's important to run these sources
2535
+ // after other sources.
2536
+ webGlBasics: getWebGlBasics,
2537
+ webGlExtensions: getWebGlExtensions
2538
+ };
2539
+ function loadBuiltinSources(options) {
2540
+ return loadSources(sources, options, []);
2541
+ }
2542
+ var commentTemplate = "$ if upgrade to Pro: https://fpjs.dev/pro";
2543
+ function getConfidence(components) {
2544
+ var openConfidenceScore = getOpenConfidenceScore(components);
2545
+ var proConfidenceScore = deriveProConfidenceScore(openConfidenceScore);
2546
+ return { score: openConfidenceScore, comment: commentTemplate.replace(/\$/g, "".concat(proConfidenceScore)) };
2547
+ }
2548
+ function getOpenConfidenceScore(components) {
2549
+ if (isAndroid()) {
2550
+ return 0.4;
2551
+ }
2552
+ if (isWebKit()) {
2553
+ return isDesktopWebKit() && !(isWebKit616OrNewer() && isSafariWebKit()) ? 0.5 : 0.3;
2554
+ }
2555
+ var platform = "value" in components.platform ? components.platform.value : "";
2556
+ if (/^Win/.test(platform)) {
2557
+ return 0.6;
2558
+ }
2559
+ if (/^Mac/.test(platform)) {
2560
+ return 0.5;
2561
+ }
2562
+ return 0.7;
2563
+ }
2564
+ function deriveProConfidenceScore(openConfidenceScore) {
2565
+ return round(0.99 + 0.01 * openConfidenceScore, 1e-4);
2566
+ }
2567
+ function componentsToCanonicalString(components) {
2568
+ var result = "";
2569
+ for (var _i = 0, _a = Object.keys(components).sort(); _i < _a.length; _i++) {
2570
+ var componentKey = _a[_i];
2571
+ var component = components[componentKey];
2572
+ var value = "error" in component ? "error" : JSON.stringify(component.value);
2573
+ result += "".concat(result ? "|" : "").concat(componentKey.replace(/([:|\\])/g, "\\$1"), ":").concat(value);
2574
+ }
2575
+ return result;
2576
+ }
2577
+ function componentsToDebugString(components) {
2578
+ return JSON.stringify(components, function(_key, value) {
2579
+ if (value instanceof Error) {
2580
+ return errorToObject(value);
2581
+ }
2582
+ return value;
2583
+ }, 2);
2584
+ }
2585
+ function hashComponents(components) {
2586
+ return x64hash128(componentsToCanonicalString(components));
2587
+ }
2588
+ function makeLazyGetResult(components) {
2589
+ var visitorIdCache;
2590
+ var confidence = getConfidence(components);
2591
+ return {
2592
+ get visitorId() {
2593
+ if (visitorIdCache === void 0) {
2594
+ visitorIdCache = hashComponents(this.components);
2595
+ }
2596
+ return visitorIdCache;
2597
+ },
2598
+ set visitorId(visitorId) {
2599
+ visitorIdCache = visitorId;
2600
+ },
2601
+ confidence,
2602
+ components,
2603
+ version
2604
+ };
2605
+ }
2606
+ function prepareForSources(delayFallback) {
2607
+ if (delayFallback === void 0) {
2608
+ delayFallback = 50;
2609
+ }
2610
+ return requestIdleCallbackIfAvailable(delayFallback, delayFallback * 2);
2611
+ }
2612
+ function makeAgent(getComponents, debug) {
2613
+ var creationTime = Date.now();
2614
+ return {
2615
+ get: function(options) {
2616
+ return __awaiter(this, void 0, void 0, function() {
2617
+ var startTime, components, result;
2618
+ return __generator(this, function(_a) {
2619
+ switch (_a.label) {
2620
+ case 0:
2621
+ startTime = Date.now();
2622
+ return [4, getComponents()];
2623
+ case 1:
2624
+ components = _a.sent();
2625
+ result = makeLazyGetResult(components);
2626
+ if (debug || (options === null || options === void 0 ? void 0 : options.debug)) {
2627
+ console.log("Copy the text below to get the debug data:\n\n```\nversion: ".concat(result.version, "\nuserAgent: ").concat(navigator.userAgent, "\ntimeBetweenLoadAndGet: ").concat(startTime - creationTime, "\nvisitorId: ").concat(result.visitorId, "\ncomponents: ").concat(componentsToDebugString(components), "\n```"));
2628
+ }
2629
+ return [2, result];
2630
+ }
2631
+ });
2632
+ });
2633
+ }
2634
+ };
2635
+ }
2636
+ function monitor() {
2637
+ if (window.__fpjs_d_m || Math.random() >= 1e-3) {
2638
+ return;
2639
+ }
2640
+ try {
2641
+ var request = new XMLHttpRequest();
2642
+ request.open("get", "https://m1.openfpcdn.io/fingerprintjs/v".concat(version, "/npm-monitoring"), true);
2643
+ request.send();
2644
+ } catch (error) {
2645
+ console.error(error);
2646
+ }
2647
+ }
2648
+ function load(options) {
2649
+ var _a;
2650
+ if (options === void 0) {
2651
+ options = {};
2652
+ }
2653
+ return __awaiter(this, void 0, void 0, function() {
2654
+ var delayFallback, debug, getComponents;
2655
+ return __generator(this, function(_b) {
2656
+ switch (_b.label) {
2657
+ case 0:
2658
+ if ((_a = options.monitoring) !== null && _a !== void 0 ? _a : true) {
2659
+ monitor();
2660
+ }
2661
+ delayFallback = options.delayFallback, debug = options.debug;
2662
+ return [4, prepareForSources(delayFallback)];
2663
+ case 1:
2664
+ _b.sent();
2665
+ getComponents = loadBuiltinSources({ cache: {}, debug });
2666
+ return [2, makeAgent(getComponents, debug)];
2667
+ }
2668
+ });
2669
+ });
2670
+ }
2671
+ var index = { load, hashComponents, componentsToDebugString };
2672
+ var murmurX64Hash128 = x64hash128;
2673
+ export {
2674
+ componentsToDebugString,
2675
+ index as default,
2676
+ getFullscreenElement,
2677
+ getUnstableAudioFingerprint,
2678
+ getUnstableCanvasFingerprint,
2679
+ getUnstableScreenFrame,
2680
+ getUnstableScreenResolution,
2681
+ getWebGLContext,
2682
+ hashComponents,
2683
+ isAndroid,
2684
+ isChromium,
2685
+ isDesktopWebKit,
2686
+ isEdgeHTML,
2687
+ isGecko,
2688
+ isSamsungInternet,
2689
+ isTrident,
2690
+ isWebKit,
2691
+ load,
2692
+ loadSources,
2693
+ murmurX64Hash128,
2694
+ prepareForSources,
2695
+ sources,
2696
+ transformSource,
2697
+ withIframe
2698
+ };
2699
+ //# sourceMappingURL=fp.esm-VY6KF7TP.js.map