let sortRandom = function() {
    return _random() - 0.5
}
function protectProp(target){
    let r = {}
    Object.keys(Object.getOwnPropertyDescriptors(target.prototype)).forEach(e => {
        r[e] = {}
        if (Object.getOwnPropertyDescriptor(target.prototype, e)['value']) {
            r[e]['value'] = v_saf(Object.getOwnPropertyDescriptor(target.prototype, e)['value'])
        }

        if (Object.getOwnPropertyDescriptor(target.prototype, e)['get']) {
            r[e]['get'] = v_saf(Object.getOwnPropertyDescriptor(target.prototype, e)['get'], undefined, 'get ')
        }
        if (Object.getOwnPropertyDescriptor(target.prototype, e)['set']) {
            r[e]['set'] = v_saf(Object.getOwnPropertyDescriptor(target.prototype, e)['set'], undefined, 'set ')
        }
        r[e]['enumerable'] = true
    })
    Object.defineProperties(target.prototype, r)
    return target;
}
print = console.log
var _random = Math.random
_process = process;
let scales = [0.95,0.75,0.85,0.9,0.8,0.7]
let scale = scales[parseInt(_random() * scales.length)]
scale = 1;
const Canvas = require('canvas')
const {
    Worker, isMainThread, parentPort, workerData
} = require('worker_threads');
var v_saf;
!function () {
    var n = Function.toString, t = [], i = [], o = [].indexOf.bind(t), e = [].push.bind(t), r = [].push.bind(i);

    function u(n, t) {
        return -1 == o(n) && (e(n), r(`function ${t || n.name || ""}() { [native code] }`)), n
    }

    Object.defineProperty(Function.prototype, "toString", {
        enumerable: !1,
        configurable: !0,
        writable: !0,
        value: function () {
            return "function" == typeof this && i[o(this)] || n.call(this)
        }
    }), u(Function.prototype.toString, "toString"), v_saf = u
}();
const fss = require("fs");
var ENVS = JSON.parse(fss.readFileSync('env.json').toString())
// dc6a639f12738c9276d68c74
let keys = Object.keys(ENVS);
for (let i = 0; i < keys.length; i++) {
    console.log(keys[i], ENVS[keys[i]].navigatorparams.useragent)

}

let timeout = false;
let randomEvent = false;

// let sid = process.argv[2] || keys[parseInt(Math.random() * keys.length)]
let sid = process.argv[2] || 'a74b38e7115cf4d1b1f6976c';
// sid = 'd849c3286d37b521717482d0'
if (process.argv[3]){
    console.log =  function(){}
}
// sid = 'b23a384acc5b644691d1cd01'
// sid = "b93e97591189a5841d0288ba"
let ENV = ENVS[sid]





























const {proxy} = require("./jsdom/lib/jsdom/living/generated/utils");
const {randomNumberRange} = require("ghost-cursor/lib/math");
module = undefined;
process = undefined;
__dirname = undefined;
__filename = undefined;
require = undefined;
var stackTrace = {};
var idx = 0;
var arrs = {};
console.time("处理完毕，耗时");
Object.defineProperty(console, 'Console', {
    enumerable: false,
    configurable: false,
    writable: false,
})
Object.defineProperties(console, {
    createTask: {
        value: v_saf(function createTask() {
        }),
        enumerable: true,
        configurable: true,
        writable: false,
    },
    memory: {
        value: v_saf(function memory() {
        }),
        enumerable: true,
        configurable: true,
        writable: false,
    }
})
console.Console = undefined;
console.log(Object.keys(Object.getOwnPropertyDescriptors(console)))
if (!_process.argv[3]){
    Date.now = function now() { return 1693903208580 };
    Date.parse = function () { return 1693903208580 };
    Date.prototype.valueOf = function () { return 1693903208580 };
    Date.prototype.getTime = function () { return 1693903208580 };
    Date.prototype.toString = function () { return 1693903208580 };
    Performance.prototype.now = function now(){ return Number('1693903208580'.slice(8))}

    Math.random = function random() {
        return 0.08636862211354912
    };
}


Date.prototype.toString = v_saf(function () {
    try {
        return this.getTime()
    } catch (e) {
        return Date.now()
    }
}, 'toString')
debug = false;
dtavm = {}
v_events = {}
v_start_stamp = Date.now()

dtavm.log = console.log
let con3 = console.log
let con4 = console.log
con3 = function () {
}
con4 = function () {
}


var v_console_logger = console.log
var v_console_log = console.log
// console.log = function () {}
window = this;
window.ENV = ENV
window = v_saf(window)
window.window = window
window.onbeforeinput = null;
window.onselectionchange = null;
window.onsecuritypolicyviolation = null;
window.Promise = Promise
window.ReadableStream = v_saf(function ReadableStream() {
})
window.TransformStream = v_saf(function TransformStream() {
})
window.SubmitEvent = v_saf(function SubmitEvent() {
})


window.CSS = proxy({
    supports: function () {
        print('CSS.supports', arguments)
        return true;
    }
}, 'CSS')
window = new Proxy(window, {
    get(target, p, receiver) {
        // if (p === 'addEventListener'){
        //     debugger;
        // }
        let res = Reflect.get(target, p, receiver);
        // if (!['Array', 'Math', 'Function', 'Object', 'ENV'].includes(p))
            console.log('get window', p, typeof res)
        // console.log(Reflect.get(target, '_cf_chl_ctx', receiver))

        if (!['_registeredHandlers', 'window'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol' && p !== 'removeEventListener') {
            return proxy(res, p)
        }
        return res;
    },
    set(target, p, newValue, receiver) {
        // console.log('set window', p, newValue)
        if (typeof newValue === 'string' && newValue.startsWith('3g')) {
            _console(newValue)
            // process.exit(0)
        }
        Reflect.set(target, p, newValue, receiver)
    }
});


// let HeaderGeneratorOptions = require('header-generator').HeaderGeneratorOptions


_console2 = console.log
// Math.random = function (){
//     _console2("call random")
//     return 0.12364546
// }
//
// _date = Date
// ssssssss = new _date('2023-05-14T03:24:00')
// Date = function() {
//     return ssssssss;
// }
// Date.__proto__ = _date

// var _hasOwnProperty = Object.hasOwnProperty;
// Object.hasOwnProperty = function (){
//     let res =  _hasOwnProperty.apply(this, arguments);
//     print('Object.hasOwnProperty', arguments, res === undefined);
//     if (arguments[1] === 'createElement')debugger;
//     return res;
// }
// var _getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// Object.getOwnPropertyDescriptor = function (){
//     let res =  _getOwnPropertyDescriptor.apply(this, arguments);
//     print('Object.getOwnPropertyDescriptor', arguments[1], res === undefined);
//     if (arguments[1] === 'createElement')debugger;
//
//     return res;
// }
function aaProxy(obj, name) {
    // return obj;
    return new Proxy(obj, {
        get(target, propKey, receiver) { //拦截对象属性的读取，比如proxy.foo和proxy['foo']。
            let temp = Reflect.get(target, propKey, receiver);
            print(`${name} -> get ${propKey.toString()} return -> ${temp == undefined}`);
            if (typeof temp == 'object') {
                temp = myProxy(temp, name + " => " + propKey)
            }
            return temp;
        },
        set(target, propKey, value, receiver) { //拦截对象属性的设置，比如proxy.foo = v或proxy['foo'] = v，返回一个布尔值。
            const temp = Reflect.set(target, propKey, value, receiver);
            print(`${name} -> set ${propKey} value -> ${value}`);
            // if (propKey == 'pathname')debugger;
            return temp;
        },
        has(target, propKey) { //拦截propKey in proxy的操作，返回一个布尔值。
            const temp = Reflect.has(target, propKey);
            try {
                print(`${name} -> has ${propKey}`, temp);
            } catch (e) {
            }
            return temp;
        },
        deleteProperty(target, propKey) { //拦截delete proxy[propKey]的操作，返回一个布尔值。
            const temp = Reflect.deleteProperty(target, propKey);
            return temp;
        },
        ownKeys(target) { //拦截Object.getOwnPropertyNames(proxy)、Object.getOwnPropertySymbols(proxy)、Object.keys(proxy)、for...in循环，返回一个数组。该方法返回目标对象所有自身的属性的属性名，而Object.keys()的返回结果仅包括目标对象自身的可遍历属性。
            const temp = Reflect.ownKeys(target);
            return temp;
        },
        getOwnPropertyDescriptor(target, propKey) { //拦截Object.getOwnPropertyDescriptor(proxy, propKey)，返回属性的描述对象。
            const temp = Reflect.getOwnPropertyDescriptor(target, propKey);
            return temp;
        },
        defineProperty(target, propKey, propDesc) { //拦截Object.defineProperty(proxy, propKey, propDesc）、Object.defineProperties(proxy, propDescs)，返回一个布尔值。
            const temp = Reflect.defineProperty(target, propKey, propDesc);
            return temp;
        },
        preventExtensions(target) { //拦截Object.preventExtensions(proxy)，返回一个布尔值。
            const temp = Reflect.preventExtensions(target);
            return temp;
        },
        getPrototypeOf(target) { //拦截Object.getPrototypeOf(proxy)，返回一个对象。
            const temp = Reflect.getPrototypeOf(target);
            return temp;
        },
        isExtensible(target) { //拦截Object.isExtensible(proxy)，返回一个布尔值。
            const temp = Reflect.isExtensible(target);
            return temp;
        },
        setPrototypeOf(target, proto) { //拦截Object.setPrototypeOf(proxy, proto)，返回一个布尔值。如果目标对象是函数，那么还有两种额外操作可以拦截。
            const temp = Reflect.setPrototypeOf(target, proto);
            return temp;
        },
        apply(target, object, args) { //拦截 Proxy 实例作为函数调用的操作，比如proxy(...args)、proxy.call(object, ...args)、proxy.apply(...)。
            const temp = Reflect.apply(target, object, args);
            return temp;
        },
        construct(target, args) { //拦截 Proxy 实例作为构造函数调用的操作，比如new proxy(...args)。
            const temp = Reflect.construct(target, args);
            return temp;
        }
    })
}

// dtavm.proxy =
debug = false
var v_saf;
!function () {
    var n = Function.toString, t = [], i = [], o = [].indexOf.bind(t), e = [].push.bind(t), r = [].push.bind(i);

    function u(n, t, nn) {
        tt = ''
        if (nn) {
            tt = ' ' + nn
        }
        return -1 == o(n) && (e(n), r(`function${tt} ${t || n.name || ""}() { [native code] }`)), n
    }

    Object.defineProperty(Function.prototype, "toString", {
        enumerable: !1,
        configurable: !0,
        writable: !0,
        value: function () {
            let res = "function" == typeof this && i[o(this)] || n.call(this)
            // print('toString', arguments, '|||', 'res', res)

            return res;
        }
    }), u(Function.prototype.toString, "toString"), v_saf = u
}();

function v_hook_href(obj, name, initurl) {
    var r = Object.defineProperty(obj, 'href', {
        get: function () {
            if (!(this.protocol) && !(this.host)) {
                r = ''
            } else {
                r = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "") + this.pathname + this.search + this.hash;
            }
            // v_console_log(`  [*] ${name||obj.constructor.name} -> href[get]:`, JSON.stringify(r))
            return r
        },
        set: function (href) {
            href = href.trim()
            v_console_log(`  [*] ${name || obj.constructor.name} -> href[set]:`, JSON.stringify(href))
            if (href.startsWith("http://") || href.startsWith("https://")) {/*ok*/
            } else if (href.startsWith("//")) {
                href = (this.protocol ? this.protocol : 'http:') + href
            } else {
                href = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "") + '/' + ((href[0] == '/') ? href.slice(1) : href)
            }
            var a = href.match(/([^:]+:)\/\/([^/:?#]+):?(\d+)?([^?#]*)?(\?[^#]*)?(#.*)?/);
            this.protocol = a[1] ? a[1] : "";
            this.host = a[2] ? a[2] : "";
            this.port = a[3] ? a[3] : "";
            this.pathname = a[4] ? a[4] : "";
            this.search = a[5] ? a[5] : "";
            this.hash = a[6] ? a[6] : "";
            this.hostname = this.host;
            this.origin = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "");
        }
    });
    // r = Object.defineProperty(r, 'search', {
    //     get: function(){
    //         v_console_log(`  [*] ${name||obj.constructor.name} -> search[get]:`, this.search)
    //
    //         // v_console_log(`  [*] ${name||obj.constructor.name} -> href[get]:`, JSON.stringify(r))
    //         return this.search_
    //     },
    //     set: function(href){
    //         v_console_log(`  [*] ${name||obj.constructor.name} -> search[set]:`, href)
    //
    //         this.search_ = href
    //     }
    // });
    if (initurl && initurl.trim()) {
        var temp = v_new_toggle;
        v_new_toggle = true;
        r.href = initurl;
        v_new_toggle = temp;
    }

    return r
}

function _inherits(t, e) {
    t.prototype = Object.create(e.prototype, {
        constructor: {value: t, writable: !0, configurable: !0}
    }), e && Object.setPrototypeOf(t, e)
}

// Object.defineProperty(Object.prototype, Symbol.toStringTag, {
//     get() { return Object.getPrototypeOf(this).constructor.name }
// });
var v_new_toggle = true
Object.freeze(console)//only for javascript-obfuscator anti console debug.

v_console_log = function () {
}
var v_random = (function () {
    var seed = 276951438;
    return function random() {
        return seed = (seed * 9301 + 49297) % 233280, (seed / 233280)
    }
})()
var v_new = function (v, tagName) {
    var temp = v_new_toggle;
    v_new_toggle = true;
    var r = new v;
    v_new_toggle = temp;
    if (tagName){
        Object.defineProperties(r, {
            tagName: {
                get() {
                    return tagName
                }
            },
            children: {
                get(){
                    return new HTMLCollection
                }
            }
        })
        r = proxy(r, tagName)
    }
    return r
}


RTCSessionDescription = v_saf(function RTCSessionDescription() {
    ;
})

EventTarget = v_saf(function EventTarget() {
    ;
})

CanvasGradient = v_saf(function CanvasGradient() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})



NavigatorUAData = v_saf(function NavigatorUAData() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
FeaturePolicy = v_saf(function FeaturePolicy() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
NodeList = v_saf(function NodeList() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
HTMLCollection = v_saf(function HTMLCollection() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
HTMLAllCollection = v_saf(function HTMLAllCollection(arrs) {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;this.items == allNodes
})
Object.defineProperties(HTMLAllCollection.prototype, {
    items: {value: {}},
    item: {
        value: v_saf(function item() {

        })
    },
    length: {
        value: 0
    },
    namedItem: {
        value: v_saf(function namedItem() {

        })
    }
})
DOMTokenList = v_saf(function DOMTokenList() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Event = v_saf(function Event() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
RTCIceCandidate = v_saf(function RTCIceCandidate() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Bluetooth = v_saf(function Bluetooth() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
CredentialsContainer = v_saf(function CredentialsContainer() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Navigator = v_saf(function Navigator() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;this._plugins = typeof PluginArray == 'undefined' ? [] : v_new(PluginArray);
    this._mimeTypes = typeof MimeTypeArray == 'undefined' ? [] : v_new(MimeTypeArray)
})


navis = {
    appCodeName: "Mozilla",
    appName: ENV.navigatorparams.appname,
    appVersion: ENV.navigatorparams.appversion,
    language: "en-US",
    languages: ['en-US', 'en', 'ru'],
    maxTouchPoints: 0,
    platform: ENV.navigatorparams.platform,
    product: ENV.navigatorparams.product,
    productSub: ENV.navigatorparams.productsub,
    userAgent: ENV.navigatorparams.useragent,
    vendor: ENV.navigatorparams.vendor,
    vendorSub: "",
    webdriver: false,
    hardwareconcurrency: ENV.navigatorparams.hardwareconcurrency
}
// ENV.navigatorparams.useragent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203'
// navis.userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203'
// navis.appVersion = '5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203'
// navis = fingerprint.navigator
Object.defineProperties(Navigator.prototype, {
    mediaDevices: {
        get() {
            v_console_log("  [*] Navigator -> mediaDevices[get]",);
            return v_new(MediaDevices)
        }
    },
    // cpuClass: {
    //     get(){
    //         v_console_log("  [*] Navigator -> cpuClass[get]", this._plugins || []);
    //         return ''
    //     }
    // },
    plugins: {
        get: v_saf(function plugins() {
            v_console_log("  [*] Navigator -> plugins[get]", this._plugins || []);
            if (Object.keys(ENV.plugins).length === 0) {
                return [];
            }
            return proxy(this._plugins || [], 'pluginsss')
        }, undefined, 'get'),
        enumerable:true,
        configurable:true
    },
    mimeTypes: {
        get: v_saf(function mimeTypes() {
            v_console_log("  [*] Navigator -> mimeTypes[get]", this._mimeTypes || []);
            if (ENV.mimetypes.length === 0) {
                return [];
            }
            return this._mimeTypes || []
        }, undefined, 'get'),
        enumerable:true,
        configurable:true
    },
    appCodeName: {
        get() {
            v_console_log("  [*] Navigator -> appCodeName[get]", "Mozilla");
            // return "Mozilla"
            return navis.appCodeName
        }
    },
    appName: {
        get() {
            v_console_log("  [*] Navigator -> appName[get]", "Netscape");
            // return "Netscape"
            return navis.appName
        }
    },
    appVersion: {
        get() {
            v_console_log("  [*] Navigator -> appVersion[get]", "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62");
            // return "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62"
            return navis.appVersion
        }
    },
    hardwareConcurrency: {
        get() {
            v_console_log("  [*] Navigator -> hardwareConcurrency[get]", 8);
            return navis.hardwareconcurrency
        }
    },
    maxTouchPoints: {
        get() {
            v_console_log("  [*] Navigator -> maxTouchPoints[get]", 0);
            return 0
        }
    },
    platform: {
        get() {
            v_console_log("  [*] Navigator -> platform[get]", "MacIntel");
            return navis.platform
        }
    },
    product: {
        get() {
            v_console_log("  [*] Navigator -> product[get]", "Gecko");
            return navis.product
        }
    },
    productSub: {
        get() {
            v_console_log("  [*] Navigator -> productSub[get]", "20030107");
            return navis.productSub
        }
    },
    userAgent: {
        get: v_saf(function userAgent() {

            v_console_log("  [*] Navigator -> userAgent[get]", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62");
            // return "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62"
            return navis.userAgent
        }, undefined, 'get')
    },
    vendor: {
        get: v_saf(function vendor() {
            v_console_log("  [*] Navigator -> vendor[get]", "Google Inc.");
            return navis.vendor
        }, undefined, 'get')
    },
    vendorSub: {
        get() {
            v_console_log("  [*] Navigator -> vendorSub[get]", "");
            return ""
        }
    },
    doNotTrack: {
        get() {
            v_console_log("  [*] Navigator -> doNotTrack[get]", null);
            return null
        }
    },
    webdriver: {
        get() {
            v_console_log("  [*] Navigator -> webdriver[get]", false);
            return false
        }
    },
    geolocation: {
        get() {
            v_console_log("  [*] Navigator -> geolocation[get]", {});
            return {}
        }
    },
    bluetooth: {
        get() {
            v_console_log("  [*] Navigator -> bluetooth[get]", {});
            return v_new(Bluetooth)
        }
    },
    credentials: {
        get() {
            v_console_log("  [*] Navigator -> credentials[get]", {});
            return v_new(CredentialsContainer)
        }
    },
    languages: {
        get() {
            v_console_log("  [*] Navigator -> languages[get]", {});
            return ['en-US', 'en', 'ru']
            return {}
        }
    },
    language: {
        get() {
            v_console_log("  [*] Navigator -> language[get]", {});
            return 'en-US'
        }
    },
    connection: {
        get() {
            v_console_log("  [*] Navigator -> connection[get]", {});
            return {}
        }
    },
    vibrate: {
        get() {
            v_console_log("  [*] Navigator -> vibrate[get]", {});
            return {}
        }
    },
    storage: {
        get() {
            v_console_log("  [*] Navigator -> storage[get]", {});
            return {}
        }
    },
    requestMediaKeySystemAccess: {
        get() {
            v_console_log("  [*] Navigator -> requestMediaKeySystemAccess[get]", {});
            return v_saf(function requestMediaKeySystemAccess() {
            })
        }
    },
    userAgentData: {
        get: v_saf(function () {
            if (Object.keys(window.ENV.useragentdata).length !== 0){
                return {
                // "brands": [{"brand": "Not/A)Brand", "version": "99"}, {
                //     "brand": "Google Chrome",
                //     "version": "115"
                // }, {"brand": "Chromium", "version": "115"}],
                // "mobile": false, "platform": "macOS",
                "brands": window.ENV.useragentdata.brands,
                "mobile": window.ENV.useragentdata.mobile,
                "platform": window.ENV.useragentdata.platform,
                getHighEntropyValues: function (e) {
                    let r;
                    switch (e[0]) {
                        case 'architecture':
                            r = {
                                "architecture": window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                "brands": window.ENV.useragentdata.brands,
                                "mobile": window.ENV.useragentdata.mobile,
                                "platform": window.ENV.useragentdata.platform
                            }
                            break;
                        case 'bitness':
                            r = {
                                "bitness":  window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                "brands": window.ENV.useragentdata.brands,
                                "mobile": window.ENV.useragentdata.mobile,
                                "platform": window.ENV.useragentdata.platform
                            }
                            break;
                        case 'brands':
                            r = {
                                "brands": window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                "mobile": window.ENV.useragentdata.mobile,
                                "platform": window.ENV.useragentdata.platform
                            }
                            break;
                        case 'mobile':
                            r = {
                                "brands": window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                "mobile": window.ENV.useragentdata.mobile,
                                "platform": window.ENV.useragentdata.platform
                            }
                            break;
                        case 'model':
                            r = {
                                "model":  window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                "brands": window.ENV.useragentdata.brands,
                                "mobile": window.ENV.useragentdata.mobile,
                                "platform": window.ENV.useragentdata.platform
                            }
                            break;
                        case 'platform':
                            r = {
                                "brands": window.ENV.useragentdata.brands,
                                "mobile": window.ENV.useragentdata.mobile,
                                "platform": window.ENV.useragentdata.platform
                            }
                            break;
                        case 'platformVersion':
                            r = {
                                "platformVersion":  window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                "brands": window.ENV.useragentdata.brands,
                                "mobile": window.ENV.useragentdata.mobile,
                                "platform": window.ENV.useragentdata.platform
                            }
                            break;
                        case 'uaFullVersion':
                            r = {
                                "uaFullVersion":  window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                "brands": window.ENV.useragentdata.brands,
                                "mobile": window.ENV.useragentdata.mobile,
                                "platform": window.ENV.useragentdata.platform
                            }
                            break;
                        case 'wow64':
                            r = {
                                "wow64":  window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                "brands": window.ENV.useragentdata.brands,
                                "mobile": window.ENV.useragentdata.mobile,
                                "platform": window.ENV.useragentdata.platform
                            }
                            break;
                        case 'fullVersionList':
                            r = {
                                "fullVersionList":  window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                "brands": window.ENV.useragentdata.brands,
                                "mobile": window.ENV.useragentdata.mobile,
                                "platform": window.ENV.useragentdata.platform
                            }
                            break;


                    }
                    // r =

                    console.log('getHighEntropyValues', e, r)

                    return new Promise((resolve, reject) => {

                        resolve(r)
                    });
                }
            }
            }
            return {}

        })
    },
    [Symbol.toStringTag]: {value: "Navigator", writable: false, enumerable: false, configurable: true},
})
TextMetrics = v_saf(function TextMetrics() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Plugin = v_saf(function Plugin() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
MimeType = v_saf(function MimeType() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Object.defineProperties(Plugin.prototype, {
    name: {value: '', writable: true},
    description: {value: '', writable: true},
    filename: {value: '', writable: true},
    length: {value: '', writable: true},
})
PluginArray = v_saf(function PluginArray() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
    for (let i = 0; i < Object.keys(ENV.plugins).length; i++) {
        this[i] = v_new(Plugin);
        let plugin = ENV.plugins[i];
        this[i].description = plugin.description;
        this[i].filename = plugin.filename;
        this[i].length = plugin.length;
        this[i].name = plugin.name;
        this[i]['0'] = plugin['0']
        this[i]['1'] = plugin['1']
        this[i]['application/pdf'] = plugin['application/pdf']
        this[i]['text/pdf'] = plugin['text/pdf']

    }
    console.log()
    // this[0] = v_new(Plugin);
    // this[0].description = "Portable Document Format";
    // this[0].filename = "internal-pdf-viewer";
    // this[0].length = 2;z
    // this[0].name = "PDF Viewer";
    // this[1] = v_new(Plugin);
    // this[1].description = "Portable Document Format";
    // this[1].filename = "internal-pdf-viewer";
    // this[1].length = 2;
    // this[1].name = "Chrome PDF Viewer";
    // this[2] = v_new(Plugin);
    // this[2].description = "Portable Document Format";
    // this[2].filename = "internal-pdf-viewer";
    // this[2].length = 2;
    // this[2].name = "Chromium PDF Viewer";
    // this[3] = v_new(Plugin);
    // this[3].description = "Portable Document Format";
    // this[3].filename = "internal-pdf-viewer";
    // this[3].length = 2;
    // this[3].name = "Microsoft Edge PDF Viewer";
    // this[4] = v_new(Plugin);
    // this[4].description = "Portable Document Format";
    // this[4].filename = "internal-pdf-viewer";
    // this[4].length = 2;
    // this[4].name = "WebKit built-in PDF";
})

MimeType = v_saf(function MimeType() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
WebKitMutationObserver = v_saf(function WebKitMutationObserver() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})

crypto = v_saf(function Crypto(){

})

Object.defineProperties(crypto,{
    subtle: {
        value: v_saf(function SubtleCrypto(){})
    },
    getRandomValues: {
        value: function(){
            var e=arguments[0];
            if (!_process.argv[3]){
                return e.map(function(x, i){return e[i]=1073712824});
            }
            return e.map(function(x, i){return e[i]= parseInt(10737128244 * Math.random())});
        }
    }
})
window.crypto = crypto;


Image = v_saf(function Image() {
    ;
    return v_new(HTMLImageElement)
})
webkitResolveLocalFileSystemURL = v_saf(function webkitResolveLocalFileSystemURL() {
})
webkitRequestAnimationFrame = v_saf(function webkitRequestAnimationFrame() {
})
requestAnimationFrame = v_saf(function requestAnimationFrame() {
})
File = v_saf(function File() {
})

RTCDataChannel = v_saf(function RTCDataChannel() {
    ;
});
_inherits(RTCDataChannel, EventTarget)
Object.defineProperties(RTCDataChannel.prototype, {
    binaryType: {
        get() {
            print('  [*] RTCDataChannel -> binaryType[get] ', 'arraybuffer')
            return 'arraybuffer'
        }
    }
})
window.RTCDataChannel = RTCDataChannel;
Node = v_saf(function Node() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Node, EventTarget)

WebSocket = v_saf(function WebSocket() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(WebSocket, EventTarget)
let RTCPeerConnectionIceEvent = v_saf(function RTCPeerConnectionIceEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(RTCPeerConnectionIceEvent, Event)
CompressionStream = v_saf(function CompressionStream() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.CompressionStream = CompressionStream;
LayoutShiftAttribution = v_saf(function LayoutShiftAttribution() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.LayoutShiftAttribution = LayoutShiftAttribution;
FeaturePolicy = v_saf(function FeaturePolicy() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.FeaturePolicy = FeaturePolicy;
XRHitTestResult = v_saf(function XRHitTestResult() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.XRHitTestResult = XRHitTestResult;
// todo hasOwnProperty 的环境
window.crossOriginIsolated = false
window.AbstractRange = v_saf(function AbstractRange() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.RTCDtlsTransport = v_saf(function RTCDtlsTransport() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});

window.EventCounts = v_saf(function EventCounts() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.VisualViewport = v_saf(function VisualViewport() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.FinalizationRegistry = v_saf(function FinalizationRegistry() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.WritableStreamDefaultController = v_saf(function WritableStreamDefaultController() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.HID = v_saf(function HID() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.CSSCounterStyleRule = v_saf(function CSSCounterStyleRule() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.FileSystemDirectoryHandle = v_saf(function FileSystemDirectoryHandle() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.PerformancePaintTiming = v_saf(function PerformancePaintTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.AudioData = v_saf(function AudioData() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.DOMRectList = v_saf(function DOMRectList() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.FragmentDirective = v_saf(function FragmentDirective() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.Sanitizer = v_saf(function Sanitizer() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.Lock = v_saf(function Lock() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.EyeDropper = v_saf(function EyeDropper() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.CSSLayerBlockRule = v_saf(function CSSLayerBlockRule() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.ServiceWorkerContainer = v_saf(function ServiceWorkerContainer() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
// if (!ENV.navigatorparams.useragent.includes('Edg')){
    window.IdleDetector = v_saf(function IdleDetector() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
// }
window.HTMLDialogElement = v_saf(function HTMLDialogElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.CSSFontPaletteValuesRule = v_saf(function CSSFontPaletteValuesRule() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.CSSMathClamp = v_saf(function CSSMathClamp() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.NavigationPreloadManager = v_saf(function NavigationPreloadManager() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.LaunchParams = v_saf(function LaunchParams() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.BrowserCaptureMediaStreamTrack = v_saf(function BrowserCaptureMediaStreamTrack() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.FontData = v_saf(function FontData() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.ReadableByteStreamController = v_saf(function ReadableByteStreamController() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});

window.MediaSourceHandle = v_saf(function MediaSourceHandle() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.XRCamera = v_saf(function XRCamera() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});


MessageEvent = v_saf(function MessageEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(MessageEvent, Event)
MediaQueryList = v_saf(function MediaQueryList() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(MediaQueryList, EventTarget)
UIEvent = v_saf(function UIEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(UIEvent, Event)

Performance = v_saf(function Performance() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Performance, EventTarget)
XMLHttpRequestEventTarget = v_saf(function XMLHttpRequestEventTarget() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(XMLHttpRequestEventTarget, EventTarget)
Object.defineProperties(XMLHttpRequestEventTarget.prototype, {
    onloadstart: {enumerable: true, configurable: true, writable: true},
    onprogress: {enumerable: true, configurable: true, writable: true},
    onabort: {enumerable: true, configurable: true, writable: true},
    onerror: {enumerable: true, configurable: true, writable: true},
    onload: {enumerable: true, configurable: true, writable: true},
    ontimeout: {enumerable: true, configurable: true, writable: true},
    onloadend: {enumerable: true, configurable: true, writable: true},
    status: {
        get() {
            console.log("status_call222", arguments);
            return 0;
        }, enumerable: true, configurable: true
    },

})
Document = v_saf(function Document() {
    ;
});
_inherits(Document, Node)
Element = v_saf(function Element() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
MouseEvent = v_saf(function MouseEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(MouseEvent, UIEvent)
KeyboardEvent = v_saf(function KeyboardEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(KeyboardEvent, UIEvent)
XMLHttpRequest = v_saf(function XMLHttpRequest() {
    ;
});
_inherits(XMLHttpRequest, XMLHttpRequestEventTarget)
Object.defineProperties(XMLHttpRequest.prototype, {
    onreadystatechange: {
        get() {
            console.log("onreadystatechange_call", arguments)
        }, enumerable: true, configurable: true
    },
    headers: {enumerable: true, configurable: true, value: {}},
    readyState: {
        get() {
            console.log("readyState_call", arguments)
        }, enumerable: true, configurable: true
    },
    timeout: {
        get() {
            console.log("timeout_call", arguments)
        }, enumerable: true, configurable: true
    },
    withCredentials: {
        get() {
            console.log("withCredentials_call", arguments)
        }, enumerable: true, configurable: true
    },
    upload: {
        get() {
            console.log("upload_call", arguments)
        }, enumerable: true, configurable: true
    },
    responseURL: {
        get() {
            console.log("responseURL_call", arguments)
        }, enumerable: true, configurable: true
    },
    status: {
        get() {
            console.log("status_call", arguments);
            return 0;
        }, enumerable: true, configurable: true
    },
    statusText: {
        get() {
            console.log("statusText_call", arguments)
        }, enumerable: true, configurable: true
    },
    responseType: {
        get() {
            console.log("responseType_call", arguments)
        }, enumerable: true, configurable: true
    },
    response: {
        get() {
            console.log("response_call", arguments)
        }, enumerable: true, configurable: true
    },
    responseText: {
        // value:
        get() {
            console.log("responseText_call", arguments);
            return ' uPF3AwEoJlHlzWNlesZQyw==nEDp0BiUXDVv+kZI0xmvWA2l1/2Sd+cwEqZ/dab98vw/EW9vHnlu0ewwQ6/XbKoC/4OMgkSZlMatR5Juv64BjfveRzkJCkOxeOqOk82GovL+Lz68K0ps6QBt+rFSkT/Q9/HmcE+4gxnSBp2rS1FPXpuulY3PxlibjQHx4beX+JTnZBN+EC9mU+dCite0S5/uqq5SVVm7QQhHJikbu5oY0H72574dVVA22nEDH4QT4XKjfzPsPqdxUEOh77Y+H5aA6X6gLPtQz7L2uWO/naJhfodv6ngafMaz/pgYGIbCZJySNifAsPDEXTRsJIIi+mmCMOjadxgmYo7x2ZZXHUS4ATT7yIBYRsPHoWEyk37f7zzyNJ8N+LXhZF4vc++yBopxHJpDrCevB8zHA6mJPl+vdaojopVeOjMllg9CNemDelw0IPKj7hRp2ohhjMISI8tVlX9FdgAG5GcXAxs1tJNvZ72tOiEueFcY4qxjgK+9ZrfEjvVWx5qdnYjUHSruCn6wAd3yd7qG0/9tZjKjSogKOYsa8HXyuBaMEcb3DZc9dvzi8CqM6kCMaztIfwnklpbrufz9+CKOkcCAbJQnff8rb286T90uXbhcEBQGY6a8K4vYSEXsL0YaO+KcErqGyn6Eb6jQDdhr+ahQYcX4GaObwz5SLL0fZd9tML5R30G0hO5KFT1kw6kpPHtDUtQMtq6/OQB0jSioN+AQrNrHHG369g1v02danTP9BM03yNDL06f3yaVzQgiWf9uk4iSCwDGyWaciKnOWyMDtkWa+aRrrc6fLE/cBaOMPeHC9tU6o6q71k6SkV6LY/cNTn4InnVV3ZOeTZSNYSq7ufeTSbRnbr5sdWLLFUyWClwAPzf6bzaHwIy839XZoSFSLVeVOlCuf0xWLJ5b4BDCX2/5ZiXBK08qKsPWYipmfAwG+6R7HiyAIzYma6x8JBcEbMVxUSeUnOwqXWK5mF4YGXpnv3WpxuU5TLWHNI4RuljlOOM01K2tssd0XUrUSkbE4YpAlzT9rQFuUHHL98n0tf6gLT6dRqpGx5LjI8BLwatS6KMEzoa++BVtJKGWvUi6aP0xSVy9axRQxUFsFpeaJt4/u+jjclIqIkscTd1v+VKKMYLcoSDFfYbtF1005RUaIlSuHhsP9u6BM7QtanQD7Q/t1I91gRYekXgeJ/1PJdzVSSrGAY0DGkcl9oNgV5XaAY/PzNx6YmKk7YQx50/ynwSG9Wz8jBO0tx6K5dwfEB6tWvS+5VFN8QPBzXwBs/e2hQTnN/nT/hz9F3r6M3UGjp2Wey2dyolw2noQ4BTpMLls8Y9Bk9LHN4kW9u1x7TU2HTwx754VVcy/iEhvFJQcT1i8VT7Ozg2p5Gdh2hwRyr5lHXutAlFYad698dYVFu5Ow5tVu0lnj0QQZ6D3GUi0yYcTCImyVY6AbqIzGZxlTN0NzokG1aqSbUSJmHLLxsZ4jaKK4NegXQVlAxcN3NzXvexdB5NXQRD49Mj6FQ3BxEXrPuKRKKLqlTvFbDpZp3BC0rqtXgk+tYCg+FP3rwXWnNPlZSuAoyeJOdmTtcVMTyO50M+VS3caWHf3MNpBrwzMkQh8BRw3XKwf1mvENc4rOYqSgtlzSFQ+BdjExHNdU1Z1HFClDekC0gU4Ep9UFz2vL+ZHKGXGcSDED78NJXWJdS0Kz2FJhTKFM69pa7bnQEunY3MEfAw4=';
        }
    },
    responseXML: {
        get() {
            console.log("responseXML_call", arguments)
        }, enumerable: true, configurable: true
    },
    UNSENT: {
        get() {
            console.log("UNSENT_call", arguments)
        }, enumerable: true, configurable: true
    },
    OPENED: {
        get() {
            console.log("OPENED_call", arguments)
        }, enumerable: true, configurable: true
    },
    HEADERS_RECEIVED: {
        get() {
            console.log("HEADERS_RECEIVED_call", arguments)
        }, enumerable: true, configurable: true
    },
    LOADING: {
        get() {
            console.log("LOADING_call", arguments)
        }, enumerable: true, configurable: true
    },
    DONE: {
        get() {
            console.log("DONE_call", arguments)
        }, enumerable: true, configurable: true
    },
    abort: {
        get() {
            console.log("abort_call", arguments)
        }, enumerable: true, configurabled: true
    },
    getAllResponseHeaders: {
        get() {
            console.log("getAllResponseHeaders_call", arguments)
        }, enumerable: true, configurable: true
    },
    getResponseHeader: {
        get() {
            console.log("getResponseHeader_call", arguments)
        }, enumerable: true, configurable: true
    },
    open: {
        value:{func(){console.log("open_call", arguments)}}.func, enumerable: true, configurable: true
    },
    overrideMimeType: {
        get() {
            console.log("overrideMimeType_call", arguments)
        }, enumerable: true, configurable: true
    },
    send: {
        value: {func () {
            console.log("send_call", arguments);
            debugger;
            this.onload && this.onload()
        }}.func, enumerable: true, configurable: true
    },
    setRequestHeader: {
        value: v_saf(function () {
            print("setRequestHeader_call", arguments, arguments[1].length);
            this.headers[arguments[0].toLowerCase()] = arguments[1];
            if (arguments[0] === 'EE30zvQLWf-b') {
                console.log(this.headers)
            }
            ;
        }, undefined, undefined), enumerable: true, configurable: true
    },
})
// XMLHttpRequest.prototype.open = function(){
//     console.log("xhr_call_open", arguments)
// }
// XMLHttpRequest.prototype.send = function(){
//     console.log("xhr_call_send", arguments)
// }
// XMLHttpRequest.prototype.setRequestHeader = function(){
//     console.log("xhr_setRequestHeader_send", arguments)
// }


function v_init_event_target() {

    function _mk_mouse_event(type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget) {
        if (type == 'click') {
            var m = new PointerEvent()
            m.pointerType = "mouse"
        } else {
            var m = new MouseEvent()
        }
        m.isTrusted = true
        m.type = type
        m.canBubble = canBubble
        m.cancelable = cancelable
        m.view = view
        m.detail = detail
        m.screenX = screenX;
        m.movementX = screenX
        m.screenY = screenY;
        m.movementY = screenY
        m.clientX = clientX;
        m.layerX = clientX;
        m.offsetX = clientX;
        m.pageX = clientX;
        m.x = clientX;
        m.clientY = clientY;
        m.layerY = clientY;
        m.offsetY = clientY;
        m.pageY = clientY;
        m.y = clientY;
        m.ctrlKey = ctrlKey
        m.altKey = altKey
        m.shiftKey = shiftKey
        m.metaKey = metaKey
        m.button = button
        m.relatedTarget = relatedTarget
        // print(m   )
        return m
    }

    function make_mouse(type, x, y) {
        return _mk_mouse_event(type, true, true, window, 0, 0, 0, x, y, false, false, false, false, 0, null)
    }

    function mouse_click(x, y) {
        for (var i = 0; i < (v_events['click'] || []).length; i++) {
            v_events['click'][i][1](make_mouse('click', x, y))
        }
        for (var i = 0; i < (v_events['mousedown'] || []).length; i++) {
            v_events['mousedown'][i][1](make_mouse('mousedown', x, y))
        }
        for (var i = 0; i < (v_events['mouseup'] || []).length; i++) {
            v_events['mouseup'][i][1](make_mouse('mouseup', x, y))
        }
    }

    var offr = Math.random()

    function make_touch(_this, type, x, y, timeStamp) {
        var offx = _random()
        var offy = _random()
        var t = v_new(new v_saf(function Touch() {
        }))
        t = clientX = offx + x
        t = clientY = offy + y
        t = force = 1
        t = identifier = 0
        t = pageX = offx + x
        t = pageY = offy + y
        t = radiusX = 28 + offr
        t = radiusY = 28 + offr
        t = rotationAngle = 0
        t = screenX = 0
        t = screenY = 0
        var e = v_new(new v_saf(function TouchEvent() {
        }))
        e.isTrusted = true
        e.altKey = false
        e.bubbles = true
        e.cancelBubble = false
        e.cancelable = false
        e.changedTouches = e.targetTouches = e.touches = [t]
        e.composed = true
        e.ctrlKey = false
        e.currentTarget = null
        e.defaultPrevented = false
        e.detail = 0
        e.eventPhase = 0
        e.metaKey = false
        e.path = _this == window ? [window] : [_this, window]
        e.returnValue = true
        e.shiftKey = false
        e.sourceCapabilities = new v_saf(function InputDeviceCapabilities() {
            this.firesTouchEvents = true
        })
        e.srcElement = _this
        e.target = _this
        e.type = type
        e.timeStamp = timeStamp == undefined ? (new Date - v_start_stamp) : ((v_fake_stamp += _random() * 20) - v_start_stamp)
        e.view = window
        e.which = 0
        return e
    }

    function make_trace(x1, y1, x2, y2) {
        // 贝塞尔曲线
        function step_len(x1, y1, x2, y2) {
            var ln = ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5
            return (ln / 10) ^ 0
        }

        var slen = step_len(x1, y1, x2, y2)
        if (slen < 3) {
            return []
        }

        function factorial(x) {
            for (var y = 1; x > 1; x--) {
                y *= x
            }
            return y;
        }

        var lp = _random()
        var rp = _random()
        var xx1 = (x1 + (x2 - x1) / 12 * (4 - lp * 4)) ^ 0
        var yy1 = (y1 + (y2 - y1) / 12 * (8 + lp * 4)) ^ 0
        var xx2 = (x1 + (x2 - x1) / 12 * (8 + rp * 4)) ^ 0
        var yy2 = (y1 + (y2 - y1) / 12 * (4 - rp * 4)) ^ 0
        var points = [[x1, y1], [xx1, yy1], [xx2, yy2], [x2, y2]]
        var N = points.length
        var n = N - 1
        var traces = []
        var step = slen
        for (var T = 0; T < step + 1; T++) {
            var t = T * (1 / step)
            var x = 0
            var y = 0
            for (var i = 0; i < N; i++) {
                var B = factorial(n) * t ** i * (1 - t) ** (n - i) / (factorial(i) * factorial(n - i))
                x += points[i][0] * B
                y += points[i][1] * B
            }
            traces.push([x ^ 0, y ^ 0])
        }
        return traces
    }

    function touch(x1, y1, x2, y2) {
        if (x2 == undefined && y2 == undefined) {
            x2 = x1
            y2 = y1
        }
        var traces = make_trace(x1, y1, x2, y2)
        console.log('traces:', traces)
        for (var i = 0; i < (v_events['touchstart'] || []).length; i++) {
            v_events['touchstart'][i][1](make_touch(v_events['touchstart'][i][0], 'touchstart', x1, y1))
        }
        for (var j = 0; j < traces.length; j++) {
            var x = traces[j][0]
            var y = traces[j][0]
            for (var i = 0; i < (v_events['touchmove'] || []).length; i++) {
                v_events['touchmove'][i][1](make_touch(v_events['touchmove'][i][0], 'touchmove', x, y))
            }
        }
        for (var i = 0; i < (v_events['touchend'] || []).length; i++) {
            v_events['touchend'][i][1](make_touch(v_events['touchend'][i][0], 'touchend', x2, y2))
        }
    }

    function mouse_move(x1, y1, x2, y2) {
        if (x2 == undefined && y2 == undefined) {
            x2 = x1
            y2 = y1
        }
        var traces = make_trace(x1, y1, x2, y2)
        // console.log('traces:', traces)
        for (var j = 0; j < traces.length; j++) {
            var x = traces[j][0]
            var y = traces[j][0]
            // for (var i = 0; i < (v_events['mousemove'] || []).length; i++) {
            v_events['mousemove'](make_mouse(v_events['mousemove'], x, y))
            v_events['keypress'](make_mouse('keypress', x, y))
            // }
        }
    }

    window.make_mouse = make_mouse
    window.mouse_click = mouse_click
    window.mouse_move = mouse_move
    window.touch = touch
    // EventTarget.prototype.addEventListener = function(){v_console_log('  [*] EventTarget -> addEventListener[func]', this===window?'[Window]':this===document?'[Document]':this, [].slice.call(arguments)); add_event(this, [].slice.call(arguments)); return null}
    // EventTarget.prototype.dispatchEvent = function(){v_console_log('  [*] EventTarget -> dispatchEvent[func]', this===window?'[Window]':this===document?'[Document]':this, [].slice.call(arguments)); add_event(this, [].slice.call(arguments)); return null}
    // EventTarget.prototype.removeEventListener = function(){v_console_log('  [*] EventTarget -> removeEventListener[func]', this===window?'[Window]':this===document?'[Document]':this, [].slice.call(arguments)); add_event(this, [].slice.call(arguments)); return null}
}

HTMLElement = v_saf(function HTMLElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLElement, Element)
HTMLScriptElement = v_saf(function HTMLScriptElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLScriptElement, HTMLElement)
HTMLBodyElement = v_saf(function HTMLBodyElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLBodyElement, HTMLElement)
Object.defineProperties(HTMLBodyElement.prototype, {
    // innerText: {
    //     get: function () {
    //         return 'ssss'
    //     },
    //     enumerable: true,
    //     configurable: true
    // },
    // webkitRequestFullScreen: {
    //     value: v_saf(function webkitRequestFullScreen() {
    //     }),
    //     enumerable: true,
    //     configurable: true
    // },
    [Symbol.toStringTag]: {value: "HTMLBodyElement", writable: false, enumerable: false, configurable: true},
})

class CanvasRenderingContext2D {

    imageDatas = {
        "18,90,1,1": [214, 122, 6, 255],
        "38,77,1,1": [255, 255, 255, 255],
        "48,28,1,1": [0, 0, 0, 0],
        "94,23,1,1": [0, 0, 0, 0],
        "26,46,1,1": [253, 243, 245, 255],
        "47,23,1,1": [0, 0, 0, 0],
        "37,17,1,1": [0, 0, 0, 255],
        "62,28,1,1": [204, 131, 217, 255]
    }
    imageDatas = window.ENV.imgsres['94px sans-serif']

    constructor(w, h, context) {
        console.log('OffscreenCanvasRenderingContext2D.new', w, h)
        this.width = w;
        this.height = h;
        if (context) {
            this._context = context

        } else {
            this._context = Canvas.createCanvas(w, h).getContext('2d')

        }
    }

    set font(f) {
        console.log('1.font', f)
        this._font = f;
        this._context.font = f;
    }

    measureText(text) {
        console.log('OffscreenCanvasRenderingContext2D.measureText', text)
        this._text = text;
        window.fonts.push({
            font: this._font,
            text: text
        })
        let res = new TextMetrics(text, this._context, this._font);
        // return proxy(res, 'TextMetrics')
        return res;
    }

    get canvas() {
        console.log('CanvasRenderingContext2D.canvas.get')
    }

    get globalAlpha() {
        console.log('CanvasRenderingContext2D.globalAlpha.get')
    }

    set globalAlpha(args) {
        console.log('CanvasRenderingContext2D.globalAlpha.set', args)
    }

    get globalCompositeOperation() {
        console.log('CanvasRenderingContext2D.globalCompositeOperation.get')
    }

    set globalCompositeOperation(args) {
        console.log('CanvasRenderingContext2D.globalCompositeOperation.set', args)
    }

    get filter() {
        console.log('CanvasRenderingContext2D.filter.get')
    }

    set filter(args) {
        console.log('CanvasRenderingContext2D.filter.set', args)
    }

    get imageSmoothingEnabled() {
        console.log('CanvasRenderingContext2D.imageSmoothingEnabled.get')
    }

    set imageSmoothingEnabled(args) {
        console.log('CanvasRenderingContext2D.imageSmoothingEnabled.set', args)
    }

    get imageSmoothingQuality() {
        console.log('CanvasRenderingContext2D.imageSmoothingQuality.get')
    }

    set imageSmoothingQuality(args) {
        console.log('CanvasRenderingContext2D.imageSmoothingQuality.set', args)
    }

    get strokeStyle() {
        console.log('CanvasRenderingContext2D.strokeStyle.get')
    }

    set strokeStyle(args) {
        console.log('CanvasRenderingContext2D.strokeStyle.set', args)
        return this._context.strokeStyle = args
    }

    get fillStyle() {
        console.log('CanvasRenderingContext2D.fillStyle.get')
    }

    set fillStyle(args) {
        console.log('CanvasRenderingContext2D.fillStyle.set', args)
        this._context.fillStyle = args
        this._fillStyle = args

    }

    get shadowOffsetX() {
        console.log('CanvasRenderingContext2D.shadowOffsetX.get')
    }

    set shadowOffsetX(args) {
        console.log('CanvasRenderingContext2D.shadowOffsetX.set', args)
        this._context.shadowOffsetX = args
    }

    get shadowOffsetY() {
        console.log('CanvasRenderingContext2D.shadowOffsetY.get')
    }

    set shadowOffsetY(args) {
        console.log('CanvasRenderingContext2D.shadowOffsetY.set', args)
        this._context.shadowOffsetY = args

    }

    get shadowBlur() {
        console.log('CanvasRenderingContext2D.shadowBlur.get')
    }

    set shadowBlur(args) {
        console.log('CanvasRenderingContext2D.shadowBlur.set', args)
        this._context.shadowBlur = args

    }

    get shadowColor() {
        console.log('CanvasRenderingContext2D.shadowColor.get')

    }

    set shadowColor(args) {
        console.log('CanvasRenderingContext2D.shadowColor.set', args)
        this._context.shadowColor = args

    }

    get lineWidth() {
        console.log('CanvasRenderingContext2D.lineWidth.get')
    }

    set lineWidth(args) {
        console.log('CanvasRenderingContext2D.lineWidth.set', args)
        this._context.lineWidth = args;
    }

    get lineCap() {
        console.log('CanvasRenderingContext2D.lineCap.get')
    }

    set lineCap(args) {
        console.log('CanvasRenderingContext2D.lineCap.set', args)
    }

    get lineJoin() {
        console.log('CanvasRenderingContext2D.lineJoin.get')
    }

    set lineJoin(args) {
        console.log('CanvasRenderingContext2D.lineJoin.set', args)
    }

    get miterLimit() {
        console.log('CanvasRenderingContext2D.miterLimit.get')
    }

    set miterLimit(args) {
        console.log('CanvasRenderingContext2D.miterLimit.set', args)
    }

    get lineDashOffset() {
        console.log('CanvasRenderingContext2D.lineDashOffset.get')
    }

    set lineDashOffset(args) {
        console.log('CanvasRenderingContext2D.lineDashOffset.set', args)
    }

    get font() {
        console.log('CanvasRenderingContext2D.font.get')
        return this._context.font;
    }

    get textAlign() {
        console.log('CanvasRenderingContext2D.textAlign.get')
    }

    set textAlign(args) {
        console.log('CanvasRenderingContext2D.textAlign.set', args)
    }

    get textBaseline() {
        console.log('CanvasRenderingContext2D.textBaseline.get')
        return this._context.textBaseline
    }

    set textBaseline(args) {
        console.log('CanvasRenderingContext2D.textBaseline.set', args)
        this._context.textBaseline = args
    }

    get direction() {
        console.log('CanvasRenderingContext2D.direction.get')
        return this._context.direction;
    }

    set direction(args) {
        console.log('CanvasRenderingContext2D.direction.set', args)
        this._context.direction = args

    }

    get fontKerning() {
        console.log('CanvasRenderingContext2D.fontKerning.get')
    }

    set fontKerning(args) {
        console.log('CanvasRenderingContext2D.fontKerning.set', args)
    }

    get fontStretch() {
        console.log('CanvasRenderingContext2D.fontStretch.get')
    }

    set fontStretch(args) {
        console.log('CanvasRenderingContext2D.fontStretch.set', args)
    }

    get fontVariantCaps() {
        console.log('CanvasRenderingContext2D.fontVariantCaps.get')
    }

    set fontVariantCaps(args) {
        console.log('CanvasRenderingContext2D.fontVariantCaps.set', args)
    }

    get letterSpacing() {
        console.log('CanvasRenderingContext2D.letterSpacing.get')
    }

    set letterSpacing(args) {
        console.log('CanvasRenderingContext2D.letterSpacing.set', args)
    }

    get textRendering() {
        console.log('CanvasRenderingContext2D.textRendering.get')
    }

    set textRendering(args) {
        console.log('CanvasRenderingContext2D.textRendering.set', args)
    }

    get wordSpacing() {
        console.log('CanvasRenderingContext2D.wordSpacing.get')
    }

    set wordSpacing(args) {
        console.log('CanvasRenderingContext2D.wordSpacing.set', args)
    }

    clip() {
        console.log('CanvasRenderingContext2D.clip')
    }

    createConicGradient() {
        console.log('CanvasRenderingContext2D.createConicGradient')
    }

    createImageData() {
        console.log('CanvasRenderingContext2D.createImageData')
    }

    createLinearGradient() {
        console.log('CanvasRenderingContext2D.createLinearGradient')

        return this._context.createLinearGradient(...arguments)
    }

    createPattern() {
        console.log('CanvasRenderingContext2D.createPattern')
    }

    createRadialGradient() {
        console.log('CanvasRenderingContext2D.createRadialGradient')
    }

    drawFocusIfNeeded() {
        console.log('CanvasRenderingContext2D.drawFocusIfNeeded')
    }

    drawImage() {
        console.log('CanvasRenderingContext2D.drawImage')
        this._context.drawImage(...arguments)
    }

    fill() {
        console.log('CanvasRenderingContext2D.fill')
    }

    fillText() {
        console.log('CanvasRenderingContext2D.fillText', ...arguments)
        this._context.fillText(...arguments)
        this._fillText = [arguments[0], arguments[1], arguments[2]]
    }

    getContextAttributes() {
        console.log('CanvasRenderingContext2D.getContextAttributes')
    }

    getImageData() {
        let res = this._context.getImageData(...arguments)
        window.imageDatas.push({
            font: this._context.font,
            fillStyle: this._fillStyle,
            fillText: this._fillText,
            imageData: [arguments[0], arguments[1], arguments[2], arguments[3]]
        })
        let tdata = this.imageDatas[[arguments[0], arguments[1], arguments[2], arguments[3]] + ''];
        if (tdata) {
            res.data[0] = tdata[0]
            res.data[1] = tdata[1]
            res.data[2] = tdata[2]
            res.data[3] = tdata[3]
        } else {
            for (let i = 0; i < res.data.length; i++) {
                res.data[i] = parseInt(window._random() * 100 + 100)
            }
        }
        if (arguments[0] === 0 && arguments[1] === 0 && arguments[2] === 5) {
            for (let i = 0; i < res.data.length; i++) {
                if (res.data[i] === 22) {
                    res.data[i] = 0
                }
            }
        }
        // if (Math.random() < 0.5){
            for (let i = 0; i < res.data.length; i++) {
                res.data[i] = parseInt(window._random() * 100 + 100)
            }
        // }
        console.log('CanvasRenderingContext2D.getImageData', ...arguments, res)

        // todo  修改图片

        return res
    }

    getLineDash() {
        console.log('CanvasRenderingContext2D.getLineDash')
    }

    getTransform() {
        console.log('CanvasRenderingContext2D.getTransform')
    }

    isContextLost() {
        console.log('CanvasRenderingContext2D.isContextLost')
    }

    isPointInPath() {
        console.log('CanvasRenderingContext2D.isPointInPath')
    }

    isPointInStroke() {
        console.log('CanvasRenderingContext2D.isPointInStroke')
    }

    putImageData() {
        console.log('CanvasRenderingContext2D.putImageData')
    }

    reset() {
        console.log('CanvasRenderingContext2D.reset')
    }

    roundRect() {
        console.log('CanvasRenderingContext2D.roundRect')
    }

    save() {
        console.log('CanvasRenderingContext2D.save')
    }

    scale() {
        console.log('CanvasRenderingContext2D.scale')
    }

    setLineDash() {
        console.log('CanvasRenderingContext2D.setLineDash')
    }

    setTransform() {
        console.log('CanvasRenderingContext2D.setTransform')
    }

    stroke() {
        console.log('CanvasRenderingContext2D.stroke')
        this._context.stroke(...arguments)
    }

    strokeText() {
        console.log('CanvasRenderingContext2D.strokeText')
    }

    transform() {
        console.log('CanvasRenderingContext2D.transform')
    }

    translate() {
        console.log('CanvasRenderingContext2D.translate')
    }

    arc(a, b, c, d, e) {
        console.log('CanvasRenderingContext2D.arc', a, b, c, d, e)
        return this._context.arc(...arguments)
    }

    arcTo() {
        console.log('CanvasRenderingContext2D.arcTo')
    }

    beginPath() {
        console.log('CanvasRenderingContext2D.beginPath')
        return this._context.beginPath()
    }

    bezierCurveTo() {
        console.log('CanvasRenderingContext2D.bezierCurveTo')
    }

    clearRect() {
        console.log('CanvasRenderingContext2D.clearRect')
    }

    closePath() {
        console.log('CanvasRenderingContext2D.closePath')
        return this._context.closePath(...arguments)

    }

    ellipse() {
        console.log('CanvasRenderingContext2D.ellipse')
    }

    fillRect(a, b, c, d) {
        console.log('CanvasRenderingContext2D.fillRect', a, b, c, d)
        return this._context.fillRect(a, b, c, d)
    }

    lineTo() {
        console.log('CanvasRenderingContext2D.lineTo')
        return this._context.lineTo(...arguments)

    }

    moveTo() {
        console.log('CanvasRenderingContext2D.moveTo')
        return this._context.moveTo(...arguments)
    }

    quadraticCurveTo() {
        console.log('CanvasRenderingContext2D.quadraticCurveTo')
    }

    rect() {
        console.log('CanvasRenderingContext2D.rect')
    }

    resetTransform() {
        console.log('CanvasRenderingContext2D.resetTransform')
    }

    restore() {
        console.log('CanvasRenderingContext2D.restore')
    }

    rotate() {
        console.log('CanvasRenderingContext2D.rotate')
    }

    strokeRect() {
        console.log('CanvasRenderingContext2D.strokeRect')
    }


}

Object.defineProperties(CanvasRenderingContext2D.prototype, {
    canvas: {enumerable: true},
    globalAlpha: {enumerable: true},
    globalCompositeOperation: {enumerable: true},
    filter: {enumerable: true},
    imageSmoothingEnabled: {enumerable: true},
    imageSmoothingQuality: {enumerable: true},
    strokeStyle: {enumerable: true},
    fillStyle: {enumerable: true},
    shadowOffsetX: {enumerable: true},
    shadowOffsetY: {enumerable: true},
    shadowBlur: {enumerable: true},
    shadowColor: {enumerable: true},
    lineWidth: {enumerable: true},
    lineCap: {enumerable: true},
    lineJoin: {enumerable: true},
    miterLimit: {enumerable: true},
    lineDashOffset: {enumerable: true},
    font: {enumerable: true},
    textAlign: {enumerable: true},
    textBaseline: {enumerable: true},
    direction: {enumerable: true},
    fontKerning: {enumerable: true},
    fontStretch: {enumerable: true},
    fontVariantCaps: {enumerable: true},
    letterSpacing: {enumerable: true},
    textRendering: {enumerable: true},
    wordSpacing: {enumerable: true},
    clip: {enumerable: true},
    createConicGradient: {enumerable: true},
    createImageData: {enumerable: true},
    createLinearGradient: {enumerable: true},
    createPattern: {enumerable: true},
    createRadialGradient: {enumerable: true},
    drawFocusIfNeeded: {enumerable: true},
    drawImage: {enumerable: true},
    fill: {enumerable: true},
    fillText: {enumerable: true},
    getContextAttributes: {enumerable: true},
    getImageData: {enumerable: true},
    getLineDash: {enumerable: true},
    getTransform: {enumerable: true},
    isContextLost: {enumerable: true},
    isPointInPath: {enumerable: true},
    isPointInStroke: {enumerable: true},
    measureText: {enumerable: true},
    putImageData: {enumerable: true},
    reset: {enumerable: true},
    roundRect: {enumerable: true},
    save: {enumerable: true},
    scale: {enumerable: true},
    setLineDash: {enumerable: true},
    setTransform: {enumerable: true},
    stroke: {enumerable: true},
    strokeText: {enumerable: true},
    transform: {enumerable: true},
    translate: {enumerable: true},
    arc: {enumerable: true},
    arcTo: {enumerable: true},
    beginPath: {enumerable: true},
    bezierCurveTo: {enumerable: true},
    clearRect: {enumerable: true},
    closePath: {enumerable: true},
    ellipse: {enumerable: true},
    fillRect: {enumerable: true},
    lineTo: {enumerable: true},
    moveTo: {enumerable: true},
    quadraticCurveTo: {enumerable: true},
    rect: {enumerable: true},
    resetTransform: {enumerable: true},
    restore: {enumerable: true},
    rotate: {enumerable: true},
    strokeRect: {enumerable: true},
    [Symbol.toStringTag]: {value: "CanvasRenderingContext2D", configurable: true}

})


class HTMLCanvasElement {
     _getCanvas() {
            if (Canvas && !this._canvas) {
                this._canvas = Canvas.createCanvas(this.width, this.height);
            }
            return this._canvas;
        }
    getContext(contextId) {
        const canvas = this._getCanvas();
        console.log('getContextgetContext', contextId)
        if (canvas) {
            if (contextId == '2d') {
                console.log('new ctx2d', this.width, this.height)
                this._context = new CanvasRenderingContext2D(this.width, this.height, this._canvas.getContext('2d'))
            }
            // if (!this._context) {
            //     this._context = canvas.getContext(contextId) || null;
            //     if (this._context) {
            //         // Override the native canvas reference with our wrapper. This is the
            //         // reason why we need to locally cache _context, since each call to
            //         // canvas.getContext(contextId) would replace this reference again.
            //         // Perhaps in the longer term, a better solution would be to create a
            //         // full wrapper for the Context object as well.
            //         this._context.canvas = idlUtils.wrapperForImpl(this);
            //         wrapNodeCanvasMethod(this._context, "createPattern");
            //         wrapNodeCanvasMethod(this._context, "drawImage");
            //     }
            // }
            if (contextId === 'webgl' || contextId === 'webgl2') {
                var v_new_toggle = true
                var v_new = function (v) {
                    var temp = v_new_toggle;
                    v_new_toggle = true;
                    var r = new v;
                    v_new_toggle = temp;
                    return r
                }

                function WebGLBuffer() {
                }

                function WebGLProgram() {
                }

                function WebGLShader() {
                }



                // window.WebGLRenderingContext = WebGLRenderingContext
                let t = proxy(new WebGLRenderingContext(), 'WebGLRenderingContext11')
                // let t = new WebGLRenderingContext()
                this._context = t;
            }
            // console.log('contextId res', this._context)
            // this._context = idlUtils.proxy(this._context, 'context' + contextId)
            return this._context;
        }
    }

    toDataURL(){

    }
    toBlob(){}
}


HTMLCanvasElement = protectProp(HTMLCanvasElement)
_inherits(HTMLCanvasElement, HTMLElement)
HTMLAnchorElement = v_saf(function HTMLAnchorElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
    return v_hook_href(this, 'HTMLAnchorElement', location.href)
}, undefined, undefined);
// _inherits(HTMLAnchorElement, HTMLElement)
// Object.defineProperties(HTMLAnchorElement.prototype, {
//     // href: {
//     //     get() {
//     //         print("  [*] HTMLAnchorElement -> href[get]", "https://www.jetblue.com/booking/flights?from=LAS&to=BOS&depart=2023-07-10&isMultiCity=false&noOfRoute=1&lang=en&adults=1&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false")
//     //         return 'https://www.jetblue.com/booking/flights?from=LAS&to=BOS&depart=2023-07-10&isMultiCity=false&noOfRoute=1&lang=en&adults=1&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false'
//     //     }, set() {
//     //         v_console_log("  [*] HTMLAnchorElement -> href[set]", [].slice.call(arguments));
//     //     }
//     // },
//     // host: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> host[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> host[get]", "www.southwest.com");
//     //         return "www.southwest.com"
//     //     }
//     // },
//     // protocol: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> protocol[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> protocol[get]", "https:");
//     //         return "https:"
//     //     }
//     // },
//     // pathname: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> pathname[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> pathname[get]", "/air/booking/index.html");
//     //         return "/air/booking/index.html"
//     //     }
//     // },
//     // search: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> search[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> search[get]", "?adultPassengersCount=1&adultsCount=1&departureDate=2023-05-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=USD&from=&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&promoCode=&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&to=&tripType=oneway&validate=true")
//     //         return "?adultPassengersCount=1&adultsCount=1&departureDate=2023-05-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=USD&from=&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&promoCode=&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&to=&tripType=oneway&validate=true"
//     //     }
//     // },
//     // hash: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> hash[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> hash[get]", "");
//     //         return ""
//     //     }
//     // },
//     // port: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> port[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> port[get]", "");
//     //         return ""
//     //     }
//     // },
//     // hostname: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> hostname[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> hostname[get]", "www.southwest.com");
//     //         return "www.southwest.com"
//     //     }
//     // },
//     [Symbol.toStringTag]: {value: "HTMLAnchorElement", writable: false, enumerable: false, configurable: true},
// })

HTMLImageElement = v_saf(function HTMLImageElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLImageElement, HTMLElement)
HTMLIFrameElement = v_saf(function HTMLIFrameElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLIFrameElement, HTMLElement)

HTMLMediaElement = v_saf(function HTMLMediaElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLMediaElement, HTMLElement)
Object.defineProperties(HTMLMediaElement.prototype, {
    canPlayType: {
        value: v_saf(function canPlayType() {
            v_console_log("  [*] HTMLMediaElement -> canPlayType[func]", [].slice.call(arguments));
            let values = {
                'audio/aac; codecs="flac"': '',
                'audio/flac': 'probably',
                'audio/mpeg; codecs="mp3"': "probably",
                'audio/mpeg; codecs="vp9"': "",
                'audio/webm; codecs="vp8"': "",
                'audio/webz': "",
                'audio/x-m4a; codecs="mp3"': "",
                'audio/x-m4a; codecs="vp8, mp4a.40"': "",
                'audio/x-m4a; codecs="vp9, mp4a.40.2"': "",
                'video/mp4': 'maybe',
                'video/mp4; codecs="ac-3"': "",
                'video/mp4; codecs="avc1.42011E"': "",
                'video/mp4; codecs="avc1.42E009"': 'maybe',
                'video/mp4; codecs="avc1.42E034"': 'probably',
                'video/mp4; codecs="avc1.42F01E"': 'probably',
                'video/mp4; codecs="avc1.4D001E"': 'probably',
                'video/mp4; codecs="avc3.42001E"': 'probably',
                'video/mp4; codecs="avc3.42E01E, mp4a.40.29"': 'probably',
                'video/mp4; codecs="flac"': 'probably',
                'video/mp4; codecs="hev1"': "",
                'video/mp4; codecs="hvc1x"': "",
                'video/mp4; codecs="lavc1337"': "",
                'video/mp4; codecs="mp4a.40.02"': 'probably',
                'video/mp4; codecs="mp4a.40.5"': 'probably',
                'video/mp4; codecs="mp4a.67"': 'probably',
                'video/mp4; codecs="opus"': 'probably',
                'video/ogg; codecs="flac"': 'probably',
                'video/ogg; codecs="opus"': 'probably',
                'video/ogg; codecs="vp8"': 'probably',
                'video/webm': 'maybe',
                'video/webm; codecs="av01.0.04M.08"': 'probably',
                'video/webm; codecs="vp09.02.10.08"': "probably",
                'video/x-dv': "",
                'video/x-m4v; codecs="avc1.42AC23"': "maybe",
            }
        })
    },
    NETWORK_EMPTY: {"value": 0, "writable": false, "enumerable": true, "configurable": false},
    NETWORK_IDLE: {"value": 1, "writable": false, "enumerable": true, "configurable": false},
    NETWORK_LOADING: {"value": 2, "writable": false, "enumerable": true, "configurable": false},
    NETWORK_NO_SOURCE: {"value": 3, "writable": false, "enumerable": true, "configurable": false},
    HAVE_NOTHING: {"value": 0, "writable": false, "enumerable": true, "configurable": false},
    HAVE_METADATA: {"value": 1, "writable": false, "enumerable": true, "configurable": false},
    HAVE_CURRENT_DATA: {"value": 2, "writable": false, "enumerable": true, "configurable": false},
    HAVE_FUTURE_DATA: {"value": 3, "writable": false, "enumerable": true, "configurable": false},
    HAVE_ENOUGH_DATA: {"value": 4, "writable": false, "enumerable": true, "configurable": false},
    [Symbol.toStringTag]: {value: "HTMLMediaElement", writable: false, enumerable: false, configurable: true},
})
WindowProperties = v_saf(function WindowProperties() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(WindowProperties, EventTarget)

// _inherits(Window, WindowProperties)

var Screen = v_saf(function Screen() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Screen, EventTarget)
// Screen = dtavm.proxy(Screen, 'Screen')
Object.defineProperties(Screen.prototype, {
    availWidth: {
        get: v_saf(function availWidth() {
            v_console_log("  [*] Screen -> availWidth[get]", screens.availWidth);

            // return 2560
            return screens.availWidth
        }, undefined, 'get'), enumerable: true, configurable: true
    },
    availHeight: {
        get: v_saf(function availHeight() {
            v_console_log("  [*] Screen -> availHeight[get]", screens.availHeight);

            // return 2560
            return screens.availHeight
        }, undefined, 'get'), enumerable: true, configurable: true
    },
    width: {
        get: v_saf(function width() {
            v_console_log("  [*] Screen -> width[get]", screens.width);

            // return 2560
            return screens.width

        }, undefined, 'get'), enumerable: true, configurable: true
    },
    height: {
        get: v_saf(function height() {
            v_console_log("  [*] Screen -> height[get]", screens.height);

            // return 2560
            return screens.height
        }, undefined, 'get'), enumerable: true, configurable: true
    },
    colorDepth: {
        get() {
            v_console_log("  [*] Screen -> colorDepth[get]", screens.colorDepth);

            // return 24
            return screens.colorDepth

        }, enumerable: true, configurable: true
    },
    pixelDepth: {
        get() {
            v_console_log("  [*] Screen -> pixelDepth[get]", screens.pixelDepth);

            // return 24
            return screens.pixelDepth

        }, enumerable: true, configurable: true
    },
    availLeft: {
        get() {
            v_console_log("  [*] Screen -> availLeft[get]", screens.availLeft);

            // return 0
            return screens.availLeft

        }, enumerable: true, configurable: true
    },
    availTop: {
        get() {
            v_console_log("  [*] Screen -> availTop[get]", screens.availTop);

            // return 25
            return screens.availTop

        }, enumerable: true, configurable: true
    },
    orientation: {
        get() {
            v_console_log("  [*] Screen -> orientation[get]");
            return {}
        }, enumerable: true, configurable: true
    },
    onchange: {
        get() {
            return null
        }, enumerable: true, configurable: true
    },
    isExtended: {
        get() {
            return true
        }, enumerable: true, configurable: true
    },
    [Symbol.toStringTag]: {value: "Screen", writable: false, enumerable: false, configurable: true},
})
// Screen.prototype = dtavm.proxy(Screen.prototype, ' Screen.prototype')
HTMLDocument = v_saf(function HTMLDocument() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;Object.defineProperty(this, 'location', {
        get() {
            return location
        }
    })
});
_inherits(HTMLDocument, Document)
HTMLHeadElement = v_saf(function HTMLHeadElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLHeadElement, HTMLElement)
External = v_saf(function External() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
External(HTMLBodyElement, Event)
WebGLShaderPrecisionFormat = v_saf(function WebGLShaderPrecisionFormat() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
Object.defineProperties(WebGLShaderPrecisionFormat.prototype, {
    precision: {
        get() {
            v_console_log('WebGLShaderPrecisionFormat.prototype precision')
            return 23
        }
    },
    rangeMax: {
        get() {
            v_console_log('WebGLShaderPrecisionFormat.prototype rangeMax')

            return 127
        }
    },
    rangeMin: {
        get() {
            v_console_log('WebGLShaderPrecisionFormat.prototype rangeMin')

            return 127
        }
    },
})
MimeTypeArray = v_saf(function MimeTypeArray() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
    this[0] = v_new(Plugin);
    this[0].description = "Portable Document Format";
    this[0].enabledPlugin = {"0": {}, "1": {}};
    this[0].suffixes = "pdf";
    this[0].type = "application/pdf";
    this[1] = v_new(Plugin);
    this[1].description = "Portable Document Format";
    this[1].enabledPlugin = {"0": {}, "1": {}};
    this[1].suffixes = "pdf";
    this[1].type = "text/pdf";
})
CSSStyleDeclaration = v_saf(function CSSStyleDeclaration() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
EXTTextureFilterAnisotropic = v_saf(function EXTTextureFilterAnisotropic() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Object.defineProperties(EXTTextureFilterAnisotropic.prototype, {
    MAX_TEXTURE_MAX_ANISOTROPY_EXT: {value: 34047},
    TEXTURE_MAX_ANISOTROPY_EXT: {value: 34047},

})
Location = v_saf(function Location() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})

Object.defineProperties(Location.prototype, {
    href: {
        get: function () {
            if (!(this.protocol) && !(this.host)) {
                r = ''
            } else {
                r = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "") + this.pathname + this.search + this.hash;
            }
            // v_console_log(`  [*] ${name||obj.constructor.name} -> href[get]:`, JSON.stringify(r))
            return r
        },
        set: function (href) {
            href = href.trim()
            v_console_log(`  href[set]:`, JSON.stringify(href))
            if (href.startsWith("http://") || href.startsWith("https://")) {/*ok*/
            } else if (href.startsWith("//")) {
                href = (this.protocol ? this.protocol : 'http:') + href
            } else {
                href = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "") + '/' + ((href[0] == '/') ? href.slice(1) : href)
            }
            var a = href.match(/([^:]+:)\/\/([^/:?#]+):?(\d+)?([^?#]*)?(\?[^#]*)?(#.*)?/);
            this.protocol = a[1] ? a[1] : "";
            this.host = a[2] ? a[2] : "";
            this.port = a[3] ? a[3] : "";
            this.pathname = a[4] ? a[4] : "";
            this.search = a[5] ? a[5] : "";
            this.hash = a[6] ? a[6] : "";
            this.hostname = this.host;
            this.origin = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "");
        },
        enumerable:true
    },
    assign: {
        value: v_saf(function assign() {

        }),
        enumerable: true,

    },
    ancestorOrigins: {
        get: v_saf(function ancestorOrigins() {
            return new DOMStringList()
        }),
        enumerable: true,
        configurable: false,

    },
    // fragmentDirective: 'c',
    // hash: {set: function(arg){this._hash = arg}, get:function(){return this._hash}, enumerable:true},
    // host: {set: function(arg){this._host = arg}, get:function(){return this._host}, enumerable:true},
    // hostname: {set: function(arg){this._hostname = arg}, get:function(){return this._hostname}, enumerable:true},
    origin: {
        set: function (arg) {
            _origin = arg
        }, get: function () {
            return _origin
        }, enumerable: true
    },
    // pathname: {set: function(arg){this._pathname = arg}, get:function(){return this._pathname}, enumerable:true},
    // port: {set: function(arg){this._port = arg}, get:function(){return this._port}, enumerable:true},
    // protocol: {set: function(arg){this._protocol = arg}, get:function(){return this._protocol}, enumerable:true},
    // host: 'e',
    // hostname: 'f',
    // href: 'g',
    // origin: 'h',
    // pathname: 'i',
    // port: 'j',
    // protocol: 'k',
    reload: {
        value: v_saf(function reload() {

        }),
        enumerable: true,

    },
    replace: {
        value: v_saf(function replace() {

        }),
        enumerable: true,
    },
    toString: {
        value: v_saf(function toString() {
            return ''
        }),
        enumerable: true,

    },
    _protocol: {enumerable:false},
    _hostname: {enumerable:false},
    _port: {enumerable:false},
    _pathname: {enumerable:false},
    _hash: {enumerable:false},
    _origin: {enumerable:false},
})

 var WebGLRenderingContext = class WebGLRenderingContext {
                    constructor(aaa) {
                        console.log('new WebGLRenderingContext', aaa)
                    }

                    createBuffer() {
                        v_console_log('  [*] WebGLRenderingContext -> createBuffer[func]');
                        return v_new(WebGLBuffer)
                    }

                    bindBuffer(target, buffer) {
                        v_console_log('  [*] WebGLRenderingContext -> bindBuffer[func]', target, buffer);
                        return v_new(WebGLBuffer)
                    }

                    getAttribLocation(program, name) {
                        v_console_log('  [*] WebGLRenderingContext -> getAttribLocation[func]', program, name);
                        switch (name) {
                            case 'aPosition':
                                return 0;
                            case 'aColor':
                                return 1;
                        }
                    }

                    vertexAttribPointer(index, size, type, normalized, stride, offset) {
                        v_console_log('  [*] WebGLRenderingContext -> vertexAttribPointer[func]', index, size, type, normalized, stride, offset);
                    }

                    enableVertexAttribArray(index) {
                        v_console_log('  [*] WebGLRenderingContext -> enableVertexAttribArray[func]', index);
                    }

                    useProgram(index) {
                        v_console_log('  [*] WebGLRenderingContext -> useProgram[func]', index);
                    }

                    getUniformLocation(program, name) {
                        v_console_log('  [*] WebGLRenderingContext -> getUniformLocation[func]', program, name);
                        return proxy({}, 'getUniformLocation')
                    }

                    uniform4fv(program, name) {
                        v_console_log('  [*] WebGLRenderingContext -> uniform4fv[func]', program, name);
                    }

                    drawArrays(mode, first, count) {
                        v_console_log('  [*] WebGLRenderingContext -> drawArrays[func]', mode, first, count);
                    }

                    readPixels(x, y, width, height, format, type, pixels) {
                        for (let i = 0; i < pixels.length - 1; i++) {
                            pixels.fill(parseInt(Math.random() * 210 + 10), i, i + 1)
                        }
                        v_console_log('  [*] WebGLRenderingContext -> readPixels[func]', x, y, width, height, format, type, pixels)
                    }

                    bufferData(target, size, srcData, usage, srcOffSet, length) {
                        v_console_log('  [*] WebGLRenderingContext -> bufferData[func]', target, size, srcData, usage, srcOffSet, length);
                        return v_new(WebGLBuffer)
                    }

                    createProgram() {
                        v_console_log('  [*] WebGLRenderingContext -> createProgram[func]');
                        return v_new(WebGLProgram)
                    }

                    createShader(a) {
                        v_console_log('  [*] WebGLRenderingContext -> createShader[func]', a);
                        return v_new(WebGLShader)
                    }

                    shaderSource(shader, originalSource) {
                        v_console_log('  [*] WebGLRenderingContext -> shaderSource[func]', shader, originalSource);
                        this._originalSource = originalSource;
                    }

                    compileShader(shader) {
                        v_console_log('  [*] WebGLRenderingContext -> compileShader[func]', shader);
                        // this._originalSource = originalSource;
                    }

                    getShaderParameter(shader, pname) {
                        v_console_log('  [*] WebGLRenderingContext -> getShaderParameter[func]', shader, pname);
                        switch (pname) {
                            case 35713:
                                return true;
                                break;
                        }
                    }

                    attachShader(program, shader) {
                        v_console_log('  [*] WebGLRenderingContext -> attachShader[func]', program, shader);

                    }

                    linkProgram(program, shader) {
                        v_console_log('  [*] WebGLRenderingContext -> linkProgram[func]', program, shader);

                    }

                    getProgramParameter(program, pname) {
                        v_console_log('  [*] WebGLRenderingContext -> getProgramParameter[func]', program, pname);
                        if (pname === 35714) {
                            return true;
                        }

                    }

                    getSupportedExtensions() {
                        // window.debug = true;
                        v_console_log('  [*] WebGLRenderingContext -> getSupportedExtensions[func]')
                        if (ENV.navigatorparams.useragent.includes('Edg')){
                            return ['ANGLE_instanced_arrays', 'EXT_blend_minmax', 'EXT_color_buffer_half_float', 'EXT_disjoint_timer_query', 'EXT_float_blend', 'EXT_frag_depth', 'EXT_shader_texture_lod', 'EXT_texture_compression_rgtc', 'EXT_texture_filter_anisotropic', 'EXT_sRGB', 'KHR_parallel_shader_compile', 'OES_element_index_uint', 'OES_fbo_render_mipmap', 'OES_standard_derivatives', 'OES_texture_float', 'OES_texture_float_linear', 'OES_texture_half_float', 'OES_texture_half_float_linear', 'OES_vertex_array_object', 'WEBGL_color_buffer_float', 'WEBGL_compressed_texture_s3tc', 'WEBGL_compressed_texture_s3tc_srgb', 'WEBGL_debug_renderer_info', 'WEBGL_debug_shaders', 'WEBGL_depth_texture', 'WEBGL_draw_buffers', 'WEBGL_lose_context', 'WEBGL_multi_draw']
                        }
                        return [
                            "ANGLE_instanced_arrays", "EXT_blend_minmax", "EXT_color_buffer_half_float", "EXT_disjoint_timer_query", "EXT_float_blend", "EXT_frag_depth",
                            "EXT_shader_texture_lod", "EXT_texture_compression_bptc", "EXT_texture_compression_rgtc", "EXT_texture_filter_anisotropic", "WEBKIT_EXT_texture_filter_anisotropic", "EXT_sRGB",
                            "KHR_parallel_shader_compile", "OES_element_index_uint", "OES_fbo_render_mipmap", "OES_standard_derivatives", "OES_texture_float", "OES_texture_float_linear",
                            "OES_texture_half_float", "OES_texture_half_float_linear", "OES_vertex_array_object", "WEBGL_color_buffer_float", "WEBGL_compressed_texture_s3tc",
                            "WEBKIT_WEBGL_compressed_texture_s3tc", "WEBGL_compressed_texture_s3tc_srgb", "WEBGL_debug_renderer_info", "WEBGL_debug_shaders",
                            "WEBGL_depth_texture", "WEBKIT_WEBGL_depth_texture", "WEBGL_draw_buffers", "WEBGL_lose_context", "WEBKIT_WEBGL_lose_context", "WEBGL_multi_draw",
                        ]
                    }

                    getExtension(key) {
                        v_console_log('  [*] WebGLRenderingContext -> getExtension[func]:', key)

                        class WebGLDebugRendererInfo {
                            get UNMASKED_VENDOR_WEBGL() {
                                return 37445
                            }

                            get UNMASKED_RENDERER_WEBGL() {
                                return 37446
                            }
                        }

                        class EXTTextureFilterAnisotropic {
                        }

                        Object.defineProperties(EXTTextureFilterAnisotropic.prototype, {
                            MAX_TEXTURE_MAX_ANISOTROPY_EXT: {
                                value: 34047
                            }
                        })

                        class WebGLLoseContext {
                            loseContext() {
                            }

                            restoreContext() {
                            }
                        }

                        if (key === "WEBKIT_EXT_texture_filter_anisotropic") {
                            var r = null
                        }
                        if (key === "MOZ_EXT_texture_filter_anisotropic") {
                            var r = null
                        }
                        if (key == 'WEBGL_debug_renderer_info') {
                            var r = new WebGLDebugRendererInfo
                        }
                        if (key == 'EXT_texture_filter_anisotropic') {
                            var r = new EXTTextureFilterAnisotropic
                        }
                        if (key == 'WEBGL_lose_context') {
                            var r = new WebGLLoseContext
                        }

                        return r
                    }

                    getParameter(key) {
                        console.log('  [*] WebGLRenderingContext -> getParameter[func]1:', key)
                        let res;
                        let _toggle = {
                            3413: 8,
                            3412: 8,
                            3411: 8,
                            3410: 8,
                            3414: 24,
                            35661: 32,
                            34076: 16384,
                            36349: 1024,
                            34024: 16384,
                            34930: 16,
                            3379: 16384,
                            36348: 31,
                            34921: 16,
                            35660: 16,
                            36347: 1024,
                            7937: 'WebKit WebGL',
                            35724: 'WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)',
                            3415: 0,
                            7936: 'WebKit',
                            7938: 'WebGL 1.0 (OpenGL ES 2.0 Chromium)',
                            37445: 'Google Inc.',
                            // 37446: 'ANGLE (Apple, Apple M1 Max, OpenGL 4.1)',
                            34047: 16
                        }
                        _toggle = window.ENV.glres;
                        if (_toggle[key]) {
                            res = _toggle[key]

                        } else {

                            if (key == 33902) {
                                res = new Float32Array([1, 1])
                            }
                            if (key == 33901) {
                                res = new Float32Array([1, 64])
                            }
                            if (key == 3386) {
                                res = new Int32Array([16384, 16384])
                            }
                            if (key === 3415){
                                res = 0
                            }

                        }
                        console.log('  [*] WebGLRenderingContext -> getParameter[func]2:', key, res)

                        return res;
                    }

                    getContextAttributes() {
                        v_console_log('  [*] WebGLRenderingContext -> getContextAttributes[func]')
                        return {
                            alpha: true,
                            antialias: true,
                            depth: true,
                            desynchronized: false,
                            failIfMajorPerformanceCaveat: false,
                            powerPreference: "default",
                            premultipliedAlpha: true,
                            preserveDrawingBuffer: false,
                            stencil: false,
                            xrCompatible: false,
                        }
                    }

                    getShaderPrecisionFormat(a, b) {
                        v_console_log('  [*] WebGLRenderingContext -> getShaderPrecisionFormat[func]', a, b)

                        function WebGLShaderPrecisionFormat() {
                        }

                        var r1 = v_new(WebGLShaderPrecisionFormat)
                        r1.rangeMin = 127
                        r1.rangeMax = 127
                        r1.precision = 23
                        var r2 = v_new(WebGLShaderPrecisionFormat)
                        r2.rangeMin = 31
                        r2.rangeMax = 30
                        r2.precision = 0
                        if (a == 35633 && b == 36338) {
                            return r1
                        }
                        if (a == 35633 && b == 36337) {
                            return r1
                        }
                        if (a == 35633 && b == 36336) {
                            return r1
                        }
                        if (a == 35633 && b == 36341) {
                            return r2
                        }
                        if (a == 35633 && b == 36340) {
                            return r2
                        }
                        if (a == 35633 && b == 36339) {
                            return r2
                        }
                        if (a == 35632 && b == 36338) {
                            return r1
                        }
                        if (a == 35632 && b == 36337) {
                            return r1
                        }
                        if (a == 35632 && b == 36336) {
                            return r1
                        }
                        if (a == 35632 && b == 36341) {
                            return r2
                        }
                        if (a == 35632 && b == 36340) {
                            return r2
                        }
                        if (a == 35632 && b == 36339) {
                            return r2
                        }
                        throw Error('getShaderPrecisionFormat')
                    }
                }
Object.defineProperties(WebGLRenderingContext.prototype, {
                    canvas: {writable: undefined, enumerable: true, configurable: true},
                    drawingBufferWidth: {writable: undefined, enumerable: true, configurable: true},
                    drawingBufferHeight: {writable: undefined, enumerable: true, configurable: true},
                    drawingBufferColorSpace: {writable: undefined, enumerable: true, configurable: true},
                    unpackColorSpace: {writable: undefined, enumerable: true, configurable: true},
                    DEPTH_BUFFER_BIT: {value: 256, writable: false, enumerable: true, configurable: false},
                    STENCIL_BUFFER_BIT: {value: 1024, writable: false, enumerable: true, configurable: false},
                    COLOR_BUFFER_BIT: {value: 16384, writable: false, enumerable: true, configurable: false},
                    POINTS: {writable: false, enumerable: true, configurable: false},
                    LINES: {value: 1, writable: false, enumerable: true, configurable: false},
                    LINE_LOOP: {value: 2, writable: false, enumerable: true, configurable: false},
                    LINE_STRIP: {value: 3, writable: false, enumerable: true, configurable: false},
                    TRIANGLES: {value: 4, writable: false, enumerable: true, configurable: false},
                    TRIANGLE_STRIP: {value: 5, writable: false, enumerable: true, configurable: false},
                    TRIANGLE_FAN: {value: 6, writable: false, enumerable: true, configurable: false},
                    ZERO: {writable: false, enumerable: true, configurable: false},
                    ONE: {value: 1, writable: false, enumerable: true, configurable: false},
                    SRC_COLOR: {value: 768, writable: false, enumerable: true, configurable: false},
                    ONE_MINUS_SRC_COLOR: {value: 769, writable: false, enumerable: true, configurable: false},
                    SRC_ALPHA: {value: 770, writable: false, enumerable: true, configurable: false},
                    ONE_MINUS_SRC_ALPHA: {value: 771, writable: false, enumerable: true, configurable: false},
                    DST_ALPHA: {value: 772, writable: false, enumerable: true, configurable: false},
                    ONE_MINUS_DST_ALPHA: {value: 773, writable: false, enumerable: true, configurable: false},
                    DST_COLOR: {value: 774, writable: false, enumerable: true, configurable: false},
                    ONE_MINUS_DST_COLOR: {value: 775, writable: false, enumerable: true, configurable: false},
                    SRC_ALPHA_SATURATE: {value: 776, writable: false, enumerable: true, configurable: false},
                    FUNC_ADD: {value: 32774, writable: false, enumerable: true, configurable: false},
                    BLEND_EQUATION: {value: 32777, writable: false, enumerable: true, configurable: false},
                    BLEND_EQUATION_RGB: {value: 32777, writable: false, enumerable: true, configurable: false},
                    BLEND_EQUATION_ALPHA: {value: 34877, writable: false, enumerable: true, configurable: false},
                    FUNC_SUBTRACT: {value: 32778, writable: false, enumerable: true, configurable: false},
                    FUNC_REVERSE_SUBTRACT: {value: 32779, writable: false, enumerable: true, configurable: false},
                    BLEND_DST_RGB: {value: 32968, writable: false, enumerable: true, configurable: false},
                    BLEND_SRC_RGB: {value: 32969, writable: false, enumerable: true, configurable: false},
                    BLEND_DST_ALPHA: {value: 32970, writable: false, enumerable: true, configurable: false},
                    BLEND_SRC_ALPHA: {value: 32971, writable: false, enumerable: true, configurable: false},
                    CONSTANT_COLOR: {value: 32769, writable: false, enumerable: true, configurable: false},
                    ONE_MINUS_CONSTANT_COLOR: {value: 32770, writable: false, enumerable: true, configurable: false},
                    CONSTANT_ALPHA: {value: 32771, writable: false, enumerable: true, configurable: false},
                    ONE_MINUS_CONSTANT_ALPHA: {value: 32772, writable: false, enumerable: true, configurable: false},
                    BLEND_COLOR: {value: 32773, writable: false, enumerable: true, configurable: false},
                    ARRAY_BUFFER: {value: 34962, writable: false, enumerable: true, configurable: false},
                    ELEMENT_ARRAY_BUFFER: {value: 34963, writable: false, enumerable: true, configurable: false},
                    ARRAY_BUFFER_BINDING: {value: 34964, writable: false, enumerable: true, configurable: false},
                    ELEMENT_ARRAY_BUFFER_BINDING: {
                        value: 34965,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    STREAM_DRAW: {value: 35040, writable: false, enumerable: true, configurable: false},
                    STATIC_DRAW: {value: 35044, writable: false, enumerable: true, configurable: false},
                    DYNAMIC_DRAW: {value: 35048, writable: false, enumerable: true, configurable: false},
                    BUFFER_SIZE: {value: 34660, writable: false, enumerable: true, configurable: false},
                    BUFFER_USAGE: {value: 34661, writable: false, enumerable: true, configurable: false},
                    CURRENT_VERTEX_ATTRIB: {value: 34342, writable: false, enumerable: true, configurable: false},
                    FRONT: {value: 1028, writable: false, enumerable: true, configurable: false},
                    BACK: {value: 1029, writable: false, enumerable: true, configurable: false},
                    FRONT_AND_BACK: {value: 1032, writable: false, enumerable: true, configurable: false},
                    TEXTURE_2D: {value: 3553, writable: false, enumerable: true, configurable: false},
                    CULL_FACE: {value: 2884, writable: false, enumerable: true, configurable: false},
                    BLEND: {value: 3042, writable: false, enumerable: true, configurable: false},
                    DITHER: {value: 3024, writable: false, enumerable: true, configurable: false},
                    STENCIL_TEST: {value: 2960, writable: false, enumerable: true, configurable: false},
                    DEPTH_TEST: {value: 2929, writable: false, enumerable: true, configurable: false},
                    SCISSOR_TEST: {value: 3089, writable: false, enumerable: true, configurable: false},
                    POLYGON_OFFSET_FILL: {value: 32823, writable: false, enumerable: true, configurable: false},
                    SAMPLE_ALPHA_TO_COVERAGE: {value: 32926, writable: false, enumerable: true, configurable: false},
                    SAMPLE_COVERAGE: {value: 32928, writable: false, enumerable: true, configurable: false},
                    NO_ERROR: {writable: false, enumerable: true, configurable: false},
                    INVALID_ENUM: {value: 1280, writable: false, enumerable: true, configurable: false},
                    INVALID_VALUE: {value: 1281, writable: false, enumerable: true, configurable: false},
                    INVALID_OPERATION: {value: 1282, writable: false, enumerable: true, configurable: false},
                    OUT_OF_MEMORY: {value: 1285, writable: false, enumerable: true, configurable: false},
                    CW: {value: 2304, writable: false, enumerable: true, configurable: false},
                    CCW: {value: 2305, writable: false, enumerable: true, configurable: false},
                    LINE_WIDTH: {value: 2849, writable: false, enumerable: true, configurable: false},
                    ALIASED_POINT_SIZE_RANGE: {value: 33901, writable: false, enumerable: true, configurable: false},
                    ALIASED_LINE_WIDTH_RANGE: {value: 33902, writable: false, enumerable: true, configurable: false},
                    CULL_FACE_MODE: {value: 2885, writable: false, enumerable: true, configurable: false},
                    FRONT_FACE: {value: 2886, writable: false, enumerable: true, configurable: false},
                    DEPTH_RANGE: {value: 2928, writable: false, enumerable: true, configurable: false},
                    DEPTH_WRITEMASK: {value: 2930, writable: false, enumerable: true, configurable: false},
                    DEPTH_CLEAR_VALUE: {value: 2931, writable: false, enumerable: true, configurable: false},
                    DEPTH_FUNC: {value: 2932, writable: false, enumerable: true, configurable: false},
                    STENCIL_CLEAR_VALUE: {value: 2961, writable: false, enumerable: true, configurable: false},
                    STENCIL_FUNC: {value: 2962, writable: false, enumerable: true, configurable: false},
                    STENCIL_FAIL: {value: 2964, writable: false, enumerable: true, configurable: false},
                    STENCIL_PASS_DEPTH_FAIL: {value: 2965, writable: false, enumerable: true, configurable: false},
                    STENCIL_PASS_DEPTH_PASS: {value: 2966, writable: false, enumerable: true, configurable: false},
                    STENCIL_REF: {value: 2967, writable: false, enumerable: true, configurable: false},
                    STENCIL_VALUE_MASK: {value: 2963, writable: false, enumerable: true, configurable: false},
                    STENCIL_WRITEMASK: {value: 2968, writable: false, enumerable: true, configurable: false},
                    STENCIL_BACK_FUNC: {value: 34816, writable: false, enumerable: true, configurable: false},
                    STENCIL_BACK_FAIL: {value: 34817, writable: false, enumerable: true, configurable: false},
                    STENCIL_BACK_PASS_DEPTH_FAIL: {
                        value: 34818,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    STENCIL_BACK_PASS_DEPTH_PASS: {
                        value: 34819,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    STENCIL_BACK_REF: {value: 36003, writable: false, enumerable: true, configurable: false},
                    STENCIL_BACK_VALUE_MASK: {value: 36004, writable: false, enumerable: true, configurable: false},
                    STENCIL_BACK_WRITEMASK: {value: 36005, writable: false, enumerable: true, configurable: false},
                    VIEWPORT: {value: 2978, writable: false, enumerable: true, configurable: false},
                    SCISSOR_BOX: {value: 3088, writable: false, enumerable: true, configurable: false},
                    COLOR_CLEAR_VALUE: {value: 3106, writable: false, enumerable: true, configurable: false},
                    COLOR_WRITEMASK: {value: 3107, writable: false, enumerable: true, configurable: false},
                    UNPACK_ALIGNMENT: {value: 3317, writable: false, enumerable: true, configurable: false},
                    PACK_ALIGNMENT: {value: 3333, writable: false, enumerable: true, configurable: false},
                    MAX_TEXTURE_SIZE: {value: 3379, writable: false, enumerable: true, configurable: false},
                    MAX_VIEWPORT_DIMS: {value: 3386, writable: false, enumerable: true, configurable: false},
                    SUBPIXEL_BITS: {value: 3408, writable: false, enumerable: true, configurable: false},
                    RED_BITS: {value: 3410, writable: false, enumerable: true, configurable: false},
                    GREEN_BITS: {value: 3411, writable: false, enumerable: true, configurable: false},
                    BLUE_BITS: {value: 3412, writable: false, enumerable: true, configurable: false},
                    ALPHA_BITS: {value: 3413, writable: false, enumerable: true, configurable: false},
                    DEPTH_BITS: {value: 3414, writable: false, enumerable: true, configurable: false},
                    STENCIL_BITS: {value: 3415, writable: false, enumerable: true, configurable: false},
                    POLYGON_OFFSET_UNITS: {value: 10752, writable: false, enumerable: true, configurable: false},
                    POLYGON_OFFSET_FACTOR: {value: 32824, writable: false, enumerable: true, configurable: false},
                    TEXTURE_BINDING_2D: {value: 32873, writable: false, enumerable: true, configurable: false},
                    SAMPLE_BUFFERS: {value: 32936, writable: false, enumerable: true, configurable: false},
                    SAMPLES: {value: 32937, writable: false, enumerable: true, configurable: false},
                    SAMPLE_COVERAGE_VALUE: {value: 32938, writable: false, enumerable: true, configurable: false},
                    SAMPLE_COVERAGE_INVERT: {value: 32939, writable: false, enumerable: true, configurable: false},
                    COMPRESSED_TEXTURE_FORMATS: {value: 34467, writable: false, enumerable: true, configurable: false},
                    DONT_CARE: {value: 4352, writable: false, enumerable: true, configurable: false},
                    FASTEST: {value: 4353, writable: false, enumerable: true, configurable: false},
                    NICEST: {value: 4354, writable: false, enumerable: true, configurable: false},
                    GENERATE_MIPMAP_HINT: {value: 33170, writable: false, enumerable: true, configurable: false},
                    BYTE: {value: 5120, writable: false, enumerable: true, configurable: false},
                    UNSIGNED_BYTE: {value: 5121, writable: false, enumerable: true, configurable: false},
                    SHORT: {value: 5122, writable: false, enumerable: true, configurable: false},
                    UNSIGNED_SHORT: {value: 5123, writable: false, enumerable: true, configurable: false},
                    INT: {value: 5124, writable: false, enumerable: true, configurable: false},
                    UNSIGNED_INT: {value: 5125, writable: false, enumerable: true, configurable: false},
                    FLOAT: {value: 5126, writable: false, enumerable: true, configurable: false},
                    DEPTH_COMPONENT: {value: 6402, writable: false, enumerable: true, configurable: false},
                    ALPHA: {value: 6406, writable: false, enumerable: true, configurable: false},
                    RGB: {value: 6407, writable: false, enumerable: true, configurable: false},
                    RGBA: {value: 6408, writable: false, enumerable: true, configurable: false},
                    LUMINANCE: {value: 6409, writable: false, enumerable: true, configurable: false},
                    LUMINANCE_ALPHA: {value: 6410, writable: false, enumerable: true, configurable: false},
                    UNSIGNED_SHORT_4_4_4_4: {value: 32819, writable: false, enumerable: true, configurable: false},
                    UNSIGNED_SHORT_5_5_5_1: {value: 32820, writable: false, enumerable: true, configurable: false},
                    UNSIGNED_SHORT_5_6_5: {value: 33635, writable: false, enumerable: true, configurable: false},
                    FRAGMENT_SHADER: {value: 35632, writable: false, enumerable: true, configurable: false},
                    VERTEX_SHADER: {value: 35633, writable: false, enumerable: true, configurable: false},
                    MAX_VERTEX_ATTRIBS: {value: 34921, writable: false, enumerable: true, configurable: false},
                    MAX_VERTEX_UNIFORM_VECTORS: {value: 36347, writable: false, enumerable: true, configurable: false},
                    MAX_VARYING_VECTORS: {value: 36348, writable: false, enumerable: true, configurable: false},
                    MAX_COMBINED_TEXTURE_IMAGE_UNITS: {
                        value: 35661,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    MAX_VERTEX_TEXTURE_IMAGE_UNITS: {
                        value: 35660,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    MAX_TEXTURE_IMAGE_UNITS: {value: 34930, writable: false, enumerable: true, configurable: false},
                    MAX_FRAGMENT_UNIFORM_VECTORS: {
                        value: 36349,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    SHADER_TYPE: {value: 35663, writable: false, enumerable: true, configurable: false},
                    DELETE_STATUS: {value: 35712, writable: false, enumerable: true, configurable: false},
                    LINK_STATUS: {value: 35714, writable: false, enumerable: true, configurable: false},
                    VALIDATE_STATUS: {value: 35715, writable: false, enumerable: true, configurable: false},
                    ATTACHED_SHADERS: {value: 35717, writable: false, enumerable: true, configurable: false},
                    ACTIVE_UNIFORMS: {value: 35718, writable: false, enumerable: true, configurable: false},
                    ACTIVE_ATTRIBUTES: {value: 35721, writable: false, enumerable: true, configurable: false},
                    SHADING_LANGUAGE_VERSION: {value: 35724, writable: false, enumerable: true, configurable: false},
                    CURRENT_PROGRAM: {value: 35725, writable: false, enumerable: true, configurable: false},
                    NEVER: {value: 512, writable: false, enumerable: true, configurable: false},
                    LESS: {value: 513, writable: false, enumerable: true, configurable: false},
                    EQUAL: {value: 514, writable: false, enumerable: true, configurable: false},
                    LEQUAL: {value: 515, writable: false, enumerable: true, configurable: false},
                    GREATER: {value: 516, writable: false, enumerable: true, configurable: false},
                    NOTEQUAL: {value: 517, writable: false, enumerable: true, configurable: false},
                    GEQUAL: {value: 518, writable: false, enumerable: true, configurable: false},
                    ALWAYS: {value: 519, writable: false, enumerable: true, configurable: false},
                    KEEP: {value: 7680, writable: false, enumerable: true, configurable: false},
                    REPLACE: {value: 7681, writable: false, enumerable: true, configurable: false},
                    INCR: {value: 7682, writable: false, enumerable: true, configurable: false},
                    DECR: {value: 7683, writable: false, enumerable: true, configurable: false},
                    INVERT: {value: 5386, writable: false, enumerable: true, configurable: false},
                    INCR_WRAP: {value: 34055, writable: false, enumerable: true, configurable: false},
                    DECR_WRAP: {value: 34056, writable: false, enumerable: true, configurable: false},
                    VENDOR: {value: 7936, writable: false, enumerable: true, configurable: false},
                    RENDERER: {value: 7937, writable: false, enumerable: true, configurable: false},
                    VERSION: {value: 7938, writable: false, enumerable: true, configurable: false},
                    NEAREST: {value: 9728, writable: false, enumerable: true, configurable: false},
                    LINEAR: {value: 9729, writable: false, enumerable: true, configurable: false},
                    NEAREST_MIPMAP_NEAREST: {value: 9984, writable: false, enumerable: true, configurable: false},
                    LINEAR_MIPMAP_NEAREST: {value: 9985, writable: false, enumerable: true, configurable: false},
                    NEAREST_MIPMAP_LINEAR: {value: 9986, writable: false, enumerable: true, configurable: false},
                    LINEAR_MIPMAP_LINEAR: {value: 9987, writable: false, enumerable: true, configurable: false},
                    TEXTURE_MAG_FILTER: {value: 10240, writable: false, enumerable: true, configurable: false},
                    TEXTURE_MIN_FILTER: {value: 10241, writable: false, enumerable: true, configurable: false},
                    TEXTURE_WRAP_S: {value: 10242, writable: false, enumerable: true, configurable: false},
                    TEXTURE_WRAP_T: {value: 10243, writable: false, enumerable: true, configurable: false},
                    TEXTURE: {value: 5890, writable: false, enumerable: true, configurable: false},
                    TEXTURE_CUBE_MAP: {value: 34067, writable: false, enumerable: true, configurable: false},
                    TEXTURE_BINDING_CUBE_MAP: {value: 34068, writable: false, enumerable: true, configurable: false},
                    TEXTURE_CUBE_MAP_POSITIVE_X: {value: 34069, writable: false, enumerable: true, configurable: false},
                    TEXTURE_CUBE_MAP_NEGATIVE_X: {value: 34070, writable: false, enumerable: true, configurable: false},
                    TEXTURE_CUBE_MAP_POSITIVE_Y: {value: 34071, writable: false, enumerable: true, configurable: false},
                    TEXTURE_CUBE_MAP_NEGATIVE_Y: {value: 34072, writable: false, enumerable: true, configurable: false},
                    TEXTURE_CUBE_MAP_POSITIVE_Z: {value: 34073, writable: false, enumerable: true, configurable: false},
                    TEXTURE_CUBE_MAP_NEGATIVE_Z: {value: 34074, writable: false, enumerable: true, configurable: false},
                    MAX_CUBE_MAP_TEXTURE_SIZE: {value: 34076, writable: false, enumerable: true, configurable: false},
                    TEXTURE0: {value: 33984, writable: false, enumerable: true, configurable: false},
                    TEXTURE1: {value: 33985, writable: false, enumerable: true, configurable: false},
                    TEXTURE2: {value: 33986, writable: false, enumerable: true, configurable: false},
                    TEXTURE3: {value: 33987, writable: false, enumerable: true, configurable: false},
                    TEXTURE4: {value: 33988, writable: false, enumerable: true, configurable: false},
                    TEXTURE5: {value: 33989, writable: false, enumerable: true, configurable: false},
                    TEXTURE6: {value: 33990, writable: false, enumerable: true, configurable: false},
                    TEXTURE7: {value: 33991, writable: false, enumerable: true, configurable: false},
                    TEXTURE8: {value: 33992, writable: false, enumerable: true, configurable: false},
                    TEXTURE9: {value: 33993, writable: false, enumerable: true, configurable: false},
                    TEXTURE10: {value: 33994, writable: false, enumerable: true, configurable: false},
                    TEXTURE11: {value: 33995, writable: false, enumerable: true, configurable: false},
                    TEXTURE12: {value: 33996, writable: false, enumerable: true, configurable: false},
                    TEXTURE13: {value: 33997, writable: false, enumerable: true, configurable: false},
                    TEXTURE14: {value: 33998, writable: false, enumerable: true, configurable: false},
                    TEXTURE15: {value: 33999, writable: false, enumerable: true, configurable: false},
                    TEXTURE16: {value: 34000, writable: false, enumerable: true, configurable: false},
                    TEXTURE17: {value: 34001, writable: false, enumerable: true, configurable: false},
                    TEXTURE18: {value: 34002, writable: false, enumerable: true, configurable: false},
                    TEXTURE19: {value: 34003, writable: false, enumerable: true, configurable: false},
                    TEXTURE20: {value: 34004, writable: false, enumerable: true, configurable: false},
                    TEXTURE21: {value: 34005, writable: false, enumerable: true, configurable: false},
                    TEXTURE22: {value: 34006, writable: false, enumerable: true, configurable: false},
                    TEXTURE23: {value: 34007, writable: false, enumerable: true, configurable: false},
                    TEXTURE24: {value: 34008, writable: false, enumerable: true, configurable: false},
                    TEXTURE25: {value: 34009, writable: false, enumerable: true, configurable: false},
                    TEXTURE26: {value: 34010, writable: false, enumerable: true, configurable: false},
                    TEXTURE27: {value: 34011, writable: false, enumerable: true, configurable: false},
                    TEXTURE28: {value: 34012, writable: false, enumerable: true, configurable: false},
                    TEXTURE29: {value: 34013, writable: false, enumerable: true, configurable: false},
                    TEXTURE30: {value: 34014, writable: false, enumerable: true, configurable: false},
                    TEXTURE31: {value: 34015, writable: false, enumerable: true, configurable: false},
                    ACTIVE_TEXTURE: {value: 34016, writable: false, enumerable: true, configurable: false},
                    REPEAT: {value: 10497, writable: false, enumerable: true, configurable: false},
                    CLAMP_TO_EDGE: {value: 33071, writable: false, enumerable: true, configurable: false},
                    MIRRORED_REPEAT: {value: 33648, writable: false, enumerable: true, configurable: false},
                    FLOAT_VEC2: {value: 35664, writable: false, enumerable: true, configurable: false},
                    FLOAT_VEC3: {value: 35665, writable: false, enumerable: true, configurable: false},
                    FLOAT_VEC4: {value: 35666, writable: false, enumerable: true, configurable: false},
                    INT_VEC2: {value: 35667, writable: false, enumerable: true, configurable: false},
                    INT_VEC3: {value: 35668, writable: false, enumerable: true, configurable: false},
                    INT_VEC4: {value: 35669, writable: false, enumerable: true, configurable: false},
                    BOOL: {value: 35670, writable: false, enumerable: true, configurable: false},
                    BOOL_VEC2: {value: 35671, writable: false, enumerable: true, configurable: false},
                    BOOL_VEC3: {value: 35672, writable: false, enumerable: true, configurable: false},
                    BOOL_VEC4: {value: 35673, writable: false, enumerable: true, configurable: false},
                    FLOAT_MAT2: {value: 35674, writable: false, enumerable: true, configurable: false},
                    FLOAT_MAT3: {value: 35675, writable: false, enumerable: true, configurable: false},
                    FLOAT_MAT4: {value: 35676, writable: false, enumerable: true, configurable: false},
                    SAMPLER_2D: {value: 35678, writable: false, enumerable: true, configurable: false},
                    SAMPLER_CUBE: {value: 35680, writable: false, enumerable: true, configurable: false},
                    VERTEX_ATTRIB_ARRAY_ENABLED: {value: 34338, writable: false, enumerable: true, configurable: false},
                    VERTEX_ATTRIB_ARRAY_SIZE: {value: 34339, writable: false, enumerable: true, configurable: false},
                    VERTEX_ATTRIB_ARRAY_STRIDE: {value: 34340, writable: false, enumerable: true, configurable: false},
                    VERTEX_ATTRIB_ARRAY_TYPE: {value: 34341, writable: false, enumerable: true, configurable: false},
                    VERTEX_ATTRIB_ARRAY_NORMALIZED: {
                        value: 34922,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    VERTEX_ATTRIB_ARRAY_POINTER: {value: 34373, writable: false, enumerable: true, configurable: false},
                    VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: {
                        value: 34975,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    IMPLEMENTATION_COLOR_READ_TYPE: {
                        value: 35738,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    IMPLEMENTATION_COLOR_READ_FORMAT: {
                        value: 35739,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    COMPILE_STATUS: {value: 35713, writable: false, enumerable: true, configurable: false},
                    LOW_FLOAT: {value: 36336, writable: false, enumerable: true, configurable: false},
                    MEDIUM_FLOAT: {value: 36337, writable: false, enumerable: true, configurable: false},
                    HIGH_FLOAT: {value: 36338, writable: false, enumerable: true, configurable: false},
                    LOW_INT: {value: 36339, writable: false, enumerable: true, configurable: false},
                    MEDIUM_INT: {value: 36340, writable: false, enumerable: true, configurable: false},
                    HIGH_INT: {value: 36341, writable: false, enumerable: true, configurable: false},
                    FRAMEBUFFER: {value: 36160, writable: false, enumerable: true, configurable: false},
                    RENDERBUFFER: {value: 36161, writable: false, enumerable: true, configurable: false},
                    RGBA4: {value: 32854, writable: false, enumerable: true, configurable: false},
                    RGB5_A1: {value: 32855, writable: false, enumerable: true, configurable: false},
                    RGB565: {value: 36194, writable: false, enumerable: true, configurable: false},
                    DEPTH_COMPONENT16: {value: 33189, writable: false, enumerable: true, configurable: false},
                    STENCIL_INDEX8: {value: 36168, writable: false, enumerable: true, configurable: false},
                    DEPTH_STENCIL: {value: 34041, writable: false, enumerable: true, configurable: false},
                    RENDERBUFFER_WIDTH: {value: 36162, writable: false, enumerable: true, configurable: false},
                    RENDERBUFFER_HEIGHT: {value: 36163, writable: false, enumerable: true, configurable: false},
                    RENDERBUFFER_INTERNAL_FORMAT: {
                        value: 36164,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    RENDERBUFFER_RED_SIZE: {value: 36176, writable: false, enumerable: true, configurable: false},
                    RENDERBUFFER_GREEN_SIZE: {value: 36177, writable: false, enumerable: true, configurable: false},
                    RENDERBUFFER_BLUE_SIZE: {value: 36178, writable: false, enumerable: true, configurable: false},
                    RENDERBUFFER_ALPHA_SIZE: {value: 36179, writable: false, enumerable: true, configurable: false},
                    RENDERBUFFER_DEPTH_SIZE: {value: 36180, writable: false, enumerable: true, configurable: false},
                    RENDERBUFFER_STENCIL_SIZE: {value: 36181, writable: false, enumerable: true, configurable: false},
                    FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: {
                        value: 36048,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: {
                        value: 36049,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: {
                        value: 36050,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: {
                        value: 36051,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    COLOR_ATTACHMENT0: {value: 36064, writable: false, enumerable: true, configurable: false},
                    DEPTH_ATTACHMENT: {value: 36096, writable: false, enumerable: true, configurable: false},
                    STENCIL_ATTACHMENT: {value: 36128, writable: false, enumerable: true, configurable: false},
                    DEPTH_STENCIL_ATTACHMENT: {value: 33306, writable: false, enumerable: true, configurable: false},
                    NONE: {writable: false, enumerable: true, configurable: false},
                    FRAMEBUFFER_COMPLETE: {value: 36053, writable: false, enumerable: true, configurable: false},
                    FRAMEBUFFER_INCOMPLETE_ATTACHMENT: {
                        value: 36054,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: {
                        value: 36055,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    FRAMEBUFFER_INCOMPLETE_DIMENSIONS: {
                        value: 36057,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    FRAMEBUFFER_UNSUPPORTED: {value: 36061, writable: false, enumerable: true, configurable: false},
                    FRAMEBUFFER_BINDING: {value: 36006, writable: false, enumerable: true, configurable: false},
                    RENDERBUFFER_BINDING: {value: 36007, writable: false, enumerable: true, configurable: false},
                    MAX_RENDERBUFFER_SIZE: {value: 34024, writable: false, enumerable: true, configurable: false},
                    INVALID_FRAMEBUFFER_OPERATION: {
                        value: 1286,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    UNPACK_FLIP_Y_WEBGL: {value: 37440, writable: false, enumerable: true, configurable: false},
                    UNPACK_PREMULTIPLY_ALPHA_WEBGL: {
                        value: 37441,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    CONTEXT_LOST_WEBGL: {value: 37442, writable: false, enumerable: true, configurable: false},
                    UNPACK_COLORSPACE_CONVERSION_WEBGL: {
                        value: 37443,
                        writable: false,
                        enumerable: true,
                        configurable: false
                    },
                    BROWSER_DEFAULT_WEBGL: {value: 37444, writable: false, enumerable: true, configurable: false},
                    activeTexture: {writable: true, enumerable: true, configurable: true},
                    attachShader: {writable: true, enumerable: true, configurable: true},
                    bindAttribLocation: {writable: true, enumerable: true, configurable: true},
                    bindRenderbuffer: {writable: true, enumerable: true, configurable: true},
                    blendColor: {writable: true, enumerable: true, configurable: true},
                    blendEquation: {writable: true, enumerable: true, configurable: true},
                    blendEquationSeparate: {writable: true, enumerable: true, configurable: true},
                    blendFunc: {writable: true, enumerable: true, configurable: true},
                    blendFuncSeparate: {writable: true, enumerable: true, configurable: true},
                    bufferData: {writable: true, enumerable: true, configurable: true},
                    bufferSubData: {writable: true, enumerable: true, configurable: true},
                    checkFramebufferStatus: {writable: true, enumerable: true, configurable: true},
                    compileShader: {writable: true, enumerable: true, configurable: true},
                    compressedTexImage2D: {writable: true, enumerable: true, configurable: true},
                    compressedTexSubImage2D: {writable: true, enumerable: true, configurable: true},
                    copyTexImage2D: {writable: true, enumerable: true, configurable: true},
                    copyTexSubImage2D: {writable: true, enumerable: true, configurable: true},
                    createBuffer: {writable: true, enumerable: true, configurable: true},
                    createFramebuffer: {writable: true, enumerable: true, configurable: true},
                    createProgram: {writable: true, enumerable: true, configurable: true},
                    createRenderbuffer: {writable: true, enumerable: true, configurable: true},
                    createShader: {writable: true, enumerable: true, configurable: true},
                    createTexture: {writable: true, enumerable: true, configurable: true},
                    cullFace: {writable: true, enumerable: true, configurable: true},
                    deleteBuffer: {writable: true, enumerable: true, configurable: true},
                    deleteFramebuffer: {writable: true, enumerable: true, configurable: true},
                    deleteProgram: {writable: true, enumerable: true, configurable: true},
                    deleteRenderbuffer: {writable: true, enumerable: true, configurable: true},
                    deleteShader: {writable: true, enumerable: true, configurable: true},
                    deleteTexture: {writable: true, enumerable: true, configurable: true},
                    depthFunc: {writable: true, enumerable: true, configurable: true},
                    depthMask: {writable: true, enumerable: true, configurable: true},
                    depthRange: {writable: true, enumerable: true, configurable: true},
                    detachShader: {writable: true, enumerable: true, configurable: true},
                    disable: {writable: true, enumerable: true, configurable: true},
                    enable: {writable: true, enumerable: true, configurable: true},
                    finish: {writable: true, enumerable: true, configurable: true},
                    flush: {writable: true, enumerable: true, configurable: true},
                    framebufferRenderbuffer: {writable: true, enumerable: true, configurable: true},
                    framebufferTexture2D: {writable: true, enumerable: true, configurable: true},
                    frontFace: {writable: true, enumerable: true, configurable: true},
                    generateMipmap: {writable: true, enumerable: true, configurable: true},
                    getActiveAttrib: {writable: true, enumerable: true, configurable: true},
                    getActiveUniform: {writable: true, enumerable: true, configurable: true},
                    getAttachedShaders: {writable: true, enumerable: true, configurable: true},
                    getAttribLocation: {writable: true, enumerable: true, configurable: true},
                    getBufferParameter: {writable: true, enumerable: true, configurable: true},
                    getContextAttributes: {writable: true, enumerable: true, configurable: true},
                    getError: {writable: true, enumerable: true, configurable: true},
                    getExtension: {writable: true, enumerable: true, configurable: true},
                    getFramebufferAttachmentParameter: {writable: true, enumerable: true, configurable: true},
                    getParameter: {writable: true, enumerable: true, configurable: true},
                    getProgramInfoLog: {writable: true, enumerable: true, configurable: true},
                    getProgramParameter: {writable: true, enumerable: true, configurable: true},
                    getRenderbufferParameter: {writable: true, enumerable: true, configurable: true},
                    getShaderInfoLog: {writable: true, enumerable: true, configurable: true},
                    getShaderParameter: {writable: true, enumerable: true, configurable: true},
                    getShaderPrecisionFormat: {writable: true, enumerable: true, configurable: true},
                    getShaderSource: {writable: true, enumerable: true, configurable: true},
                    getSupportedExtensions: {writable: true, enumerable: true, configurable: true},
                    getTexParameter: {writable: true, enumerable: true, configurable: true},
                    getUniform: {writable: true, enumerable: true, configurable: true},
                    getUniformLocation: {writable: true, enumerable: true, configurable: true},
                    getVertexAttrib: {writable: true, enumerable: true, configurable: true},
                    getVertexAttribOffset: {writable: true, enumerable: true, configurable: true},
                    hint: {writable: true, enumerable: true, configurable: true},
                    isBuffer: {writable: true, enumerable: true, configurable: true},
                    isContextLost: {writable: true, enumerable: true, configurable: true},
                    isEnabled: {writable: true, enumerable: true, configurable: true},
                    isFramebuffer: {writable: true, enumerable: true, configurable: true},
                    isProgram: {writable: true, enumerable: true, configurable: true},
                    isRenderbuffer: {writable: true, enumerable: true, configurable: true},
                    isShader: {writable: true, enumerable: true, configurable: true},
                    isTexture: {writable: true, enumerable: true, configurable: true},
                    lineWidth: {writable: true, enumerable: true, configurable: true},
                    linkProgram: {writable: true, enumerable: true, configurable: true},
                    pixelStorei: {writable: true, enumerable: true, configurable: true},
                    polygonOffset: {writable: true, enumerable: true, configurable: true},
                    readPixels: {writable: true, enumerable: true, configurable: true},
                    renderbufferStorage: {writable: true, enumerable: true, configurable: true},
                    sampleCoverage: {writable: true, enumerable: true, configurable: true},
                    shaderSource: {writable: true, enumerable: true, configurable: true},
                    stencilFunc: {writable: true, enumerable: true, configurable: true},
                    stencilFuncSeparate: {writable: true, enumerable: true, configurable: true},
                    stencilMask: {writable: true, enumerable: true, configurable: true},
                    stencilMaskSeparate: {writable: true, enumerable: true, configurable: true},
                    stencilOp: {writable: true, enumerable: true, configurable: true},
                    stencilOpSeparate: {writable: true, enumerable: true, configurable: true},
                    texImage2D: {writable: true, enumerable: true, configurable: true},
                    texParameterf: {writable: true, enumerable: true, configurable: true},
                    texParameteri: {writable: true, enumerable: true, configurable: true},
                    texSubImage2D: {writable: true, enumerable: true, configurable: true},
                    useProgram: {writable: true, enumerable: true, configurable: true},
                    validateProgram: {writable: true, enumerable: true, configurable: true},
                    bindBuffer: {writable: true, enumerable: true, configurable: true},
                    bindFramebuffer: {writable: true, enumerable: true, configurable: true},
                    bindTexture: {writable: true, enumerable: true, configurable: true},
                    clear: {writable: true, enumerable: true, configurable: true},
                    clearColor: {writable: true, enumerable: true, configurable: true},
                    clearDepth: {writable: true, enumerable: true, configurable: true},
                    clearStencil: {writable: true, enumerable: true, configurable: true},
                    colorMask: {writable: true, enumerable: true, configurable: true},
                    disableVertexAttribArray: {writable: true, enumerable: true, configurable: true},
                    drawArrays: {writable: true, enumerable: true, configurable: true},
                    drawElements: {writable: true, enumerable: true, configurable: true},
                    enableVertexAttribArray: {writable: true, enumerable: true, configurable: true},
                    scissor: {writable: true, enumerable: true, configurable: true},
                    uniform1f: {writable: true, enumerable: true, configurable: true},
                    uniform1fv: {writable: true, enumerable: true, configurable: true},
                    uniform1i: {writable: true, enumerable: true, configurable: true},
                    uniform1iv: {writable: true, enumerable: true, configurable: true},
                    uniform2f: {writable: true, enumerable: true, configurable: true},
                    uniform2fv: {writable: true, enumerable: true, configurable: true},
                    uniform2i: {writable: true, enumerable: true, configurable: true},
                    uniform2iv: {writable: true, enumerable: true, configurable: true},
                    uniform3f: {writable: true, enumerable: true, configurable: true},
                    uniform3fv: {writable: true, enumerable: true, configurable: true},
                    uniform3i: {writable: true, enumerable: true, configurable: true},
                    uniform3iv: {writable: true, enumerable: true, configurable: true},
                    uniform4f: {writable: true, enumerable: true, configurable: true},
                    uniform4fv: {writable: true, enumerable: true, configurable: true},
                    uniform4i: {writable: true, enumerable: true, configurable: true},
                    uniform4iv: {writable: true, enumerable: true, configurable: true},
                    uniformMatrix2fv: {writable: true, enumerable: true, configurable: true},
                    uniformMatrix3fv: {writable: true, enumerable: true, configurable: true},
                    uniformMatrix4fv: {writable: true, enumerable: true, configurable: true},
                    vertexAttrib1f: {writable: true, enumerable: true, configurable: true},
                    vertexAttrib1fv: {writable: true, enumerable: true, configurable: true},
                    vertexAttrib2f: {writable: true, enumerable: true, configurable: true},
                    vertexAttrib2fv: {writable: true, enumerable: true, configurable: true},
                    vertexAttrib3f: {writable: true, enumerable: true, configurable: true},
                    vertexAttrib3fv: {writable: true, enumerable: true, configurable: true},
                    vertexAttrib4f: {writable: true, enumerable: true, configurable: true},
                    vertexAttrib4fv: {writable: true, enumerable: true, configurable: true},
                    vertexAttribPointer: {writable: true, enumerable: true, configurable: true},
                    viewport: {writable: true, enumerable: true, configurable: true},
                    constructor: {writable: true, enumerable: false, configurable: true},
                    makeXRCompatible: {writable: true, enumerable: true, configurable: true},
                    [Symbol.toStringTag]: {
                        value: "WebGLRenderingContext",
                        writable: false,
                        enumerable: false,
                        configurable: true
                    },
                })

window.WebGLRenderingContext = WebGLRenderingContext

class OffscreenCanvas {
    width = 0;
    height = 0;
    _canvas = null;

    constructor(w, h) {
        console.log('OffscreenCanvas new', w, h)
        this.width = w;
        this.height = h;
        this._canvas = Canvas.createCanvas(w, h)
    }

    getContext(type) {

        let res = this._canvas.getContext(type)
        if (type === 'webgl') {
            let t = proxy(new window.WebGLRenderingContext(), 'offCanvas.webgl')

            return t
        }
        // return proxy(res, 'newContext')
        console.log('OffscreenCanvas getContext', type, res)
        if (type == '2d') {
            res = new OffscreenCanvasRenderingContext2D();
        }
        return res;

    }
}

window.OffscreenCanvas = proxy(OffscreenCanvas, 'OffscreenCanvas')
PerformanceEntry = v_saf(function PerformanceEntry() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
MediaDevices = v_saf(function MediaDevices() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(MediaDevices, EventTarget)
Object.defineProperties(MediaDevices.prototype, {
    ondevicechange: {
        value: v_saf(function ondevicechange() {
            v_console_log("MediaDevices ondevicechange", arguments)
        })
    },
    enumerateDevices: {
        value: function () {
            return {
                then: function () {
                    return this
                }, catch: function () {
                }
            }
        }
    }
})
PerformanceElementTiming = v_saf(function PerformanceElementTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceElementTiming, PerformanceEntry)
PerformanceEventTiming = v_saf(function PerformanceEventTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceEventTiming, PerformanceEntry)
PerformanceLongTaskTiming = v_saf(function PerformanceLongTaskTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceLongTaskTiming, PerformanceEntry)
PerformanceMark = v_saf(function PerformanceMark() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceMark, PerformanceEntry)
PerformanceMeasure = v_saf(function PerformanceMeasure() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceMeasure, PerformanceEntry)
PerformanceNavigation = v_saf(function PerformanceNavigation() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
PerformanceResourceTiming = v_saf(function PerformanceResourceTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceResourceTiming, PerformanceEntry)
PerformanceNavigationTiming = v_saf(function PerformanceNavigationTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceNavigationTiming, PerformanceResourceTiming)
PerformanceObserver = v_saf(function PerformanceObserver() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
PerformanceObserverEntryList = v_saf(function PerformanceObserverEntryList() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
PerformancePaintTiming = v_saf(function PerformancePaintTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformancePaintTiming, PerformanceEntry)
PerformanceServerTiming = v_saf(function PerformanceServerTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
PerformanceTiming = v_saf(function PerformanceTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
HTMLUnknownElement = v_saf(function HTMLUnknownElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLUnknownElement, HTMLElement)
HTMLVideoElement = v_saf(function HTMLVideoElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLVideoElement, HTMLMediaElement)

Storage = v_saf(function Storage() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
ImageData = v_saf(function ImageData() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
Object.defineProperties(ImageData.prototype, {
    data: {
        value: Uint8ClampedArray.from([0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255]),
        writable: true
    },
    height: {value: 5, writable: true},
    width: {value: 5, writable: true},
    colorSpace: {value: 'srgb', writable: true},
})
Touch = v_saf(function Touch() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
TouchEvent = v_saf(function TouchEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(TouchEvent, UIEvent)

window.StaticRange = v_saf(function StaticRange() {
})
PointerEvent = v_saf(function PointerEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PointerEvent, MouseEvent)
HTMLHtmlElement = v_saf(function HTMLHtmlElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});

// _inherits(HTMLHtmlElement, HTMLElement)
HTMLMetaElement = v_saf(function HTMLMetaElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLMetaElement, HTMLElement)
HTMLTitleElement = v_saf(function HTMLTitleElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLTitleElement, HTMLElement)
HTMLScriptElement = v_saf(function HTMLScriptElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLScriptElement, HTMLElement)
HTMLStyleElement = v_saf(function HTMLScriptElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLStyleElement, HTMLElement)
Object.defineProperties(Node.prototype, {
    attrs: {
        value: {}
    },
    setAttribute: {
        value: function (key, value) {
            this.attrs[key] = value
        }
    },
    parentNode: {
        value: v_new(HTMLScriptElement)
    },
    insertBefore: {
        value: function (tag, newNode) {
            return tag
        }
    }
})

getRanHex = size => {
    let result = [];
    let hexRef = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];

    for (let n = 0; n < size; n++) {
        result.push(hexRef[Math.floor(_random() * 16)].toUpperCase() + hexRef[Math.floor(_random() * 16)].toUpperCase());
    }
    return result;
}
Object.defineProperties(RTCSessionDescription.prototype, {
    sdp: {
        get: v_saf(function get() {
            let t1 = parseInt(Math.random() * (9145445486224659982 / 2) + 9145445486224659982 / 1.2)
            let hex = getRanHex(32).join(':');
            let res = `v=0
o=- ${t1} 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=extmap-allow-mixed
a=msid-semantic: WMS
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=ice-ufrag:Pz1P
a=ice-pwd:2RkyfgKRyILQtDZZ5mluUlPS
a=ice-options:trickle
a=fingerprint:sha-256 ${hex}
a=setup:actpass
a=mid:0
a=sctp-port:5000
a=max-message-size:262144`
            console.log("  [*] RTCSessionDescription -> sdp[get]", res);

            return res

        })
    },
    type: {
        get: v_saf(function get() {
            print("  [*] RTCSessionDescription -> type[get]", "offer");
            return "offer"
        })
    },
    [Symbol.toStringTag]: {value: "RTCSessionDescription", writable: false, enumerable: false, configurable: true},
})

Object.defineProperties(EventTarget.prototype, {
    [Symbol.toStringTag]: {value: "EventTarget", writable: false, enumerable: false, configurable: true},
})

class OffscreenCanvasRenderingContext2D {

    imageDatas = {
        "18,90,1,1": [214, 122, 6, 255],
        "38,77,1,1": [255, 255, 255, 255],
        "48,28,1,1": [0, 0, 0, 0],
        "94,23,1,1": [0, 0, 0, 0],
        "26,46,1,1": [253, 243, 245, 255],
        "47,23,1,1": [0, 0, 0, 0],
        "37,17,1,1": [0, 0, 0, 255],
        "62,28,1,1": [204, 131, 217, 255]
    }
    imageData = ENV.imgsres['94px sans-serif']

    constructor(w, h, context) {
        console.log('OffscreenCanvasRenderingContext2D.new', w, h)
        this.width = w;
        this.height = h;
        if (context) {
            this._context = context

        } else {
            this._context = Canvas.createCanvas(w, h).getContext('2d')

        }
    }

    set font(f) {
        console.log('OffscreenCanvasRenderingContext2D.font', f)
        this._font = f;
        this._context.font = f;
    }

    measureText(text) {
        console.log('OffscreenCanvasRenderingContext2D.measureText1', text)
        this._text = text;
        window.fonts.push({
            font: this._font,
            text: text
        })
        let res = new TextMetrics(text, this._context, this._font);
        // return proxy(res, 'TextMetrics')
        return res;
    }

    get canvas() {
        console.log('CanvasRenderingContext2D22.canvas.get')
    }

    get globalAlpha() {
        console.log('CanvasRenderingContext2D22.globalAlpha.get')
    }

    set globalAlpha(args) {
        console.log('CanvasRenderingContext2D22.globalAlpha.set', args)
    }

    get globalCompositeOperation() {
        console.log('CanvasRenderingContext2D22.globalCompositeOperation.get')
    }

    set globalCompositeOperation(args) {
        console.log('CanvasRenderingContext2D22.globalCompositeOperation.set', args)
    }

    get filter() {
        console.log('CanvasRenderingContext2D22.filter.get')
    }

    set filter(args) {
        console.log('CanvasRenderingContext2D22.filter.set', args)
    }

    get imageSmoothingEnabled() {
        console.log('CanvasRenderingContext2D22.imageSmoothingEnabled.get')
    }

    set imageSmoothingEnabled(args) {
        console.log('CanvasRenderingContext2D22.imageSmoothingEnabled.set', args)
    }

    get imageSmoothingQuality() {
        console.log('CanvasRenderingContext2D22.imageSmoothingQuality.get')
    }

    set imageSmoothingQuality(args) {
        console.log('CanvasRenderingContext2D22.imageSmoothingQuality.set', args)
    }

    get strokeStyle() {
        console.log('CanvasRenderingContext2D22.strokeStyle.get')
    }

    set strokeStyle(args) {
        console.log('CanvasRenderingContext2D22.strokeStyle.set', args)
        return this._context.strokeStyle = args
    }

    get fillStyle() {
        console.log('CanvasRenderingContext2D22.fillStyle.get')
    }

    set fillStyle(args) {
        console.log('CanvasRenderingContext2D22.fillStyle.set', args)
        this._context.canvas.fillStyle = args

    }

    get shadowOffsetX() {
        console.log('CanvasRenderingContext2D22.shadowOffsetX.get')
    }

    set shadowOffsetX(args) {
        console.log('CanvasRenderingContext2D22.shadowOffsetX.set', args)
        this._context.shadowOffsetX = args
    }

    get shadowOffsetY() {
        console.log('CanvasRenderingContext2D22.shadowOffsetY.get')
    }

    set shadowOffsetY(args) {
        console.log('CanvasRenderingContext2D22.shadowOffsetY.set', args)
        this._context.shadowOffsetY = args

    }

    get shadowBlur() {
        console.log('CanvasRenderingContext2D22.shadowBlur.get')
    }

    set shadowBlur(args) {
        console.log('CanvasRenderingContext2D22.shadowBlur.set', args)
        this._context.shadowBlur = args

    }

    get shadowColor() {
        console.log('CanvasRenderingContext2D22.shadowColor.get')

    }

    set shadowColor(args) {
        console.log('CanvasRenderingContext2D22.shadowColor.set', args)
        this._context.shadowColor = args

    }

    get lineWidth() {
        console.log('CanvasRenderingContext2D22.lineWidth.get')
    }

    set lineWidth(args) {
        console.log('CanvasRenderingContext2D22.lineWidth.set', args)
        this._context.lineWidth = args;
    }

    get lineCap() {
        console.log('CanvasRenderingContext2D22.lineCap.get')
    }

    set lineCap(args) {
        console.log('CanvasRenderingContext2D22.lineCap.set', args)
    }

    get lineJoin() {
        console.log('CanvasRenderingContext2D22.lineJoin.get')
    }

    set lineJoin(args) {
        console.log('CanvasRenderingContext2D22.lineJoin.set', args)
    }

    get miterLimit() {
        console.log('CanvasRenderingContext2D22.miterLimit.get')
    }

    set miterLimit(args) {
        console.log('CanvasRenderingContext2D22.miterLimit.set', args)
    }

    get lineDashOffset() {
        console.log('CanvasRenderingContext2D22.lineDashOffset.get')
    }

    set lineDashOffset(args) {
        console.log('CanvasRenderingContext2D22.lineDashOffset.set', args)
    }

    get font() {
        console.log('CanvasRenderingContext2D22.font.get')
        return this._context.font;
    }

    get textAlign() {
        console.log('CanvasRenderingContext2D22.textAlign.get')
    }

    set textAlign(args) {
        console.log('CanvasRenderingContext2D22.textAlign.set', args)
    }

    get textBaseline() {
        console.log('CanvasRenderingContext2D22.textBaseline.get')
        return this._context.textBaseline
    }

    set textBaseline(args) {
        console.log('CanvasRenderingContext2D22.textBaseline.set', args)
        this._context.textBaseline = args
    }

    get direction() {
        console.log('CanvasRenderingContext2D22.direction.get')
        return this._context.direction;
    }

    set direction(args) {
        console.log('CanvasRenderingContext2D22.direction.set', args)
        this._context.direction = args

    }

    get fontKerning() {
        console.log('CanvasRenderingContext2D22.fontKerning.get')
    }

    set fontKerning(args) {
        console.log('CanvasRenderingContext2D22.fontKerning.set', args)
    }

    get fontStretch() {
        console.log('CanvasRenderingContext2D22.fontStretch.get')
    }

    set fontStretch(args) {
        console.log('CanvasRenderingContext2D22.fontStretch.set', args)
    }

    get fontVariantCaps() {
        console.log('CanvasRenderingContext2D22.fontVariantCaps.get')
    }

    set fontVariantCaps(args) {
        console.log('CanvasRenderingContext2D22.fontVariantCaps.set', args)
    }

    get letterSpacing() {
        console.log('CanvasRenderingContext2D22.letterSpacing.get')
    }

    set letterSpacing(args) {
        console.log('CanvasRenderingContext2D22.letterSpacing.set', args)
    }

    get textRendering() {
        console.log('CanvasRenderingContext2D22.textRendering.get')
    }

    set textRendering(args) {
        console.log('CanvasRenderingContext2D22.textRendering.set', args)
    }

    get wordSpacing() {
        console.log('CanvasRenderingContext2D22.wordSpacing.get')
    }

    set wordSpacing(args) {
        console.log('CanvasRenderingContext2D22.wordSpacing.set', args)
    }

    clip() {
        console.log('CanvasRenderingContext2D22.clip')
    }

    createConicGradient() {
        console.log('CanvasRenderingContext2D22.createConicGradient')
    }

    createImageData() {
        console.log('CanvasRenderingContext2D22.createImageData')
    }

    createLinearGradient() {
        console.log('CanvasRenderingContext2D22.createLinearGradient')

        return this._context.createLinearGradient(...arguments)
    }

    createPattern() {
        console.log('CanvasRenderingContext2D22.createPattern')
    }

    createRadialGradient() {
        console.log('CanvasRenderingContext2D22.createRadialGradient')
    }

    drawFocusIfNeeded() {
        console.log('CanvasRenderingContext2D22.drawFocusIfNeeded')
    }

    drawImage() {
        console.log('CanvasRenderingContext2D22.drawImage')
        this._context.drawImage(...arguments)
    }

    fill() {
        console.log('CanvasRenderingContext2D22.fill')
    }

    fillText() {
        console.log('CanvasRenderingContext2D22.fillText', ...arguments)
        this._context.fillText(...arguments)
        this._fillText = [arguments[0], arguments[1], arguments[2]]
    }

    getContextAttributes() {
        console.log('CanvasRenderingContext2D22.getContextAttributes')
    }

    getImageData() {
        let t = _random();

        let res = this._context.getImageData(...arguments)
        window.imageDatas.push({
            font: this._context.font,
            fillStyle: this._context.fillStyle,
            fillText: this._fillText,
            imageData: [arguments[0], arguments[1], arguments[2], arguments[3]]
        })
        let tdata = this.imageDatas[[arguments[0], arguments[1], arguments[2], arguments[3]] + ''];
        if (tdata) {
            res.data[0] = parseInt(tdata[0] * t)
            res.data[1] = parseInt(tdata[1] * t)
            res.data[2] = parseInt(tdata[2] * t)
            res.data[3] = parseInt(tdata[3] * t)
        }
        console.log('CanvasRenderingContext2D22.getImageData', ...arguments, res)

        return res
    }

    getLineDash() {
        console.log('CanvasRenderingContext2D22.getLineDash')
    }

    getTransform() {
        console.log('CanvasRenderingContext2D22.getTransform')
    }

    isContextLost() {
        console.log('CanvasRenderingContext2D22.isContextLost')
    }

    isPointInPath() {
        console.log('CanvasRenderingContext2D22.isPointInPath')
    }

    isPointInStroke() {
        console.log('CanvasRenderingContext2D22.isPointInStroke')
    }

    putImageData() {
        console.log('CanvasRenderingContext2D22.putImageData')
    }

    reset() {
        console.log('CanvasRenderingContext2D22.reset')
    }

    roundRect() {
        console.log('CanvasRenderingContext2D22.roundRect')
    }

    save() {
        console.log('CanvasRenderingContext2D22.save')
    }

    scale() {
        console.log('CanvasRenderingContext2D22.scale')
    }

    setLineDash() {
        console.log('CanvasRenderingContext2D22.setLineDash')
    }

    setTransform() {
        console.log('CanvasRenderingContext2D22.setTransform')
    }

    stroke() {
        console.log('CanvasRenderingContext2D22.stroke')
        this._context.stroke()
    }

    strokeText() {
        console.log('CanvasRenderingContext2D22.strokeText')
    }

    transform() {
        console.log('CanvasRenderingContext2D22.transform')
    }

    translate() {
        console.log('CanvasRenderingContext2D22.translate')
    }

    arc() {
        console.log('CanvasRenderingContext2D22.arc')
        return this._context.arc(...arguments)
    }

    arcTo() {
        console.log('CanvasRenderingContext2D22.arcTo')
    }

    beginPath() {
        console.log('CanvasRenderingContext2D22.beginPath')
        return this._context.beginPath()
    }

    bezierCurveTo() {
        console.log('CanvasRenderingContext2D22.bezierCurveTo')
    }

    clearRect() {
        console.log('CanvasRenderingContext2D22.clearRect')
    }

    closePath() {
        console.log('CanvasRenderingContext2D22.closePath')
        return this._context.closePath(...arguments)

    }

    ellipse() {
        console.log('CanvasRenderingContext2D22.ellipse')
    }

    fillRect() {
        console.log('CanvasRenderingContext2D22.fillRect')
        return this._context.fillRect(...arguments)
    }

    lineTo() {
        console.log('CanvasRenderingContext2D22.lineTo')
        return this._context.lineTo(...arguments)

    }

    moveTo() {
        console.log('CanvasRenderingContext2D22.moveTo')
        return this._context.moveTo(...arguments)
    }

    quadraticCurveTo() {
        console.log('CanvasRenderingContext2D22.quadraticCurveTo')
    }

    rect() {
        console.log('CanvasRenderingContext2D22.rect')
    }

    resetTransform() {
        console.log('CanvasRenderingContext2D22.resetTransform')
    }

    restore() {
        console.log('CanvasRenderingContext2D22.restore')
    }

    rotate() {
        console.log('CanvasRenderingContext2D22.rotate')
    }

    strokeRect() {
        console.log('CanvasRenderingContext2D22.strokeRect')
    }


}

///
let r = {}
Object.keys(Object.getOwnPropertyDescriptors(OffscreenCanvasRenderingContext2D.prototype)).forEach(e => {
    r[e] = {}
    if (Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['value']) {
        r[e]['value'] = v_saf(Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['value'])
    }

    if (Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['get']) {
        r[e]['get'] = v_saf(Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['get'], undefined, 'get ')
    }
    if (Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['set']) {
        r[e]['set'] = v_saf(Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['set'], undefined, 'set ')
    }
    r[e]['enumerable'] = true
})
Object.defineProperties(OffscreenCanvasRenderingContext2D.prototype, r)

window.OffscreenCanvasRenderingContext2D = v_saf(OffscreenCanvasRenderingContext2D)
window.CanvasRenderingContext2D = v_saf(OffscreenCanvasRenderingContext2D)

///

Object.defineProperties(CanvasGradient.prototype, {
    addColorStop: {
        value: v_saf(function addColorStop() {
            v_console_log("  [*] CanvasGradient -> addColorStop[func]", [].slice.call(arguments));
        })
    },
    [Symbol.toStringTag]: {value: "CanvasGradient", writable: false, enumerable: false, configurable: true},
})

window.MutationObserver = v_saf(function MutationObserver() {
    console.log('MutationObserver.new', arguments)
    this._func = arguments[0]
})
Object.defineProperties(window.MutationObserver.prototype, {
    observe: {
        value: function () {
            console.log('MutationObserver.observe', arguments)
            this._func()
        }
    },
    disconnect: {
        value: function () {
            console.log('MutationObserver.disconnect', arguments)
        }
    }

})
Object.defineProperties(OffscreenCanvasRenderingContext2D.prototype, {
    measureText: {
        value: v_saf(function measureText() {
            v_console_log("  [*] OffscreenCanvasRenderingContext2D -> measureText[func]", [].slice.call(arguments));
            this.measureTextVal = arguments[0]
        })
    },
    [Symbol.toStringTag]: {
        value: "OffscreenCanvasRenderingContext2D",
        writable: false,
        enumerable: false,
        configurable: true
    },
})
Object.defineProperties(NavigatorUAData.prototype, {
    getHighEntropyValues: {
        value: v_saf(function getHighEntropyValues() {
            v_console_log("  [*] NavigatorUAData -> getHighEntropyValues[func]", [].slice.call(arguments));
        })
    },
    [Symbol.toStringTag]: {value: "NavigatorUAData", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(NodeList.prototype, {
    length: {
        get() {
            v_console_log("  [*] NodeList -> length[get]", 0);
            return 0
        }
    },
    [Symbol.toStringTag]: {value: "NodeList", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(HTMLCollection.prototype, {
    length: {
        get() {
            v_console_log("  [*] HTMLCollection -> length[get]", 0);
            return 0
        }
    },
    [Symbol.toStringTag]: {value: "HTMLCollection", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(DOMTokenList.prototype, {
    length: {
        get() {
            v_console_log("  [*] DOMTokenList -> length[get]", 0);
            return 0
        }
    },
    [Symbol.toStringTag]: {value: "DOMTokenList", writable: false, enumerable: false, configurable: true},
})
// Object.defineProperties(Event.prototype, {
//     target: {get(){ v_console_log("  [*] Event -> target[get]", {});return {} }},
//     NONE: {"value":0,"writable":false,"enumerable":true,"configurable":false},
//     CAPTURING_PHASE: {"value":1,"writable":false,"enumerable":true,"configurable":false},
//     AT_TARGET: {"value":2,"writable":false,"enumerable":true,"configurable":false},
//     BUBBLING_PHASE: {"value":3,"writable":false,"enumerable":true,"configurable":false},
//     [Symbol.toStringTag]: {value:"Event",writable:false,enumerable:false,configurable:true},
// })
Object.defineProperties(RTCIceCandidate.prototype, {
    candidate: {
        get() {
            v_console_log("  [*] RTCIceCandidate -> candidate[get]", "candidate:1047676015 1 udp 2113937151 525b31c9-16e3-40af-98bd-98206a0caa63.local 51227 typ host generation 0 ufrag 4FAM network-cost 999");
            return "candidate:1047676015 1 udp 2113937151 525b31c9-16e3-40af-98bd-98206a0caa63.local 51227 typ host generation 0 ufrag 4FAM network-cost 999"
        }
    },
    [Symbol.toStringTag]: {value: "RTCIceCandidate", writable: false, enumerable: false, configurable: true},
})
let fonts = [];
let mTexts = {
    "50px  sans-serif": 152.84999084472656,
    "50px  serif": 132.39996337890625,
    "50px 'Andale Mono',  sans-serif": 180.029296875,
    "50px 'Andale Mono',  serif": 180.029296875,
    "50px 'Arial Narrow',  sans-serif": 111.6943359375,
    "50px 'Arial Narrow',  serif": 111.6943359375,
    "50px 'Arial Unicode MS',  sans-serif": 136.1572265625,
    "50px 'Arial Unicode MS',  serif": 136.1572265625,
    "50px 'Batang',  sans-serif": 152.84999084472656,
    "50px 'Batang',  serif": 132.39996337890625,
    "50px 'Bell MT',  sans-serif": 152.84999084472656,
    "50px 'Bell MT',  serif": 132.39996337890625,
    "50px 'Brush Script',  sans-serif": 152.84999084472656,
    "50px 'Brush Script',  serif": 132.39996337890625,
    "50px 'Brush Script MT',  sans-serif": 133.740234375,
    "50px 'Brush Script MT',  serif": 133.740234375,
    "50px 'Calibri',  sans-serif": 152.84999084472656,
    "50px 'Calibri',  serif": 132.39996337890625,
    "50px 'Charter',  sans-serif": 139.55078125,
    "50px 'Charter',  serif": 139.55078125,
    "50px 'Courier',  sans-serif": 180.029296875,
    "50px 'Courier',  serif": 180.029296875,
    "50px 'Courier New',  sans-serif": 180.029296875,
    "50px 'Courier New',  serif": 180.029296875,
    "50px 'Curlz MT',  sans-serif": 152.84999084472656,
    "50px 'Curlz MT',  serif": 132.39996337890625,
    "50px 'DejaVu Sans',  sans-serif": 152.84999084472656,
    "50px 'DejaVu Sans',  serif": 132.39996337890625,
    "50px 'DejaVu Sans Mono',  sans-serif": 152.84999084472656,
    "50px 'DejaVu Sans Mono',  serif": 132.39996337890625,
    "50px 'DejaVu Serif Condensed',  sans-serif": 152.84999084472656,
    "50px 'DejaVu Serif Condensed',  serif": 132.39996337890625,
    "50px 'Droid Sans',  sans-serif": 152.84999084472656,
    "50px 'Droid Sans',  serif": 132.39996337890625,
    "50px 'Droid Sans Fallback',  sans-serif": 152.84999084472656,
    "50px 'Droid Sans Fallback',  serif": 132.39996337890625,
    "50px 'Droid Serif',  sans-serif": 152.84999084472656,
    "50px 'Droid Serif',  serif": 132.39996337890625,
    "50px 'Forte',  sans-serif": 152.84999084472656,
    "50px 'Forte',  serif": 132.39996337890625,
    "50px 'Futura',  sans-serif": 139.35546875,
    "50px 'Futura',  serif": 139.35546875,
    "50px 'Geneva',  sans-serif": 162.3046875,
    "50px 'Geneva',  serif": 162.3046875,
    "50px 'Hei',  sans-serif": 153.41796875,
    "50px 'Hei',  serif": 153.41796875,
    "50px 'Leelawadee',  sans-serif": 152.84999084472656,
    "50px 'Leelawadee',  serif": 132.39996337890625,
    "50px 'Levenim MT',  sans-serif": 152.84999084472656,
    "50px 'Levenim MT',  serif": 132.39996337890625,
    "50px 'Liberation Sans',  sans-serif": 152.84999084472656,
    "50px 'Liberation Sans',  serif": 132.39996337890625,
    "50px 'Liberation Sans Narrow',  sans-serif": 152.84999084472656,
    "50px 'Liberation Sans Narrow',  serif": 132.39996337890625,
    "50px 'Marlett',  sans-serif": 152.84999084472656,
    "50px 'Marlett',  serif": 132.39996337890625,
    "50px 'Meiryo UI',  sans-serif": 152.84999084472656,
    "50px 'Meiryo UI',  serif": 132.39996337890625,
    "50px 'Microsoft Uighur',  sans-serif": 152.84999084472656,
    "50px 'Microsoft Uighur',  serif": 132.39996337890625,
    "50px 'Microsoft YaHei UI',  sans-serif": 152.84999084472656,
    "50px 'Microsoft YaHei UI',  serif": 132.39996337890625,
    "50px 'MS Mincho',  sans-serif": 152.84999084472656,
    "50px 'MS Mincho',  serif": 132.39996337890625,
    "50px 'MS UI Gothic',  sans-serif": 152.84999084472656,
    "50px 'MS UI Gothic',  serif": 132.39996337890625,
    "50px 'NanumGothic',  sans-serif": 148.39996337890625,
    "50px 'NanumGothic',  serif": 148.39996337890625,
    "50px 'Nirmala UI',  sans-serif": 152.84999084472656,
    "50px 'Nirmala UI',  serif": 132.39996337890625,
    "50px 'Palatino',  sans-serif": 132.91015625,
    "50px 'Palatino',  serif": 132.91015625,
    "50px 'Papyrus',  sans-serif": 139.84375,
    "50px 'Papyrus',  serif": 139.84375,
    "50px 'PMingLiU',  sans-serif": 152.84999084472656,
    "50px 'PMingLiU',  serif": 132.39996337890625,
    "50px 'PT Serif',  sans-serif": 134.0999755859375,
    "50px 'PT Serif',  serif": 134.0999755859375,
    "50px 'SimHei',  sans-serif": 152.84999084472656,
    "50px 'SimHei',  serif": 132.39996337890625,
    "50px 'STIXVariants',  sans-serif": 140.84999084472656,
    "50px 'STIXVariants',  serif": 124.79997253417969,
    "50px 'STSong',  sans-serif": 132.94996643066406,
    "50px 'STSong',  serif": 132.94996643066406,
    "50px 'Traditional Arabic',  sans-serif": 152.84999084472656,
    "50px 'Traditional Arabic',  serif": 132.39996337890625,
    "50px 'Urdu Typesetting',  sans-serif": 152.84999084472656,
    "50px 'Urdu Typesetting',  serif": 132.39996337890625,
    "50px 'Verdana',  sans-serif": 175.4150390625,
    "50px 'Verdana',  serif": 175.4150390625,
    "50px 'Wingdings',  sans-serif": 311.5966796875,
    "50px 'Wingdings',  serif": 311.5966796875,
    "50px 'Wingdings 3',  sans-serif": 244.5068359375,
    "50px 'Wingdings 3',  serif": 244.5068359375,
    "50px 'Helkevtrica',  sans-serif": 152.84999084472656,
    "50px 'Helkevtrica',  serif": 132.39996337890625
}

Object.defineProperties(TextMetrics.prototype, {
    width: {
        get() {
            // fonts.push(this.fontval[0])
            width = mTexts[this.fontval]
            v_console_log(this.text[0], "  [*] TextMetrics -> width[get]", width);

            return width
            // return 132.39996337890625
        }
    },
    actualBoundingBoxAscent: {
        get() {
            v_console_log("  [*] TextMetrics -> actualBoundingBoxAscent[get]", 556.640625);
            return 556.640625
        }
    },
    actualBoundingBoxDescent: {
        get() {
            v_console_log("  [*] TextMetrics -> actualBoundingBoxDescent[get]", -203.61328125);
            return -203.61328125
        }
    },
    actualBoundingBoxLeft: {
        get() {
            v_console_log("  [*] TextMetrics -> actualBoundingBoxLeft[get]", -22.94921875);
            return -22.94921875
        }
    },
    actualBoundingBoxRight: {
        get() {
            v_console_log("  [*] TextMetrics -> actualBoundingBoxRight[get]", 579.1015625);
            return 579.1015625
        }
    },
    [Symbol.toStringTag]: {value: "TextMetrics", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(PluginArray.prototype, {
    length: {
        get() {
            console.log("  [*] PluginArray -> length[get]", 5);
            return 5
        },
        enumerable:true
    },
    [Symbol.toStringTag]: {value:"PluginArray",writable:false,enumerable:false,configurable:true},
})
PluginArray = proxy(PluginArray, 'PluginArray')


Object.defineProperties(Plugin.prototype, {
    [Symbol.toStringTag]: {value: "Plugin", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(MimeType.prototype, {
    [Symbol.toStringTag]: {value: "MimeType", writable: false, enumerable: false, configurable: true},
})

// Object.defineProperties(Crypto.prototype, {
//     [Symbol.toStringTag]: {value:"Crypto",writable:false,enumerable:false,configurable:true},
// })
Object.defineProperties(Image.prototype, {
    src: {
        set() {
            v_console_log("  [*] Image -> src[set]", [].slice.call(arguments));
        }
    },
    [Symbol.toStringTag]: {value: "Image", writable: false, enumerable: false, configurable: true},
})
publicDescription = undefined;

class RTCPeerConnection {
    constructor(args) {
        console.log('RTCPeerConnection.new', args)

    }
}

Object.defineProperties(RTCPeerConnection.prototype, {
    localDescription: {
        value: {
            get: v_saf(function get() {
                print('get localDescription')
                return this._publicDescription
            }),
            set: function (arg) {
                this._publicDescription = arg
            }
        }
    },
    onicecandidate: {
        set() {
            print("  [*] RTCPeerConnection -> onicecandidate[set]", [].slice.call(arguments));
            this._onicecandidate = arguments[0]
        }
    },

    createDataChannel: {
        value: v_saf(function createDataChannel(label, option) {
            print("  [*] RTCPeerConnection -> createDataChannel[func]", [].slice.call(arguments));
            let res = new RTCDataChannel(label);
            return proxy(res, 'dataChannel')
        })
    },
    createOffer: {
        value: v_saf(function createOffer() {
            print("  [*] RTCPeerConnection -> createOffer[func]", [].slice.call(arguments));
            let p = new Promise(function (resolve, reject) {
                // 2. 执行异步操作任务
                print('RTCPeerConnection createOffer', resolve, reject);
                let res = new RTCSessionDescription()
                // resolve(proxy(res, 'newRTCSessionDescription'))
                resolve({
                    then: function (arg1, arg2) {
                        arg1(proxy(res, 'newRTCSessionDescription'))
                        arg2(proxy(res, 'newRTCSessionDescription'))
                    }
                })
            })
            return p;
            // return {
            //     then: function (func, func2) {
            //         v_console_log("  [*] RTCPeerConnection -> createOffer[func] then", [].slice.call(arguments));
            //         func2(v_new(RTCSessionDescription));
            //         func(v_new(RTCSessionDescription));
            //         return func(v_new(RTCSessionDescription));
            //     }, catch: function () {
            //     }
            // }
        })
    },
    setLocalDescription: {
        value: v_saf(function setLocalDescription() {
            var _this = this;
            print("  [*] RTCPeerConnection -> setLocalDescription[func]", [].slice.call(arguments));
            _this._onicecandidate(new RTCPeerConnectionIceEvent())
            this.localDescription = arguments[0]
            _this._onicecandidate(this.localDescription)
            let p = new Promise(function (resolve, reject) {
                // 2. 执行异步操作任务
                // let res = this.setLocalDescription(v_new(RTCSessionDescription))
                // console.log('RTCPeerConnection create',res);
                _this._onicecandidate(new RTCPeerConnectionIceEvent())

                print("  [*] RTCPeerConnection -> setLocalDescription[func] then", [].slice.call(arguments));
                // window.debug = true
                resolve(new RTCSessionDescription())
                // return res
            })
            return p;
        }),
        enumerable: true,
        configurable: true
    },
    [Symbol.toStringTag]: {value: "RTCPeerConnection", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(Node.prototype, {
    childs: {value: []},
    appendChild: {
        value: v_saf(function appendChild() {
            v_console_log("  [*] Node -> appendChild[func]", [].slice.call(arguments));
            this.childs.push(arguments[0])
            return arguments[0];
        })
    },
    removeChild: {
        value: v_saf(function removeChild() {
            v_console_log("  [*] Node -> removeChild[func]", [].slice.call(arguments));
        })
    },
    textContent: {
        set() {
            v_console_log("  [*] Node -> textContent[set]", [].slice.call(arguments));
            this.text = arguments[0]
        }
    },
    ELEMENT_NODE: {"value": 1, "writable": false, "enumerable": true, "configurable": false},
    ATTRIBUTE_NODE: {"value": 2, "writable": false, "enumerable": true, "configurable": false},
    TEXT_NODE: {"value": 3, "writable": false, "enumerable": true, "configurable": false},
    CDATA_SECTION_NODE: {"value": 4, "writable": false, "enumerable": true, "configurable": false},
    ENTITY_REFERENCE_NODE: {"value": 5, "writable": false, "enumerable": true, "configurable": false},
    ENTITY_NODE: {"value": 6, "writable": false, "enumerable": true, "configurable": false},
    PROCESSING_INSTRUCTION_NODE: {"value": 7, "writable": false, "enumerable": true, "configurable": false},
    COMMENT_NODE: {"value": 8, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_NODE: {"value": 9, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_TYPE_NODE: {"value": 10, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_FRAGMENT_NODE: {"value": 11, "writable": false, "enumerable": true, "configurable": false},
    NOTATION_NODE: {"value": 12, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_POSITION_DISCONNECTED: {"value": 1, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_POSITION_PRECEDING: {"value": 2, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_POSITION_FOLLOWING: {"value": 4, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_POSITION_CONTAINS: {"value": 8, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_POSITION_CONTAINED_BY: {"value": 16, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: {
        "value": 32,
        "writable": false,
        "enumerable": true,
        "configurable": false
    },
    [Symbol.toStringTag]: {value: "Node", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(OffscreenCanvas.prototype, {
    getContext: {
        value: v_saf(function getContext() {
            v_console_log("  [*] OffscreenCanvas -> getContext[func]", [].slice.call(arguments));
        })
    },
    [Symbol.toStringTag]: {value: "OffscreenCanvas", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(WebSocket.prototype, {
    onmessage: {
        set() {
            v_console_log("  [*] WebSocket -> onmessage[set]", [].slice.call(arguments));
        }
    },
    CONNECTING: {"value": 0, "writable": false, "enumerable": true, "configurable": false},
    OPEN: {"value": 1, "writable": false, "enumerable": true, "configurable": false},
    CLOSING: {"value": 2, "writable": false, "enumerable": true, "configurable": false},
    CLOSED: {"value": 3, "writable": false, "enumerable": true, "configurable": false},
    [Symbol.toStringTag]: {value: "WebSocket", writable: false, enumerable: false, configurable: true},
})
let t1 = parseInt(_random() * 2430043322 / 2 + 1430043322);
let t2 = parseInt(_random() * 2430043322 / 2 + 1430043322);
let t3 = parseInt(_random() * 5000 + 60199);
let ip = `192.168.${parseInt(_random() * 150 + 1)}.${parseInt(_random() * 150 + 1)}`

function guid() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = _random() * 16 | 0,
            v = c == 'x' ? r : (r & 0x3 | 0x8);
        return v.toString(16);
    });
}

var candidateGetTimes = 0;
Object.defineProperties(RTCPeerConnectionIceEvent.prototype, {
    candidate: {
        get: function () {

            let res = `candidate:${t1} 1 udp ${t2} ${guid()}.local ${t3} typ host generation 0 ufrag MiWK network-cost 999`
            res = `candidate:${t1} 1 udp ${t2} ${ip} ${t3} typ host generation 0 ufrag 5M7j network-id 1`
            // res = `candidate:${t1} 1 tcp ${t2} ${ip} 9 typ host tcptype active generation 0 ufrag ZZHV network-id 1`
            // res = 'candidate:2594513701 1 udp 2122260223 192.168.50.235 54336 typ host generation 0 ufrag 5M7j network-id 1 '
            // res = 'candidate:1678768049 1 tcp 1518280447 192.168.50.235 9 typ host tcptype active generation 0 ufrag 5M7j network-id 1 '

            console.log('RTCPeerConnectionIceEvent.candidate.get', res)

            let rrr = proxy(new RTCIceCandidate(
                ip, res, "rtp", t1, t2, t3, 'tcp', null, null, 0, "0", 'active', 'host', '5M7j'
            ), 'candidate[new]');
            candidateGetTimes++
            if (candidateGetTimes > 3) {
                rrr.candidate = null
                // return null
            }
            return rrr;


        },
        enumerable: true, configurable: true
    },
    type: {
        value: 'icecandidate'
    },
    isTrusted: {
        value: true,
    },
    [Symbol.toStringTag]: {value: "RTCPeerConnectionIceEvent", writable: false, enumerable: false, configurable: true},

})
Object.defineProperties(MessageEvent.prototype, {
    data: {
        get() {
            v_console_log("  [*] MessageEvent -> data[get]", {});
            return {}
        }
    },
    [Symbol.toStringTag]: {value: "MessageEvent", writable: false, enumerable: false, configurable: true},
})

Object.defineProperties(UIEvent.prototype, {
    which: {
        get() {
            v_console_log("  [*] UIEvent -> which[get]", 91);
            return 91
        }
    },
    [Symbol.toStringTag]: {value: "UIEvent", writable: false, enumerable: false, configurable: true},
})


window.RTCPeerConnectionIceEvent = RTCPeerConnectionIceEvent;
window.webkitResolveLocalFileSystemURL = webkitResolveLocalFileSystemURL;
window.webkitRequestAnimationFrame = webkitRequestAnimationFrame;
Object.defineProperties(HTMLIFrameElement.prototype, {
    id: {enumerable: true, configurable: true, writable: true},
    contentWindow: {value: window, enumerable: true, configurable: true, writable: true},
})
window.HTMLScriptElement = HTMLScriptElement
window.HTMLIFrameElement = HTMLIFrameElement
window.HTMLStyleElement = HTMLStyleElement
window.HTMLVideoElement = HTMLVideoElement
window.File = File;
SharedWorker = v_saf(function SharedWorker() {
})
window.SharedWorker = SharedWorker;
postMessage = v_saf(function postMessage() {
})
window.postMessage = postMessage
PushManager = v_saf(function PushManager() {
})
window.PushManager = PushManager;
times = 0;
window.Event = Event;
window.devicePixelRatio = ENV.windowparams.devicepixelratio;

function v_getele(name, func) {
    if (name == "head" && func == "querySelector") {
        return v_new(HTMLHeadElement)
    }
    if (name == "head > title" && func == "querySelector") {
        return v_new(HTMLTitleElement)
    }
    if (name == "body" && func == "querySelector") {
        return v_new(HTMLBodyElement)
    }
    if (name == "base" && func == "querySelector") {
        return v_new(HTMLBaseElement)
    }
    if (name == "jb-app" && func == "querySelector") {
        return v_new(HTMLElement)
    }
    if (name == "svg" && func == "querySelector") {
        return v_new(SVGSVGElement)
    }
    if (name == "jtp-xsell-utils" && func == "getElementById") {
        return v_new(HTMLScriptElement)
    }
    if (name == "first-focus-fares-heading" && func == "getElementById") {
        return v_new(HTMLHeadingElement)
    }
    if (name == "jtp-xsell-default" && func == "getElementById") {
        return v_new(HTMLScriptElement)
    }
    if (name == "#jtp-packages" && func == "querySelector") {
        return v_new(HTMLDivElement)
    }
    if (name == "#vacations-cross-sell" && func == "querySelector") {
        return v_new(HTMLDivElement)
    }
    if (name == "html" && func == "querySelector") {
        return v_new(HTMLHtmlElement)
    }
    return null
}

function v_geteles(name, func) {
    if (name == "html" && func == "getElementsByTagName") {
        return [v_new(HTMLHtmlElement)]
    }
    if (name == "shouldRememberUser" && func == "getElementsByName") {
        return v_new(NodeList)
    }
    if (name == "script" && func == "getElementsByTagName") {
        return [v_new(HTMLScriptElement)]
    }
    if (name == "base" && func == "getElementsByTagName") {
        return [v_new(HTMLBaseElement)]
    }
    if (name == "script" && func == "getElementsByTagName") {
        return [v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement)]
    }
    if (name == "*" && func == "querySelectorAll") {
        return [v_new(HTMLHtmlElement, 'HTML'), v_new(HTMLHeadElement, 'HEAD'), v_new(HTMLMetaElement, 'META'), v_new(HTMLTitleElement,"TITLE"), v_new(HTMLMetaElement, 'META'), v_new(HTMLMetaElement, 'META'),v_new(HTMLScriptElement, 'SCRIPT')]
    }
    if (name == "style[ng-transition=\"resp-booking-airways\"]" && func == "querySelectorAll") {
        return [v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement)]
    }
    if (name == "cdk-live-announcer-element" && func == "getElementsByClassName") {
        return []
    }
    if (name == "#jtp-packages" && func == "querySelectorAll") {
        return [v_new(HTMLDivElement)]
    }
    if (name == "body" && func == "getElementsByTagName") {
        return [v_new(HTMLBodyElement)]
    }
    if (name == 'script[src^=chrome-extension][src$=prompt\\.js], script[src^=moz-extension][src$=prompt\\.js]' && func == 'querySelectorAll') {
        return v_new(NodeList)
    }
    return null
}

let _console = console.log


let events = {}
// window.Event = {
//     prototype:{
//         createEvent: function (type) {
//             return {
//                 "isTrusted": true,
//                 type: '',
//                 detail: '',
//                 initCustomEvent: function (type, canBubble, cancelable, detail) {
//                     this.type = type;
//                     this.detail = detail;
//                     return {type, canBubble, cancelable, detail}
//                 }
//             }
//         },
//     }
// }
Object.defineProperties(Event.prototype, {
    target: {
        get() {
            v_console_log("  [*] Event -> target[get]", {});
            return {}
        }
    },
    timeStamp: {
        get() {
            v_console_log("  [*] Event -> timeStamp[get]", 6122.799999713898);
            return Math.random() * 3000 + 5000
        }
    },
    // preventDefault: {value: v_saf(function preventDefault(){v_console_log("  [*] Event -> preventDefault[func]", [].slice.call(arguments));})},
    type: {
        get() {
            v_console_log("  [*] Event -> type[get]", "blur");
            return "blur"
        }
    },
    defaultPrevented: {
        get() {
            v_console_log("  [*] Event -> defaultPrevented[get]", true);
            return true
        },
    },
    composedPath: {
        value: v_saf(function composedPath() {
            v_console_log("  [*] Event -> composedPath[func]", [].slice.call(arguments));
        }),
        writable: true, enumerable: true, configurable: true
    },
    stopPropagation: {
        value: {func(){}}.func,
        writable: true, enumerable: true, configurable: true
    },
    preventDefault: {
        value: {func(){}}.func,
        writable: true, enumerable: true, configurable: true
    },
    cancelBubble: {
        value: {func(){}}.func,
        //     // get(){},
        //     // set(){},
    },
    stopImmediatePropagation: {
        value: {func(){}}.func,
        writable: true, enumerable: true, configurable: true
    },
    NONE: {"value": 0, "writable": false, "enumerable": true, "configurable": false},
    CAPTURING_PHASE: {"value": 1, "writable": false, "enumerable": true, "configurable": false},
    AT_TARGET: {"value": 2, "writable": false, "enumerable": true, "configurable": false},
    BUBBLING_PHASE: {"value": 3, "writable": false, "enumerable": true, "configurable": false},
    [Symbol.toStringTag]: {value: "Event", writable: false, enumerable: false, configurable: true},
})


createPrototype = function (name, obj) {
    Object.assign(obj, {
        constructor: function () {
        },
        // name: name,
        prototype: {
            toString: function () {
                return `'function ${name}() { [native code] }'`
                // throw new TypeError('Illegal invocation')
            }
        },
        toString: function () {
            return `'function ${name}() { [native code] }'`
        }
    })
    // Object.defineProperty(obj.prototype, {
    //     [Symbol.toStringTag]: {value:name,writable:false,enumerable:false,configurable:true},
    //     prototype: {
    //         toString: function (){
    //             return `'function ${name}() { [native code] }'`
    //             // throw new TypeError('Illegal invocation')
    //         }
    //     },
    // })
    return obj

}


// for (let i = 0; i < O[47].length; i++) {
//     var t = O[47][i];
//
//
// }


PerformanceEntry = {
    name: 'PerformanceEntry',
    prototype: {}
}
Bluetooth = function Bluetooth() {
}
BluetoothDevice = function BluetoothDevice() {
}

AWSCInner = {
    register: function () {
        // _console2('AWSCInner register', arguments)
    }
}
Element = function Element() {
    prototype: {
        webkitMatchesSelector: function webkitMatchesSelector() {

        }
    }
}


chrome = {
    loadTimes: function () {
    },
    csi: function () {
    },
}

MimeTypeArray = v_saf(function MimeTypeArray() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
    this[0] = v_new(MimeType);
    this[0].description = "Portable Document Format";
    this[0].enabledPlugin = {"0": {}};
    this[0].suffixes = "pdf";
    this[0].type = "application/pdf";
    this[1] = v_new(Plugin);
    this[1].description = "Portable Document Format";
    this[1].enabledPlugin = {"0": {}};
    this[1].suffixes = "pdf";
    this[1].type = "text/pdf";

})
Object.defineProperties(MimeTypeArray.prototype, {
    length: {
        get() {
            v_console_log("  [*] MimeTypeArray -> length[get]", 3);
            return 3
        }
    },
    [Symbol.toStringTag]: {value: "MimeTypeArray", writable: false, enumerable: false, configurable: true},
})

navigator = v_new(Navigator)


// navigator = dtavm.proxy(navigator,'navigator')
location = v_new(Location)

// v_hook_href(location, "location", 'https://www.jetblue.com/booking/flights?from=LAS&to=BOS&depart=2023-07-10&isMultiCity=false&noOfRoute=1&lang=en&adults=1&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false')
location.__proto__ = Location.prototype

DOMStringList = v_saf(function DOMStringList() {

})
var _hostname, _origin,_host,_protocol,_port,_pathname,_search,_hash;
Object.defineProperties(location, {
    ancestorOrigins: {
        get: v_saf(function ancestorOrigins() {
            return new DOMStringList()
        }),
        enumerable: true,
        configurable: false

    },
    href: {
    value: 'https://www.jetblue.com/booking/flights?from=LAS&to=BOS&depart=2023-07-10&isMultiCity=false&noOfRoute=1&lang=en&adults=1&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false',
    enumerable: true
    },
// 'valueOf,ancestorOrigins,href,origin,protocol,host,hostname,port,pathname,search,hash,assign,reload,replace,toString'
//          ancestorOrigins,href,origin,protocol,host,hostname,port,pathname,hash,assign,reload,replace,toString
    // fragmentDirective: 'c',
    origin: {set: function(arg){_origin = arg}, get:function(){return _origin}, enumerable:true},
    protocol: {set: function(arg){_protocol = arg}, get:function(){return _protocol}, enumerable:true},
    host: {set: function(arg){_hostname = arg}, get:function(){return _hostname}, enumerable:true},
    hostname: {set: function(arg){_hostname = arg}, get:function(){return _hostname}, enumerable:true},
    port: {set: function(arg){_port = arg}, get:function(){return _port}, enumerable:true},
    pathname: {set: function(arg){_pathname = arg}, get:function(){return _pathname}, enumerable:true},
    search: {set: function(arg){_pathname = arg}, get:function(){return _pathname}, enumerable:true},
    hash: {set: function(arg){_hash = arg}, get:function(){return _hash}, enumerable:true},
    // host: 'e',
    // hostname: 'f',
    // href: 'g',
    // origin: 'h',
    // pathname: 'i',
    // port: 'j',
    // protocol: 'k',
    assign: {
        value: v_saf(function assign() {

        }),
        enumerable: true,

    },
    reload: {
        value: v_saf(function reload() {

        }),
        enumerable: true,

    },
    replace: {
        value: v_saf(function replace() {

        }),
        enumerable: true,
    },
    toString: {
        value: v_saf(function toString() {
            return ''
        }),
        enumerable: true,

    },


})
// 'valueOf,ancestorOrigins,href,origin,protocol,host,hostname,port,pathname,search,hash,assign,reload,replace,toString'
location.href = 'https://www.jetblue.com/booking/flights?from=LAS&to=BOS&depart=2023-07-10&isMultiCity=false&noOfRoute=1&lang=en&adults=1&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false'
function set_href(v, href){
            href = href.trim()
            v_console_log(`  href[set]:`, JSON.stringify(href))
            if (href.startsWith("http://") || href.startsWith("https://")) {/*ok*/
            } else if (href.startsWith("//")) {
                href = (v.protocol ? v.protocol : 'http:') + href
            } else {
                href = v.protocol + "//" + v.host + (v.port ? ":" + v.port : "") + '/' + ((href[0] == '/') ? href.slice(1) : href)
            }
            var a = href.match(/([^:]+:)\/\/([^/:?#]+):?(\d+)?([^?#]*)?(\?[^#]*)?(#.*)?/);
            v.protocol = a[1] ? a[1] : "";
            v.host = a[2] ? a[2] : "";
            v.port = a[3] ? a[3] : "";
            v.pathname = a[4] ? a[4] : "";
            v.search = a[5] ? a[5] : "";
            v.hash = a[6] ? a[6] : "";
            v.hostname = v.host;
            v.origin = v.protocol + "//" + v.host + (v.port ? ":" + v.port : "");
}
// 'valueOf,ancestorOrigins,href,origin,protocol,host,hostname,port,pathname,search,hash,assign,reload,replace,toString'
set_href(location, 'https://www.jetblue.com/booking/flights?from=LAS&to=BOS&depart=2023-07-10&isMultiCity=false&noOfRoute=1&lang=en&adults=1&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false')
window.location = location
// window.location = new Proxy(location, {
//     get(target, p, receiver) {
//         console.log('locaiton get', p)
//         return Reflect.get(target, p, receiver)
//     },
//     has(target, p) {
//         let res = Reflect.has(target, p);
//         console.log('locaiton has', p, res)
//         return res;
//     },
//     getOwnPropertyDescriptor(target, p) {
//         let res = Reflect.getOwnPropertyDescriptor(target, p);
//
//         console.log('locaiton getOwnPropertyDescriptor', p, res)
//         return res;
//     }
// })

origin = location.origin
self = window;
globalThis = window

let performanceNow = _random() * 1000 + 8000
window.performance = {
    now: function () {
        //todo
        // return 1186.7042
        return performanceNow + _random() * 10
    },
    "timeOrigin": Date.now() + 0.1,
    "timing": {
        "connectStart": Date.now(),
        "navigationStart": Date.now() - 1,
        "secureConnectionStart": 0,
        "fetchStart": Date.now(),
        "domContentLoadedEventStart": 0,
        "responseStart": Date.now() + 2,
        "domInteractive": 0,
        "domainLookupEnd": Date.now(),
        "responseEnd": Date.now() + 2,
        "redirectStart": 0,
        "requestStart": Date.now() + 1,
        "unloadEventEnd": Date.now() + 3,
        "unloadEventStart": Date.now() + 3,
        "domLoading": Date.now() + 7,
        "domComplete": 0,
        "domainLookupStart": Date.now(),
        "loadEventStart": 0,
        "domContentLoadedEventEnd": 0,
        "loadEventEnd": 0,
        "redirectEnd": 0,
        "connectEnd": Date.now()
    },
    "navigation": {
        "type": 1,
        "redirectCount": 0
    },
    getEntriesByName: function getEntriesByName() {
    },
    memory: {
        jsHeapSizeLimit: 4294705152,
        totalJSHeapSize: parseInt(11528626 * Math.random() + 11528626),
        usedJSHeapSize: parseInt(9311362 * Math.random() + 9311362),
    }
}
// window.Proxy = window
window.BigInt = BigInt
_hasOwnProperty = Object.hasOwnProperty
Object.hasOwnProperty = function (a){
    let res = _hasOwnProperty.call(this, a);
    console.log(' hasOwnProperty', a, res)

    return res;
}
// window.hasOwnProperty = function hasOwnProperty() {
//     _console2('window hasOwnProperty', arguments)
//     return window[arguments['0']]
// }
DOMTokenList = function DOMTokenList() {

}
window.addEventListener = function (type, callback) {
    _console2('addEventListener111', type, callback)
    events[type] = callback;
    v_events[type] = callback;
    if (type === 'addEventListener11') {
        callback(v_new(Event))
    }
    return true;
}

window.removeEventListener = function removeEventListener(type, callback) {
    delete events[type]
    // callback()
    return true
}
// Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor() {
//
// }

screens = {
    availHeight:parseInt(scale*  ENV.screenparams.availheight),
    availLeft: 0,
    availTop: 25,
    availWidth: parseInt(scale* ENV.screenparams.availwidth),
    colorDepth: parseInt(scale* ENV.screenparams.colordepth),
    height: parseInt(scale* ENV.screenparams.height),
    orientation: {angle: 0, type: 'landscape-primary', onchange: null},
    pixelDepth: parseInt(scale* ENV.screenparams.pixeldepth),
    width: parseInt(scale* ENV.screenparams.width)
}
// {"height":1080,"width":1920,"availHeight":1055,"availWidth":1920,"pixelDepth":24,"colorDepth":24}
// todo
// if (sid === '8ffdff7b995c8ad51d902ff0') {
//
//     screens.height = 1080
//     screens.width = 1920
//     screens.availHeight = 1055
//     screens.availWidth = 1920
//     screens.pixelDepth = 24
//     screens.colorDepth = 24
// navis.hardwareconcurrency = 10
// navis.platform = 'MacIntel'
// }
window.screen = v_new(Screen)
window.screenY = ENV.windowparams.screeny
window.screenX = ENV.windowparams.screenx
// window.screen = aaProxy(window.screen, 'screen')


window.isSecureContext = true
window.innerWidth = parseInt(scale* ENV.windowparams.innerwidth);
window.outerWidth = parseInt(scale* ENV.windowparams.outerwidth);
window.innerHeight = parseInt(scale* ENV.windowparams.innerheight);
window.outerHeight = parseInt(scale* ENV.windowparams.outerheight);
window.screenLeft = parseInt(5+_random() * 30);
window.screenTop = parseInt(scale* ENV.windowparams.screeny || 120);
window.screenX = parseInt(scale* ENV.windowparams.screenx)
window.screenY = parseInt(scale* ENV.windowparams.screeny)
// todo
// if (sid === '8ffdff7b995c8ad51d902ff0') {
// // {"innerHeight":853,"innerWidth":1920,"outerHeight":970,"outerWidth":1920,"screenX":null,"screenY":25,"isSecureContext":true,"devicePixelRatio":1}
// //     {"innerHeight":938,"innerWidth":1920,"outerHeight":1055,"outerWidth":1920,"screenX":null,"screenY":25,"isSecureContext":true,"devicePixelRatio":1}
// // {"innerHeight":null,"innerWidth":1920,"outerHeight":1055,"outerWidth":1920,"screenX":1728,"screenY":25,"isSecureContext":true,"devicePixelRatio":1}
//
//     window.innerHeight = 976
//     window.innerWidth = 1865
//     window.outerHeight = 1055
//     window.outerWidth = 1920
//     window.screenX = 1728
//     window.screenY = 25
//     window.devicePixelRatio = 1
// }

top = window
window.top = top;

htmlEle = {
    appendChild: function () {
        // _console2('appendChild', arguments);
        return {}
    },

    removeChild: function () {
        // _console2('removeChild', arguments);

    },
    clientHeight: 0,
    clientWidth: 1904
}
let allNodes = [];
var childNodes = []

function _createElement(name) {
    print('_createElement name ', name)

    var htmlmap = {
        "HTMLElement": ["abbr", "address", "article", "aside", "b", "bdi", "bdo", "cite", "code", "dd", "dfn", "dt", "em", "figcaption", "figure", "footer", "header", "hgroup", "i", "kbd", "main", "mark", "nav", "noscript", "rp", "rt", "ruby", "s", "samp", "section", "small", "strong", "sub", "summary", "sup", "u", "var", "wbr"],
        "HTMLCanvasElement": ["canvas"],
        "HTMLAnchorElement": ["a"],
        "HTMLImageElement": ["img"],
        "HTMLIFrameElement": ["iframe"],
        "HTMLMediaElement": [],
        "HTMLHeadElement": ["head"],
        "HTMLBodyElement": ["body"],
        "HTMLUnknownElement": [],
        'HTMLScriptElement': ['script'],
        'HTMLVideoElement': ['video'],
        'HTMLStyleElement': ['style']
    }
    var ret, htmlmapkeys = Object.keys(htmlmap)
    name = name.toLocaleLowerCase()
    for (var i = 0; i < htmlmapkeys.length; i++) {
        if (htmlmap[htmlmapkeys[i]].indexOf(name) != -1) {
            ret = v_new(window[htmlmapkeys[i]])
            // if (htmlmapkeys[i] == "canvas"){
            // ret = dtavm.proxy(ret, htmlmapkeys[i])
            // }
            break
        }
    }
    if (!ret) {
        ret = v_new(HTMLUnknownElement);
        throw TypeError("为定义的类型")
    }
    // if (typeof CSSStyleDeclaration != 'undefined') {
    //     ret.v_style = v_new(CSSStyleDeclaration)
    // }
    // ret.v_tagName = name.toUpperCase()
    allNodes.push(ret)
    print('_createElement name ', name, ret)

    return proxy(ret, name)
}

document = {
    all: HTMLAllCollection,
    characterSet: 'UTF-8',
    charset: 'UTF-8',
    compatMode: 'CSS1Compat',
    images: [],
    // createElementNS: v_saf(function createElementNS(){
    //     return _createElement.apply(this, arguments)
    // }),
    constructor: function () {

    },
    [Symbol.toPrimitive](hint) {
        if (hint === 'number') {
            return 42;
        }
        return this;
    },
    toString: function () {
        return '[object HTMLDocument]'
    },

    location: location,
    getElementsByTagName: function () {
        _console2(arguments);
        return v_geteles(...arguments, 'getElementsByTagName')
    },
    referrer: '',
    // createElement: v_saf(function createElement(name) {
    //     return _createElement(name)
    // }),
    getElementById: function getElementById(valId) {
        // if (valId === 'multiFormSubmit') return null;
        let res = v_getele(valId, 'getElementById')
        console.log('use getElementById', valId, res)
        return res
        // return null
        // return {
        //     name: valId + " ele"
        // }
    },
    currentScript: {nonce: ''},
    hasFocus: function hasFocus() {
        return false
    },
    documentElement: htmlEle,
    readyState: 'complete',
    visibilityState: 'visible',

    // addEventListener: function addEventListener(type, callback) {
    //     _console2('document2 addEventListener', arguments)
    //     events[type] = callback
    //     if (type == 'DOMContentLoaded'){
    //         _console2('callDOMContentLoaded' , callback )
    //         callback()
    //     }
    //     // debugger;
    //
    // },
    createEvent: function (type) {
        _console2('createEvent111', type)
        return {
            "isTrusted": true,
            type: '',
            detail: '',
            initCustomEvent: function (type, canBubble, cancelable, detail) {
                _console2('initCustomEvent', type, detail)
                this.type = type;
                this.detail = detail;
                // return {type, canBubble, cancelable, detail}
            }
        }
    },
    querySelector: function querySelector() {
        _console2('document querySelector', arguments)
        // if (arguments['0'] === '#baxia-dialog-content') debugger;
        // return null;
        return {
            name: 'querySelector',
            bind: function () {
                _console2('document querySelector bind', arguments)

            }
        }
    },
    hidden: false

}

_stri = JSON.stringify;
JSON.stringify = v_saf(function stringify() {
    console.log('stringify', arguments)
    return _stri.apply(this, arguments)
})
// document = v_new(Document)
CustomEvent = v_saf(function CustomEvent() {
});
_inherits(CustomEvent, EventTarget)
Object.defineProperties(CustomEvent.prototype, {
    "isTrusted": {
        get() {
            return true
        }
    },
    type: {value: ''},
    detail: {
        get() {
            return this.d
        },

    },
    initCustomEvent: function (type, canBubble, cancelable, detail) {
        this.type = type
        this.detail = detail
        return {type, canBubble, cancelable, detail}
    }
})
Object.defineProperties(Document.prototype, {

    createEvent: {
        value: v_saf(function createEvent() {
            v_console_log("  [*] Document -> createEvent[func]", [].slice.call(arguments));
            if (arguments[0] == 'CustomEvent') {
                return CustomEvent()
            }
        })
    },
    createElement: {
        value: new Proxy(function (n) {
            return _createElement(n)
        }, {
            has(target, p) {
                if (p === 'prototype') {
                    return false;

                } else {
                    return Reflect.has(target, p)
                }
            },
        }),
        configurable: true,
        enumerable: true,
        writable: true
    },
    createElementNS: {
        value: v_saf(function createElementNS(name) {
            return _createElement(name, 'createElementNS')
        }),
        configurable: true,
        enumerable: true,
        writable: true
    },
    featurePolicy: {
        get() {
            //todo
            return undefined
            v_console_log("  [*] Document -> featurePolicy[get]", {});
            Object.defineProperties(FeaturePolicy.prototype, {
                features: {
                  value: function (){
                    return window.ENV.featurepolicy.features
                  },
                  enumerable: true
                },
                allowedFeatures: {
                  value: function (){
                    return window.ENV.featurepolicy.allowedfeatures
                  },
                  enumerable: true
                },
                getAllowlistForFeature: {
                  value: function (){
                    return ['https://www.jetblue.com/']
                  },
                  enumerable: true
                }
              })
            return new FeaturePolicy()
        }
    },
    visibilityState: {
        get() {
            v_console_log("  [*] Document -> visibilityState[get]", "visible");
            return "visible"
        }
    },
    onreadystatechange: {"enumerable": true, "configurable": true},
    onmouseenter: {"enumerable": true, "configurable": true},
    onmouseleave: {"enumerable": true, "configurable": true},
    [Symbol.toStringTag]: {value: "Document", writable: false, enumerable: false, configurable: true},
})
Object.defineProperty(document, Symbol.toStringTag, {
    value: 'HTMLDocument'
})
Object.defineProperty(document, Symbol.iterator, {
    value: function f() {

    }
})
// Object.defineProperty(document,constructor, {
//     value: 'HTMLDocument'
// })
document.addEventListener = function (type, callback) {
    _console2('addEventListener11', type, callback)
    events[type] = callback;
    v_events[type] = callback;

    // if (type === 'DOMContentLoaded' || type === 'wheel'|| type === 'visibilitychange'){
    //     callback({
    //         "isTrusted": true,
    //         type:type,
    //         target: {
    //             visibilityState: 'visible'
    //         }
    //     })
    // }
    return true
}
window.addEventListener = function (type, callback) {
    _console2('addEventListener12', type, callback)
    events[type] = callback;
    if (type === 'DOMContentLoaded' || type == 'visibilitychange') {
        callback({
            "isTrusted": true,
            type: type
        })
    }
    return true
}
addEventListener = window.addEventListener
// window.document = dtavm.proxy(document, 'document');
// Object.assign(window.document, document)
// Date = dtavm.proxy(Date)
window.toString = function () {
    return '[object Window]'
}


window.HTMLAnchorElement = HTMLAnchorElement
//     [Symbol.toStringTag]: function (){
//         return 'HTMLAnchorElement'
//     },
//     [Symbol.iterator]: function (){
//     }
// })
window.HTMLFormElement = v_saf(function HTMLFormElement() {
})
_inherits(window.HTMLFormElement, HTMLElement)
Object.defineProperties(window.HTMLFormElement.prototype, {
    [Symbol.toStringTag]: {
        value: 'HTMLFormElement',
        [Symbol.iterator]: {
            value: function () {
            }
        }
    },
    submit: {
        value: {func(){}}.func,
        configurable: true, writable: false
    }
})
window.CustomEvent = CustomEvent
Object.defineProperties(window.CustomEvent, {
    detail: {},
    constructor: {
        value: function () {
        },
        writable: true, enumerable: false, configurable: true
    },
    [Symbol.iterator]: {
        value: function () {
        }
    },
    [Symbol.toStringTag]: {
        value: function () {

        }
    }
})

// Object.defineProperties(window.HTMLAnchorElement.prototype, {
//     href: {
//         get: function (){},
//         set: function (){},
//          enumerable: true, configurable: true
//     }
// })
// Object.defineProperties(window.HTMLFormElement.prototype, {
//     submit: {
//         value: function (){},
//         "writable": true,
//         "enumerable": true,
//         "configurable": true
//     },
//     constructor: {
//         value: function (){},
//         "writable": true,
//         "enumerable": false,
//         "configurable": true
//     }
// })
// navigator = dtavm.proxy(navigator, 'navigator');


window.Math = Math

let storage = {
    items: {
        // "FTzyeq12rr": "A4AOsm6KAQAAAGUULhl44Mv6c339of4pv5Njb9E9PmrdowVXJ3JKD9u7mODTAXL3RNj6K21wfMBeCOfvosJeCA==",
        // "FTzyeq12rr": "A49NNm6KAQAANCsxBbeG4r6XWuaUdfwmMSe6urV1M5tSCTU-xWEH_ZqUzSS-AXL3RNj6K21wfMBeCOfvosJeCA==",
        // "FTzyeq12rr": "A76x_HOKAQAAeQnrfCam7e5nJhCItdNV2ab9APm5Bh9QD_nPoeUjQgDFVXR-AXL3RNj6K21wfMBeCOfvosJeCA==",
        // "FTzyeq12rr": "A41Q_HiKAQAACKjUIixZBY2Bbu-SU6TdFNxfZDRB-XKYxPlYnMeRk9AK9lrkAUFL3fX6K21wobReCOfvosJeCA==",
        // "FTzyeq12rr": "A182CWuKAQAACfHrGQLisI_229uAWZCUITEfxrVtSFThIjHNuh5titWbTGwIAcJokljURuIXFooAAAAAAAAAAA==",
        // "FTzyeq12rr": "A1Cxkn6KAQAABrBpcNpkODhlt_Ij8b2Ma-2d5L0S2rRC-PANYJINcFpgRO4SAcJoklgXThZ2wH9eCOfvosJeCA==",
    },
    setItem: function (name, value) {
        this.items[name] = value
    },
    getItem: function (name, value) {
        return this.items[name]
    },
    removeItem: function (name) {
        delete this.items[name]
    }

}
if (_process.argv[4]){
    storage.setItem('FTzyeq12rr', _process.argv[4])
}
function dispatchEvent(event) {
    _console2('dispatchEvent', event)
    if (event && event.type in events) {
        events[event.type](event)
    }
    try {
        event.instrumented = v_saf(function instrumented() {
            v_console_log(" instrumented  call")
        })
        event.detail.exchange(event)
    } catch (e) {

    }
    return true

}

function v_init_document() {
    Document.prototype.getElementById = v_saf(function getElementById(name) {
        var r = v_getele(name, 'getElementById');
        v_console_log('  [*] Document -> getElementById', name, r);
        return r
    })
    Document.prototype.querySelector = v_saf(function querySelector(name) {
        var r = v_getele(name, 'querySelector');
        v_console_log('  [*] Document -> querySelector', name, r);
        return r
    })
    Document.prototype.getElementsByClassName = v_saf(function getElementsByClassName(name) {
        var r = v_geteles(name, 'getElementsByClassName');
        v_console_log('  [*] Document -> getElementsByClassName', name, r);
        return r
    })
    Document.prototype.getElementsByName = v_saf(function getElementsByName(name) {
        var r = v_geteles(name, 'getElementsByName');
        v_console_log('  [*] Document -> getElementsByName', name, r);
        return r
    })
    Document.prototype.getElementsByTagName = v_saf(function getElementsByTagName(name) {
        var r = v_geteles(name, 'getElementsByTagName');
        v_console_log('  [*] Document -> getElementsByTagName', name, r);
        return r
    })
    Document.prototype.getElementsByTagNameNS = v_saf(function getElementsByTagNameNS(name) {
        var r = v_geteles(name, 'getElementsByTagNameNS');
        v_console_log('  [*] Document -> getElementsByTagNameNS', name, r);
        return r
    })
    Document.prototype.querySelectorAll = v_saf(function querySelectorAll(name) {
        var r = v_geteles(name, 'querySelectorAll');
        v_console_log('  [*] Document -> querySelectorAll', name, r);
        return r
    })
    var v_head = v_new(HTMLHeadElement)
    var v_body = v_new(HTMLBodyElement)
    Object.defineProperties(Document.prototype, {
        head: {
            get() {
                v_console_log("  [*] Document -> head[get]", v_head);
                return v_head
            }
        },
        body: {
            get() {
                v_console_log("  [*] Document -> body[get]", v_body);

                return proxy(v_body, 'doc.body')
            }
        },
    })
}

v_init_document();
v_init_event_target()
window.dispatchEvent = dispatchEvent;
// _funcHasOwnprop = Function.prototype.hasOwnProperty
// Function.prototype.hasOwnProperty = function (){
//     console.log('Function.prototype.hasOwnProperty', arguments)
//     if (arguments[0] === 'value')return false;
//     return _funcHasOwnprop.apply(this, arguments)
// }
window.Notification = v_saf(function Notification() {
})
window.requestAnimationFrame = v_saf(function requestAnimationFrame() {
})
window.frameElement = null;
window.Function = Function;
window.event = undefined;
window.Object = Object;
window.Array = Array;
window.Date = Date;
window.String = String;
window.RegExp = RegExp;
window.Float32Array = Float32Array;
window.Float64Array = Float64Array;
window.Int32Array = Int32Array;
window.Reflect = Reflect;
window.Uint8Array = Uint8Array;
window.ArrayBuffer = ArrayBuffer;
window.Int8Array = Int8Array;
window.isNaN = isNaN;
window.parseInt = parseInt;
window.parseFloat = parseFloat;
window.encodeURI = encodeURI;
window.encodeURIComponent = encodeURIComponent;
window.decodeURI = decodeURI;
window.decodeURIComponent = decodeURIComponent;
window.Number = Number;
window.Uint8ClampedArray = Uint8ClampedArray;
window.Int16Array = Int16Array;
window.Uint16Array = Uint16Array;
window.Map = Map;
window.Set = Set;
window.WeakMap = WeakMap;
window.WeakSet = WeakSet;
window.Buffer = undefined

Animation = v_saf(function Animation() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Animation, Node)
Comment = v_saf(function Comment() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Comment, Node)
DOMMatrixReadOnly = v_saf(function DOMMatrixReadOnly() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
MediaQueryList = v_saf(function MediaQueryList() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(MediaQueryList, EventTarget)
let medias = [];
let mediaRes = {
    "(max-aspect-ratio: 33/32)": false,
    "(max-aspect-ratio: 67/64)": true,
    "(max-aspect-ratio: 135/128)": true,
    "(max-aspect-ratio: 271/256)": true,
    "(max-aspect-ratio: 543/512)": true,
    "(max-aspect-ratio: 1087/1024)": true,
    "(max-aspect-ratio: 2175/2048)": true,
    "(max-aspect-ratio: 4351/4096)": true,
    "(max-aspect-ratio: 8703/8192)": true,
    "(max-aspect-ratio: 17407/16384)": true,
    "(max-aspect-ratio: 34815/32768)": true,
    "(max-aspect-ratio: 69631/65536)": true,
    "(max-aspect-ratio: 139263/131072)": true,
    "(max-aspect-ratio: 278527/262144)": true,
    "(max-aspect-ratio: 557055/524288)": true,
    "(max-aspect-ratio: 1114111/1048576)": true,
    "(max-aspect-ratio: 2228223/2097152)": true,
    "(max-aspect-ratio: 4456447/4194304)": true,
    "(max-aspect-ratio: 8912895/8388608)": true,
    "(max-aspect-ratio: 17825791/16777216)": true,
    "(max-aspect-ratio: 35651583/33554432)": true,
    "(max-aspect-ratio: 71303167/67108864)": true,
    "(max-aspect-ratio: 142606335/134217728)": true,
    "(max-aspect-ratio: 285212671/268435456)": true,
    "(max-aspect-ratio: 570425343/536870912)": true,
    "(max-aspect-ratio: 1140850687/1073741824)": true,
    "(max-aspect-ratio: 2281701375/2147483648)": true,
    "(max-aspect-ratio: 4563402751/4294967296)": true,
    "(max-aspect-ratio: 9126805503/8589934592)": true,
    "(max-aspect-ratio: 18253611007/17179869184)": true,
    "(max-aspect-ratio: 36507222015/34359738368)": true,
    "(max-aspect-ratio: 73014444031/68719476736)": true,
    "(max-aspect-ratio: 146028888063/137438953472)": true,
    "(max-aspect-ratio: 292057776127/274877906944)": true,
    "(max-aspect-ratio: 584115552255/549755813888)": true,
    "(max-aspect-ratio: 1168231104511/1099511627776)": true,
    "(max-aspect-ratio: 2336462209023/2199023255552)": true,
    "(max-aspect-ratio: 4672924418047/4398046511104)": true,
    "(max-aspect-ratio: 9345848836095/8796093022208)": true,
    "(max-aspect-ratio: 18691697672191/17592186044416)": true,
    "(max-aspect-ratio: 37383395344383/35184372088832)": true,
    "(max-aspect-ratio: 74766790688767/70368744177664)": true,
    "(max-aspect-ratio: 149533581377535/140737488355328)": true,
    "(max-aspect-ratio: 299067162755071/281474976710656)": true,
    "(max-aspect-ratio: 598134325510143/562949953421312)": true,
    "(max-aspect-ratio: 1196268651020287/1125899906842624)": true,
    "(max-aspect-ratio: 17/16)": true,
    "(max-aspect-ratio: 35/32)": true,
    "(max-aspect-ratio: 71/64)": true,
    "(max-aspect-ratio: 143/128)": true,
    "(max-aspect-ratio: 287/256)": true,
    "(max-aspect-ratio: 575/512)": true,
    "(max-aspect-ratio: 1151/1024)": true,
    "(max-aspect-ratio: 2303/2048)": true,
    "(max-aspect-ratio: 4607/4096)": true,
    "(max-aspect-ratio: 9215/8192)": true,
    "(max-aspect-ratio: 18431/16384)": true,
    "(max-aspect-ratio: 36863/32768)": true,
    "(max-aspect-ratio: 73727/65536)": true,
    "(max-aspect-ratio: 147455/131072)": true,
    "(max-aspect-ratio: 294911/262144)": true,
    "(max-aspect-ratio: 589823/524288)": true,
    "(max-aspect-ratio: 1179647/1048576)": true,
    "(max-aspect-ratio: 2359295/2097152)": true,
    "(max-aspect-ratio: 4718591/4194304)": true,
    "(max-aspect-ratio: 9437183/8388608)": true,
    "(max-aspect-ratio: 18874367/16777216)": true,
    "(max-aspect-ratio: 37748735/33554432)": true,
    "(max-aspect-ratio: 75497471/67108864)": true,
    "(max-aspect-ratio: 150994943/134217728)": true,
    "(max-aspect-ratio: 301989887/268435456)": true,
    "(max-aspect-ratio: 603979775/536870912)": true,
    "(max-aspect-ratio: 1207959551/1073741824)": true,
    "(max-aspect-ratio: 2415919103/2147483648)": true,
    "(max-aspect-ratio: 4831838207/4294967296)": true,
    "(max-aspect-ratio: 9663676415/8589934592)": true,
    "(max-aspect-ratio: 19327352831/17179869184)": true,
    "(max-aspect-ratio: 38654705663/34359738368)": true,
    "(max-aspect-ratio: 77309411327/68719476736)": true,
    "(max-aspect-ratio: 154618822655/137438953472)": true,
    "(max-aspect-ratio: 309237645311/274877906944)": true,
    "(max-aspect-ratio: 618475290623/549755813888)": true,
    "(max-aspect-ratio: 1236950581247/1099511627776)": true,
    "(max-aspect-ratio: 2473901162495/2199023255552)": true,
    "(max-aspect-ratio: 4947802324991/4398046511104)": true,
    "(max-aspect-ratio: 9895604649983/8796093022208)": true,
    "(max-aspect-ratio: 19791209299967/17592186044416)": true,
    "(max-aspect-ratio: 39582418599935/35184372088832)": true,
    "(max-aspect-ratio: 79164837199871/70368744177664)": true,
    "(max-aspect-ratio: 158329674399743/140737488355328)": true,
    "(max-aspect-ratio: 316659348799487/281474976710656)": true,
    "(max-aspect-ratio: 633318697598975/562949953421312)": true,
    "(max-aspect-ratio: 1266637395197951/1125899906842624)": true,
    "(max-width: 919px)": false,
    "(max-width: 929px)": false,
    "(max-width: 934px)": true,
    "(max-width: 936px)": true,
    "(max-width: 937px)": true,
    "(min-resolution: 0.0001dpi)": true,
    "(max-resolution: 24dpi)": false,
    "(max-resolution: 48dpi)": false,
    "(max-resolution: 96dpi)": true,
    "(max-resolution: 72dpi)": false,
    "(max-resolution: 84dpi)": false,
    "(max-resolution: 90dpi)": false,
    "(max-resolution: 93dpi)": false,
    "(max-resolution: 95dpi)": false,
    "(overflow-inline: none)": false,
    "(overflow-inline: scroll)": false,
    "(max-aspect-ratio: 1/1)": false,
    "(max-aspect-ratio: 2/1)": true,
    "(max-aspect-ratio: 3/2)": true,
    "(max-aspect-ratio: 5/4)": true,
    "(max-aspect-ratio: 9/8)": true,
    "(max-aspect-ratio: 19/16)": true,
    "(max-aspect-ratio: 39/32)": true,
    "(max-aspect-ratio: 79/64)": true,
    "(max-aspect-ratio: 159/128)": true,
    "(max-aspect-ratio: 319/256)": true,
    "(max-aspect-ratio: 639/512)": true,
    "(max-aspect-ratio: 1279/1024)": true,
    "(max-aspect-ratio: 2559/2048)": true,
    "(max-aspect-ratio: 5119/4096)": true,
    "(max-aspect-ratio: 10239/8192)": true,
    "(max-aspect-ratio: 20479/16384)": true,
    "(max-aspect-ratio: 40959/32768)": true,
    "(max-aspect-ratio: 81919/65536)": true,
    "(max-aspect-ratio: 163839/131072)": true,
    "(max-aspect-ratio: 327679/262144)": true,
    "(max-aspect-ratio: 655359/524288)": true,
    "(max-aspect-ratio: 1310719/1048576)": true,
    "(max-aspect-ratio: 2621439/2097152)": true,
    "(max-aspect-ratio: 5242879/4194304)": true,
    "(max-aspect-ratio: 10485759/8388608)": true,
    "(max-aspect-ratio: 20971519/16777216)": true,
    "(max-aspect-ratio: 41943039/33554432)": true,
    "(max-aspect-ratio: 83886079/67108864)": true,
    "(max-aspect-ratio: 167772159/134217728)": true,
    "(max-aspect-ratio: 335544319/268435456)": true,
    "(max-aspect-ratio: 671088639/536870912)": true,
    "(max-aspect-ratio: 1342177279/1073741824)": true,
    "(max-aspect-ratio: 2684354559/2147483648)": true,
    "(max-aspect-ratio: 5368709119/4294967296)": true,
    "(max-aspect-ratio: 10737418239/8589934592)": true,
    "(max-aspect-ratio: 21474836479/17179869184)": true,
    "(max-aspect-ratio: 42949672959/34359738368)": true,
    "(max-aspect-ratio: 85899345919/68719476736)": true,
    "(max-aspect-ratio: 171798691839/137438953472)": true,
    "(max-aspect-ratio: 343597383679/274877906944)": true,
    "(max-aspect-ratio: 687194767359/549755813888)": true,
    "(max-aspect-ratio: 1374389534719/1099511627776)": true,
    "(max-aspect-ratio: 2748779069439/2199023255552)": true,
    "(max-aspect-ratio: 5497558138879/4398046511104)": true,
    "(max-aspect-ratio: 10995116277759/8796093022208)": true,
    "(max-aspect-ratio: 21990232555519/17592186044416)": true,
    "(max-aspect-ratio: 43980465111039/35184372088832)": true,
    "(max-aspect-ratio: 87960930222079/70368744177664)": true,
    "(max-aspect-ratio: 175921860444159/140737488355328)": true,
    "(max-aspect-ratio: 351843720888319/281474976710656)": true,
    "(max-aspect-ratio: 703687441776639/562949953421312)": true,
    "(max-aspect-ratio: 1407374883553279/1125899906842624)": true,
    "(grid: 0)": true,
    "(grid: 1)": false,
    "(any-hover: none)": false,
    "(any-hover: hover)": true,
    "(q: 1)": false,
    "(max-height: 600px)": false,
    "(max-height: 1200px)": true,
    "(max-height: 900px)": true,
    "(max-height: 750px)": false,
    "(max-height: 825px)": false,
    "(max-height: 863px)": false,
    "(max-height: 882px)": false,
    "(max-height: 891px)": true,
    "(max-height: 887px)": false,
    "(max-height: 889px)": false,
    "(max-height: 890px)": false,
    "(max-width: 600px)": false,
    "(max-width: 1200px)": true,
    "(max-width: 900px)": false,
    "(max-width: 1050px)": true,
    "(max-width: 975px)": true,
    "(max-width: 938px)": true,
    "(max-width: 957px)": true,
    "(max-width: 966px)": true,
    "(max-width: 971px)": true,
    "(max-width: 973px)": true,
    "(max-width: 974px)": true,
    "(max-color-index: 1000)": true,
    "(max-color-index: 500)": true,
    "(max-color-index: 250)": true,
    "(max-color-index: 125)": true,
    "(max-color-index: 62)": true,
    "(max-color-index: 31)": true,
    "(max-color-index: 15)": true,
    "(max-color-index: 7)": true,
    "(max-color-index: 3)": true,
    "(max-color-index: 1)": true,
    "(max-color-index: 0)": true,
    "(forced-colors: none)": true,
    "(forced-colors: active)": false,
    "(prefers-reduced-transparency: no-preference)": false,
    "(prefers-reduced-transparency: reduce)": false,
    "(light-level: normal)": false,
    "(light-level: dim)": false,
    "(light-level: washed)": false,
    "(max-color: 8)": true,
    "(max-color: 4)": false,
    "(max-color: 6)": false,
    "(max-color: 7)": false,
    "(hover: none)": false,
    "(hover: hover)": true,
    "(max-monochrome: 1)": true,
    "(max-monochrome: 0)": true,
    "(prefers-reduced-motion: no-preference)": true,
    "(prefers-reduced-motion: reduce)": false,
    "(pointer: none)": false,
    "(pointer: coarse)": false,
    "(pointer: fine)": true,
    "(color-gamut: srgb)": true,
    "(color-gamut: p3)": false,
    "(color-gamut: rec2020)": false,
    "(scripting: none)": false,
    "(scripting: initial-only)": false,
    "(scripting: enabled)": false,
    "(scan: interlace)": false,
    "(scan: progressive)": false,
    "(display-mode: fullscreen)": false,
    "(display-mode: standalone)": false,
    "(display-mode: minimal-ui)": false,
    "(display-mode: browser)": true,
    "(inverted-colors: none)": false,
    "(inverted-colors: inverted)": false,
    "(overflow-block: none)": false,
    "(overflow-block: scroll)": false,
    "(overflow-block: optional-paged)": false,
    "(overflow-block: paged)": false,
    "(orientation: landscape)": true,
    "(orientation: portrait)": false,
    "(prefers-contrast: no-preference)": true,
    "(prefers-contrast: high)": false,
    "(prefers-contrast: low)": false,
    "(any-pointer: none)": false,
    "(any-pointer: coarse)": false,
    "(any-pointer: fine)": true,
    "(update: none)": false,
    "(update: slow)": false,
    "(update: fast)": false,
    "(prefers-color-scheme: no-preference)": false,
    "(prefers-color-scheme: light)": false,
    "(prefers-color-scheme: dark)": true,
    "(max-aspect-ratio: 11/8)": true,
    "(max-aspect-ratio: 23/16)": true,
    "(max-aspect-ratio: 47/32)": true,
    "(max-aspect-ratio: 95/64)": true,
    "(max-aspect-ratio: 191/128)": true,
    "(max-aspect-ratio: 383/256)": true,
    "(max-aspect-ratio: 767/512)": true,
    "(max-aspect-ratio: 1535/1024)": true,
    "(max-aspect-ratio: 3071/2048)": true,
    "(max-aspect-ratio: 6143/4096)": true,
    "(max-aspect-ratio: 12287/8192)": true,
    "(max-aspect-ratio: 24575/16384)": true,
    "(max-aspect-ratio: 49151/32768)": true,
    "(max-aspect-ratio: 98303/65536)": true,
    "(max-aspect-ratio: 196607/131072)": true,
    "(max-aspect-ratio: 393215/262144)": true,
    "(max-aspect-ratio: 786431/524288)": true,
    "(max-aspect-ratio: 1572863/1048576)": true,
    "(max-aspect-ratio: 3145727/2097152)": true,
    "(max-aspect-ratio: 6291455/4194304)": true,
    "(max-aspect-ratio: 12582911/8388608)": true,
    "(max-aspect-ratio: 25165823/16777216)": true,
    "(max-aspect-ratio: 50331647/33554432)": true,
    "(max-aspect-ratio: 100663295/67108864)": true,
    "(max-aspect-ratio: 201326591/134217728)": true,
    "(max-aspect-ratio: 402653183/268435456)": true,
    "(max-aspect-ratio: 805306367/536870912)": true,
    "(max-aspect-ratio: 1610612735/1073741824)": true,
    "(max-aspect-ratio: 3221225471/2147483648)": true,
    "(max-aspect-ratio: 6442450943/4294967296)": true,
    "(max-aspect-ratio: 12884901887/8589934592)": true,
    "(max-aspect-ratio: 25769803775/17179869184)": true,
    "(max-aspect-ratio: 51539607551/34359738368)": true,
    "(max-aspect-ratio: 103079215103/68719476736)": true,
    "(max-aspect-ratio: 206158430207/137438953472)": true,
    "(max-aspect-ratio: 412316860415/274877906944)": true,
    "(max-aspect-ratio: 824633720831/549755813888)": true,
    "(max-aspect-ratio: 1649267441663/1099511627776)": true,
    "(max-aspect-ratio: 3298534883327/2199023255552)": true,
    "(max-aspect-ratio: 6597069766655/4398046511104)": true,
    "(max-aspect-ratio: 13194139533311/8796093022208)": true,
    "(max-aspect-ratio: 26388279066623/17592186044416)": true,
    "(max-aspect-ratio: 52776558133247/35184372088832)": true,
    "(max-aspect-ratio: 105553116266495/70368744177664)": true,
    "(max-aspect-ratio: 211106232532991/140737488355328)": true,
    "(max-aspect-ratio: 422212465065983/281474976710656)": true,
    "(max-aspect-ratio: 844424930131967/562949953421312)": true,
    "(max-aspect-ratio: 1688849860263935/1125899906842624)": true,
    "(max-height: 896px)": true,
    "(max-height: 898px)": true,
    "(max-height: 899px)": true,
    "(max-width: 1013px)": true,
    "(max-width: 1032px)": true,
    "(max-width: 1041px)": true,
    "(max-width: 1046px)": true,
    "(max-width: 1048px)": true,
    "(max-width: 1049px)": true,
    "(max-aspect-ratio: 7/4)": true,
    "(max-aspect-ratio: 15/8)": true,
    "(max-aspect-ratio: 31/16)": true,
    "(max-aspect-ratio: 63/32)": true,
    "(max-aspect-ratio: 127/64)": true,
    "(max-aspect-ratio: 255/128)": true,
    "(max-aspect-ratio: 511/256)": true,
    "(max-aspect-ratio: 1023/512)": true,
    "(max-aspect-ratio: 2047/1024)": true,
    "(max-aspect-ratio: 4095/2048)": true,
    "(max-aspect-ratio: 8191/4096)": true,
    "(max-aspect-ratio: 16383/8192)": true,
    "(max-aspect-ratio: 32767/16384)": true,
    "(max-aspect-ratio: 65535/32768)": true,
    "(max-aspect-ratio: 131071/65536)": true,
    "(max-aspect-ratio: 262143/131072)": true,
    "(max-aspect-ratio: 524287/262144)": true,
    "(max-aspect-ratio: 1048575/524288)": true,
    "(max-aspect-ratio: 2097151/1048576)": true,
    "(max-aspect-ratio: 4194303/2097152)": true,
    "(max-aspect-ratio: 8388607/4194304)": true,
    "(max-aspect-ratio: 16777215/8388608)": true,
    "(max-aspect-ratio: 33554431/16777216)": true,
    "(max-aspect-ratio: 67108863/33554432)": true,
    "(max-aspect-ratio: 134217727/67108864)": true,
    "(max-aspect-ratio: 268435455/134217728)": true,
    "(max-aspect-ratio: 536870911/268435456)": true,
    "(max-aspect-ratio: 1073741823/536870912)": true,
    "(max-aspect-ratio: 2147483647/1073741824)": true,
    "(max-aspect-ratio: 4294967295/2147483648)": true,
    "(max-aspect-ratio: 8589934591/4294967296)": true,
    "(max-aspect-ratio: 17179869183/8589934592)": true,
    "(max-aspect-ratio: 34359738367/17179869184)": true,
    "(max-aspect-ratio: 68719476735/34359738368)": true,
    "(max-aspect-ratio: 137438953471/68719476736)": true,
    "(max-aspect-ratio: 274877906943/137438953472)": true,
    "(max-aspect-ratio: 549755813887/274877906944)": true,
    "(max-aspect-ratio: 1099511627775/549755813888)": true,
    "(max-aspect-ratio: 2199023255551/1099511627776)": true,
    "(max-aspect-ratio: 4398046511103/2199023255552)": true,
    "(max-aspect-ratio: 8796093022207/4398046511104)": true,
    "(max-aspect-ratio: 17592186044415/8796093022208)": true,
    "(max-aspect-ratio: 35184372088831/17592186044416)": true,
    "(max-aspect-ratio: 70368744177663/35184372088832)": true,
    "(max-aspect-ratio: 140737488355327/70368744177664)": true,
    "(max-aspect-ratio: 281474976710655/140737488355328)": true,
    "(max-aspect-ratio: 562949953421311/281474976710656)": true,
    "(max-aspect-ratio: 1125899906842623/562949953421312)": true,
    "(max-aspect-ratio: 2251799813685247/1125899906842624)": true,
    "(max-height: 1050px)": true,
    "(max-height: 1125px)": true,
    "(max-height: 1163px)": true,
    "(max-height: 1182px)": true,
    "(max-height: 1191px)": true,
    "(max-height: 1196px)": true,
    "(max-height: 1198px)": true,
    "(max-height: 1199px)": true,
    "(max-width: 1125px)": true,
    "(max-width: 1163px)": true,
    "(max-width: 1182px)": true,
    "(max-width: 1191px)": true,
    "(max-width: 1196px)": true,
    "(max-width: 1198px)": true,
    "(max-width: 1199px)": true,
    "(max-resolution: 192dpi)": true,
    "(max-resolution: 384dpi)": true,
    "(max-resolution: 768dpi)": true,
    "(max-resolution: 1536dpi)": true,
    "(max-resolution: 3072dpi)": true,
    "(max-resolution: 6144dpi)": true,
    "(max-resolution: 12288dpi)": true,
    "(max-resolution: 24576dpi)": true,
    "(max-resolution: 49152dpi)": true,
    "(max-resolution: 98304dpi)": true,
    "(max-resolution: 196608dpi)": true,
    "(max-resolution: 393216dpi)": true,
    "(max-resolution: 786432dpi)": true,
    "(max-resolution: 1572864dpi)": true,
    "(max-resolution: 3145728dpi)": true,
    "(max-resolution: 6291456dpi)": true,
    "(max-resolution: 12582912dpi)": true,
    "(max-resolution: 25165824dpi)": true,
    "(max-resolution: 50331648dpi)": true,
    "(max-resolution: 100663296dpi)": true,
    "(max-resolution: 201326592dpi)": true,
    "(max-resolution: 402653184dpi)": true,
    "(max-resolution: 805306368dpi)": true,
    "(max-resolution: 1610612736dpi)": true,
    "(max-resolution: 3221225472dpi)": true,
    "(max-resolution: 6442450944dpi)": true,
    "(max-resolution: 12884901888dpi)": true,
    "(max-resolution: 25769803776dpi)": true,
    "(max-resolution: 51539607552dpi)": true,
    "(max-resolution: 103079215104dpi)": true,
    "(max-resolution: 206158430208dpi)": true,
    "(max-resolution: 412316860416dpi)": true,
    "(max-resolution: 824633720832dpi)": true,
    "(max-resolution: 1649267441664dpi)": true,
    "(max-resolution: 3298534883328dpi)": true,
    "(max-resolution: 6597069766656dpi)": true,
    "(max-resolution: 13194139533312dpi)": true,
    "(max-resolution: 26388279066624dpi)": true,
    "(max-resolution: 52776558133248dpi)": true,
    "(max-resolution: 105553116266496dpi)": true,
    "(max-resolution: 211106232532992dpi)": true,
    "(max-resolution: 422212465065984dpi)": true,
    "(max-resolution: 844424930131968dpi)": true,
    "(max-resolution: 1688849860263936dpi)": true,
    "(max-resolution: 3377699720527872dpi)": true,
    "(max-resolution: 6755399441055744dpi)": true,
    "(max-resolution: 13510798882111488dpi)": true,
    "(max-resolution: 27021597764222976dpi)": true,
    "(max-resolution: 20266198323167230dpi)": true,
    "(max-resolution: 23643898043695104dpi)": true,
    "(max-resolution: 25332747903959040dpi)": true,
    "(max-resolution: 26177172834091010dpi)": true,
    "(max-resolution: 26599385299156990dpi)": true,
    "(max-resolution: 26810491531689984dpi)": true,
    "(max-resolution: 26916044647956480dpi)": true,
    "(max-resolution: 26968821206089730dpi)": true,
    "(max-resolution: 26995209485156350dpi)": true,
    "(max-resolution: 27008403624689664dpi)": true,
    "(max-resolution: 27015000694456320dpi)": true,
    "(max-resolution: 27018299229339650dpi)": true,
    "(max-resolution: 27019948496781310dpi)": true,
    "(max-resolution: 27020773130502144dpi)": true,
    "(max-resolution: 27021185447362560dpi)": true,
    "(max-resolution: 27021391605792770dpi)": true,
    "(max-resolution: 27021494685007870dpi)": true,
    "(max-resolution: 27021546224615424dpi)": true,
    "(max-resolution: 27021571994419200dpi)": true,
    "(max-resolution: 27021584879321090dpi)": true,
    "(max-resolution: 27021591321772030dpi)": true,
    "(max-resolution: 27021594542997504dpi)": true,
    "(max-resolution: 27021596153610240dpi)": true,
    "(max-resolution: 27021596958916610dpi)": true,
    "(max-resolution: 27021597361569790dpi)": true,
    "(max-resolution: 27021597562896384dpi)": true,
    "(max-resolution: 27021597663559680dpi)": true,
    "(max-resolution: 27021597713891330dpi)": true,
    "(max-resolution: 27021597739057150dpi)": true,
    "(max-resolution: 27021597751640064dpi)": true,
    "(max-resolution: 27021597757931520dpi)": true,
    "(max-resolution: 27021597761077250dpi)": true,
    "(max-resolution: 27021597762650110dpi)": true,
    "(max-resolution: 27021597763436544dpi)": true,
    "(max-resolution: 27021597763829760dpi)": true,
    "(max-resolution: 27021597764026370dpi)": true,
    "(max-resolution: 27021597764124670dpi)": true,
    "(max-resolution: 27021597764173824dpi)": true,
    "(max-resolution: 27021597764198400dpi)": true,
    "(max-resolution: 27021597764210690dpi)": true,
    "(max-resolution: 27021597764216830dpi)": true,
    "(max-resolution: 27021597764219904dpi)": true,
    "(max-resolution: 27021597764221440dpi)": true,
    "(max-resolution: 27021597764222210dpi)": true,
    "(max-resolution: 27021597764222590dpi)": true,
    "(max-resolution: 27021597764222784dpi)": true,
    "(max-resolution: 27021597764222880dpi)": true,
    "(max-resolution: 27021597764222930dpi)": true,
    "(max-resolution: 27021597764222950dpi)": true,
    "(max-resolution: 27021597764222964dpi)": true,
    "(max-aspect-ratio: 3/1)": true,
    "(max-aspect-ratio: 4/1)": true,
    "(max-aspect-ratio: 5/1)": true,
    "(max-aspect-ratio: 6/1)": true,
    "(max-aspect-ratio: 7/1)": true,
    "(max-aspect-ratio: 8/1)": true,
    "(max-aspect-ratio: 9/1)": true,
    "(max-aspect-ratio: 10/1)": true,
    "(max-aspect-ratio: 11/1)": true,
    "(max-aspect-ratio: 12/1)": true,
    "(max-aspect-ratio: 13/1)": true,
    "(max-aspect-ratio: 14/1)": true,
    "(max-aspect-ratio: 15/1)": true,
    "(max-aspect-ratio: 16/1)": true,
    "(max-aspect-ratio: 17/1)": true,
    "(max-aspect-ratio: 18/1)": true,
    "(max-aspect-ratio: 19/1)": true,
    "(max-aspect-ratio: 20/1)": true,
    "(max-aspect-ratio: 21/1)": true,
    "(max-aspect-ratio: 22/1)": true,
    "(max-aspect-ratio: 23/1)": true,
    "(max-aspect-ratio: 24/1)": true,
    "(max-aspect-ratio: 25/1)": true,
    "(max-aspect-ratio: 26/1)": true,
    "(max-aspect-ratio: 27/1)": true,
    "(max-aspect-ratio: 28/1)": true,
    "(max-aspect-ratio: 29/1)": true,
    "(max-aspect-ratio: 30/1)": true,
    "(max-aspect-ratio: 31/1)": true,
    "(max-aspect-ratio: 32/1)": true,
    "(max-aspect-ratio: 33/1)": true,
    "(max-aspect-ratio: 34/1)": true,
    "(max-aspect-ratio: 35/1)": true,
    "(max-aspect-ratio: 36/1)": true,
    "(max-aspect-ratio: 37/1)": true,
    "(max-aspect-ratio: 38/1)": true,
    "(max-aspect-ratio: 39/1)": true,
    "(max-aspect-ratio: 40/1)": true,
    "(max-aspect-ratio: 41/1)": true,
    "(max-aspect-ratio: 42/1)": true,
    "(max-aspect-ratio: 43/1)": true,
    "(max-aspect-ratio: 44/1)": true,
    "(max-aspect-ratio: 45/1)": true,
    "(max-aspect-ratio: 46/1)": true,
    "(max-aspect-ratio: 47/1)": true,
    "(max-aspect-ratio: 48/1)": true,
    "(max-aspect-ratio: 49/1)": true,
    "(max-aspect-ratio: 50/1)": true,
    "(max-aspect-ratio: 51/1)": true,
    "(max-aspect-ratio: 101/2)": true,
    "(max-aspect-ratio: 203/4)": true,
    "(max-aspect-ratio: 407/8)": true,
    "(max-aspect-ratio: 815/16)": true,
    "(max-aspect-ratio: 1631/32)": true,
    "(max-aspect-ratio: 3263/64)": true,
    "(max-aspect-ratio: 6527/128)": true,
    "(max-aspect-ratio: 13055/256)": true,
    "(max-aspect-ratio: 26111/512)": true,
    "(max-aspect-ratio: 52223/1024)": true,
    "(max-aspect-ratio: 104447/2048)": true,
    "(max-aspect-ratio: 208895/4096)": true,
    "(max-aspect-ratio: 417791/8192)": true,
    "(max-aspect-ratio: 835583/16384)": true,
    "(max-aspect-ratio: 1671167/32768)": true,
    "(max-aspect-ratio: 3342335/65536)": true,
    "(max-aspect-ratio: 6684671/131072)": true,
    "(max-aspect-ratio: 13369343/262144)": true,
    "(max-aspect-ratio: 26738687/524288)": true,
    "(max-aspect-ratio: 53477375/1048576)": true,
    "(max-aspect-ratio: 106954751/2097152)": true,
    "(max-aspect-ratio: 213909503/4194304)": true,
    "(max-aspect-ratio: 427819007/8388608)": true,
    "(max-aspect-ratio: 855638015/16777216)": true,
    "(max-aspect-ratio: 1711276031/33554432)": true,
    "(max-aspect-ratio: 3422552063/67108864)": true,
    "(max-aspect-ratio: 6845104127/134217728)": true,
    "(max-aspect-ratio: 13690208255/268435456)": true,
    "(max-aspect-ratio: 27380416511/536870912)": true,
    "(max-aspect-ratio: 54760833023/1073741824)": true,
    "(max-aspect-ratio: 109521666047/2147483648)": true,
    "(max-aspect-ratio: 219043332095/4294967296)": true,
    "(max-aspect-ratio: 438086664191/8589934592)": true,
    "(max-aspect-ratio: 876173328383/17179869184)": true,
    "(max-aspect-ratio: 1752346656767/34359738368)": true,
    "(max-aspect-ratio: 3504693313535/68719476736)": true,
    "(max-aspect-ratio: 7009386627071/137438953472)": true,
    "(max-aspect-ratio: 14018773254143/274877906944)": true,
    "(max-aspect-ratio: 28037546508287/549755813888)": true,
    "(max-aspect-ratio: 56075093016575/1099511627776)": true,
    "(max-aspect-ratio: 112150186033151/2199023255552)": true,
    "(max-aspect-ratio: 224300372066303/4398046511104)": true,
    "(max-aspect-ratio: 448600744132607/8796093022208)": true,
    "(max-aspect-ratio: 897201488265215/17592186044416)": true,
    "(max-aspect-ratio: 1794402976530431/35184372088832)": true,
    "(max-aspect-ratio: 3588805953060863/70368744177664)": true,
    "(max-aspect-ratio: 7177611906121727/140737488355328)": true,
    "(max-height: 2400px)": true,
    "(max-height: 4800px)": true,
    "(max-height: 9600px)": true,
    "(max-height: 19200px)": true,
    "(max-height: 38400px)": true,
    "(max-height: 76800px)": true,
    "(max-height: 153600px)": true,
    "(max-height: 307200px)": true,
    "(max-height: 614400px)": true,
    "(max-height: 1228800px)": true,
    "(max-height: 2457600px)": true,
    "(max-height: 4915200px)": true,
    "(max-height: 9830400px)": true,
    "(max-height: 19660800px)": true,
    "(max-height: 39321600px)": true,
    "(max-height: 78643200px)": true,
    "(max-height: 157286400px)": true,
    "(max-height: 314572800px)": true,
    "(max-height: 629145600px)": true,
    "(max-height: 1258291200px)": true,
    "(max-height: 2516582400px)": true,
    "(max-height: 5033164800px)": true,
    "(max-height: 10066329600px)": true,
    "(max-height: 20132659200px)": true,
    "(max-height: 40265318400px)": true,
    "(max-height: 80530636800px)": true,
    "(max-height: 161061273600px)": true,
    "(max-height: 322122547200px)": true,
    "(max-height: 644245094400px)": true,
    "(max-height: 1288490188800px)": true,
    "(max-height: 2576980377600px)": true,
    "(max-height: 5153960755200px)": true,
    "(max-height: 10307921510400px)": true,
    "(max-height: 20615843020800px)": true,
    "(max-height: 41231686041600px)": true,
    "(max-height: 82463372083200px)": true,
    "(max-height: 164926744166400px)": true,
    "(max-height: 329853488332800px)": true,
    "(max-height: 659706976665600px)": true,
    "(max-height: 1319413953331200px)": true,
    "(max-height: 2638827906662400px)": true,
    "(max-height: 5277655813324800px)": true,
    "(max-height: 10555311626649600px)": true,
    "(max-height: 21110623253299200px)": true,
    "(max-height: 42221246506598400px)": true,
    "(max-height: 84442493013196800px)": true,
    "(max-height: 168884986026393600px)": true,
    "(max-height: 337769972052787200px)": true,
    "(max-height: 675539944105574400px)": true,
    "(max-height: 506654958079180800px)": true,
    "(max-height: 591097451092377600px)": true,
    "(max-height: 633318697598976000px)": true,
    "(max-height: 654429320852275200px)": true,
    "(max-height: 664984632478924800px)": true,
    "(max-height: 670262288292249600px)": true,
    "(max-height: 672901116198912000px)": true,
    "(max-height: 674220530152243200px)": true,
    "(max-height: 674880237128908800px)": true,
    "(max-height: 675210090617241600px)": true,
    "(max-height: 675375017361408000px)": true,
    "(max-height: 675457480733491200px)": true,
    "(max-height: 675498712419532800px)": true,
    "(max-height: 675519328262553600px)": true,
    "(max-height: 675529636184064000px)": true,
    "(max-height: 675534790144819200px)": true,
    "(max-height: 675537367125196800px)": true,
    "(max-height: 675538655615385600px)": true,
    "(max-height: 675539299860480000px)": true,
    "(max-height: 675539621983027200px)": true,
    "(max-height: 675539783044300800px)": true,
    "(max-height: 675539863574937600px)": true,
    "(max-height: 675539903840256000px)": true,
    "(max-height: 675539923972915200px)": true,
    "(max-height: 675539934039244800px)": true,
    "(max-height: 675539939072409600px)": true,
    "(max-height: 675539941588992000px)": true,
    "(max-height: 675539942847283200px)": true,
    "(max-height: 675539943476428800px)": true,
    "(max-height: 675539943791001600px)": true,
    "(max-height: 675539943948288000px)": true,
    "(max-height: 675539944026931200px)": true,
    "(max-height: 675539944066252800px)": true,
    "(max-height: 675539944085913600px)": true,
    "(max-height: 675539944095744000px)": true,
    "(max-height: 675539944100659200px)": true,
    "(max-height: 675539944103116800px)": true,
    "(max-height: 675539944104345600px)": true,
    "(max-height: 675539944104960000px)": true,
    "(max-height: 675539944105267200px)": true,
    "(max-height: 675539944105420800px)": true,
    "(max-height: 675539944105497600px)": true,
    "(max-height: 675539944105536000px)": true,
    "(max-height: 675539944105555200px)": true,
    "(max-height: 675539944105564800px)": true,
    "(max-height: 675539944105569500px)": true,
    "(max-height: 675539944105572000px)": true,
    "(max-height: 675539944105573100px)": true,
    "(max-height: 675539944105573800px)": true,
    "(max-height: 675539944105574100px)": true,
    "(max-width: 2400px)": true,
    "(max-width: 4800px)": true,
    "(max-width: 9600px)": true,
    "(max-width: 19200px)": true,
    "(max-width: 38400px)": true,
    "(max-width: 76800px)": true,
    "(max-width: 153600px)": true,
    "(max-width: 307200px)": true,
    "(max-width: 614400px)": true,
    "(max-width: 1228800px)": true,
    "(max-width: 2457600px)": true,
    "(max-width: 4915200px)": true,
    "(max-width: 9830400px)": true,
    "(max-width: 19660800px)": true,
    "(max-width: 39321600px)": true,
    "(max-width: 78643200px)": true,
    "(max-width: 157286400px)": true,
    "(max-width: 314572800px)": true,
    "(max-width: 629145600px)": true,
    "(max-width: 1258291200px)": true,
    "(max-width: 2516582400px)": true,
    "(max-width: 5033164800px)": true,
    "(max-width: 10066329600px)": true,
    "(max-width: 20132659200px)": true,
    "(max-width: 40265318400px)": true,
    "(max-width: 80530636800px)": true,
    "(max-width: 161061273600px)": true,
    "(max-width: 322122547200px)": true,
    "(max-width: 644245094400px)": true,
    "(max-width: 1288490188800px)": true,
    "(max-width: 2576980377600px)": true,
    "(max-width: 5153960755200px)": true,
    "(max-width: 10307921510400px)": true,
    "(max-width: 20615843020800px)": true,
    "(max-width: 41231686041600px)": true,
    "(max-width: 82463372083200px)": true,
    "(max-width: 164926744166400px)": true,
    "(max-width: 329853488332800px)": true,
    "(max-width: 659706976665600px)": true,
    "(max-width: 1319413953331200px)": true,
    "(max-width: 2638827906662400px)": true,
    "(max-width: 5277655813324800px)": true,
    "(max-width: 10555311626649600px)": true,
    "(max-width: 21110623253299200px)": true,
    "(max-width: 42221246506598400px)": true,
    "(max-width: 84442493013196800px)": true,
    "(max-width: 168884986026393600px)": true,
    "(max-width: 337769972052787200px)": true,
    "(max-width: 675539944105574400px)": true,
    "(max-width: 506654958079180800px)": true,
    "(max-width: 591097451092377600px)": true,
    "(max-width: 633318697598976000px)": true,
    "(max-width: 654429320852275200px)": true,
    "(max-width: 664984632478924800px)": true,
    "(max-width: 670262288292249600px)": true,
    "(max-width: 672901116198912000px)": true,
    "(max-width: 674220530152243200px)": true,
    "(max-width: 674880237128908800px)": true,
    "(max-width: 675210090617241600px)": true,
    "(max-width: 675375017361408000px)": true,
    "(max-width: 675457480733491200px)": true,
    "(max-width: 675498712419532800px)": true,
    "(max-width: 675519328262553600px)": true,
    "(max-width: 675529636184064000px)": true,
    "(max-width: 675534790144819200px)": true,
    "(max-width: 675537367125196800px)": true,
    "(max-width: 675538655615385600px)": true,
    "(max-width: 675539299860480000px)": true,
    "(max-width: 675539621983027200px)": true,
    "(max-width: 675539783044300800px)": true,
    "(max-width: 675539863574937600px)": true,
    "(max-width: 675539903840256000px)": true,
    "(max-width: 675539923972915200px)": true,
    "(max-width: 675539934039244800px)": true,
    "(max-width: 675539939072409600px)": true,
    "(max-width: 675539941588992000px)": true,
    "(max-width: 675539942847283200px)": true,
    "(max-width: 675539943476428800px)": true,
    "(max-width: 675539943791001600px)": true,
    "(max-width: 675539943948288000px)": true,
    "(max-width: 675539944026931200px)": true,
    "(max-width: 675539944066252800px)": true,
    "(max-width: 675539944085913600px)": true,
    "(max-width: 675539944095744000px)": true,
    "(max-width: 675539944100659200px)": true,
    "(max-width: 675539944103116800px)": true,
    "(max-width: 675539944104345600px)": true,
    "(max-width: 675539944104960000px)": true,
    "(max-width: 675539944105267200px)": true,
    "(max-width: 675539944105420800px)": true,
    "(max-width: 675539944105497600px)": true,
    "(max-width: 675539944105536000px)": true,
    "(max-width: 675539944105555200px)": true,
    "(max-width: 675539944105564800px)": true,
    "(max-width: 675539944105569500px)": true,
    "(max-width: 675539944105572000px)": true,
    "(max-width: 675539944105573100px)": true,
    "(max-width: 675539944105573800px)": true,
    "(max-width: 675539944105574100px)": true
}

Object.defineProperties(MediaQueryList.prototype, {
    addListener: {
        addListener() {
            v_console_log("  [*] MediaQueryList -> addListener[get]", {});
            return {}
        }
    },
    removeListener: {
        removeListener() {
            v_console_log("  [*] MediaQueryList -> removeListener[get]", {});
            return {}
        }
    },
    // matches: {"value":0,"writable":true,"enumerable":true,"configurable":false},
    matches: {
        get() {
            medias.push(this.type[0]);
            let t = mediaRes[this.type[0]];
            if (t === undefined) {
                t = false;
            }
            v_console_log("  [*] MediaQueryList -> matches[get]", this.type[0], t);

            return t;
        }
    },

    media: {"value": 1, "writable": true, "enumerable": true, "configurable": false},
    onchange: {"value": 2, "writable": true, "enumerable": true, "configurable": false},
})
DOMParser = v_saf(function DOMParser() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
FileReader = v_saf(function FileReader() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
Audio = v_saf(function Audio() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
Option = v_saf(function Option() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
IntersectionObserver = v_saf(function IntersectionObserver() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
MediaStream = v_saf(function MediaStream() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
Path2D = v_saf(function Path2D() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
Text = v_saf(function Text() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
XMLSerializer = v_saf(function XMLSerializer() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
PublicKeyCredential = v_saf(function PublicKeyCredential() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
AuthenticatorAssertionResponse = v_saf(function AuthenticatorAssertionResponse() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
AuthenticatorAttestationResponse = v_saf(function AuthenticatorAttestationResponse() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
AuthenticatorResponse = v_saf(function AuthenticatorResponse() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
XMLDocument = v_saf(function XMLDocument() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
DOMPoint = v_saf(function DOMPoint() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
DOMPointReadOnly = v_saf(function DOMPointReadOnly() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
External = v_saf(function External() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
mozRTCPeerConnection = v_saf(function mozRTCPeerConnection() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
BluetoothUUID = v_saf(function BluetoothUUID() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});

window.URL = class URL{
    constructor() {
    }
}
window.URL = proxy(window.URL, 'URL')
window.URL.createObjectURL = function () {
    console.log('createObjectURL', arguments)

    return proxy({
        blob: arguments[0],
        href: 'https://www.jetblue.com/',
        origin: 'https://www.jetblue.com/',
        protocol: 'https',


    }, 'URL')
}
document.__proto__ = HTMLDocument.prototype
window.document = document
window.BluetoothUUID = BluetoothUUID
window.Animation = Animation;
window.Worker = proxy(Worker, 'Worker')
window.URL = URL;
window.WebGLRenderingContext = WebGLRenderingContext;
window.HTMLCanvasElement = HTMLCanvasElement;
window.UIEvent = UIEvent;
window.clearInterval = clearInterval;
window.setInterval = setInterval
window.XMLDocument = XMLDocument;
window.crypto = crypto
window.DOMPoint = DOMPoint;
window.DOMPointReadOnly = DOMPointReadOnly;
window.External = External;
window.Blob = Blob;
window.Comment = Comment;
window.Document = Document;
window.DOMException = DOMException;
window.DOMMatrixReadOnly = DOMMatrixReadOnly;
window.RTCPeerConnection = RTCPeerConnection;
window.webkitRTCPeerConnection = RTCPeerConnection;
window.DOMParser = DOMParser;
window.FileReader = FileReader;
window.FormData = FormData;
window.Audio = Audio;
window.Image = Image;
window.Option = Option;
window.IntersectionObserver = IntersectionObserver;
window.MediaStream = MediaStream;
window.MessageChannel = MessageChannel;
window.Path2D = Path2D;
window.PerformanceObserver = PerformanceObserver;
window.ReadableStream = ReadableStream;
window.Text = Text;
window.TextDecoderStream = TextDecoderStream;
window.TextEncoderStream = TextEncoderStream;
window.TransformStream = TransformStream;
window.URLSearchParams = URLSearchParams;
window.XMLHttpRequest = XMLHttpRequest;
window.XMLSerializer = XMLSerializer;
window.PublicKeyCredential = PublicKeyCredential;
window.AuthenticatorAssertionResponse = AuthenticatorAssertionResponse;
window.AuthenticatorAttestationResponse = AuthenticatorAttestationResponse;
window.AuthenticatorResponse = AuthenticatorResponse;

window.pageYOffset = ENV.windowparams.pageyoffset || 0
external = {}
external.__proto__ = External.prototype
window.external = external
window.console = console;
// localStorage = dtavm.proxy(storage, 'localStorage');
localStorage = storage;
// sessionStorage = dtavm.proxy(storage, 'sessionStorage');
sessionStorage = storage;
window.localStorage = localStorage;
window.Boolean = Boolean;
window.sessionStorage = sessionStorage;
window.fetch = fetch;
window.navigator = navigator;
History = v_saf(function History() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
BarProp = v_saf(function BarProp() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Object.defineProperties(BarProp.prototype, {
    visible: {
        get() {
            return true;
        }
    }
})
Object.defineProperties(History.prototype, {
    replaceState: {
        value: v_saf(function replaceState() {
            v_console_log("  [*] History -> replaceState[func]", [].slice.call(arguments));
        })
    },
    length: {
        get() {
            v_console_log("  [*] History -> length[get]", 3);
            if (sid === '8ffdff7b995c8ad51d902ff0') {
                return 4
            }
            // return 4;
            return parseInt(2 + _random() * 10)
        }
    },
    [Symbol.toStringTag]: {value: "History", writable: false, enumerable: false, configurable: true},
})

// window.SharedArrayBuffer = SharedArrayBuffer
window.WebAssembly = WebAssembly
// window.window = window;
// Object.defineProperty(window, [Symbol.toPrimitive], {
//     value:function (){
//         return NaN
// }
// })

history = v_new(History)
// window = dtavm.proxy(window,"window"); //代理器代理之后，会创建一个新对象
window.self = window;
window.toolbar = v_new(BarProp)
window.locationbar = v_new(BarProp)
window.history = history
_setTimeout = setTimeout
timesIds = 0;
window.setTimeout = setTimeout
window.setTimeout = function setTimeout(func, delay) {
    // console.log(func, delay)
    // if (delay==0)func()
    try {
        // console.log(func)
        if (delay == 0 && timeout) {
            return _setTimeout.call(this, func, delay)
        }
        // func()
    } catch (e) {
    }
    // _setTimeout.call(this, func, 1)
    timesIds++;
    return timesIds;
};

v_hook_href(HTMLAnchorElement.prototype, 'HTMLAnchorElement', 'https://www.jetblue.com/booking/flights?from=LAS&to=BOS&depart=2023-07-10&isMultiCity=false&noOfRoute=1&lang=en&adults=1&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false')

window.Reflect = Reflect
window.Error = Error;
window.JSON = JSON;
// window.crypto = crypto
window.Uint32Array = Uint32Array
// window.window = window;
// window = dtavm.proxy(window, 'window')
// window.__proto__ = Window
window.undefined = undefined;
window.isFinite = isFinite;
window.unescape = unescape;
window.TypeError = TypeError;
window.Infinity = Infinity;

window.getComputedStyle = v_saf(function getComputedStyle(element) {
    v_console_log(' getComputedStyle ', element)
});
window.matchMedia = function matchMedia(type) {
    let t = v_new(MediaQueryList)
    t.type = arguments
    return t;
}
window.clearTimeout = clearTimeout
window.window = window;

// window = dtavm.proxy(window, 'window')

this == global; //global就是全局上下文代理对象；

this != window; // this 是global 但是 window是代理器，所以这里是 !=;

_console2 = function () {
};
// _console2 = console.log;
window.structuredClone = v_saf(function structuredClone() {
    throw TypeError("Uncaught DOMException: Failed to execute 'structuredClone' on 'Window'")
})

print('-------------------------------------')
console.log('当前times', times)
print(events)
print(v_events)
// window.debug = true
startx = parseInt(1000 * _random())
starty = parseInt(1000 * _random())
endx = parseInt(1000 * _random())
endy = parseInt(1000 * _random())
// window.debug = true
// window.mouse_move(startx,starty,endx,endy)
// window.debug = false

// window.mouse_click
// events['mousemove'](window.mouse_move())

// debug = true;
setInterval(function () {
    if (randomEvent){
    window.mouse_move(startx,starty,endx,endy)

    }

    var xhr = new XMLHttpRequest();
    xhr.open('POST', "https://jbrest.jetblue.com/lfs-rwb/outboundLFS", false);
    xhr.send("{\"tripType\":\"oneWay\",\"from\":\"ZLA\",\"to\":\"NAS\",\"depart\":\"2023-04-11\",\"cabin\":\"economy\",\"refundable\":false,\"dates\":{\"before\":\"3\",\"after\":\"3\"},\"pax\":{\"ADT\":1,\"CHD\":0,\"INF\":0,\"UNN\":0},\"redempoint\":false,\"pointsBreakup\":{\"option\":\"\",\"value\":0},\"isMultiCity\":false}")
    xhr.setRequestHeader('user-agent', ENV.navigatorparams.useragent)
    print(JSON.stringify(xhr.headers))
    _process.exit(0)
}, 1000)

// fetch("https://jbrest.jetblue.com/lfs-rwb/outboundLFS", {
//     "headers": {
//         "accept": "application/json",
//         "accept-language": "en-US,en;q=0.9",
//         "api-version": "v3",
//         "application-channel": "Mobile_Web_Android",
//         "booking-application-type": "NGB",
//         "cache-control": "no-cache",
//         "content-type": "application/json",
//         "pragma": "no-cache",
//         "sec-ch-ua": "\"Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111\"",
//         "sec-ch-ua-mobile": "?0",
//         "sec-ch-ua-platform": "\"Windows\"",
//         "sec-fetch-dest": "empty",
//         "sec-fetch-mode": "cors",
//         "sec-fetch-site": "same-site",
//     },
//     "referrer": "https://www.jetblue.com/booking/flights?from=ZLA&to=NAS&depart=2023-04-11&isMultiCity=false&noOfRoute=1&lang=en&adults=1&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false",
//     "referrerPolicy": "no-referrer-when-downgrade",
//     "body": "{\"tripType\":\"oneWay\",\"from\":\"ZLA\",\"to\":\"NAS\",\"depart\":\"2023-04-11\",\"cabin\":\"economy\",\"refundable\":false,\"dates\":{\"before\":\"3\",\"after\":\"3\"},\"pax\":{\"ADT\":1,\"CHD\":0,\"INF\":0,\"UNN\":0},\"redempoint\":false,\"pointsBreakup\":{\"option\":\"\",\"value\":0},\"isMultiCity\":false}",
//     "method": "POST",
//     "credentials": "omit"
// }).then(r => {
//     console.log(r.status)
//     console.log(times)
// })

console.timeEnd("处理完毕，耗时");

//
// const express = require('express')
// const app = express()
//
// app.get('/', (req, res) => {
//     console.log('当前times', times)
//
//     var xhr = new XMLHttpRequest();
//     xhr.open('POST', "https://jbrest.jetblue.com/lfs-rwb/outboundLFS", false);
//     xhr.send("")
//     xhr.setRequestHeader('user-agent', navis.userAgent)
//     // console.log(xhr.headers)
//     console.log('结束times', times)
//     res.send(JSON.stringify(xhr.headers))
//
// })
// const port = 3001
//
// app.listen(port, () => {
//     console.log(`Example app listening on port ${port}`)
// })

let reProxy = function (tt, name) {
    return new Proxy(tt, {
        get(target, p, receiver) {
            let res = Reflect.get(target, p, receiver);
            if (p !== 'debug' && p !== 'Object') {
                console.log(`${name} get`, p, typeof res)
            }
            // if (p === 'offsetHeight'){
            //   debugger;
            // }
            if (p === 'exec') {
                return v_saf(function (args) {
                    console.log(`${name} exec`, args)

                    return /{\s*\[\s*native\s+code\s*]\s*}\s*$/.exec(args)
                })
            }
            // console.log(Reflect.get(target, '_cf_chl_ctx', receiver))

            if (!['_registeredHandlers', 'window', '_currentEvent', 'debug', '_eventListenerss', 'top', 'prototype'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol') {
                return proxy(res, p)
            }
            return res;
        },
        // getPrototypeOf(target) {
        //
        // },

        set(target, p, newValue, receiver) {
            console.log(`${name} set`, p, typeof newValue)

            return Reflect.set(target, p, newValue, receiver)
        }
    })
};
function def(data,key, v){
    if (Array.isArray(data.value[key])){
        data.value[key][1] = v

    }else{
    data.value[key] = [[], v]

    }
    return data
}

_getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
Object.getOwnPropertyDescriptor = v_saf(function (p, v){
    let res = _getOwnPropertyDescriptor(p,v)
    console.log('_getOwnPropertyDescriptor', v, res)
    return res;
})

_defin = Object.defineProperty;
Object.defineProperty = v_saf(function (p, v, d) {
    // console.log('define',  v, d)
    if (v === 'positionalSignals') {
        if (Array.isArray(d.value) && d.value.length === 60) {
            let res = [];
            d.value.forEach((e, i) => {
                if (e && e.length == 2) {
                    res.push(i + '==' + e[1].length + '=>')
                    res.push(e[1] + '')
                } else {
                    res.push(i + '==0=>iii')
                }

            })
            print([].slice.call(res).join('iii'))
        }
    }
    if (v === 'outerArgs') {
        // debugger;
        d.value = undefined;
    }
    if (v === 'stack' && Object.keys(d).length === 1) {
        // debugger;
        d.get = undefined
        // throw TypeError('asdasd')
    }
    if ((v === 'c' || v === 'd' || v === 'b') && d.value === false) {
        d.value = true;
        // debugger;
    }

    return _defin(p, v, d)
})

_join = Array.prototype.join;
Array.prototype.join = v_saf(function (s) {
    console.log('join',this.length, this, s)
    if (this[0] === 'assert'){
        ENV.consoleprops.sort(sortRandom)
        if (ENV.consoleprops){
            return _join.call(ENV.consoleprops, s)
        }
        return _join.call([
    "assert",
    "clear",
    "context",
    "count",
    "countReset",
    "createTask",
    "debug",
    "dir",
    "dirxml",
    "error",
    "group",
    "groupCollapsed",
    "groupEnd",
    "info",
    "log",
    "memory",
    "profile",
    "profileEnd",
    "table",
    "time",
    "timeEnd",
    "timeLog",
    "timeStamp",
    "trace",
    "warn"
], s)
    }
    if (this.length === 438){
        // this.sort(sortRandom)
        //
        return 'canvas|drawingBufferWidth|drawingBufferHeight|drawingBufferColorSpace|unpackColorSpace|DEPTH_BUFFER_BIT|STENCIL_BUFFER_BIT|COLOR_BUFFER_BIT|POINTS|LINES|LINE_LOOP|LINE_STRIP|TRIANGLES|TRIANGLE_STRIP|TRIANGLE_FAN|ZERO|ONE|SRC_COLOR|ONE_MINUS_SRC_COLOR|SRC_ALPHA|ONE_MINUS_SRC_ALPHA|DST_ALPHA|ONE_MINUS_DST_ALPHA|DST_COLOR|ONE_MINUS_DST_COLOR|SRC_ALPHA_SATURATE|FUNC_ADD|BLEND_EQUATION|BLEND_EQUATION_RGB|BLEND_EQUATION_ALPHA|FUNC_SUBTRACT|FUNC_REVERSE_SUBTRACT|BLEND_DST_RGB|BLEND_SRC_RGB|BLEND_DST_ALPHA|BLEND_SRC_ALPHA|CONSTANT_COLOR|ONE_MINUS_CONSTANT_COLOR|CONSTANT_ALPHA|ONE_MINUS_CONSTANT_ALPHA|BLEND_COLOR|ARRAY_BUFFER|ELEMENT_ARRAY_BUFFER|ARRAY_BUFFER_BINDING|ELEMENT_ARRAY_BUFFER_BINDING|STREAM_DRAW|STATIC_DRAW|DYNAMIC_DRAW|BUFFER_SIZE|BUFFER_USAGE|CURRENT_VERTEX_ATTRIB|FRONT|BACK|FRONT_AND_BACK|TEXTURE_2D|CULL_FACE|BLEND|DITHER|STENCIL_TEST|DEPTH_TEST|SCISSOR_TEST|POLYGON_OFFSET_FILL|SAMPLE_ALPHA_TO_COVERAGE|SAMPLE_COVERAGE|NO_ERROR|INVALID_ENUM|INVALID_VALUE|INVALID_OPERATION|OUT_OF_MEMORY|CW|CCW|LINE_WIDTH|ALIASED_POINT_SIZE_RANGE|ALIASED_LINE_WIDTH_RANGE|CULL_FACE_MODE|FRONT_FACE|DEPTH_RANGE|DEPTH_WRITEMASK|DEPTH_CLEAR_VALUE|DEPTH_FUNC|STENCIL_CLEAR_VALUE|STENCIL_FUNC|STENCIL_FAIL|STENCIL_PASS_DEPTH_FAIL|STENCIL_PASS_DEPTH_PASS|STENCIL_REF|STENCIL_VALUE_MASK|STENCIL_WRITEMASK|STENCIL_BACK_FUNC|STENCIL_BACK_FAIL|STENCIL_BACK_PASS_DEPTH_FAIL|STENCIL_BACK_PASS_DEPTH_PASS|STENCIL_BACK_REF|STENCIL_BACK_VALUE_MASK|STENCIL_BACK_WRITEMASK|VIEWPORT|SCISSOR_BOX|COLOR_CLEAR_VALUE|COLOR_WRITEMASK|UNPACK_ALIGNMENT|PACK_ALIGNMENT|MAX_TEXTURE_SIZE|MAX_VIEWPORT_DIMS|SUBPIXEL_BITS|RED_BITS|GREEN_BITS|BLUE_BITS|ALPHA_BITS|DEPTH_BITS|STENCIL_BITS|POLYGON_OFFSET_UNITS|POLYGON_OFFSET_FACTOR|TEXTURE_BINDING_2D|SAMPLE_BUFFERS|SAMPLES|SAMPLE_COVERAGE_VALUE|SAMPLE_COVERAGE_INVERT|COMPRESSED_TEXTURE_FORMATS|DONT_CARE|FASTEST|NICEST|GENERATE_MIPMAP_HINT|BYTE|UNSIGNED_BYTE|SHORT|UNSIGNED_SHORT|INT|UNSIGNED_INT|FLOAT|DEPTH_COMPONENT|ALPHA|RGB|RGBA|LUMINANCE|LUMINANCE_ALPHA|UNSIGNED_SHORT_4_4_4_4|UNSIGNED_SHORT_5_5_5_1|UNSIGNED_SHORT_5_6_5|FRAGMENT_SHADER|VERTEX_SHADER|MAX_VERTEX_ATTRIBS|MAX_VERTEX_UNIFORM_VECTORS|MAX_VARYING_VECTORS|MAX_COMBINED_TEXTURE_IMAGE_UNITS|MAX_VERTEX_TEXTURE_IMAGE_UNITS|MAX_TEXTURE_IMAGE_UNITS|MAX_FRAGMENT_UNIFORM_VECTORS|SHADER_TYPE|DELETE_STATUS|LINK_STATUS|VALIDATE_STATUS|ATTACHED_SHADERS|ACTIVE_UNIFORMS|ACTIVE_ATTRIBUTES|SHADING_LANGUAGE_VERSION|CURRENT_PROGRAM|NEVER|LESS|EQUAL|LEQUAL|GREATER|NOTEQUAL|GEQUAL|ALWAYS|KEEP|REPLACE|INCR|DECR|INVERT|INCR_WRAP|DECR_WRAP|VENDOR|RENDERER|VERSION|NEAREST|LINEAR|NEAREST_MIPMAP_NEAREST|LINEAR_MIPMAP_NEAREST|NEAREST_MIPMAP_LINEAR|LINEAR_MIPMAP_LINEAR|TEXTURE_MAG_FILTER|TEXTURE_MIN_FILTER|TEXTURE_WRAP_S|TEXTURE_WRAP_T|TEXTURE|TEXTURE_CUBE_MAP|TEXTURE_BINDING_CUBE_MAP|TEXTURE_CUBE_MAP_POSITIVE_X|TEXTURE_CUBE_MAP_NEGATIVE_X|TEXTURE_CUBE_MAP_POSITIVE_Y|TEXTURE_CUBE_MAP_NEGATIVE_Y|TEXTURE_CUBE_MAP_POSITIVE_Z|TEXTURE_CUBE_MAP_NEGATIVE_Z|MAX_CUBE_MAP_TEXTURE_SIZE|TEXTURE0|TEXTURE1|TEXTURE2|TEXTURE3|TEXTURE4|TEXTURE5|TEXTURE6|TEXTURE7|TEXTURE8|TEXTURE9|TEXTURE10|TEXTURE11|TEXTURE12|TEXTURE13|TEXTURE14|TEXTURE15|TEXTURE16|TEXTURE17|TEXTURE18|TEXTURE19|TEXTURE20|TEXTURE21|TEXTURE22|TEXTURE23|TEXTURE24|TEXTURE25|TEXTURE26|TEXTURE27|TEXTURE28|TEXTURE29|TEXTURE30|TEXTURE31|ACTIVE_TEXTURE|REPEAT|CLAMP_TO_EDGE|MIRRORED_REPEAT|FLOAT_VEC2|FLOAT_VEC3|FLOAT_VEC4|INT_VEC2|INT_VEC3|INT_VEC4|BOOL|BOOL_VEC2|BOOL_VEC3|BOOL_VEC4|FLOAT_MAT2|FLOAT_MAT3|FLOAT_MAT4|SAMPLER_2D|SAMPLER_CUBE|VERTEX_ATTRIB_ARRAY_ENABLED|VERTEX_ATTRIB_ARRAY_SIZE|VERTEX_ATTRIB_ARRAY_STRIDE|VERTEX_ATTRIB_ARRAY_TYPE|VERTEX_ATTRIB_ARRAY_NORMALIZED|VERTEX_ATTRIB_ARRAY_POINTER|VERTEX_ATTRIB_ARRAY_BUFFER_BINDING|IMPLEMENTATION_COLOR_READ_TYPE|IMPLEMENTATION_COLOR_READ_FORMAT|COMPILE_STATUS|LOW_FLOAT|MEDIUM_FLOAT|HIGH_FLOAT|LOW_INT|MEDIUM_INT|HIGH_INT|FRAMEBUFFER|RENDERBUFFER|RGBA4|RGB5_A1|RGB565|DEPTH_COMPONENT16|STENCIL_INDEX8|DEPTH_STENCIL|RENDERBUFFER_WIDTH|RENDERBUFFER_HEIGHT|RENDERBUFFER_INTERNAL_FORMAT|RENDERBUFFER_RED_SIZE|RENDERBUFFER_GREEN_SIZE|RENDERBUFFER_BLUE_SIZE|RENDERBUFFER_ALPHA_SIZE|RENDERBUFFER_DEPTH_SIZE|RENDERBUFFER_STENCIL_SIZE|FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE|FRAMEBUFFER_ATTACHMENT_OBJECT_NAME|FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL|FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE|COLOR_ATTACHMENT0|DEPTH_ATTACHMENT|STENCIL_ATTACHMENT|DEPTH_STENCIL_ATTACHMENT|NONE|FRAMEBUFFER_COMPLETE|FRAMEBUFFER_INCOMPLETE_ATTACHMENT|FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT|FRAMEBUFFER_INCOMPLETE_DIMENSIONS|FRAMEBUFFER_UNSUPPORTED|FRAMEBUFFER_BINDING|RENDERBUFFER_BINDING|MAX_RENDERBUFFER_SIZE|INVALID_FRAMEBUFFER_OPERATION|UNPACK_FLIP_Y_WEBGL|UNPACK_PREMULTIPLY_ALPHA_WEBGL|CONTEXT_LOST_WEBGL|UNPACK_COLORSPACE_CONVERSION_WEBGL|BROWSER_DEFAULT_WEBGL|activeTexture|attachShader|bindAttribLocation|bindRenderbuffer|blendColor|blendEquation|blendEquationSeparate|blendFunc|blendFuncSeparate|bufferData|bufferSubData|checkFramebufferStatus|compileShader|compressedTexImage2D|compressedTexSubImage2D|copyTexImage2D|copyTexSubImage2D|createBuffer|createFramebuffer|createProgram|createRenderbuffer|createShader|createTexture|cullFace|deleteBuffer|deleteFramebuffer|deleteProgram|deleteRenderbuffer|deleteShader|deleteTexture|depthFunc|depthMask|depthRange|detachShader|disable|enable|finish|flush|framebufferRenderbuffer|framebufferTexture2D|frontFace|generateMipmap|getActiveAttrib|getActiveUniform|getAttachedShaders|getAttribLocation|getBufferParameter|getContextAttributes|getError|getExtension|getFramebufferAttachmentParameter|getParameter|getProgramInfoLog|getProgramParameter|getRenderbufferParameter|getShaderInfoLog|getShaderParameter|getShaderPrecisionFormat|getShaderSource|getSupportedExtensions|getTexParameter|getUniform|getUniformLocation|getVertexAttrib|getVertexAttribOffset|hint|isBuffer|isContextLost|isEnabled|isFramebuffer|isProgram|isRenderbuffer|isShader|isTexture|lineWidth|linkProgram|pixelStorei|polygonOffset|readPixels|renderbufferStorage|sampleCoverage|shaderSource|stencilFunc|stencilFuncSeparate|stencilMask|stencilMaskSeparate|stencilOp|stencilOpSeparate|texImage2D|texParameterf|texParameteri|texSubImage2D|useProgram|validateProgram|bindBuffer|bindFramebuffer|bindTexture|clear|clearColor|clearDepth|clearStencil|colorMask|disableVertexAttribArray|drawArrays|drawElements|enableVertexAttribArray|scissor|uniform1f|uniform1fv|uniform1i|uniform1iv|uniform2f|uniform2fv|uniform2i|uniform2iv|uniform3f|uniform3fv|uniform3i|uniform3iv|uniform4f|uniform4fv|uniform4i|uniform4iv|uniformMatrix2fv|uniformMatrix3fv|uniformMatrix4fv|vertexAttrib1f|vertexAttrib1fv|vertexAttrib2f|vertexAttrib2fv|vertexAttrib3f|vertexAttrib3fv|vertexAttrib4f|vertexAttrib4fv|vertexAttribPointer|viewport|makeXRCompatible'
    }
        if (this[0] === '{"foo\\u0000bar":42}') {

        let strs = [`{"foo\\u0000bar":42}INVALID:SyntaxError: Unexpected token t in JSON at position 3INVALID:SyntaxError: Unexpected token � in JSON at position 0INVALID:SyntaxError: Unexpected token � in JSON at position 0`, `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[�]" is not valid JSON`, `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[`]
        let res =  strs[parseInt(_random() * strs.length)]
     //    var newStrAll = [];
     //    res.split('').forEach((item, index, array) => {
     //        var newIndex = Math.round(Math.random() * newStrAll.length);
     //        newStrAll.splice(newIndex, 0, item);
     //    });
     // res = newStrAll.join('')
        return res

        return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[�]" is not valid JSON`
        // 家里的
        // return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[�]" is not valid JSON`

        // return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[`
        // this.sort(sortRandom)

        // return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[\x00\x00�\x00\x00]\x00" is not valid JSON`
        // return
        // return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[�]" is not valid JSON`
    }

    return _join.call(this, s)
})
_getOwnPropertyNames = Object.getOwnPropertyNames;
Object.getOwnPropertyNames = v_saf(function (a) {
    let res = _getOwnPropertyNames(a);
    console.log('getOwnPropertyNames', a, res)

    if (res.length >= 180 && res.indexOf('EventCounts') > -1) {
        console.log('getWindow')
        res = [
    "Object",
    "Function",
    "Array",
    "Number",
    "parseFloat",
    "parseInt",
    "Infinity",
    "NaN",
    "undefined",
    "Boolean",
    "String",
    "Symbol",
    "Date",
    "Promise",
    "RegExp",
    "Error",
    "AggregateError",
    "EvalError",
    "RangeError",
    "ReferenceError",
    "SyntaxError",
    "TypeError",
    "URIError",
    "globalThis",
    "JSON",
    "Math",
    "Intl",
    "ArrayBuffer",
    "Atomics",
    "Uint8Array",
    "Int8Array",
    "Uint16Array",
    "Int16Array",
    "Uint32Array",
    "Int32Array",
    "Float32Array",
    "Float64Array",
    "Uint8ClampedArray",
    "BigUint64Array",
    "BigInt64Array",
    "DataView",
    "Map",
    "BigInt",
    "Set",
    "WeakMap",
    "WeakSet",
    "Proxy",
    "Reflect",
    "FinalizationRegistry",
    "WeakRef",
    "decodeURI",
    "decodeURIComponent",
    "encodeURI",
    "encodeURIComponent",
    "escape",
    "unescape",
    "eval",
    "isFinite",
    "isNaN",
    "console",
    "Option",
    "Image",
    "Audio",
    "webkitURL",
    "webkitRTCPeerConnection",
    "webkitMediaStream",
    "WebKitMutationObserver",
    "WebKitCSSMatrix",
    "XSLTProcessor",
    "XPathResult",
    "XPathExpression",
    "XPathEvaluator",
    "XMLSerializer",
    "XMLHttpRequestUpload",
    "XMLHttpRequestEventTarget",
    "XMLHttpRequest",
    "XMLDocument",
    "WritableStreamDefaultWriter",
    "WritableStreamDefaultController",
    "WritableStream",
    "Worker",
    "Window",
    "WheelEvent",
    "WebSocket",
    "WebGLVertexArrayObject",
    "WebGLUniformLocation",
    "WebGLTransformFeedback",
    "WebGLTexture",
    "WebGLSync",
    "WebGLShaderPrecisionFormat",
    "WebGLShader",
    "WebGLSampler",
    "WebGLRenderingContext",
    "WebGLRenderbuffer",
    "WebGLQuery",
    "WebGLProgram",
    "WebGLFramebuffer",
    "WebGLContextEvent",
    "WebGLBuffer",
    "WebGLActiveInfo",
    "WebGL2RenderingContext",
    "WaveShaperNode",
    "VisualViewport",
    "VirtualKeyboardGeometryChangeEvent",
    "ValidityState",
    "VTTCue",
    "UserActivation",
    "URLSearchParams",
    "URLPattern",
    "URL",
    "UIEvent",
    "TrustedTypePolicyFactory",
    "TrustedTypePolicy",
    "TrustedScriptURL",
    "TrustedScript",
    "TrustedHTML",
    "TreeWalker",
    "TransitionEvent",
    "TransformStreamDefaultController",
    "TransformStream",
    "TrackEvent",
    "TouchList",
    "TouchEvent",
    "Touch",
    "TimeRanges",
    "TextTrackList",
    "TextTrackCueList",
    "TextTrackCue",
    "TextTrack",
    "TextMetrics",
    "TextEvent",
    "TextEncoderStream",
    "TextEncoder",
    "TextDecoderStream",
    "TextDecoder",
    "Text",
    "TaskSignal",
    "TaskPriorityChangeEvent",
    "TaskController",
    "TaskAttributionTiming",
    "SyncManager",
    "SubmitEvent",
    "StyleSheetList",
    "StyleSheet",
    "StylePropertyMapReadOnly",
    "StylePropertyMap",
    "StorageEvent",
    "Storage",
    "StereoPannerNode",
    "StaticRange",
    "SourceBufferList",
    "SourceBuffer",
    "ShadowRoot",
    "Selection",
    "SecurityPolicyViolationEvent",
    "ScriptProcessorNode",
    "ScreenOrientation",
    "Screen",
    "Scheduling",
    "Scheduler",
    "SVGViewElement",
    "SVGUseElement",
    "SVGUnitTypes",
    "SVGTransformList",
    "SVGTransform",
    "SVGTitleElement",
    "SVGTextPositioningElement",
    "SVGTextPathElement",
    "SVGTextElement",
    "SVGTextContentElement",
    "SVGTSpanElement",
    "SVGSymbolElement",
    "SVGSwitchElement",
    "SVGStyleElement",
    "SVGStringList",
    "SVGStopElement",
    "SVGSetElement",
    "SVGScriptElement",
    "SVGSVGElement",
    "SVGRectElement",
    "SVGRect",
    "SVGRadialGradientElement",
    "SVGPreserveAspectRatio",
    "SVGPolylineElement",
    "SVGPolygonElement",
    "SVGPointList",
    "SVGPoint",
    "SVGPatternElement",
    "SVGPathElement",
    "SVGNumberList",
    "SVGNumber",
    "SVGMetadataElement",
    "SVGMatrix",
    "SVGMaskElement",
    "SVGMarkerElement",
    "SVGMPathElement",
    "SVGLinearGradientElement",
    "SVGLineElement",
    "SVGLengthList",
    "SVGLength",
    "SVGImageElement",
    "SVGGraphicsElement",
    "SVGGradientElement",
    "SVGGeometryElement",
    "SVGGElement",
    "SVGForeignObjectElement",
    "SVGFilterElement",
    "SVGFETurbulenceElement",
    "SVGFETileElement",
    "SVGFESpotLightElement",
    "SVGFESpecularLightingElement",
    "SVGFEPointLightElement",
    "SVGFEOffsetElement",
    "SVGFEMorphologyElement",
    "SVGFEMergeNodeElement",
    "SVGFEMergeElement",
    "SVGFEImageElement",
    "SVGFEGaussianBlurElement",
    "SVGFEFuncRElement",
    "SVGFEFuncGElement",
    "SVGFEFuncBElement",
    "SVGFEFuncAElement",
    "SVGFEFloodElement",
    "SVGFEDropShadowElement",
    "SVGFEDistantLightElement",
    "SVGFEDisplacementMapElement",
    "SVGFEDiffuseLightingElement",
    "SVGFEConvolveMatrixElement",
    "SVGFECompositeElement",
    "SVGFEComponentTransferElement",
    "SVGFEColorMatrixElement",
    "SVGFEBlendElement",
    "SVGEllipseElement",
    "SVGElement",
    "SVGDescElement",
    "SVGDefsElement",
    "SVGComponentTransferFunctionElement",
    "SVGClipPathElement",
    "SVGCircleElement",
    "SVGAnimationElement",
    "SVGAnimatedTransformList",
    "SVGAnimatedString",
    "SVGAnimatedRect",
    "SVGAnimatedPreserveAspectRatio",
    "SVGAnimatedNumberList",
    "SVGAnimatedNumber",
    "SVGAnimatedLengthList",
    "SVGAnimatedLength",
    "SVGAnimatedInteger",
    "SVGAnimatedEnumeration",
    "SVGAnimatedBoolean",
    "SVGAnimatedAngle",
    "SVGAnimateTransformElement",
    "SVGAnimateMotionElement",
    "SVGAnimateElement",
    "SVGAngle",
    "SVGAElement",
    "Response",
    "ResizeObserverSize",
    "ResizeObserverEntry",
    "ResizeObserver",
    "Request",
    "ReportingObserver",
    "ReadableStreamDefaultReader",
    "ReadableStreamDefaultController",
    "ReadableStreamBYOBRequest",
    "ReadableStreamBYOBReader",
    "ReadableStream",
    "ReadableByteStreamController",
    "Range",
    "RadioNodeList",
    "RTCTrackEvent",
    "RTCStatsReport",
    "RTCSessionDescription",
    "RTCSctpTransport",
    "RTCRtpTransceiver",
    "RTCRtpSender",
    "RTCRtpReceiver",
    "RTCPeerConnectionIceEvent",
    "RTCPeerConnectionIceErrorEvent",
    "RTCPeerConnection",
    "RTCIceTransport",
    "RTCIceCandidate",
    "RTCErrorEvent",
    "RTCError",
    "RTCEncodedVideoFrame",
    "RTCEncodedAudioFrame",
    "RTCDtlsTransport",
    "RTCDataChannelEvent",
    "RTCDataChannel",
    "RTCDTMFToneChangeEvent",
    "RTCDTMFSender",
    "RTCCertificate",
    "PromiseRejectionEvent",
    "ProgressEvent",
    "Profiler",
    "ProcessingInstruction",
    "PopStateEvent",
    "PointerEvent",
    "PluginArray",
    "Plugin",
    "PictureInPictureWindow",
    "PictureInPictureEvent",
    "PeriodicWave",
    "PerformanceTiming",
    "PerformanceServerTiming",
    "PerformanceResourceTiming",
    "PerformancePaintTiming",
    "PerformanceObserverEntryList",
    "PerformanceObserver",
    "PerformanceNavigationTiming",
    "PerformanceNavigation",
    "PerformanceMeasure",
    "PerformanceMark",
    "PerformanceLongTaskTiming",
    "PerformanceEventTiming",
    "PerformanceEntry",
    "PerformanceElementTiming",
    "Performance",
    "Path2D",
    "PannerNode",
    "PageTransitionEvent",
    "OverconstrainedError",
    "OscillatorNode",
    "OffscreenCanvasRenderingContext2D",
    "OffscreenCanvas",
    "OfflineAudioContext",
    "OfflineAudioCompletionEvent",
    "NodeList",
    "NodeIterator",
    "NodeFilter",
    "Node",
    "NetworkInformation",
    "Navigator",
    "NavigationTransition",
    "NavigationHistoryEntry",
    "NavigationDestination",
    "NavigationCurrentEntryChangeEvent",
    "Navigation",
    "NavigateEvent",
    "NamedNodeMap",
    "MutationRecord",
    "MutationObserver",
    "MouseEvent",
    "MimeTypeArray",
    "MimeType",
    "MessagePort",
    "MessageEvent",
    "MessageChannel",
    "MediaStreamTrackProcessor",
    "MediaStreamTrackGenerator",
    "MediaStreamTrackEvent",
    "MediaStreamTrack",
    "MediaStreamEvent",
    "MediaStreamAudioSourceNode",
    "MediaStreamAudioDestinationNode",
    "MediaStream",
    "MediaSourceHandle",
    "MediaSource",
    "MediaRecorder",
    "MediaQueryListEvent",
    "MediaQueryList",
    "MediaList",
    "MediaError",
    "MediaEncryptedEvent",
    "MediaElementAudioSourceNode",
    "MediaCapabilities",
    "Location",
    "LayoutShiftAttribution",
    "LayoutShift",
    "LargestContentfulPaint",
    "KeyframeEffect",
    "KeyboardEvent",
    "IntersectionObserverEntry",
    "IntersectionObserver",
    "InputEvent",
    "InputDeviceInfo",
    "InputDeviceCapabilities",
    "ImageData",
    "ImageCapture",
    "ImageBitmapRenderingContext",
    "ImageBitmap",
    "IdleDeadline",
    "IIRFilterNode",
    "IDBVersionChangeEvent",
    "IDBTransaction",
    "IDBRequest",
    "IDBOpenDBRequest",
    "IDBObjectStore",
    "IDBKeyRange",
    "IDBIndex",
    "IDBFactory",
    "IDBDatabase",
    "IDBCursorWithValue",
    "IDBCursor",
    "History",
    "Headers",
    "HashChangeEvent",
    "HTMLVideoElement",
    "HTMLUnknownElement",
    "HTMLUListElement",
    "HTMLTrackElement",
    "HTMLTitleElement",
    "HTMLTimeElement",
    "HTMLTextAreaElement",
    "HTMLTemplateElement",
    "HTMLTableSectionElement",
    "HTMLTableRowElement",
    "HTMLTableElement",
    "HTMLTableColElement",
    "HTMLTableCellElement",
    "HTMLTableCaptionElement",
    "HTMLStyleElement",
    "HTMLSpanElement",
    "HTMLSourceElement",
    "HTMLSlotElement",
    "HTMLSelectElement",
    "HTMLScriptElement",
    "HTMLQuoteElement",
    "HTMLProgressElement",
    "HTMLPreElement",
    "HTMLPictureElement",
    "HTMLParamElement",
    "HTMLParagraphElement",
    "HTMLOutputElement",
    "HTMLOptionsCollection",
    "HTMLOptionElement",
    "HTMLOptGroupElement",
    "HTMLObjectElement",
    "HTMLOListElement",
    "HTMLModElement",
    "HTMLMeterElement",
    "HTMLMetaElement",
    "HTMLMenuElement",
    "HTMLMediaElement",
    "HTMLMarqueeElement",
    "HTMLMapElement",
    "HTMLLinkElement",
    "HTMLLegendElement",
    "HTMLLabelElement",
    "HTMLLIElement",
    "HTMLInputElement",
    "HTMLImageElement",
    "HTMLIFrameElement",
    "HTMLHtmlElement",
    "HTMLHeadingElement",
    "HTMLHeadElement",
    "HTMLHRElement",
    "HTMLFrameSetElement",
    "HTMLFrameElement",
    "HTMLFormElement",
    "HTMLFormControlsCollection",
    "HTMLFontElement",
    "HTMLFieldSetElement",
    "HTMLEmbedElement",
    "HTMLElement",
    "HTMLDocument",
    "HTMLDivElement",
    "HTMLDirectoryElement",
    "HTMLDialogElement",
    "HTMLDetailsElement",
    "HTMLDataListElement",
    "HTMLDataElement",
    "HTMLDListElement",
    "HTMLCollection",
    "HTMLCanvasElement",
    "HTMLButtonElement",
    "HTMLBodyElement",
    "HTMLBaseElement",
    "HTMLBRElement",
    "HTMLAudioElement",
    "HTMLAreaElement",
    "HTMLAnchorElement",
    "HTMLAllCollection",
    "GeolocationPositionError",
    "GeolocationPosition",
    "GeolocationCoordinates",
    "Geolocation",
    "GamepadHapticActuator",
    "GamepadEvent",
    "GamepadButton",
    "Gamepad",
    "GainNode",
    "FormDataEvent",
    "FormData",
    "FontFaceSetLoadEvent",
    "FontFace",
    "FocusEvent",
    "FileReader",
    "FileList",
    "File",
    "FeaturePolicy",
    "External",
    "EventTarget",
    "EventSource",
    "EventCounts",
    "Event",
    "ErrorEvent",
    "ElementInternals",
    "Element",
    "DynamicsCompressorNode",
    "DragEvent",
    "DocumentType",
    "DocumentFragment",
    "Document",
    "DelayNode",
    "DecompressionStream",
    "DataTransferItemList",
    "DataTransferItem",
    "DataTransfer",
    "DOMTokenList",
    "DOMStringMap",
    "DOMStringList",
    "DOMRectReadOnly",
    "DOMRectList",
    "DOMRect",
    "DOMQuad",
    "DOMPointReadOnly",
    "DOMPoint",
    "DOMParser",
    "DOMMatrixReadOnly",
    "DOMMatrix",
    "DOMImplementation",
    "DOMException",
    "DOMError",
    "CustomStateSet",
    "CustomEvent",
    "CustomElementRegistry",
    "Crypto",
    "CountQueuingStrategy",
    "ConvolverNode",
    "ConstantSourceNode",
    "CompressionStream",
    "CompositionEvent",
    "Comment",
    "CloseEvent",
    "ClipboardEvent",
    "CharacterData",
    "ChannelSplitterNode",
    "ChannelMergerNode",
    "CanvasRenderingContext2D",
    "CanvasPattern",
    "CanvasGradient",
    "CanvasCaptureMediaStreamTrack",
    "CSSVariableReferenceValue",
    "CSSUnparsedValue",
    "CSSUnitValue",
    "CSSTranslate",
    "CSSTransformValue",
    "CSSTransformComponent",
    "CSSSupportsRule",
    "CSSStyleValue",
    "CSSStyleSheet",
    "CSSStyleRule",
    "CSSStyleDeclaration",
    "CSSSkewY",
    "CSSSkewX",
    "CSSSkew",
    "CSSScale",
    "CSSRuleList",
    "CSSRule",
    "CSSRotate",
    "CSSPropertyRule",
    "CSSPositionValue",
    "CSSPerspective",
    "CSSPageRule",
    "CSSNumericValue",
    "CSSNumericArray",
    "CSSNamespaceRule",
    "CSSMediaRule",
    "CSSMatrixComponent",
    "CSSMathValue",
    "CSSMathSum",
    "CSSMathProduct",
    "CSSMathNegate",
    "CSSMathMin",
    "CSSMathMax",
    "CSSMathInvert",
    "CSSMathClamp",
    "CSSLayerStatementRule",
    "CSSLayerBlockRule",
    "CSSKeywordValue",
    "CSSKeyframesRule",
    "CSSKeyframeRule",
    "CSSImportRule",
    "CSSImageValue",
    "CSSGroupingRule",
    "CSSFontPaletteValuesRule",
    "CSSFontFaceRule",
    "CSSCounterStyleRule",
    "CSSContainerRule",
    "CSSConditionRule",
    "CSS",
    "CDATASection",
    "ByteLengthQueuingStrategy",
    "BroadcastChannel",
    "BlobEvent",
    "Blob",
    "BiquadFilterNode",
    "BeforeUnloadEvent",
    "BeforeInstallPromptEvent",
    "BaseAudioContext",
    "BarProp",
    "AudioWorkletNode",
    "AudioSinkInfo",
    "AudioScheduledSourceNode",
    "AudioProcessingEvent",
    "AudioParamMap",
    "AudioParam",
    "AudioNode",
    "AudioListener",
    "AudioDestinationNode",
    "AudioContext",
    "AudioBufferSourceNode",
    "AudioBuffer",
    "Attr",
    "AnimationEvent",
    "AnimationEffect",
    "Animation",
    "AnalyserNode",
    "AbstractRange",
    "AbortSignal",
    "AbortController",
    "window",
    "self",
    "document",
    "name",
    "location",
    "customElements",
    "history",
    "navigation",
    "locationbar",
    "menubar",
    "personalbar",
    "scrollbars",
    "statusbar",
    "toolbar",
    "status",
    "closed",
    "frames",
    "length",
    "top",
    "opener",
    "parent",
    "frameElement",
    "navigator",
    "origin",
    "external",
    "screen",
    "innerWidth",
    "innerHeight",
    "scrollX",
    "pageXOffset",
    "scrollY",
    "pageYOffset",
    "visualViewport",
    "screenX",
    "screenY",
    "outerWidth",
    "outerHeight",
    "devicePixelRatio",
    "event",
    "clientInformation",
    "offscreenBuffering",
    "screenLeft",
    "screenTop",
    "styleMedia",
    "onsearch",
    "isSecureContext",
    "trustedTypes",
    "performance",
    "onappinstalled",
    "onbeforeinstallprompt",
    "crypto",
    "indexedDB",
    "sessionStorage",
    "localStorage",
    "onbeforexrselect",
    "onabort",
    "onbeforeinput",
    "onblur",
    "oncancel",
    "oncanplay",
    "oncanplaythrough",
    "onchange",
    "onclick",
    "onclose",
    "oncontextlost",
    "oncontextmenu",
    "oncontextrestored",
    "oncuechange",
    "ondblclick",
    "ondrag",
    "ondragend",
    "ondragenter",
    "ondragleave",
    "ondragover",
    "ondragstart",
    "ondrop",
    "ondurationchange",
    "onemptied",
    "onended",
    "onerror",
    "onfocus",
    "onformdata",
    "oninput",
    "oninvalid",
    "onkeydown",
    "onkeypress",
    "onkeyup",
    "onload",
    "onloadeddata",
    "onloadedmetadata",
    "onloadstart",
    "onmousedown",
    "onmouseenter",
    "onmouseleave",
    "onmousemove",
    "onmouseout",
    "onmouseover",
    "onmouseup",
    "onmousewheel",
    "onpause",
    "onplay",
    "onplaying",
    "onprogress",
    "onratechange",
    "onreset",
    "onresize",
    "onscroll",
    "onsecuritypolicyviolation",
    "onseeked",
    "onseeking",
    "onselect",
    "onslotchange",
    "onstalled",
    "onsubmit",
    "onsuspend",
    "ontimeupdate",
    "ontoggle",
    "onvolumechange",
    "onwaiting",
    "onwebkitanimationend",
    "onwebkitanimationiteration",
    "onwebkitanimationstart",
    "onwebkittransitionend",
    "onwheel",
    "onauxclick",
    "ongotpointercapture",
    "onlostpointercapture",
    "onpointerdown",
    "onpointermove",
    "onpointerrawupdate",
    "onpointerup",
    "onpointercancel",
    "onpointerover",
    "onpointerout",
    "onpointerenter",
    "onpointerleave",
    "onselectstart",
    "onselectionchange",
    "onanimationend",
    "onanimationiteration",
    "onanimationstart",
    "ontransitionrun",
    "ontransitionstart",
    "ontransitionend",
    "ontransitioncancel",
    "onafterprint",
    "onbeforeprint",
    "onbeforeunload",
    "onhashchange",
    "onlanguagechange",
    "onmessage",
    "onmessageerror",
    "onoffline",
    "ononline",
    "onpagehide",
    "onpageshow",
    "onpopstate",
    "onrejectionhandled",
    "onstorage",
    "onunhandledrejection",
    "onunload",
    "crossOriginIsolated",
    "scheduler",
    "alert",
    "atob",
    "blur",
    "btoa",
    "cancelAnimationFrame",
    "cancelIdleCallback",
    "captureEvents",
    "clearInterval",
    "clearTimeout",
    "close",
    "confirm",
    "createImageBitmap",
    "fetch",
    "find",
    "focus",
    "getComputedStyle",
    "getSelection",
    "matchMedia",
    "moveBy",
    "moveTo",
    "open",
    "postMessage",
    "print",
    "prompt",
    "queueMicrotask",
    "releaseEvents",
    "reportError",
    "requestAnimationFrame",
    "requestIdleCallback",
    "resizeBy",
    "resizeTo",
    "scroll",
    "scrollBy",
    "scrollTo",
    "setInterval",
    "setTimeout",
    "stop",
    "structuredClone",
    "webkitCancelAnimationFrame",
    "webkitRequestAnimationFrame",
    "chrome",
    "WebAssembly",
    "credentialless",
    "fence",
    "caches",
    "cookieStore",
    "ondevicemotion",
    "ondeviceorientation",
    "ondeviceorientationabsolute",
    "launchQueue",
    "sharedStorage",
    "onbeforematch",
    "onbeforetoggle",
    "AbsoluteOrientationSensor",
    "Accelerometer",
    "AudioWorklet",
    "BatteryManager",
    "Cache",
    "CacheStorage",
    "Clipboard",
    "ClipboardItem",
    "CookieChangeEvent",
    "CookieStore",
    "CookieStoreManager",
    "Credential",
    "CredentialsContainer",
    "CryptoKey",
    "DeviceMotionEvent",
    "DeviceMotionEventAcceleration",
    "DeviceMotionEventRotationRate",
    "DeviceOrientationEvent",
    "FederatedCredential",
    "GravitySensor",
    "Gyroscope",
    "Keyboard",
    "KeyboardLayoutMap",
    "LinearAccelerationSensor",
    "Lock",
    "LockManager",
    "MIDIAccess",
    "MIDIConnectionEvent",
    "MIDIInput",
    "MIDIInputMap",
    "MIDIMessageEvent",
    "MIDIOutput",
    "MIDIOutputMap",
    "MIDIPort",
    "MediaDeviceInfo",
    "MediaDevices",
    "MediaKeyMessageEvent",
    "MediaKeySession",
    "MediaKeyStatusMap",
    "MediaKeySystemAccess",
    "MediaKeys",
    "NavigationPreloadManager",
    "NavigatorManagedData",
    "OrientationSensor",
    "PasswordCredential",
    "RelativeOrientationSensor",
    "Sanitizer",
    "ScreenDetailed",
    "ScreenDetails",
    "Sensor",
    "SensorErrorEvent",
    "ServiceWorker",
    "ServiceWorkerContainer",
    "ServiceWorkerRegistration",
    "StorageManager",
    "SubtleCrypto",
    "VirtualKeyboard",
    "WebTransport",
    "WebTransportBidirectionalStream",
    "WebTransportDatagramDuplexStream",
    "WebTransportError",
    "Worklet",
    "XRDOMOverlayState",
    "XRLayer",
    "XRWebGLBinding",
    "AudioData",
    "EncodedAudioChunk",
    "EncodedVideoChunk",
    "ImageTrack",
    "ImageTrackList",
    "VideoColorSpace",
    "VideoFrame",
    "AudioDecoder",
    "AudioEncoder",
    "ImageDecoder",
    "VideoDecoder",
    "VideoEncoder",
    "AuthenticatorAssertionResponse",
    "AuthenticatorAttestationResponse",
    "AuthenticatorResponse",
    "PublicKeyCredential",
    "BarcodeDetector",
    "Bluetooth",
    "BluetoothCharacteristicProperties",
    "BluetoothDevice",
    "BluetoothRemoteGATTCharacteristic",
    "BluetoothRemoteGATTDescriptor",
    "BluetoothRemoteGATTServer",
    "BluetoothRemoteGATTService",
    "CaptureController",
    "EyeDropper",
    "Fence",
    "FencedFrameConfig",
    "HTMLFencedFrameElement",
    "FileSystemDirectoryHandle",
    "FileSystemFileHandle",
    "FileSystemHandle",
    "FileSystemWritableFileStream",
    "FontData",
    "FragmentDirective",
    "GPU",
    "GPUAdapter",
    "GPUAdapterInfo",
    "GPUBindGroup",
    "GPUBindGroupLayout",
    "GPUBuffer",
    "GPUBufferUsage",
    "GPUCanvasContext",
    "GPUColorWrite",
    "GPUCommandBuffer",
    "GPUCommandEncoder",
    "GPUCompilationInfo",
    "GPUCompilationMessage",
    "GPUComputePassEncoder",
    "GPUComputePipeline",
    "GPUDevice",
    "GPUDeviceLostInfo",
    "GPUError",
    "GPUExternalTexture",
    "GPUInternalError",
    "GPUMapMode",
    "GPUOutOfMemoryError",
    "GPUPipelineError",
    "GPUPipelineLayout",
    "GPUQuerySet",
    "GPUQueue",
    "GPURenderBundle",
    "GPURenderBundleEncoder",
    "GPURenderPassEncoder",
    "GPURenderPipeline",
    "GPUSampler",
    "GPUShaderModule",
    "GPUShaderStage",
    "GPUSupportedFeatures",
    "GPUSupportedLimits",
    "GPUTexture",
    "GPUTextureUsage",
    "GPUTextureView",
    "GPUUncapturedErrorEvent",
    "GPUValidationError",
    "WGSLLanguageFeatures",
    "HID",
    "HIDConnectionEvent",
    "HIDDevice",
    "HIDInputReportEvent",
    "IdentityCredential",
    "IdleDetector",
    "LaunchParams",
    "LaunchQueue",
    "OTPCredential",
    "PaymentAddress",
    "PaymentRequest",
    "PaymentResponse",
    "PaymentMethodChangeEvent",
    "Presentation",
    "PresentationAvailability",
    "PresentationConnection",
    "PresentationConnectionAvailableEvent",
    "PresentationConnectionCloseEvent",
    "PresentationConnectionList",
    "PresentationReceiver",
    "PresentationRequest",
    "Serial",
    "SerialPort",
    "SharedStorage",
    "SharedStorageWorklet",
    "ToggleEvent",
    "USB",
    "USBAlternateInterface",
    "USBConfiguration",
    "USBConnectionEvent",
    "USBDevice",
    "USBEndpoint",
    "USBInTransferResult",
    "USBInterface",
    "USBIsochronousInTransferPacket",
    "USBIsochronousInTransferResult",
    "USBIsochronousOutTransferPacket",
    "USBIsochronousOutTransferResult",
    "USBOutTransferResult",
    "WakeLock",
    "WakeLockSentinel",
    "WindowControlsOverlay",
    "WindowControlsOverlayGeometryChangeEvent",
    "XRAnchor",
    "XRAnchorSet",
    "XRBoundedReferenceSpace",
    "XRCPUDepthInformation",
    "XRCamera",
    "XRDepthInformation",
    "XRFrame",
    "XRHitTestResult",
    "XRHitTestSource",
    "XRInputSource",
    "XRInputSourceArray",
    "XRInputSourceEvent",
    "XRInputSourcesChangeEvent",
    "XRLightEstimate",
    "XRLightProbe",
    "XRPose",
    "XRRay",
    "XRReferenceSpace",
    "XRReferenceSpaceEvent",
    "XRRenderState",
    "XRRigidTransform",
    "XRSession",
    "XRSessionEvent",
    "XRSpace",
    "XRSystem",
    "XRTransientInputHitTestResult",
    "XRTransientInputHitTestSource",
    "XRView",
    "XRViewerPose",
    "XRViewport",
    "XRWebGLDepthInformation",
    "XRWebGLLayer",
    "getScreenDetails",
    "queryLocalFonts",
    "showDirectoryPicker",
    "showOpenFilePicker",
    "showSaveFilePicker",
    "originAgentCluster",
    "speechSynthesis",
    "oncontentvisibilityautostatechange",
    "onscrollend",
    "AnimationPlaybackEvent",
    "AnimationTimeline",
    "CSSAnimation",
    "CSSTransition",
    "DocumentTimeline",
    "BackgroundFetchManager",
    "BackgroundFetchRecord",
    "BackgroundFetchRegistration",
    "BluetoothUUID",
    "BrowserCaptureMediaStreamTrack",
    "CropTarget",
    "ContentVisibilityAutoStateChangeEvent",
    "DelegatedInkTrailPresenter",
    "Ink",
    "Highlight",
    "HighlightRegistry",
    "MathMLElement",
    "MediaMetadata",
    "MediaSession",
    "MutationEvent",
    "NavigatorUAData",
    "Notification",
    "PaymentManager",
    "PaymentRequestUpdateEvent",
    "PeriodicSyncManager",
    "PermissionStatus",
    "Permissions",
    "PushManager",
    "PushSubscription",
    "PushSubscriptionOptions",
    "RemotePlayback",
    "ScrollTimeline",
    "ViewTimeline",
    "SharedWorker",
    "SpeechSynthesisErrorEvent",
    "SpeechSynthesisEvent",
    "SpeechSynthesisUtterance",
    "VideoPlaybackQuality",
    "ViewTransition",
    "VisibilityStateEntry",
    "webkitSpeechGrammar",
    "webkitSpeechGrammarList",
    "webkitSpeechRecognition",
    "webkitSpeechRecognitionError",
    "webkitSpeechRecognitionEvent",
    "openDatabase",
    "webkitRequestFileSystem",
    "webkitResolveLocalFileSystemURL",
    "_getOwnPropertyNames",
    "con4",
    "con3",
    "_defin",
    "_join"
];
        res = res.slice(parseInt(0, 1000+_random()*100))
    }
    return res;

})
let aa = false;

MutationObserver = v_saf(function MutationObserver() {
    console.log('MutationObserver.new', arguments)
    this._func = arguments[0]
})
Object.defineProperties(MutationObserver.prototype, {
    observe: {
        value: function () {
            console.log('MutationObserver.observe', arguments)
            this._func()
        }
    },
    disconnect: {
        value: function () {
            console.log('MutationObserver.disconnect', arguments)
        }
    }

})




window.TouchEvent = TouchEvent
// if (ENV.navigatorparams.useragent.indexOf('Firefox') > -1){
if (1===1){
    window.netscape = {}
}else{
    window.TouchEvent = TouchEvent
    window.webkitResolveLocalFileSystemURL = webkitResolveLocalFileSystemURL;
    window.webkitRequestAnimationFrame = webkitRequestAnimationFrame;
    window.RTCPeerConnection = RTCPeerConnection;
    window.webkitRTCPeerConnection = RTCPeerConnection;
    window.BluetoothUUID = BluetoothUUID
    window.BarcodeDetector = v_saf(function BarcodeDetector() {
        if (!v_new_toggle) {
            throw TypeError("Illegal constructor")
        }
        ;
    });

}
// 44 funcs start
// let funcs = [
//   'XRHitTestResult',
//   'crossOriginIsolated',
//   'AbstractRange',
//   'RTCDtlsTransport',
//   'BarcodeDetector',
//   'EventCounts',
//   'SharedArrayBuffer',
//   'VisualViewport',
//   'FinalizationRegistry',
//   'WritableStreamDefaultController',
//   'HTMLMenuItemElement',
//   'HID',
//   'CSSCounterStyleRule',
//   'FileSystemDirectoryHandle',
//   'PerformancePaintTiming',
//   'onbeforeinput',
//   'ApplicationCache',
//   'AudioData',
//   'AudioTrack',
//   'DOMRectList',
//   'FragmentDirective',
//   'Sanitizer',
//   'onselectionchange',
//   'onsecuritypolicyviolation',
//   'structuredClone',
//   'XRHand',
//   'Lock',
//   'EyeDropper',
//   'CSSLayerBlockRule',
//   'ServiceWorkerContainer',
//   'IdleDetector',
//   'HTMLDialogElement',
//   'CSSFontPaletteValuesRule',
//   'CSSMathClamp',
//   'NavigationPreloadManager',
//   'LaunchParams',
//   'content',
//   'IDBFileHandle',
//   'BrowserCaptureMediaStreamTrack',
//   'FontData',
//   'ReadableByteStreamController',
//   'OffscreenCanvas',
//   'MediaSourceHandle',
//   'XRCamera'
// ]
// let funcProperties = {};
// if (ENV.funcs && ENV.funcs.length > 0) {
//     for (let i = 0; i < funcs.length; i++) {
//     let funcName = funcs[i]
//     let hasFunc = ENV.funcs[i] === 1;
//     if (hasFunc){
//         funcProperties[funcName] = {
//             enumerable:true,
//             value: funcName === 'OffscreenCanvas' ? OffscreenCanvas : v_saf(function (){})
//         }
//     }else {
//                 delete window[funcName]
//
//     }
//
//
// }
// }
// else {
//     for (let i = 0; i < funcs.length; i++) {
//     let funcName = funcs[i]
//     let hasFunc = Math.random() < 0.5 ;
//     if (hasFunc){
//         funcProperties[funcName] = {
//             enumerable:true,
//             value: funcName === 'OffscreenCanvas' ? OffscreenCanvas : v_saf(function (){})
//         }
//     }else {
//         delete window[funcName]
//         // funcProperties[funcName] = {
//         //     value: undefined,
//         //     enumerable:false,
//         // }
//     }
//
//
// }
// }
// Object.defineProperties(window, funcProperties)
//
//
// // 44 funcs end
// let funcs2 = [
//     "ActiveXObject",
//     "ApplePaySession",
//     "File",
//     "MutationObserver",
//     "Notification",
//     "SharedWorker",
//     "TouchEvent",
//     "XDomainRequest",
//     "_phantom",
//     "attachEvent",
//     "callPhantom",
//     "createPopup",
//     "detachEvent",
//     "event",
//     "external",
//     "fireEvent",
//     "frameElement",
//     "globalStorage",
//     "localStorage",
//     "mozRTCPeerConnection",
//     "mozRequestAnimationFrame",
//     "phantom",
//     "postMessage",
//     "PushManager",
//     "registerProtocolHandler",
//     "requestAnimationFrame",
//     "sessionStorage",
//     "sidebar",
//     "webkitRequestAnimationFrame",
//     "webkitResolveLocalFileSystemURL",
//     "webkitRTCPeerConnection",
//     "BluetoothUUID",
//     "netscape"
// ];
// let func2Properties = {};
// if (ENV.funcs2 && ENV.funcs2.length > 0) {
//     for (let i = 0; i < funcs2.length; i++) {
//     let funcName = funcs2[i]
//     if (funcName === 'localStorage' || funcName === 'sessionStorage' || funcName === 'external'){
//         continue;
//     }
//     let hasFunc = ENV.funcs2[i] === 1;
//     if (hasFunc){
//         let v = undefined;
//         switch (funcName){
//             case "MutationObserver":
//                 v = MutationObserver;
//                 break
//             case "TouchEvent":
//                 v = TouchEvent;
//                 break
//             case "event":
//                 v = undefined;
//                 break;
//             case "external":
//                 v = external;
//                 break;
//             case "postMessage":
//                 v = postMessage;
//                 break;
//             case "frameElement":
//                 v = null;
//                 break;
//             case "PushManager":
//                 v = PushManager;
//                 break;
//             case "requestAnimationFrame":
//                 v = requestAnimationFrame;
//                 break;
//             case "webkitRequestAnimationFrame":
//                 v = webkitRequestAnimationFrame;
//                 break;
//             case "webkitResolveLocalFileSystemURL":
//                 v = webkitResolveLocalFileSystemURL;
//                 break;
//             case "webkitRTCPeerConnection":
//                 v = RTCPeerConnection;
//                 break;
//             default:
//                 v = v_saf(function(){})
//                 break;
//
//         }
//         func2Properties[funcName] = {
//             enumerable:true,
//             value: v
//         }
//     }else {
//         delete window[funcName]
//         // func2Properties[funcName] = {
//         //     value: undefined,
//         //     enumerable:false,
//         // }
//     }
//
//
// }
// }
// else {
//     for (let i = 0; i < funcs2.length; i++) {
//         let funcName = funcs2[i]
//         let hasFunc = Math.random() < 0.5 ;
//         if (hasFunc){
//             func2Properties[funcName] = {
//                 enumerable:true,
//                 value: funcName === 'OffscreenCanvas' ? OffscreenCanvas : v_saf(function (){})
//             }
//         }else {
//                     delete window[funcName]
//
//         }
//     }
// }
// Object.defineProperties(window, func2Properties)
//
//
// let bodyFuncs = [
//             "contextMenu",
//             "innerText",
//             "mozRequestFullScreen",
//             "requestFullScreen",
//             "webkitRequestFullScreen"
//         ]
// // if (ENV.bodyfunc){
// //     for (let i = 0; i < ENV.bodyfunc.length; i++) {
// //         let funcName = bodyFuncs[i];
// //         let hasFunc = ENV.bodyfunc[i] === 1;
// //         if (hasFunc){
// //             console.log('body set', funcName)
// //             Object.defineProperty(HTMLBodyElement.prototype, funcName, {
// //                 value: v_saf(function (){})
// //             })
// //         }
// //     }
// // }
// window.external = external

    ;;;




(function p(T){var Oh={},OK={};var Oo=ReferenceError,OP=TypeError,Om=Object,OY=RegExp,OA=Number,OE=String,OG=Array,Op=Om.bind,OO=Om.call,On=OO.bind(Op,OO),K=Om.apply,OH=On(K),x=[].push,y=[].pop,D=[].slice,q=[].splice,b=[].join,s=[].map,H=On(x),I=On(D),L=On(b),J=On(s),i={}.hasOwnProperty,C=On(i),r=JSON.stringify,v=Om.getOwnPropertyDescriptor,Oj=Om.defineProperty,OB=OE.fromCharCode,k=Math.min,OS=Math.floor,Oz=Om.create,h="".indexOf,R="".charAt,X=On(h),OZ=On(R),Or=typeof Uint8Array==="function"?Uint8Array:OG;var Q=[Oo,OP,Om,OY,OA,OE,OG,Op,OO,K,x,y,D,q,b,s,i,r,v,Oj,OB,k,OS,Oz,h,R,Or];var n=["LxT0e5Y","characterSet","goc","INw","PDa2P_1T","mnD7aMY","\u202EGfKLUWvCn\u202D","ZJ4RrzWDHso","GxOPO90KvRec3l3bamhFMBIrvrOr","p0r-Ytwe3Wq0uDXoRxB9cXZBvOrPwP7R","naBLo3bIBZ08X4Azww","toString","LvoBuTOVHJt2LIJK75TX6vmvLgZdVw","PUr7JaZx-mvTqTXhT3Y","jRS1Da4","VWr1DMwGh3na","DOMContentLoaded","global","ZcY6","KHejNf4uvVex5z-yOjAlTX1E","\uFFFD\uFFFD[\x00\x00\uFFFD\x00\x00]\x00","EmrkPZ54403r_w","pJNfimj7IbldP9Q","a8wIgHyLEOVsGoU9","nPVG3DKFSsdyCIdspw","KSmmQMwhoXig1kvGakA","TqYcwU-bHbMsTcwLo5iE2Mv-ZiNP","R0DjNY9R0A","vLNZ3ifYWPEZaNBi94f58A","click","4IcHrkKjHOsGQuJu7NOzog","j_0EpSDLMYo","2ZBI3njyQ8ILX54Ajs7eoYiKYTIwMB06S5i0Fq1dZpv5N5oyrILA7_osiYfmXulrK7vGFyU1QSOjHOEN","CAg","wDc","0a4QmwzDOg","Fj6leNQ","parse","__hC0C_cJflGFoJqrZeQ-Y6sdjBkYRlsFIzGBuoqDt_xdtNm8tWUuOdqqp_lGZhlLKeRUCJ-Wnm1","h7YejXM","fEOtIqcAsVaBsg7qaTspWDtP2sWanw","WyPifaR47h_KrRetEWVTGyU","wZsQgTrcde4","dispatchEvent","bGTRcLdjhWme90HlND0MWg","bJcA9COBMogqUvBDtpc","nuNU2iL3VrBCLal8_vk","navigator","2aEmpVa4PJdzYrsbxfm3weE","left","zF6AHsYWg1eP1zOFGxQ","wjDJQIdYzns","VnGlPMwgrRfStXw","-pAvhnSzHw","QX-UHN4FvQCv-ms","description","km2JF_QdyxbH1lbJYA0QYkZV8fn85tCp2EU5jjjQj1A","3xjh","qO4wv0e3ZZd1cL4X2vvY2aOUWgYOAD1tNLE","8jyvYdZkhg","Mv9M5hy6","RangeError","GYAsvx4","MNEPkSixZ6w6LawitQ","HzzcUatfxEeQ00vjd3FZMAkT-oa7q5e3","noR6_h3xMw","yBucW_NDmg","qaAPoHWDM6VYaoUp","Uint8Array","ZzXaYO9d","o-d_7BvSSo9jIb4","T2nEed5kyEbIjCPSBFMzRzo1zsq0oNOH1WB-xQjO_H1gm0GpB1ZLVDzMdQAXyQTewkM","qv1_717HbMNkNLIb5eGmiaLaDkgbTXJaNveDJMVCeO-MHut9kfa8hdQAz6vD","ZQa7P88CowiCiBuPbA","vukqsXv8Aw","fpxu6AXgauQvOA","nW3DUKUf0jaaw1Y","CustomEvent","BHPYDrA","6ATMVZpF3SfmnmLvQQ","yDPzd4JkrEzGvWOrVA","yto4jR3iAbRsAA","OpYklDKCbqIxMZF77rXeq9DPemFQWW5vct3HYrRl","getPrototypeOf","Xx7BVoc","MiPx","EhmiBsggmV8","tJ8iu12qLKYSf_0D0w","CK1a4RvMWvY9asgmpA","_NBBlEixSf1yVd03-w","jUKVGrg","80","RwiKec44yHiLzwWbY1VB","cmjNR79g9Hz221o","n5oSkmrWNIosXcg","b7UwuQSL","^[xX][nN]--","3YVl-hTqMcc4cPQ","readyState","Hvdk7xPxfPRL","ueYAj2yDAw","complete","rOpfyifcOPo3T94zw4bZpty3JFFgIww","File","3Ohd8QDwautQa-9zx-PT6ILSJVkG","l-4pvUWgNOg8b-JOxKmWwcvCDQdUEDI","SGzIStlm3X_U","href","V0I","cmHnTrFKrwP2nzw","hasOwnProperty","Wm_fRrdvzGXpyFPOK0lkaQ","9w_ZXrVYzy3Ul07IaklcIQcv-6auvcmyuUhZ9yf-32dV9mSAJXVRYVDXbzV78h7rriEAz5Hp3ZxgnSrBt9xD","lrIw-EmeJI0","cBvKS7tRzxrfkUrKZUFXIgU67w","TBiRVOFBuDU","FBS5d9cu4Eu5_3f3UHYqX3ZG2N8","Ph_9PZhiqg","KoUup0P1eaw","OAzJKOZU1CqHlBOrTUFKPwk","vNhs4he2P8B3bfYQm_H9n6fWUBYFHSoTab3JVsRNBqbSEOwqkqO3icdHluw","cLlk4A32etVPEbQe28ejibONWmtUTQ","ea8UuXSmBrkJe81w","tySNRP8Z1jGP6U7iehQZ","PwGXIMcOo0aB5X7SUmM","brhJyi7CVfpoCp0p9taer4-9dGx6aUIvHIyZVKdvHo24GtsK","5EKvP88_oD7ouwed","RWDGU7lUxFrk3E7TNGpGVA","open","I3agI4sD2BHNjyqLNgxDZQ","HfZm9wQ","ybVk6xL9ePxTFg","G2SWEu1_4Q","-CSaPqhY","Uki0IsQ0owagp3DN","beIai2WLE6BdU5R-qsvAt5XgK2IKcQRgT4HtTfY-Eo3hN9xLm9XSs_9BvJHnRMosabHWFyZpXHLQftM2FSveCax6NA","cniQPvMo","pMMoi1mzMpofW-BVkKH0yQ","0UTTbJx-2z_TvCOrNA1sYA","ECOeGYxOvlee9HHvQA","Brc-oBCQWYY4fb1BhQ","Intl","44YUvFCRN5o2T-xI_eI","Error","Q1eKAa46","2JlxowPabssKPA","crypto","jXeSGPgYhzvL_Q_2N1RO","IAX5eJhp6Q","GkWBG7Fagg","9VzeZrl96BjzmT22BS9jRmgF","submit","PpYCtXabJs01UuZb","0a5O8XCTW-Qcc6ts","return","Fzfo","__5olBHlbJBiIKwXg7uOyOrRDERGaHNSCg","IE28JcA2riH37wr8Bmc","RXSWFrU8","sVs","l6Ndx3vg","P0KtNc8tqhfvr1U","t-FWwSrACLQ","eyruboxj6QDjvWjlbF5WJwAv7Iu6pte0rkh05Dvl3npT9nmCPmQ","xVo","AzL8cOd76XCu-mu5Bg","4yOTSccEtCiSkwbAdw8SRkNr","gK9H2VbjFL9YAIdsntXStti-dA","1ftryUfie91gPZA","SVyEBp8","7nXBF6RM3Gn0iwm2Jwg","location","naFImTrPNflBXY15","n85893O-","dbI1pA","24RD3XrKW8IVR8ECvMafrovNY3U1NBw0WZqpBuNEbs24N5kss5GB-_F3zIfgWftpP7c","b5I8sjHdArNrYsk_","Xz2oKsczmA","dz-WAvVdgz_L20O9dg1VaEYs6bjs","LQaVc_k1xWOX1Q","CFCcE_Bjmy7TiVy2dBIBIBNct-m_99zY8Q8P822hzBd0-lL7JW0EISjsMw8I8RK4k3c_yvWPzrVrokGH1YgAuwLoxw","cqQxt1jpM8p5JrY","JeF2_l-aWew-NYhN2p3wz_TBIGJVTHpANf3OVOI","uy-YO4Yoig2Z23SbWQdjCnpthI7h_5ze","hTauGME9nXq79EvtakoRIQI","jS8","match","zdZF4m6WWuJ5Yg","AwqRIMMljWGLxlL0fEQ1LAdm6A","kGaQPaJf_iTH","epg_sg","oZEBunG_TpwaG4sj7tTHq4y_dWoq","create","OmqXCt4ZnwGq","XDn8a9pfmUm2","start","xJhBymD-I9IIaP156w","0FmHBeUMnD31lkCVPE8","nshh-WQ","\u26CE","1GSCLpEnvDLssADO","N7pE1gzAUOc","nSP4RfVN8niAt1XwTGlGJlpJhvHM26D6r19E","ceil","at5VyzfRQNZtDa1yus3S","jbFi3U-0R88kS5BAjIU","g8AcrjfLJZdGPuYD-eH09NXlH04cWEsrNZPoZNJjXfLi","iZoUow","Xw2fL_tFuhi311M","target","AqE1_FY","sxW3H-svjBy6iBM","HmyVJ4Y-hQLs","nKUOs0SnAa4GeNI","Infinity","igP9aJpw9n2t-WA","3QbbXr0ltQ","RAX1foJ5_He0-kDbRXxrGD062Q","lH-4NM8","CsIugH2H","-0nfObVm0BnSuzylEik6","now","host|srflx|prflx|relay","Z9cIpCHsaKdRJg","DYBT3zvWWqFwEIo-rczFt5infGQhc0p0BteEWrJ3EZ-sDw","isArray","QpQXpxy4Ep4QYuAUwZnqnvH1","GB-2Gohvkw","U37ERJkLhmzW-l2hEENbIz1244Gcqaas4A0","t6wsk0OSdLogN7EU9Mj7mb0","vKZNzzbMXu4RUMFx6MPh-528PTA_Jw4BDcqfXO80TsP5c9Fz5MLA-OV5pcnbCsMzcvXmUSUVSBy1AqEPQxeOAKs1Gu87Fq4EnS7I2F0Nq5AjHG0PorfRIlk_PjGprVziQ2qA2oir_Z-YlA1WmJwki4rRsFdsIVGHW5c8Q58BTQtwNo62z4ViDLTe8v7WLGJTzeRDd-u-NnqoX_BQBY-YsvLskvU9Bl3ON00b","j59i7EXdAs4kfA","tPh89ETNfdYNA7c0-Nw","LWudAOFZlw","[xX][nN]--","aHicHuRfpDE","u54f7mq8McYAeeI","m6V17DfW","TuwxjwXrGZk","glXYS75f2kH73R-cYAYCdkdTuqLj5Mb4uk54z3SUtAYi_Unkbk5leiemR1Rzzw","self","asdt1i3FYv1SNw","-_1P4lXAQcBCO7hbr9Clxq2l","xcZt5A-ePLkgeKUE0baeuA","t8Atmn-MbbA1c9pgrrTR","NrIZvwM","method","ReferenceError","e-lB0w","seJutwKmfJRlCLE","vQ6MPP4Jq1M","oesQu3DoFpd6Tapxk9U","oZh7wQrxfPsBEQ","YzSRCaRwuBfQ","c3O1IOJstDDbhnWofBwWLw","7TnIS7dN0wnvhBShJV9RKiEy6Oq-8cS8uA","YJM","xiy6WL8ggCaa","push","waUFu2Y","QROjdNgy5xyo-yiKB3c","fINRzgfMTMRv","6kXJWa9G2Gj52A","tXWwOZ87pxDqoj_2RThofHQlspbGweLQ","r9VXyyXyRecUR-dd1eE","b-BniAzuRJJjL7Y","r6x331KuB8EiQ5l0jQ","QUyxMNk1swHxnQ","hagPxnueV60AANVnuL6E59DvbXEqa0RnCd6jMq9oTsI","dYsu5kuvO5kvaq0","Element","setAttribute","documentMode","RCG_HtABoRim5HDHWll0Ci4AiIOarbqW0lYJ4BLy6DQfrBGxUk9TViK3O1V1-26l9T8j6oGzmaYDtlz83t1j31HGrW6YsxKYZO8FBdfLERmth8OZI0oGoQ","dZc-qk31N5AKdeIYxLuk","0MBm-W-pWPU","NOgguWW-J8ghd6k-lp-Q7sDyLnJwagx0c5Q","eNQrszKAIOYUMptd9a6zwqrX","o-s","RErRPNJf60v1ljKcdl54DDYM66U","gO97zSTta5t7IKU-kaPT1w","_9BezzbaUeZtEJokmojbvpv9M3wPbTQiS5nsTbN7","string","5hzbR7td1kL0owiGY3wcJhc","q9wGgGytHr5bAcpE_Nfb74SuJGoEOx0pBsY","arguments","Ssh83wDcHv5F","(?:)","zCnncLc6","h44Q8AmCWv5RfA","HdhM-XWzZdZ1Tto61w","vm29eIQ","C_l-_VCLe5N3EQ","error","sR2rGPVr5h2wmyk","N3LsLIsa50T6","48tghFU","Oh75P4Vu73DG","zIQutw","8mHgTINYuEPg5n3RDwAmWXtFg5fN7e-RylQN5hX1myA","thebFe1h-g8","8Jh5xE-bRA","zwuwOIQOtAk","LfsOuk2cA4F9PZ9_9JTf","w0H1YaV4","ZSbfWIp79gD1tX_gZHpFGQ","3kE","ODX7N5Jl_k78v3KHOj45BXNVgcWWsvTCrA","ApFF0w7OQ7pJB9lW0NzMvZCiUDo0MA","UxmbFPsJyDyMzw-vcF5OJwM94-ertYm5lg","DqF9nTs","object","multipart\x2Fform-data","\uD83D\uDE0E","YoZN-zqiYNY0NOMoxo7ItoXrY1RlXB94PLfqastrXQ","Object","mYsH0mOKKLUQQQ","IBmlKdkxi2uM536tLg","-LkAk3LRFLo","XR2HBohNtA","exDKD6BY","4pZDokL4c8Yo","9TCbAvVhhzLJw0C8","QHzpcJVf7TbTkR3HQ1NqMQ4l","tU_mX8IT2WXL","every","UN93_3fufQ","JS7WW6lL1VA","LmHJadZazko","forEach","bQz1WPpr9nWIxG2XAWMgIgFG0Pio","WFSJCulAmiPJnxvxL05OKgdd5_qlu4_olkgDmTO3igp_8A","qP4stgGSHIJGQKUJnw","9IVIxCnBWe16","Jgitdvxeqw","ewyiGpwZ","unescape","MyqJPoNB","hMdgpEqpCp9B","rTaqYOEm9BO4","wMxJ03W_XP1XAoMnztDAog","0H-OQrgumiX56wesUXxOKwIdu4C8jMPsrlp_1j7x","apply","Xf9q8g7jf-pDI7YdtKDuh7Q","5mWhOZpQuyy4","yu5a1CGACfZBW8AmrcfLqZHgZiAzKxwnX4uJFfJ7MJ4","FlGnIYc","TfQ2o0nHP6RkFc1w6Q","L81w6FOjRPk-Jol-","RZJ401G6GeFDSg","yZQFul2S","fyPaQItPwW2eyDKgNQMDOlc","gP9__AGvIMgrV_8ChPnojLX3","IGqTI_xg5yLs9i3rA0FLV3M","Cdo4mS6YE6RUDqBEnoo","getOwnPropertyNames","FRSaCa1zoQ","3G_bQ4wksGw","Nl3ZCrMxmQ","V842mko","lqQfoi-oTYQWUN9DnZr6jeD4BA","createElement","true","LUHNQfp1z2c","N3HdWKZgzG6GyVTuekNnfAE_qKu6t6e-k1oKw0M","YlntYNBR8WDlrw","DTeoQukf1CafjUqZ","_VTsPJI","QCWLS94TyjaW1ww","AFGfU_YBmj_FghncXghZJRA-sf2XntzomUIx3m3vi159_UbBPRxAbXSEIQVj_U6v_WVQj_r0iMZ31jDXqJwC3Cy_6QaiyGq-AslAB--OKBGP3IPJM0hUoNvng_p8Jdg10YJFIW00IBxUVpazImHaO0oJe5T0lIcS9kLxzgY","vbBj","join","D8Bk4x38ScVMe8RhhLuj3w","map","6lyBXu4joRg","texq6knaYe1nMaUF582M3O-AVElTSCsL","toLowerCase","FOQ2v0nkG4VBKoROmw","RX7na9tb8Grx","y3W3NY4C3w_ilAeaEAdbeUkO","Hel$&?6%){mZ+#@\uD83D\uDC7A","31K0LNB9lga5hmDRRm5M","1eoSnxGpDMc2EbM","eswtsG6tHYJpN7Aoko6M9Mfb","a0CHCe90rTHFl0qrcyIdJg5b","\uD800\uDFFF","gVn_Q-9G7nO3vBe7G3ZP","HNIUvEevP5ZjJA","GhbofJJj5lO_sFaBWSkpQ3sIwpY","yhqeL9ISqS6ZqSynMjEHK0UZ","lV-TE_AYwCSnjQb9LB5J","SSHzZpIw3Vqx7zqLDz85DHk","-G7AQ7FE_XacjEH8YUAEYR0-4rSutJjr21cRnG3pmAYysQY","tagName","7RWlMZRFgiOy4EvBNFczEDEz-7mBmLU","LBCND-EZmCyU10vwbE5VPR8xobq7uoO1y0EY2SP12gMuphexYUVKeWH0PEBvzEG-7n9izKihjpcyh23O19dZ1W33n2illyqwW6xFRNeJNh2X2uaIJ3sQtpno6_drKNt8wu4ZUzxtfxIEHonLFSjiAA1UfJb44YZSnVWj3AC1iJDsuVQCCQfvkD5ab3Ni6unUSCiC4ytp47xq6zba2wgCPX9qHUH7gNBS-4zaru0k3DkIy2wZw0PiANrpIup2DJwySBhuZIpE51sE65qK2-A8dybdDo9LabXmhCHe2GGL5HXoUa13G2rwIRaZSXuK-7Yyp6A","closed","fs8-qzSYIsASPI1z-6C9xaQ","5Zpj-ST3fA","GDfibw","m9whu3WuMpcEcfZVmbny1NXdBwA","5NoXkXGOIoQpPcRSwPfeyLE","LUWEBv8Flyfp2UmzRRJcNxk0pPinv4blmUQoxTL1yhM0rF_UIQg3diS6NEg","YeRToxXFWMQ","Cl6jEYtMvg3JtmmKdGY","N3C2M_Y","r9x3tT_QeA","getEntriesByType","any","\uFFFD{}","RBrAR5pfwirD0WE","charAt","h99-7BzuVcVXM7E","ybY","V50jw3aN","MMMaonetDcc","73qeKvw90gHkhw","pLcy8V7sCg","DyvqaJFr-UmHtymNBA9-QnJI99rNxfuM6zpJvVOVsiwH","String","PTjdJrd9kU-pxw","parseInt","DecPjWSGDYNJC4UG-w","ADX6I4Jp2FCw7H3wfmE_BWNO1J7--LWN_W4Rsxic_34fmGagHXIvA1nqRGICiSfZmEU54Y6R76MF","L1bjGLtU7iTevg6OPA","sPRq9h3q","_-pizQ_PZ9FpBqkNn7bUmvyTH1dbeA","Option","s8MCgHmDEaFeH95s4s_n55u8PH89LQUHF8iAE-Y3Ts3iJ7Q8q42Pt6o26tDVF9U1c_2pSC8ZE1OsLqEMQwraZeR6VaB0WeFLhC7O0xIPpZYiW3QPpLyXbU1acX7m4hOtDCXPlYCozbaFmgV6mJ8klsWD_05AIVKHRsNZDNBOAkQ_ecGkqsotQ_uRvQ","sETDbJ5m2A","6MsQvjD3D5gaTA","E3nRHbpm71TCuS_nQ2djIzAFndi0pbLSpg","7SLdT68TkVff0hCM","RAKAFeUE","0tsYjXWbBJp5U9V_-tjN0dLrQTxuaAx0DQ","CSS","HkU","St5f9TM","Promise","dzz2foBi9h3XslTfcFlXPQc5zbizrQ","form","nmi_P9wy","uuNA1X3-fohwFQ","i3e5LsQnrFiE","replace","7rlU1hP8fdhE","yo4EmTS6UA","ZWrecMBuyEXTzC6DLBo8Tg","j2bPRYhDvWjo1g","7rIagiugHbZJ","HxPXTfYQ8Hj1tgKdbXVfBQ","sF_LLLY","o502yUO1Zd0nR7MG2_Ls","J4pq4CU","eXGeI98soR3TsQ","RlidG6Ih","-2\u202EGfKLUWvCn\u202D","MmnsJw","Ks4ZmkeBB8UcRYESmYOJ4g","THHXdt1rx0XW1CzdC1w8SDU6wcWws4mK1g","9UenC7UIiTvY","gFGfEr0O5g","jakCjjO-EJg7UsBL","J23JXIBAx1zT1Evy","indexOf","l-phrT_zUc9rcuIygw","B44kniSDJ6RrbMtj2w","wZMg9UaCag","ylWcI4whtgbgsB_AfgJIUW45opvd2-8","ENoIiHWFELhGHsERud2qv9k","GvciuwikVbM","VA-x","dyWJF7Mgw0M","CaBNhXLnQaA","U6d_1mbeCN0nfLNYyau4lA","8AXtaos","0EvOco1zzwI","5v41uBW-JvkuYLJa17COxA","dfxY_gX3VA","dakQpBrab9gQfvU","haslnBz-CqYdFrJPqJ7ivQ","r4hl4RHlRtIpcP5X3sTRspyBSWc0PFcOYdOSHvN_cpjqLvdnjY2q5NVmjv-wcNEiJdLIKCduLiaNI9l9Cw","elGhfpsHtULewDXLb1lxAiB6gaWfqP3V","UMNyzxTRJA","OJJ4pVDN","vy2MO40hhDTMxnjA","fyjgO5R49067-w","p-E9slmxIQ","XA-sV88_6Ec","QpJQznvt","XhrySIdh6g","rvIyo0W1U9x4L-gA7rHqyaCOF2BLHh8FOfM","frameElement","Upd6","n5gh_W2oXK0","KakvqxHYAcYuQO5h-sSDrA","wHyfMoI3tR_4rgf9Ijc","NDKuOMgmsCGd9HeJVCckD3UVwJztiOG7mDQLtA","byteLength","2-FZwQ","25Bj9wrkd4NIObINhPn-oIaCbEcQTQ","","Brll5hTkKe8","HXWrPYUAyA7w","slice","vf4","aBqgEdtBhimx3VCWEg","src","enfJE6hNlUTfrB4","wXKnIt014VKK6AE","call","qBONWsAcwimB0Efhfw","attachEvent","mGT5eIR3x1b5pCjBBw","rIJk3wPPLfsLeakP1u3i1Ojb","T0XhdKVm5nQ","Vq1PwyvNC_sWPp4WrA","HP1h6QWoY51xTNM","9JVZ11T1I8wFSYd24YI","pRfTY9Jgn1eywSfFXDYuGGB3zNCmrw","TuVs9w","E6tS0Qb0dPM","zm6qSIEnvljR4HDbLik4XGsi3sWHy6vYkBcOvg64sCNI9Av8WV4LBWDiMVw","tQqmBrcLsTit9FauZzNWKE9Pq6nUzavitgA","cZNC1DbNSbB4Cw","aAzpcqh9rFyh_HU","Ew_wc85WnEKe11_cbkwUIBE","Rdg","wiis","iv05rk2yFoYwBJM","tt9o4UOUVO10LZwH8w","Image","_6o0","data","U3KtAq8Tyyj1o3mb","lKxt7xbsfs4raLUw3r6xw-DBWRd5GWsGbuyJIpBLe6yDV7Mk9aDz0Jtg2uKDJL9IGpCjfkYGfT6QJ414QX73OphIHPxDNYcM8Qj4vA0m2_Vgewdqgs_xUDoGIxWEwje8P2a075bJwr-Q-HQt4p1K-qqj3zVZSjm7BI4JMf8SCDRRFMDkoqBKKpCny4TaTUIl_8E3Gt_0BUXtV5x-ZqWW29TNuOpWHg","QPZR3m6lfg","ZTn_eJlw5EXemzeOQFY5DjkPyvzG1OWOoDMm4gY","oj2WJ5E9pQ6G42Wd","0d5mqhjtZcR2PKdm0_fikbWNDFkjEyNaJ_7EJsAWZbKCBvV_g6bg3ZcJ3r7XWP0SWdHdcEhKNDOPe8k5RGP5ZZICWYtee9QAuES_vFsrm6wraA42gfboVSNKehSQ2iOMbz_1rJGHnqLu9iZQr55hj--6xjBAGXigSP4ENv5EQzQaRLb88McHOI__wZuKQEx7vpZpHJ-CAAeoFcg2MeCy1oeJ8_9THUO4QGF4HE6VcdrgYPy-c_MGoTZOzhia7iy15L7VwifpNKTwHX5hfh7UncZjjjm3lldMdYtuStAvQccbmFTHq9pazrw94qpmBBvgTwkK229LJmuP6bEEDPm8VRdb9QxmS4GyDc-zCz4DNpi_gSMESiMQqfQqXIROT7cyLwZLRiaZR9VpiAIDybkcnFqLPM4EyqxRkJGypM9F5xI72UtT7UXtQSjjAbU-9jNyFiAPpBk67BZTGP5fp2WKPf9K2_fp1VyGuXal069Gtn9WkgkzNjZCPyKeROOY0siYbVtCvO4b_ZS0Jw4Ioqzshy4TFgOgOY4pGeFFPb5FEmNuUWLneed3O2Elg3p57FTRKOHwvtBmd-vPS16QPcwVKmUSjtLcjPLMfzGPhkp8iNmAZoZCIVrNy0JnO1BBGK3T9XfetI5dHPKN4ZJtfDZJ3MWv0vQ2klsqab1smIwoDZUalVxskqXC1--meZ_6S8PSrbma2uz7JtwduwxvikBRiKu5bUFrLos6bL0a_ECrzo-YF70Ci1das2EhZHUKUXOBtCVLV2aaEFQ4-uL_9nvs9ffs_yAVotwDg6XorhS633DjmT9mVfNdP6vJ7Po39zHat7dNtM9MwrZLbcJh9_iqj9aUUUxqgavpQnkAuUllTED9sLB5aVt0hfIna_7RSgLxqFRQm1jjLMtKOYb5G7Y5tOsRs6pU5m1KTcKZY6pszd0bgH9Em57Sx5OUR-eVoxN87464T0zpNJL6xo5waFTL23rq6Ps2R8s7WkZ0vK8YVJoKvSZdyxmzFi9CGxIzTRGSjz6Nh_IJNw5hUIZg9A9G3oDl5iJALYG5JOhTH2yb2OWFi-ZYf8T5VFUdDAj-LQLTnBjJARMaKdY9S9eKb1-V1DnlP2FEjmv5TnKrSgyzoHqpfacvQC2AJhznJWsXFTskXhV5a7Jk-BTlbdpSUciYrjd36UL0wV4gGNrffy3oL4FFV05MPQjLAcdyLLMXdaDLrc_3hDlQ86D9DvBH7Uzy6Yzxby-QwqajlMThjZuhMIGDr0-k4M7NwSR--ysV0Fy0kUjD2kAvAvwYPucZ0w1euUZH3OOXCPQzYpqyY3p05dsUAY8OlILl-obrAquL1ChFrThZSCqp-8izxz2iBYs5VusTtifKH7vn0owwfCpS_zKCAt934Ui9cfqRmGX9j4Gj6V8WHYWOWZ673V2_vXzEVHlLdt1M5kFzq9nag7sqccNLVDsds9w6SN7ul8sLOGf8OgM_svUL-uiUG1dRt6zUxae-X7eVsI8TaNIcB3Ucpwoq70hChZempTBZ1rurxOAiTLM6p--uNbgdZj8nslfr4bgXwGulg7nwIKeOhMWf6vv0CDgOdY3EgXNgk5UCs6Wm00bMd3KHlm17odKkuoNa5Wis9zgbMkaWq6LU-UIYhxBINeP5bJeMc2QT3uJparr6lDuPma1BI-Cbp_5aQQdP0I0gleVaoIbqxqhF-nNYbq_MHtfNXWu-rtkXc-8XUOLnmCg0GHteeiqyXkiDqWFUeiFJdTxUsCnHYdmKeXbaW6rID4jGw-Kv7N5o841ZhJAGBmQgLsqon7uUtYC6_dUzy5McAatstgNtzXc0n2l0GQC1Du8Xjt5Q_TpsogqSozjODFSOj7xx83l84Oehbp_hI44Zw3m49WhV2vdSKmcrbgHF9Q4_20RwCZTM7YZDAxG_0FpY8kxg2ZwzJaoPue4fzqI3GA2KPJTjUTVN-Moymv0JUlJBtzDO2KNSmOFiesY1lZk8o65Ad4j-rxIcVkO5HS1PYpU7LqOqNtdl8IQlVdY3RDQ_sNqHTGOmLHoo5h1GXHZpaMKnOBGLbQqbR6CQqBrl7n4m7qV5JB2m09OjOiAPLILBapbYsQhVLP5NXF1Kc2SLVss4gvtwmdWENw98lDzeCgtk0JWjqjlvNRuRTplLxAzHoNT8jPqEtgpVxvr8zPYCbhOAQPFzV-bKtIYPDFIp_5gX35Wy2zEtY1n_bZfGauPT4GORHXPYaWi3YTmg2fCUobV2RIZESEsSkeI_PPjDJEVykVoJOC3aVPlve4Kv1n2OSjj-WHgr6KIK2eOCDFf9cQq6DcwH5w7e4jem6gDi6lYpmTOKqSBpy938O-dXZl6AWGfQH7ckROWtED_2js5nncwMnmb6II4jQlt7fIxOjOFQgUoAgZjl-7vxtFiC_nsLBlo1-b_a-JTxH7VmV-1cZDfWQyhIhN5qsbXIQUKKIi08qHK6QPSqFueSVP0q93ATxuLST_bB_i1LRtn1yx4hZGK7gArY4M4xQfyyCrqa5_ICxZVwgmLcd4YEIXs99jJLrg4RCn2gehoUSiKS3TgWNYlwg8B7hypeuPmQre2HTQ0vTLrRXmNf_aLXtxxjuVBkpxAhb7b_UZdA9uBeQ3DSNelShc0Ad7XyjS1o2KCPUctm47W5KaVOP-UIf_nOIi-Ybm5WygCWq4j2NkMMNA_7j5f3ATNAbHUW10WB5ScjBfIe2j0hrgivlgCb9lPJif65kWe-2WvY8uphcpu4Lj5oA0zAbI67wgvcCaNk9HsgNUOO2zuM72967eiyFRYsm-w_6X8jw9dLIoal_XmKOnrysHSww0IKEj0YTqyBIlCXm3Vg789OWwp_Ntl8gSPX6cBWz4-DoMU-jV-l-ROghojyxvyw7vbHHp_W1HRjo_wI_nlheKFOoayqM4qaQhvWtfvNAsywFTFteicrcrhFdGI2AAEvyxls4fyeNumsg8rrLP-8UFJ8vBfnKqaJS6tJBaetM88cF_X8vVsWly9tQY1GytlzXblcGxiGiYq2mBIqmiCzstjbFNtlM8077i1gGrRVPnSro1sUV_bJnTD6aopTHfIaqhz_GkQjptcFlJeT5UP0T2t5gD_KeBOJ_XffsSH_bz7tuEhD5JSdD5uKn3Bfj0HUQEakb6ABzh2jztONjpaI5XflHVdGRP4b1Ig2Yx9BeJiDMb0x-UkBXLDRA-XljCAvrCHd_t6xS8CvxcFdJqibIegwTt2Uw7cbAKxAvCPnm7thxJ2X5N3d7agOo71MOB7mhyKulmTL__R12l6MYhiMhWqZRFEXeaaCk5g","pLZB0kWKR5w0AZF1","UNDEFINED","3y7XXqwY3nuY3AyfeTEcdBA_mQ","qKB04xbvfe8L","2M8rv34","oa4T0Ge5Cw","vsVhqgm0Z4FmOqEciPn6nOjTB18VRzhHK-_XfJNQIObeGvN9mOPB3IYWxKDFbbgB","2BzTRp8Z8HDwgw-_YEQCPx08","58VhvAr_MQ","kMFFzh79fA","getOwnPropertyDescriptor","x58qqkDnYfUk","8rgWgGqcI70","\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67\uDB40\uDC7F","4AXjecBFuAo","m9w2uFyheJJ4M6wQxvrq2aOCWwEKGntf","some","JxeOG-Ib3ymA0A","vM8SzneBHLdcEN9x-t7h5w","eZlf13L7MeE0","cZ401meOEulXHoU","hZkh9UniHJc4c_wdww","cfpj3w","a_RX1zOwBw","Yl8","interactive","naB-qWjlU4ALJw","all","FALSE","Q6Aoji6UY7MnIYpi7r_Cpt0","K_UKnHyNH-AgSw","92PNQLJL6HP510HdPAAW","input","TRUE","azTbd91991q660uZa3YPBTll9A","8QS6J6JT","WUnOZ9xNiGLaiwM","bPJFxynRUOR3R9pbqt_t7JKkKnINRUZzHYn7fr07Gt_wINxWkYmP-KRd9MjfC886dfbKEiNaUkihe6IUJB-ZSuonepUvUK4l","PQ6_Zc4d5x2ju2Q","SmHkfqt2yUM","U7BO0CDUA9MrJ4MPrtnaoIw","3zidDLU","6wfGRL1H1WWd1huiKAsjMkNj87vi6caehgBkmDf2kQE9tkHSY1ZAa2PLcUkojxTjsTsI1e2t1pU7jCbT6tVckz79s3iyhz20ZOFMF47Bf0TDqKvebjZD_Mft2O9gMqFl2JEVQjhrbh8AIZKHQWbsBAA","PuEqpQOzMadvIeZ51bC6wg","constructor","wPNZjgHCb_tdUdwKusvXiYGvX2lA","f4BPx2n2YswUW99xl4Oq0g","38hJ9miIdvBzaw","console","^(xn--zn7c)?$|%","encodeURIComponent","g6USj3rIWcsXEIh84Q","Z0WsKOU","STWVbYMw3hs","n9xxy1Pq","d6QLumX9MaUGY-ssv7e-vIOqTzJ0dgxfFb3mYsxPAw","4QXoYaxi5EOq9wGIFCcmCA","--Fz0y3Xd4VuL5oknrk","1yg","wgGyO_A3","ZBvjYJ9-6kSjqw","T1PnMpRF41XItD_ATWBsJDwT","querySelectorAll","cos","DB_4cp5orFyw-ng","kpA4wXmPF61UGYIOz5KW_w","r45d7n6LesYfYvc","_3XoTJJNrA","yZpbi2vmTqIOJg","XRuFOcg","VHWrON0qpQY","parentNode","SmWMCbxag2KdzUw","wfFmxDfifsx0J64x","4vUSnXCNcoNuZt4","2nLueZN33EXnvynWBz0gTzlVwpzOzODQpCF3ukHTtWMIwX_TRywiEx7SUyBJriLInBEmpdvJ7NRM9Q6morgwvTue8ADXsUXF","w8l73C7AedU","v_EfkHuWRQ","wcBcmQjKbQ","RptG_lXjIdgDVA","r36xd4Mhvzuyvi76Xyo","PUOjKA","Q_8zpxuZSrZWC40Hk4k","HlitL4AEtEi09mH9NzM6QDJUj97eiLDGzjggkRKIqxwujAW1VQ4gVDKrDkhOhiuWwkR9v-rRpeAb_Uw","99dnwHXaMOZzVNIrsfeO-ZWXJD41BzQ7LZ8","nodeName","\u202EaKhiQyEym\u202D","sort","6\uFE0F\u20E3","s8gFnjKXErRmVdwnzJ3S","OKBozCWITuY-DtYJ","F1aSQPEOxACMnkuubFlRZDw0","_BOHHfkijUKVjxO_","9","Vespmh_uDKN1BZZQug","70","RFnyat9W7Ef2oTqIX0ABV38b2MTD3rw","S17NTOFm13zGkwGSRUNLJg","jSHEdeoJp1rw62DqNg","VzW6fMQUwUav","cIo_83vmK4g","lRmnGbUdvnCq5EikeyQ","bind","ZwDkesFOlVuWxEfD","AEvJNPwJvULqryvM","lt4SmUqOBKQy","DV_FO754xTH4qiy1DDcn","BWnFGKdUnH_QjxaLJUJbIwY4qbLXs4W10w","ZBCpFJF2gSORrC_UJBZm","6wu9PYUctw2F","Reflect","JSON","8QnISrNJqW6L3xD2Ek8Ze09j55yx8vP11B90iX-8nW0KrhWYcQwm","61ThDpBWowa6kGrcGz8","Jt90","detail","oPJZ2i6FTPFbBZFspMLFppj5MWg4NxV8G9WnT6ggH9auIcBCr9Hf5bUp85K1UIkyfuTlBDJ8CAKoSw","DA2NG7wrzTDY2hDxU00HbVd957i26dCriFM","TypeError","svg","60KEGuNElyXOgxrrOEg","XC3gfJA","K4s7pmP0TZYqFQ","YL0qhR6yAIc7a8A","QDWWd9IhtwPrrjypYCgnA35ehbe4","sin","9BHTWPR-9FC1slrw","ODnXOOhCgxyo3gC1","123","7F7ZQr1A3Q","lqxc0h_Qfg","erVr_wPgbw","setPrototypeOf","dKA","aphn9yn6bctcL7kJwsKx","gNl8v1k","S40mpVH6M44keu4T27262eeGThdLTj1TZKqsLtdcBw","_nDiWqhV8ATjjTazDSJgT1oWiN3I","m-kWn3iKEJxGRIE4qq6H","QnvZWfVqwB34mgO1","rJ4liWWfPY8gVw","7c1M","hoIe13-HCqYgGYo","fALHdI9k-gL7pQ","substring","OjzjYcol-Q","M9AspmioP-o","itZv3TKLBw","BpVcxzrZ","JA0","0QCsGrZ6iT-0w1M","onload","application\x2Fx-www-form-urlencoded","ixDFVqJejGvwgESxY10CNxI9reHr4tShi1UBw37zlQYukRjTJg","ArrayBuffer","nbJx8gb0VNg9e_tN-fvWxqiA","ijGGDLohlzw","4TCaBNwCsCu0yk-NGkURdUtnudmu","Oi2hYMkd5lqm_TuPQ3I","lnGxXPE9wXKCwTmOGg","FDfJfdtqwxj993mnFkla","XsQI1UWfBLcdRY1i2O7A4aOmdid1Vgc","-W-mY9Q","z9QvolSrIqs","ZL0m5x-ZN5EkYfVGt5G5yv_IHFIOU2sWb6WQOtsUPLXRJqo6wOjGyZlQn-eCNqJ9RJeANBEVdS3aa90lAnP7P9ZLF8QJfpg","27hGgCvbBeRQQp11ir6FusTodSgz","-EWzM78P","8zyIDv4YkgK7iBetKQM_HGMj","8s5W5x6UOr0","3z_LeeZE6UiL7GmELSUMLwBalJHnvo7rkyNB6EGw-w","Il2pPt8moA","WeakSet","P8EPkDenYp5bH8AgoA","min","querySelector","3L8Hw3-QGaERVY8murCB49L9MTIqfEY3RovwFv46G4H5Rokb7sbp_flyuoelBIdccLKyVCU9VAO6Ha4","ew6JYI4Vrg","9073W_FNoW3-rwKvYnYaZRkQ-7HQi-XysQ","whW8DMge7CWWrQ","K1SjLMQvjWPzqQ","t4g941yvK4tva7MRjA","aA3mdZdytUXKjz6C","mLAS_xvcH401WONFq9-Oq7_Qdkw","value","7Z47iCyKOQ","hM9XvR38DdJne7N8v7umkPnRTQ","FYUsq1avCIUuOoEx1e3iiPQ","CcAYjiiiE5JbD85QwJ6f8ZzTMCxjfUIjH538XvIXN465Jspj54bRsaMzycC3","qdthux_2LoJCN6Ymvqjlh66V","\uD83C\uDF7C","Float32Array","detachEvent","qNxV1TH0ZLBNGIZqx97vvIi5Zx1hLQc","nodeType","bKA9vyv0","body","Q37qR58u6Q0","dKMW","4q8XoG6VNJMs","fH6OC-gT93w","HoZ95BHr","AyW_cd90","filename","DRTqdtZUykWal3XO","4ptC7k7paQ","u54m4l6xOIAwdK4Hm5GgwvPcEBMMR2VEaw","4tIMwHCuNItrY7Z0xc65paCRGk4peW4","J1jzTb5pxQg","vulR","ouhFty4","vcgHgSCGAKhv","YvtanCA","AbAL51-2","width","nfJqrBTMe80","juZs","zUnlVg","_H_ZUKAKkFTi_3OHNHNoATND0oOHsrOP_yI","Array","81PFN490xzTYkSaTAQ","isFinite","5bIcukakFvoKQdRv","E2PHadhxy1bPrS7eBUQjVz05z9E","innerText","73OyYtUygCnJ0wDA","_ow0qxXeG7t0ecU-i9u_g7aGTiAYDj4GZA","writable","Kkz7eZdv7lrioXzSTmpqCTwTksybibbXvXYe4AbK-DwXnnrtFzM8DxeCSjZY7mOa0UtB7pvXrqQH5Rv5wu5j7Emawx7T4VzGLdozZ--2BiSz4ZCoFE5ywK7Q8sdbDeher7JvJUobCWRyaKn8MQfdODwiXKXNg_ByiGyZ5STY1OaazyJ0f3GZsAdlXQVZ3dbsNgi73BkWlZE2nUCsrX50Swkca3DBidZr3rP4kdQcqlJ-_Gog5nzAP-PRVJcAO6QreChLV6gpuy1ynez8rZZKAVD9G7ZxUJGQ71fpzVix3VGFDdsBbRyGV2DvYif8jcBE0daVQeDR4PVadiuLli43z57BY5Lp1Qg6y2st1KGZuQJqCrmN0LWOJmqj1FPY0Tihu5nDgIIHmErzB5jWXyeTD84UtA6JUCWKGQ86KljKIbKdGdbHZJZg26E4k3P1NqG1nbqGPo-kY4jakCvIOfAWsmyKSSc5B9wPJ_4rRCCTPfHeAdqvoZbUoa0N0HwQcgM-y4jJJmeBawo7uYeAAj5KVfzTkIg0sQGfh2nNpyLbwePmz_5x53L4-um7H-znedsGoX94MEfptmJRw9AHskrH6uOMGVpCV2BRrLkRGtziHVZGoECeuYZKTMr5p8bfjSIVM7ECK1KPnH8XaEnJ4unWRko1GzKoR8Sw5ie7PAeyhA-MC9PyGy0Ec3F55gV10QoHJiMTQHplqUKUM9vxCc_PHSMr-dTj6C-ksyKAc9piGxEbmCOXA8XOJun2wOOU3uAVK62N8_hFj863YCsqYOVjZmNzd-CYOFXYJyx2JpotULZDP__rz3qGoShGKmetYLlEdyrZPRzBWD-QyVCnPDgOHREK0sP0FCN71uyIbN772dxyI3Dd-4ukV3K56HEX1IF-L9PMDPhHulXFqhJmkxbyEk3CLSnbePjC31YM6wrIX3vJQPnWBk1MRBxGx3oBKsDxdQdj694g8lk6Yhy5r_BAQfNwfmW52UKzj9HqKTOXx1quL--NG8szsqbck5ykwsQZAbYeVG6el6r3zgnzYJDOfkpDQPHerg4ZgGPJlvYNRmobAm7421Yw8vPP3sh4q5xEFIZJpZqEoViqxBFcpZ8TX61tsNfaBuNj0ux4yoQtPOw36CjuyLMcsIJyqryei7OqyZq4zzv6cJpy4lyAkU4GOb_pMtBpEta-hExB6qIu6UeZyZKevYVRiBzWsmyI7y9RZQlpUabKfDoqqmbZYt9mdgQ4qYsOHTk5G14pWA0_vxIXMMdza0dZSrr3dLmLWJoQD5dcQM-1yimTt3OSTYTRK9jPHG4NgS-X6wQ67e37LB2JjxqWGxBxb1Vo0CsCSqfLJK2Cy-4qW0M6U7Y8jASryGOzfYFs3iZ9RQSuvKyBY6Uipknpbtsp7nJYOK5bKVJxO5-diQ0B7wAzVccjI69E3OfX4EPZaYD7NUVMHS6lpkrV3LWKPB2ewUBmGVyE8eEu-oWhJX2VIXoJyN_PKzpKUCh4mXFJLVPB6F-Gjq64OdW1dcfYSlE4cK_DWSF8YHa8wyCuOGdm8xyDuaC9Pc0kNC6JT_gxHDEnqDQUG1sWQWF9kq6GsylaXuz6HA_NZi01SdlS_tkdH_ftKQUsKRnFe-ERYKyBve0fNTpGcdCMEtbsqzxm9hgWvLGbTXj29DNHA68VFgbIvXgJL2zO1NDHQxe_C2zoNQlBTzbdaPvK-joKukkSwvExNBbC-3yNz3xuKr27s_LA4rg6zNwWfunH4L7X_JfdJKJZ6FYY5_4c_zQXkBJJWS16ZE3ybBPQLxmSjfqpoVg2F3sZLwlhWVytQx2LjmOqFqWtX-rnEOv_h5Qo1XOALnrGY7X_NpUaa5gFqvJISXqtbvfpeGgz-go98Q6EV_BrePLcAVPA4qHgrqVXPcm3SN7vlx1ndw_ZlZlqR8TNbsPzGTih7Xrfa26CWivklZcD5wUlmvXcP0KhAGKX2-_WI6pBcyrMAHPq6FKgQA6iNjLP5Ehvf8LO1s4jlPbMpAmsjgc8qFj2ZButnXb84pLsOEkd0_0vh-ChfIvO_NL7oGRwsIIR8pQS-jcEMpVOZ-C-fC3rsIgGQnVx-qPJr0QH_xhPJsyJ8D_t3_3C4P4UyEKTC2_7B1wLpZH0NPd4rNzncB0wMKbxvLAY2hLVTYNVPlxcRlwiYYn1TmlmU2iLxZoUy2_62HRUPCbGqvSPKgmDTQBhB-3_o_128x9I_WwbNegfleAL6rp35789TXlHLC__nyLWh43ZUUat8z9Lt9_tD9OioqRAwnG67Bw6SvIdipxsl6j7OiKXTWpRgc10qq4rywfHQ58ZaqQ8dZ5rWMOmMroUMbLhWUlp7nDJ88IPy6d0jmf0lmUgirYtKk2hAVusOvBkrx233dOz3EfoKjLYEtCfHxFOYTJrItAiWunEoI29aiVFZh1DijrN3nPE9r9E173oIE_MY3VswoQuoev6Pfwt1zB2yiYy8H6Kf-OJWXxb5H9VdbPCyUtrQ77qwsRsJIl4aF2r3mI7oTMObGyLSgfuCsIW0SDThfidfqHRMZCYofQ08YSdxbAMVZjfky_WVlHvFb-NZCVCbUkO04Wh2zUZi-jRdTEEE5-xedbiIY625yh_9R7efm7JzLgUuH3AGhbLtzN5GaXnbj4H2VH6fWY5oTvSqXud8DhGvLMO8PvZHYkIIwZhuYKovZFzAQB4ybWSrPOIQM0fPrW-1nqARqu_O4dpUMZHao8bCXMjGLwaT_VXYX7--lR-sOv3mcNauRglTZhIliukeeGp7ucHRbMCeOC1K3QltbK6BWOsfeCrDHeAhCB2L_4NmtwyO-A4TPSUmrWC0jJSotgJB-P-ekCP05TjoEfpDvRed0jYWABCBEygBdEydtwmVEh0WGs4cC1Vg0xeSuj1PWmHOL-npDKScywnqQNB5pJIPXVajQJ2tZet57OioTXf_bm9iZWkEIv5OmAJ5GkIClRjomgznof3Mp90-S0A3yCbxSEmp0eToWt0NcGKCfztyRPaXEfm0njUhYQQFx85T5u0Eq4kPRl_nUXtvVq0IKuy2jLTpu4kO8jHyX9ACbko6gHHlX2sNJR3gNi9dUqfAx8NN4NyyavkDqpS94EdaKxDL65T8adRD5vbNhQQlRJRA_nFBNJG2M4T_TnHW5M0WRMCBxQIef5_lsTU3HasRhHw-8rd5hc7pSi-Z8qOj2xdnXx5G_z9K6ZFK0IvxHg7UE7DpSdI_XazxUMdUSGFlSPaK_VrBSL9U0FFJFtFdyeWMG7epItyDrwxRORNdmr6VNcZuYQFH-EK1smfzjQbUx4","w6Q","dIkEzXTXFuMBatF95IOA1oSifjV8KnksXJ2qGuwyRw","mark","3pQPkDKuUJVUVol-zf8","sbhVwD4","d-YchmCc","wM5y5Q","Jb8SrwiyHpAeWvUE0oXlkezjGBxidgVRA7SvHw","6_sT_2OQI8xc","XWD1YsJU6GfsuTWO","URL","9pl95in-bY0","^[\\x20-\\x7E]$","n0S5BI43oyLehRnmTix_VHsE","bccluSWMPP4bD5V286al1Q","load","o6Q3xVqNPc08VMRq58_Iu76jYCs3HQwGYfCuXPxOSNq7F7Y","innerHTML","log","ByG9GZh0hDKOvhDxDy1zKDcH2_Xt","_jPGRaBXzmSGzQ6pPAwXJVlo_7rl89rkwwpBzTn1mg","sO0Sk2yrPpYvX8tG","getEntriesByName","SugH0xSnDqh7W5cT0PjboYibOiwfG0N4Ag","M2TzbLkk8FL4szA","reUPgC6gUPQaX8cN3Jue75z8Nyg3NQs9PN3baPdyUPnVf-w","abs","_imqbKVlzWnksyuwTQ","_XzbK5dy0Uyv83_3IXE","IUH_C-4ow1r5qC6ZfyNbd2sMoYH6","qLca0mg","lug5pke5PZo6JvtE3-DB3L_YA1MGFyUhMA","OXDrOpUq3wnqkDA","lDa6avA_nQ","hALdHL1A-w","fZlt7w3wZ8A","0gC_JI4SrxP7wHn4","N0n0YIV61Wj7","WSOfGf9Dj2DWiBjmYkdaNg1l4aud4cW6vgMF6H6EzHN49hOEfhccNHaMbkBl0kHntWA1","H94hk1K1PbtUA6A","height","Dm-JZQ","GFjMReNpik7Ygw","done","catch","E6YAiQ","C7wYlW3ID-M","6wfGRL1H1WWrmwamLgsXLgAuuOSgttSnxA9X2Hixgl5s10CXckNHc2bLckAilRDmoysmmvqr1N872Q","w2-2POEsmVGi","qNMluVm2CK0DfuN7npv9xg","nt0N2XmYabYDH9cY29_C9Jm1KXNdREplAMGhGbRDItKyJA","fromCharCode","ZgzyadcWnHKi8So","GSDl","document","createEvent","xqgv6wnoIg","lastIndexOf","onreadystatechange","65J__xvjZsAOJL8eq6mznbeV","LoIqomazXpUCJv45","([0-9]{1,3}(\\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})","5nbvRZFtwHXG","ucRzrhaudsBrKK1Wie7umg","AEbxc51l5FDD8271BXpRXTVXmcGsi6rfxWtP8FWApw","acx7sgE","LhCeP-EcpgSg83DmXFJqHQ4HlpQ","RR2DMKJRpwuxsCnTJw1aMBQg8tfSm4zy8GAmoRmilzBs_w","Document","5IkTpEumD9M-aPZ89tO9pYXvezQ","3pgq_E67C54","nvFBxHz6TPB_FYQSz9M","ooENlQM","X_U6o0Y","getItem","lFI","b-E","SlLleZZm2g","2nLOYL5z0HzZvBGgKR1fJlY6qeDxxI2tvHtqzGGKjBpznGDFIHQpYlSBSg","4DfofKFN1SrCnWnRU1phMR45","6zL2aJ4","SubmitEvent","mi7XUr9YiVuHvA-LL1VVIQQ","DzTSRMR5njzDmy_UGFNXIUUJ5vXs7OLv6RUU","7DaYG7Q2w1S32VjvFQ","Math","Igj2YZFv","HbMwhmHGfA","boolean","type","vZ9Tr37ET7wGGJY7","appendChild","WjKINeQ0hSuZ4Ur6SUYAdww","configurable","o4RHw2e3U8hUHJA-3dbwtN3ubxRlIF8OEcWuWQ","aL0SmVmVKA","ZTG7cNsU","xg62DqpZ","IG3uFOI4m2n6hxI","PKQJtBOpBYsFQOZM4dLziubMcUt6b10KXw","cP4nkxvKM681euBZobc","VSQ","-HjAJIR2-FXz5W32NnFzGyMUz-DyhA","yz6PG7w_khk","mjTT","tSK4O5s360ey32P6","concat","cMNTgTLrVvlWAg","hLw51RbuUKosQts77Q","action","RzuHVPg32mOHyEXCbg","5-408Q","bVL9S7cfmFzo","XDM","FKwBh0yFMbslEtkXg9-W8w","Function","mvIhvlW-Oq9LNvg","unshift","charCodeAt","88wuiQTQ","23w","UIEvent","{\\s*\\[\\s*native\\s+code\\s*]\\s*}\\s*$","fjeEDrBtmAjH","gWueE-FcuCbXgQL0","Date","TEr9F4lC9DjAgRSBJg","tN4","-iDCRfhrrHWVwEXnCAkXZEhl-IW2q8q6zBFg0WGyiQVP4QyXYUddfm62","USOXGfUYhDakmAaU","from-page-runscript","className","uznLU7xBsziW5QG6PEoSIA","YIBd1jvKH_oO","2UfLbbp00Q_vkS6yKBxpaEw7qefixY2n","MXbBRuNzxXXegQqlblsUPA1VvP6p-M4","RslEgjz6L7RAEg","do0q91nrAYgZcOc","sfMmq06BVaBYe4Iv5-3v7IM","F_Evigbj","WxPfWw","-HSqOpEU","YqJksQ3wdeYkaLIKkJk","DVPQHagR1yjhrQY","aNZ-thLI","uvtGhQ7dZvV0X8kCodbIspi2QGBJNRAi","LCWrOsMvpBOY5WKMRzMFAXwYwYjkh--dijUGsRzC_z1R","lUqMLaku0R_hmVGQBW1gSzUj","jpE94xr3XbtnFfI","TmSkMYoHqkm59G70FD0lSSxOhsA","LEy-Mc84mWSZ72zfWQ","DFj3UfAhkw","M-Y5q061","1B66PuE5qTGUpyK-SA","BZo","nfl9_VzLfOl_IqMH5dv-oA","SJkXkjemEK4YUA","put","SHahMtow0U_8iWyZbCh_UDowgPjZhIyB","9ohQ2H3GM8ZOUIo","pe8CiVCLHI8","XIk","capture","Ow6QfcEntBTsuQ","tan","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=","E4kjqk64PLENPONmm9z1kLe0WVIE","0TXjdYhi5lGX_j6BBwAGGkxBy4_cxMDg8Cl35A","Y9cLuSXOebJTNA","xU2QE_4FjmKFwBo","status","7qp88Dw","zYN9vEDAc9cWOehYq4i9xQ","qnb3SJYj3g","8xj8Vf9O-nSY12iTMmouIQRv3vG8","prototype","7DqFV-AUsyeXlxnNdR8AeVt-kpCO_8Phl0w","Qr9v8To","y7tdiWHYbbIPJcE5","HOl59zPkWMd0MYpOmK25y6L1UQlMVWRV","KHXWccFewUPD2R3FGkUtUjU9","iLkkuQmacZwmMrsJtLzw3vObAVhICSNZKvGDU8dAc_8","split","nPwKhmabOcVTC9Fq4prM74ilPkE","uMo3unu9PZ0XaOg","span","hlzCceMQ5krw8WueaHFqLFBmnNyKhYK13Sd8ygr5rg","gL5xtB7zXMg0YQ","bVXWBKBLqWLWlQ2a","GF7pa4V9jk3e-X-TciF4BjUej-HNiKbTuXMb4QPZ4Dgtxm_hACwGVkjW","6sM55hw","enumerable","gqx89hjlD_cfIA","\u3297\uFE0F","setTimeout","round","BC2_O8s7nmSA7F_C","HRbAXtZWxiLF2HQ","Y-9-mQPOY59lJqcUlby82OfDD0FFfnhfBpjBKZU8PLPNeNNy2ciV0eF17Ia6fKttJ_bgbUthTXWEc557CgqhG58HY6xb","url","documentElement","bDPeH_B0yWuonlXkCCcAdkpE4_Tv35Sj0QcvhmepiQt131M","4a9c_U3YR8c","fHDES7xf5EM","0YNl8TH3ew","exp","iterator","QmzhOKUw5A","THTYHatF5HE","_cl6","tny6K-46uVW3_gmmOAwOZVhxs_zk5Yvk6w","oMt-6wToZP5acuFQzvHY5p_eKUAeATE","KFPoP4Ym6AjuvSupB3hyG2JG","M3XITqtbwGz4x1bjew","urp93mzKRew","removeChild","X4Qms0Olf55bI7BK","GhutT_IAnDvB","s3TPWLoU3TiTkB3-Mw","UB3sb9V541C7rlmZ","7IJe3TGPD5scAMY","iNA","Event","dnTGJPpe1DbJi0TtBQsVdEo6tffy08DvsTI4mSKThAZ9xSrIb3UpKEjDXDEX1g","defineProperty","9Yo_tXy0","Nj_BIKdmh1K-","SHrQQKsKxTDEggg","Os0nuW-xeqc","gb8gmgHjBJ4fF4twkw","-XiCGf8","GFzYf_Rnj3zRmwadXEYg","V3KmCo8lpg","TnvAAa4V","L6tPxDS1","U7EWgX7QXKMdBg","otAz7FOWCKE","0","UvJK9w","2liuHpgqvw","R0SaCqwCmg","nrcp3l2RDe0","fzjlYod-3RfN","T2H7QvxO4X7dsBP0IA","8oVC0j3FQ4tbGMJT","N1q4G6I3jiv4iQvaXlJ-XGQ","DzrjbcNH83iAsXLUDxRoUWMa","iframe","_liFI6F9pTDc","WkH4fcFC7w","HBvycI1v","decodeURIComponent","abtRzxX-GO4E","tpIUknKDEw","I1zaQr4","childNodes","k9ROkCs","empty","BGahNN4RgyTwn0PGI0VdMhc3","ZgeyLe5g4w","X2k","reduce","pWzpUr58zQ","XT7wc9JPj1OazkDCXV0HOARV_Inospvhig","KBmVffgkn2qe63byWGV3FQ","bJFL1RHbTKpoDpYGt9bZvZI","ePdTzS3Ofu51Vw","X5kFoTHfJq8hJqNMn6PJkA","msVI6wnLbfJGG50e","Zlu_DZ9l3SWciQ","event","osw","y-RckCLXX-RZUMtHqsHTqomneHxXKRkzHdn9Beg","wLk2wyarfNRz","dm3ITLFB4HrA1VnTOQgIbwxm5qn6vMflnRZPng","KAPwdIZ66A","fWb4WYdL8wvthCiBGzh8UXQDmtLA-rSfjwxS6RazriFI60P9V0wcX2a1aR4u-SX-rnlurcb03uFE8Ru7mpgujRaD5ig","om_IXecQ9Fo","1","w2zXRLcW0COOxkWt","QHeGN61jlzM","clear","RT2MKMsqlw","top","443","swytLfNv4Rg","6GfLMsZkgV7Z6mqR","Wuo","idkko2OnPa4HA5s","4MUjo2yhJqpaDIQGuw","F9U","nCrvdMUEz1Sl_A","KVGzNIkarwHK-yuVdVk2Dz5QrIObk6zA82AUpQXY5ng","Ss0YlSmzaYM","XQerFLNuoQeqz3D-G24N","oagDqUOtHZkr","4bdP7VzeUYhmdg","7LsgmR_mGaIYAoVXtZv2vqqA","AXH_YsFKp1f6_XTFbw","2hPdVblCySf6hw","_sIWrT7k","set","PxnTAat93HSCjw","RgHaNeZDxi28zgqgVFgMaRZbur7hq96i8Dhn","n5Yjt1mzNIIcdOFVyeDy","RWrtHJRS9Qr6mhiAIA","__proto__","t6RaizbFSPoxVN4fnM2L38LtbytzXRk6T5jSG7s7Vw","ifQVhCWt","Recstmf5KNA5","WkWNC7p_","_ii-Hacp","WV_IYJ1C6X_f72E","u4AnzVq8KrwRew","charset","4AaYRfpYyGKRvwysbBURXwwkuer6p_r7iU11ty3v4lQ","6izFUrxn_E_x_iKF","CAvtbbVl4kDGoCE","ue9OlBffc9d2YeYcrsLBnp24Ug","222aSKInhHLP8ALrXUJFOhBc","64UFrmO8JrcJWA","cs8q4huaPrtGc6UE8Q","u5xf2mvhOugKduh49_W4","aFbzI7RpvE34pj6UC391ASwDg48","addEventListener","pi7SXYtMlE69syyXO1VGKg","tmb0WrBH4wv1pg","undefined","AlOVD-UInD3Z","G_JviQnVc5VMMbcOhLU","LN2","XMLHttpRequest","function","AeM9vwCUR6w","removeEventListener","-HWfG-YbjQ","Q3PbVLtJ-nv1lh_oShVHOA026Zj5o4j7wA","domain","21","p89e8Q","SIRm_z7HSts","rfNtoBi2dZVm","igamAaUDojT56E_kQjQUJU162P_IyPW4og","code","uvBHxSvTUuZvXdVu_cXl_qr8IXMjMx8FCMGxUe43QsnjFvQ0qJSQo-4nr4KFVJIEMfarVyUbCmLsM60SXRDYeu1LF6h3QOlUtW7N2wg-5YsuRWoVpqOeKQk","WMVM9jXbZ8d5Or0","4JQBnjz6LpoWQugsqvuQrtywVwY-Og8kQp2lMp4IBg","QsggplOtN883cKExvo0","-uEfkmqcS-hHOdU","6MNv9yWDEcJn","rnyjWQ","A7J-9BHdHphjLZBVwte5lf7TKH5PRC8","rKgLy2GaUq4WXoQjr8jf-I-nbW0xJBUj","1AyFJO1Xmg","nu1r60jbYOxmMr0K6P7em6aPHnsUUS5-NPSGMZxqUMM","Proxy","assign","MuVKyTGdXuIHAA","JUHVUvhpz2XYmgq6TmMQc1k23fD795S_4QExjjLlgR8","5rpNxSHf","QYs2pGjtQJ0jCrA","2vlc","gYcItGa3K68KRtxs1u_eo4qxKCI","kC6jMcI7","sJUggmWGdMo9btZY3OKK","FcQTx1KFGaMiV5B23vzU94awdydvSho","OffscreenCanvas","-hXfTZ90_xH5","VxTrZMxIlEmh_2DXNXUxUHtTxQ","LLUI2FqMF6giXtQdvMKu0N78ZQ","\uD83D\uDCCA","RegExp","jNRvnBTfcalcL-w","D4oHqBKZANw6UfwZg7r9guQ","Symbol","Safari","WFOZMuV0vw_65zb8H1wTYlg0","viScK846ggKEhw","2iObDMJPxDSIlQXiWQITfUQyo8n-6tvgqkU2tCE","enctype","72ee393e93897c22","uU77dJYu7RO48HI","5aI_txH-B6wHAZlp","AgOlMNo3pzS76zabEA","d1vGS6F5zFbriQ","7Ys","17J5_RD8fJ1g","_GbQKahp2V36pjCs","length","Float64Array","tE6UBqoxsTXuvTzobC95TXAnnqXb1frIuWFU5hyigg","x4kU_jmSdpo0LQ","kOEurwStIw","oEA","CxDhTdsM03a3","l8dH4nnKfsBzPapRjA","cDSkLoAY9Tyx7Cs","grkUgD24FL0YF55Ol5SR_MzmPjV4Nk41AZ3_VOg2ToD6KIkC-I7D9u9wodOoD4t9KaikA316QxDgBuYNMFHLF6dlKPssV6k7mD3e21Ae","hidden","floor","oQPFTYsz_GvkkwI","A8di9V6bSY9GCbYotZzA8tXXMw","head","-N4foDDiPbU","initCustomEvent","i-VFmD2YV-B8BY58rMbZ","stringify","q6cqxEqMZs0KdqgFzfI","7XuXPOsNvzzyiRY","k3-QP5cOmAE","_nmIAvwFsT-EhA","vG6HJvQdiWC6","ZSXmc4lw9UT_8iOnUzUpSW0","get","Moh11FiD","S55x_jvkUOAOA44j","fU_tUJhFtk_723PQBwo","max","FnWvJNgjpiLG9WuEViN6FzMEjtSK","K_4MlCn1SYZDFNM","O-YYln_KWtU","lVa6aJgWrUfZ9iyAZQt2Hi8xig","JyiNYNQkkBv4vi22","-FfdAdgqykvq1Fs","PRO3aJpXy3mX2gXUEQ","message","dqAnpQmIdpMjb6BRipTNiLfVQg","5ivlcJpR6kG-1DKnCCU-F2Na","Int32Array","qZAgzV-be8A7bOJZ","-JFh-j69e8M9br8","a1T5QJpC8GnuljOXDTU","FE3qK5hnr1b2uy-4FnFoEDULmoHkl7CP8zUR7RXHzXlX2zI","tvYPkmWVCpJ1XKRe","deAIvj_TIZpJO_kn_A","performance","name","1tZo9wbycdJcavY","9jq7E7k1ozGnw0Kl","nDGWJ5gs3RiXjA","mN0","9EG4I6IVslKwrBf3eD8wRyV52NSHipfdyA","ARnaVLkNzQ7ciV0","c2LZecRn0ErYmw","0zKpINF84AKzqA","ppx39Qz2ZNQwZPpDyvXogb6_XQIMHDMLbPaWJZJIZfXVCO1cjrmy3dJFj-bUcf0fRNXsMBAWKCeMINpAK2bkapsMMZJIeNZI_x_092Yyi6Ege2h0n8y2BidPXHmXmWbDNBW3qdGCg-qgrTh4pJNfvLr11jx2HT7lO-Ude7c7dCFRBqL58g","mY1R5H-UO8sPbb5OoA","filter","gahaz3f_Iv8cRMw","i68TjHiLHKg","Ogc","MhrfStYz7jU","SqNK0g","-VLyQb0tm0L6uCi2","1NUtokWgOQ","iFD3U6E7sUX9xw","VbQOkGKfAaBK","uMduzDvUdcBF","PC0","kSDTQYJI2nX4hxazbWwZJBUs-Prq-M4","J1_LTOZ30XvGhBejW15XMQArt_i4-I7oiEI3kTT6x0oy707EJQcIOma-eh9g0kemoHVly7rzi9UlwDjB_dgS0X2l9TvqkGH-EeIWHozSZFzM","^https?:\\\x2F\\\x2F","window","7DvJfv87u1o","Uint32Array","tMZQ0GzSceF8GqAD7c-3wOqM","ZwPwa74","Z54LnDm7HagXQ8pmj6u0983-fgw","7wc","YAKIMZwAlBeU","textContent","ylH-e41YxEQ","ZX7CK7h41iD-","32qRAuADlQrGkxyYchMFdlRXvars4cLrhwB6z3mQuwMi7kzke05YNSe0Vk07hyW24SMKx_zj2fl61zybk44OlTPszGOokyCkFfQsKZDFbQCYjp-edzlH34ygqqE","children","X3y7I9E","w_VN6kuBMs1MNqQ","fireEvent","zstk_3iIfeEjMZA","_sVOzy20PcIZQPII","Int8Array","n_0hrgid","N9YLhWGJCokwYsh7r6PK_NY","number","aelq13Pefg","tMERhjGsIb1xbw","Q94UmHKABJY4","Xt9XlTT9K7RDDos","vieAdasEomuJzA","which","tBWEHb8","qpQa8GusQf0PTJE5-97VsIm9P24uHxQxKQ","^(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])$","RGubL-Bohhc","pow","qvtr8BvHLg","dRrRJLl90jOQkx60YAABdlZ4srTtz9jism1rkDmNiw","5WKUHvIfliLVnxSxJU83P1568KM","8bQBmFKANoEcRcQx8MTRqNuRPWg","PxyPdg","A9IqpzaQLNUzNJI","rbFZ6m-ee9MfbbdHpqOFsJGwXApNHBJ0a_G9J5I8A7G3JMJV8L3H1eIS3_-3Ib0_bA","O6JwpUDQRvoZDA","M0uLHA","m_wLgw2KCM4qBA","sGnGQeol2VSEgQPTYw","FwzdHLhFnmzDxAboFh4SL19p86i4npa-wQ","eWHYVIBS7HA","u-tqugSsfJR6EKwXlOHuofTMH1MASgJRPOLcaoZFPO0","L1qpHo5EgDj0n1XcEw"];var U=Oz(null);var Oe=[[[9,67],[5,143],[7,15],[5,168],[5,164],[0,8],[2,74],[6,220],[4,232],[0,182],[2,141],[8,187],[7,97],[7,190],[0,111],[0,89],[1,33],[4,41],[3,199],[1,202],[3,174],[0,166],[4,86],[5,115],[6,52],[0,198],[3,46],[3,136],[0,57],[0,23],[2,219],[1,238],[3,7],[8,167],[1,55],[5,37],[3,13],[4,49],[4,221],[9,40],[1,9],[2,235],[7,24],[7,61],[7,194],[2,63],[5,110],[3,189],[8,98],[3,237],[8,36],[1,39],[3,18],[0,129],[2,30],[4,159],[1,101],[7,150],[1,135],[2,82],[3,163],[5,233],[3,185],[9,131],[5,152],[1,81],[1,236],[9,222],[4,192],[4,14],[2,145],[1,228],[0,130],[5,142],[3,125],[1,239],[3,158],[1,84],[6,19],[1,161],[7,65],[0,217],[0,96],[4,35],[2,118],[0,59],[3,124],[1,43],[6,197],[9,114],[0,240],[1,215],[0,69],[7,104],[8,79],[7,137],[1,77],[8,92],[5,38],[2,16],[6,113],[0,54],[0,32],[5,42],[5,230],[8,47],[9,128],[2,119],[6,181],[6,123],[1,234],[6,193],[1,165],[1,88],[1,211],[7,214],[9,94],[0,138],[3,176],[8,183],[9,83],[0,5],[3,160],[8,90],[6,213],[4,0],[2,45],[2,134],[0,179],[0,4],[3,223],[5,60],[8,25],[4,120],[7,157],[5,207],[9,117],[4,172],[1,95],[2,195],[9,53],[8,169],[1,103],[3,121],[3,133],[2,180],[9,72],[6,203],[0,66],[6,200],[4,68],[9,173],[8,154],[9,22],[4,17],[3,229],[8,218],[9,109],[0,21],[2,188],[4,224],[1,62],[6,178],[9,27],[6,10],[4,3],[6,139],[7,80],[0,225],[0,51],[5,126],[6,93],[0,58],[2,116],[4,105],[6,212],[4,106],[0,216],[2,11],[2,70],[1,205],[2,144],[9,201],[4,107],[0,191],[4,50],[6,186],[7,2],[6,28],[4,241],[0,140],[5,34],[0,71],[3,87],[1,149],[0,209],[1,78],[6,29],[4,31],[5,210],[1,177],[3,132],[5,226],[7,175],[3,112],[2,6],[7,73],[0,206],[5,91],[5,122],[3,102],[4,227],[9,170],[9,184],[6,204],[6,26],[8,151],[3,146],[3,231],[3,20],[8,99],[0,155],[8,85],[5,44],[9,208],[9,1],[9,100],[9,12],[7,147],[3,156],[5,76],[5,75],[0,56],[7,148],[3,171],[0,153],[9,108],[0,48],[5,196],[8,162],[5,127],[9,64]],[[3,238],[2,176],[8,85],[0,153],[0,8],[4,127],[9,212],[7,39],[5,32],[8,121],[2,202],[2,40],[3,171],[9,105],[0,19],[4,144],[8,20],[6,155],[2,37],[3,24],[0,22],[6,216],[7,86],[1,207],[1,96],[5,143],[6,29],[5,150],[9,68],[6,199],[7,106],[5,149],[9,120],[2,1],[1,112],[5,76],[0,88],[6,2],[4,170],[6,93],[8,52],[9,17],[0,169],[3,111],[7,70],[2,182],[6,203],[5,84],[1,5],[3,31],[7,156],[7,61],[4,134],[0,72],[5,122],[3,81],[5,174],[1,184],[2,147],[3,38],[9,7],[9,201],[4,188],[1,136],[6,230],[6,18],[3,102],[8,180],[2,219],[2,50],[8,224],[1,10],[4,191],[9,172],[5,83],[1,117],[3,6],[8,168],[7,92],[1,91],[3,42],[1,116],[3,218],[6,233],[2,124],[7,46],[0,98],[6,220],[6,45],[9,179],[1,177],[8,44],[2,14],[9,129],[3,57],[8,152],[6,78],[2,4],[1,217],[6,139],[7,67],[8,141],[3,209],[1,80],[3,12],[9,135],[1,47],[6,222],[4,193],[3,192],[2,131],[8,183],[6,26],[5,107],[9,54],[2,16],[4,66],[0,228],[6,241],[7,49],[8,205],[8,64],[0,43],[5,3],[7,159],[5,87],[0,200],[8,213],[1,100],[8,123],[8,146],[6,110],[5,101],[8,235],[9,25],[6,240],[1,181],[2,151],[8,221],[6,166],[1,126],[5,9],[2,28],[4,175],[7,51],[2,71],[8,189],[8,75],[0,79],[0,69],[0,36],[8,186],[3,178],[3,119],[2,99],[8,194],[8,109],[9,74],[7,227],[8,73],[8,108],[0,140],[7,187],[9,160],[4,94],[4,239],[9,15],[3,157],[1,35],[2,204],[1,161],[5,226],[2,125],[2,190],[0,133],[9,34],[6,27],[2,58],[3,55],[1,158],[5,11],[2,198],[6,103],[5,89],[7,132],[6,154],[0,13],[9,56],[8,231],[4,115],[6,0],[0,138],[1,59],[1,237],[6,63],[8,162],[7,95],[0,164],[6,77],[2,30],[4,113],[2,41],[5,167],[7,53],[6,148],[3,215],[9,145],[4,234],[0,214],[2,60],[5,173],[9,118],[9,208],[6,128],[2,211],[6,97],[8,104],[0,90],[5,196],[1,82],[9,210],[2,21],[5,137],[1,33],[9,142],[2,62],[2,114],[8,65],[8,229],[8,23],[8,165],[1,48],[3,206],[0,195],[9,197],[8,223],[5,236],[4,130],[4,232],[4,225],[4,163],[4,185]],[[3,222],[4,224],[7,211],[0,113],[6,100],[6,49],[6,231],[6,56],[0,194],[9,163],[5,135],[5,155],[3,27],[3,64],[3,196],[0,101],[4,141],[1,108],[3,180],[3,71],[1,157],[9,90],[7,13],[6,189],[0,110],[3,150],[1,102],[5,147],[3,219],[8,171],[3,139],[2,164],[8,187],[9,148],[2,17],[7,201],[7,146],[9,98],[6,3],[6,193],[4,66],[2,117],[9,177],[5,51],[7,4],[2,116],[8,221],[7,178],[4,240],[5,149],[4,118],[7,69],[8,209],[4,216],[4,234],[1,6],[6,83],[9,156],[8,9],[6,174],[2,198],[5,5],[0,205],[5,183],[9,210],[3,169],[7,133],[2,229],[4,7],[3,55],[7,131],[0,89],[4,239],[2,47],[9,154],[6,130],[8,65],[5,68],[5,46],[4,227],[9,212],[6,91],[5,126],[6,99],[5,195],[0,53],[2,10],[5,238],[6,67],[1,92],[8,120],[9,61],[8,159],[5,45],[7,112],[7,213],[0,144],[6,182],[1,233],[6,172],[6,78],[4,14],[0,104],[1,74],[4,87],[3,23],[1,79],[2,21],[9,176],[8,214],[4,97],[8,200],[1,186],[9,81],[0,185],[4,119],[8,8],[0,109],[7,175],[9,73],[5,93],[4,80],[8,220],[5,54],[2,58],[0,44],[7,25],[1,20],[3,128],[2,160],[9,241],[1,94],[8,158],[4,228],[8,142],[7,188],[8,12],[6,36],[9,151],[3,235],[2,107],[7,31],[2,207],[7,50],[2,42],[3,72],[5,206],[5,35],[5,202],[9,136],[3,165],[3,215],[4,121],[6,34],[4,85],[2,129],[3,173],[2,203],[8,138],[7,197],[5,19],[7,63],[4,77],[2,111],[9,32],[4,114],[1,115],[8,218],[0,143],[1,134],[1,153],[6,106],[2,33],[8,1],[0,236],[0,123],[4,230],[7,152],[8,192],[4,190],[4,60],[9,199],[3,168],[2,75],[5,105],[4,125],[5,11],[2,28],[5,2],[0,181],[2,124],[4,76],[3,166],[5,191],[1,232],[8,82],[2,162],[7,226],[1,95],[1,170],[2,43],[0,59],[1,22],[4,161],[8,0],[1,127],[8,57],[7,140],[4,217],[6,204],[7,40],[6,145],[7,16],[2,30],[2,39],[2,18],[0,29],[8,48],[3,96],[8,88],[5,62],[1,52],[1,223],[2,38],[9,41],[0,122],[0,24],[7,84],[5,37],[4,15],[6,70],[3,208],[0,167],[4,132],[3,237],[4,26],[7,225],[4,179],[7,103],[2,137],[3,86],[8,184]],[[8,28],[4,143],[2,230],[5,209],[9,33],[2,76],[5,2],[9,42],[6,40],[6,85],[3,123],[1,213],[5,26],[7,101],[2,228],[0,9],[6,118],[3,186],[2,22],[5,212],[1,233],[3,16],[4,195],[4,31],[3,8],[1,7],[2,10],[9,184],[9,87],[4,37],[9,55],[2,222],[0,121],[5,167],[0,170],[8,41],[3,61],[6,103],[4,188],[8,120],[2,38],[1,218],[8,19],[2,108],[5,191],[9,160],[6,221],[1,82],[2,124],[3,0],[4,236],[8,115],[5,132],[9,241],[9,67],[0,137],[3,216],[0,192],[1,205],[8,54],[3,153],[0,43],[8,207],[6,173],[7,6],[6,83],[3,176],[9,99],[3,240],[2,131],[2,81],[0,198],[0,232],[9,78],[5,53],[8,35],[0,90],[1,148],[9,114],[6,169],[3,181],[0,51],[6,46],[3,151],[7,139],[8,171],[9,168],[6,175],[4,136],[4,187],[4,72],[7,211],[2,14],[9,57],[4,135],[7,201],[4,104],[2,196],[7,150],[9,68],[6,3],[5,166],[3,206],[6,180],[2,93],[5,220],[2,197],[9,156],[3,69],[4,147],[6,239],[0,24],[9,92],[2,172],[9,125],[0,88],[7,119],[5,106],[2,234],[8,73],[7,58],[9,44],[5,45],[1,34],[4,36],[1,165],[7,89],[7,113],[6,235],[7,155],[8,105],[8,154],[5,96],[8,179],[7,214],[3,94],[9,231],[4,229],[6,39],[8,238],[0,130],[0,23],[8,48],[2,95],[2,107],[9,27],[7,178],[0,158],[3,12],[6,111],[4,193],[1,50],[0,128],[7,204],[1,200],[0,117],[1,30],[5,227],[4,215],[5,142],[0,225],[9,145],[6,140],[6,17],[5,79],[0,52],[2,194],[8,32],[8,49],[1,149],[8,202],[9,98],[9,4],[0,217],[0,237],[9,15],[2,63],[4,223],[7,71],[1,203],[7,133],[5,164],[5,219],[2,20],[6,86],[2,75],[9,157],[8,18],[6,224],[0,190],[5,183],[1,226],[6,59],[1,185],[8,66],[7,70],[2,60],[4,174],[4,100],[1,127],[4,177],[5,116],[5,182],[7,102],[2,1],[2,56],[2,189],[3,47],[9,110],[4,134],[4,5],[7,146],[8,91],[1,126],[4,152],[1,141],[9,11],[9,112],[2,109],[3,162],[7,25],[1,129],[8,208],[2,80],[1,159],[5,65],[2,199],[2,84],[7,21],[1,122],[8,29],[3,62],[3,13],[4,138],[7,77],[7,210],[0,74],[5,64],[5,163],[5,161],[8,97],[0,144]],[[6,185],[1,77],[4,7],[6,22],[9,26],[7,153],[2,82],[2,90],[7,193],[7,49],[2,187],[0,42],[3,9],[6,95],[8,83],[6,229],[7,48],[5,172],[5,53],[4,84],[7,57],[7,220],[4,211],[0,178],[3,138],[8,233],[7,130],[6,174],[3,43],[2,149],[4,72],[4,140],[0,54],[8,102],[2,78],[8,209],[0,191],[3,128],[0,218],[1,24],[6,19],[7,64],[8,176],[1,232],[7,73],[4,146],[8,223],[1,10],[3,160],[5,40],[5,119],[7,224],[3,29],[4,159],[6,188],[9,71],[1,214],[6,145],[4,17],[5,234],[7,36],[7,207],[0,156],[7,142],[0,108],[2,177],[0,25],[5,112],[0,58],[4,38],[2,217],[9,132],[9,16],[3,161],[7,148],[4,239],[3,165],[1,109],[7,69],[2,213],[7,100],[2,190],[1,141],[4,85],[4,131],[9,192],[0,216],[3,66],[1,70],[8,14],[2,143],[0,180],[4,118],[2,124],[6,189],[9,123],[2,179],[3,195],[9,205],[1,47],[3,32],[0,222],[1,92],[1,105],[5,158],[4,163],[1,171],[6,135],[4,27],[5,18],[8,23],[6,186],[9,137],[8,168],[7,87],[8,212],[5,183],[1,200],[1,6],[8,182],[0,225],[8,2],[0,169],[8,235],[4,67],[1,94],[1,241],[0,196],[2,101],[8,51],[4,184],[9,74],[5,30],[8,113],[2,33],[7,162],[2,21],[3,63],[3,11],[7,238],[8,164],[5,103],[6,104],[0,147],[9,203],[1,152],[3,127],[9,39],[5,136],[4,60],[5,199],[5,65],[3,150],[1,61],[6,208],[6,144],[9,4],[1,41],[9,37],[0,129],[3,221],[3,79],[4,107],[6,56],[4,157],[7,46],[5,5],[7,1],[8,20],[7,50],[6,155],[8,110],[7,114],[0,134],[3,173],[4,55],[1,240],[7,116],[0,167],[0,237],[0,97],[8,198],[1,81],[3,8],[0,215],[2,76],[7,166],[8,89],[3,194],[6,0],[2,226],[6,206],[0,175],[6,44],[5,181],[5,88],[1,35],[1,219],[8,231],[8,34],[9,197],[5,52],[2,228],[0,96],[2,230],[3,121],[0,210],[9,91],[4,93],[6,133],[1,31],[5,59],[9,106],[1,86],[6,68],[8,115],[5,13],[4,122],[6,15],[4,227],[6,202],[5,99],[8,204],[9,201],[7,62],[4,98],[6,125],[0,111],[3,154],[2,28],[0,139],[5,236],[1,117],[7,120],[0,45],[7,170],[4,3],[8,75],[8,12],[1,80],[0,126],[8,151]],[[4,9],[9,90],[1,172],[0,13],[3,174],[1,14],[0,82],[1,46],[3,77],[5,196],[2,44],[5,47],[4,132],[3,109],[8,106],[0,114],[6,129],[4,5],[4,177],[3,58],[7,36],[5,226],[8,22],[0,115],[1,149],[4,164],[8,124],[9,224],[2,102],[1,150],[9,41],[0,230],[3,97],[2,32],[0,111],[7,67],[3,181],[8,133],[6,165],[4,15],[8,214],[5,89],[2,70],[9,136],[2,189],[4,37],[2,4],[5,123],[8,154],[1,145],[4,176],[8,211],[4,110],[8,72],[7,86],[2,62],[0,96],[1,169],[1,222],[1,54],[4,55],[5,20],[1,198],[8,33],[1,116],[3,157],[3,234],[4,63],[0,156],[0,151],[7,71],[0,17],[4,119],[6,2],[0,49],[3,113],[8,88],[4,227],[0,74],[1,87],[9,159],[2,163],[4,61],[4,29],[7,125],[7,21],[1,78],[3,238],[8,228],[1,231],[2,127],[0,64],[7,186],[9,166],[3,184],[1,143],[3,122],[6,18],[9,56],[0,241],[1,140],[2,39],[1,19],[5,155],[5,92],[7,160],[3,201],[6,50],[6,195],[1,210],[5,98],[5,193],[8,171],[1,11],[0,3],[4,94],[7,28],[2,194],[9,209],[2,81],[8,57],[0,112],[3,73],[7,183],[4,179],[4,240],[4,137],[4,31],[8,128],[8,121],[9,51],[5,216],[5,8],[4,192],[7,30],[9,225],[4,235],[9,237],[7,65],[7,118],[5,26],[7,168],[6,221],[0,217],[5,185],[3,91],[8,120],[8,203],[8,130],[7,190],[2,107],[6,134],[6,152],[0,135],[8,178],[3,93],[1,27],[0,101],[9,84],[7,197],[0,0],[9,213],[9,40],[2,138],[9,232],[8,187],[4,144],[7,38],[5,60],[9,75],[2,170],[0,79],[3,25],[9,158],[9,199],[4,173],[1,208],[0,191],[5,34],[8,42],[2,76],[1,131],[1,10],[6,139],[2,69],[2,99],[1,80],[5,142],[4,35],[1,204],[9,175],[3,223],[5,85],[4,103],[0,108],[5,68],[0,229],[3,59],[9,148],[7,188],[5,212],[5,117],[3,200],[8,207],[2,12],[2,202],[0,104],[6,7],[7,1],[2,218],[3,23],[1,219],[0,105],[2,16],[0,100],[5,162],[4,48],[8,53],[9,24],[7,239],[6,180],[6,236],[0,220],[1,153],[2,66],[2,95],[0,52],[4,215],[5,147],[5,233],[2,161],[1,83],[9,146],[5,167],[4,126],[3,43],[5,182],[9,205],[5,206],[1,141],[3,45],[0,6]],[[9,72],[8,144],[8,213],[7,171],[7,14],[2,99],[8,84],[7,226],[7,177],[3,205],[3,223],[7,238],[5,8],[1,19],[8,32],[5,110],[6,88],[6,138],[4,191],[5,199],[6,66],[5,101],[1,200],[1,168],[5,217],[7,93],[6,69],[7,195],[4,6],[2,28],[8,22],[3,236],[1,169],[2,158],[2,165],[8,209],[5,51],[3,203],[0,167],[0,128],[4,20],[2,211],[2,104],[0,123],[1,185],[8,90],[3,29],[7,7],[1,87],[9,222],[4,186],[3,81],[1,145],[4,180],[3,155],[0,152],[9,161],[1,196],[9,192],[6,163],[1,64],[0,234],[2,5],[4,61],[0,179],[9,133],[5,172],[8,154],[6,25],[9,94],[9,139],[3,136],[4,175],[6,126],[4,108],[6,58],[7,129],[7,34],[0,215],[3,229],[4,105],[2,54],[3,79],[6,82],[9,187],[2,188],[6,218],[9,202],[1,73],[9,241],[7,216],[4,153],[0,63],[5,121],[6,212],[7,46],[8,198],[6,2],[7,206],[7,122],[7,178],[3,100],[4,233],[4,173],[0,3],[2,225],[7,49],[4,48],[6,60],[1,227],[3,17],[5,134],[4,95],[1,240],[8,208],[9,13],[9,23],[4,231],[6,70],[5,118],[1,91],[8,42],[9,92],[4,85],[2,21],[4,80],[9,53],[4,26],[7,164],[0,146],[4,109],[2,67],[4,224],[9,50],[4,140],[4,45],[5,44],[2,174],[3,31],[2,35],[6,65],[6,40],[9,157],[0,190],[3,27],[7,71],[0,43],[2,114],[2,230],[0,52],[0,176],[0,147],[2,142],[2,10],[9,103],[0,120],[9,131],[6,149],[5,194],[9,214],[9,38],[3,219],[5,162],[3,237],[4,55],[9,184],[6,151],[2,30],[4,221],[5,116],[9,47],[4,113],[7,148],[9,89],[7,159],[8,141],[2,62],[8,106],[3,210],[4,143],[5,239],[9,232],[9,16],[4,156],[8,96],[1,166],[8,115],[6,220],[8,228],[0,4],[4,102],[9,127],[2,193],[6,33],[0,41],[0,37],[1,117],[5,11],[1,18],[2,235],[8,97],[8,189],[3,77],[7,183],[3,9],[6,207],[1,201],[1,76],[9,130],[8,135],[4,98],[8,1],[2,75],[6,197],[8,56],[6,160],[3,124],[5,132],[2,0],[9,150],[8,86],[1,57],[7,181],[4,112],[0,137],[0,125],[9,74],[3,24],[4,182],[3,111],[2,15],[3,59],[5,83],[2,119],[2,170],[8,204],[6,39],[1,68],[9,36],[1,107],[0,12],[6,78]],[[2,95],[3,76],[6,17],[8,97],[2,131],[8,191],[4,124],[7,43],[7,239],[7,179],[0,188],[7,45],[0,225],[9,216],[8,123],[7,117],[9,49],[6,11],[1,181],[8,220],[6,200],[1,122],[6,19],[7,183],[8,12],[0,201],[2,198],[2,103],[3,44],[5,206],[6,59],[3,196],[7,165],[4,31],[3,2],[7,176],[8,231],[2,227],[6,241],[8,99],[7,127],[1,54],[4,112],[7,98],[4,230],[9,187],[8,219],[9,110],[2,172],[7,128],[3,237],[1,53],[7,232],[1,16],[4,155],[5,226],[3,89],[9,175],[0,180],[2,213],[6,114],[8,137],[3,36],[4,125],[6,86],[4,236],[9,85],[0,233],[2,15],[0,29],[6,1],[6,63],[5,101],[4,87],[7,185],[3,83],[4,194],[3,146],[1,116],[6,62],[1,22],[0,104],[6,135],[8,109],[3,203],[0,25],[9,119],[5,3],[4,157],[0,113],[8,4],[6,72],[6,193],[7,55],[3,115],[8,52],[7,74],[3,141],[0,75],[2,90],[6,148],[6,51],[5,79],[5,153],[3,235],[8,37],[7,238],[1,159],[0,156],[6,202],[1,192],[6,118],[7,68],[2,229],[2,217],[5,215],[1,134],[8,143],[9,0],[9,108],[7,47],[6,132],[1,57],[9,105],[4,205],[4,166],[9,21],[8,27],[9,136],[9,195],[8,107],[5,80],[3,145],[2,190],[5,71],[5,13],[1,221],[8,18],[3,189],[2,10],[3,92],[7,88],[8,60],[9,168],[8,140],[3,228],[2,73],[4,224],[7,129],[8,41],[4,32],[8,42],[5,177],[2,84],[3,161],[8,138],[9,218],[2,9],[6,7],[6,211],[3,204],[4,38],[3,158],[1,23],[7,46],[5,66],[5,120],[3,184],[2,174],[0,151],[7,40],[1,93],[5,91],[4,139],[4,65],[1,102],[5,50],[0,106],[3,162],[1,167],[4,154],[7,144],[0,30],[9,130],[8,94],[2,64],[6,121],[1,212],[6,70],[6,8],[0,56],[2,214],[5,126],[2,149],[2,24],[1,6],[0,77],[2,186],[8,78],[1,173],[7,14],[0,28],[3,208],[3,197],[4,207],[8,48],[9,26],[9,35],[6,178],[6,150],[5,39],[0,100],[1,223],[3,33],[6,142],[0,111],[2,171],[1,61],[0,209],[3,182],[0,169],[4,147],[7,5],[5,58],[8,69],[5,81],[5,82],[7,163],[8,210],[2,164],[7,234],[9,96],[3,199],[1,133],[6,152],[9,67],[0,34],[6,170],[8,160],[2,240],[4,222],[0,20]],[[8,223],[7,216],[4,17],[1,58],[5,35],[4,0],[7,14],[8,90],[5,3],[9,68],[5,83],[5,136],[5,219],[4,238],[0,110],[3,175],[4,96],[6,39],[3,118],[6,117],[1,55],[5,201],[2,64],[3,40],[7,7],[4,41],[6,143],[4,182],[7,112],[0,236],[1,75],[5,229],[4,239],[9,34],[3,56],[1,207],[2,86],[3,177],[6,125],[0,4],[3,235],[8,46],[2,62],[0,71],[8,167],[0,162],[5,176],[4,161],[3,206],[6,186],[9,212],[6,15],[7,146],[8,18],[5,81],[0,193],[4,204],[1,208],[1,232],[7,142],[0,166],[4,9],[9,180],[8,163],[5,157],[3,26],[5,185],[5,122],[3,144],[5,43],[7,179],[2,147],[9,121],[2,97],[9,164],[0,168],[0,196],[5,78],[0,74],[4,22],[9,218],[3,178],[3,197],[6,32],[2,12],[3,76],[4,131],[9,209],[4,151],[7,198],[5,85],[1,234],[5,27],[0,145],[1,184],[7,154],[2,221],[9,171],[4,153],[1,194],[9,44],[8,190],[2,134],[6,224],[0,148],[9,210],[4,215],[1,155],[0,72],[3,103],[3,165],[5,127],[9,132],[7,98],[0,23],[9,70],[9,135],[3,115],[3,89],[9,88],[2,233],[3,188],[1,21],[8,126],[2,124],[6,152],[2,61],[7,138],[2,52],[4,31],[6,119],[8,113],[7,181],[1,172],[7,53],[7,211],[4,54],[7,200],[7,92],[3,227],[6,241],[0,13],[3,28],[5,94],[7,230],[9,87],[6,33],[9,73],[1,123],[3,57],[8,10],[1,240],[2,114],[8,174],[0,101],[7,84],[3,130],[9,79],[5,149],[3,217],[2,220],[7,5],[6,237],[0,137],[1,109],[8,106],[0,99],[5,69],[4,228],[1,6],[2,202],[8,65],[9,150],[8,140],[3,95],[5,170],[9,187],[3,30],[4,91],[1,111],[6,38],[6,128],[2,100],[1,1],[0,19],[3,199],[8,107],[7,77],[1,93],[6,191],[5,16],[2,50],[8,67],[1,156],[2,160],[6,116],[0,42],[8,183],[6,108],[6,11],[5,159],[4,60],[1,173],[2,158],[1,213],[4,8],[5,169],[6,133],[6,225],[8,141],[0,36],[7,2],[4,231],[6,203],[8,47],[7,105],[4,214],[7,222],[0,104],[2,205],[8,63],[9,37],[0,29],[4,20],[1,66],[3,80],[2,82],[7,51],[9,192],[1,24],[3,59],[9,195],[2,226],[3,189],[9,102],[2,45],[7,49],[0,48],[8,139],[6,129],[4,120],[0,25]],[[7,107],[6,115],[9,238],[2,126],[2,192],[0,202],[3,63],[7,176],[4,125],[3,143],[1,224],[5,117],[8,213],[6,111],[3,137],[0,177],[2,233],[5,228],[3,175],[2,72],[9,80],[7,221],[3,147],[1,206],[5,8],[0,170],[4,148],[6,12],[5,186],[0,110],[5,190],[1,18],[2,54],[9,178],[8,20],[9,168],[1,166],[2,66],[8,204],[3,64],[1,210],[9,38],[1,136],[4,121],[6,43],[4,1],[3,41],[9,239],[8,113],[0,85],[0,130],[5,17],[2,220],[2,28],[9,241],[7,231],[5,61],[2,161],[6,200],[0,132],[3,127],[7,179],[2,68],[1,84],[9,40],[5,92],[1,194],[6,118],[2,27],[5,94],[2,214],[2,91],[5,81],[0,90],[8,163],[1,208],[0,209],[0,235],[5,93],[4,140],[8,3],[4,122],[7,164],[6,52],[4,185],[7,181],[0,133],[3,201],[5,240],[6,149],[2,226],[3,193],[1,4],[5,57],[3,123],[0,74],[2,167],[8,36],[9,69],[1,188],[0,144],[5,89],[3,30],[8,101],[3,169],[6,46],[6,70],[6,96],[7,174],[4,173],[7,99],[4,104],[0,116],[1,39],[2,217],[2,88],[3,49],[6,189],[8,191],[8,198],[5,106],[8,159],[6,76],[3,227],[6,42],[6,128],[1,152],[6,219],[1,223],[4,146],[3,212],[1,157],[9,58],[0,37],[8,56],[2,83],[9,105],[1,156],[4,75],[9,134],[4,145],[9,160],[3,215],[7,237],[3,79],[9,207],[5,154],[8,25],[9,21],[9,10],[4,131],[3,103],[6,120],[4,142],[8,158],[1,211],[9,109],[8,53],[6,71],[9,138],[0,114],[7,6],[3,216],[1,129],[3,229],[1,87],[6,59],[9,0],[2,19],[4,2],[5,199],[0,5],[3,162],[5,100],[7,112],[0,67],[9,95],[2,65],[1,172],[3,16],[1,29],[3,180],[1,232],[0,155],[7,187],[0,82],[5,13],[4,32],[8,44],[2,196],[3,14],[8,124],[7,139],[4,78],[0,23],[6,15],[4,77],[0,108],[1,230],[7,151],[5,51],[6,24],[7,119],[0,35],[6,45],[9,218],[1,135],[3,141],[9,55],[5,153],[8,222],[6,73],[0,165],[1,205],[3,47],[7,225],[3,33],[8,62],[8,184],[3,97],[8,171],[6,197],[9,182],[7,7],[6,150],[7,26],[2,50],[4,22],[4,86],[7,183],[5,9],[5,60],[7,195],[2,102],[0,236],[2,11],[3,31],[4,34],[7,48],[4,234],[9,98],[3,203]]];var F=[{Q:[],P:[],Y:[]},{Q:[],P:[],Y:[12]},{Q:[1],P:[0,1],Y:[18,41,249]},{Q:[],P:[],Y:[3,8,12,294]},{Q:[],P:[0],Y:[]},{Q:[1],P:[1],Y:[0]},{Q:[0],P:[0],Y:[38]},{Q:[],P:[],Y:[9,18,19,23]},{Q:[],P:[0,3,6,10,13,14,15,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33],Y:[1,2,4,5,7,8,9,11,12,16,21,48,81,108,163,212,352]},{Q:[16,6,20,17,13,10],P:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24],Y:[108,127,163,191,243,291,352]},{Q:[0],P:[0,1,2,3,4],Y:[17,181,298]},{Q:[1,0],P:[0,1],Y:[]},{Q:[1],P:[0,1],Y:[4,8,318]},{Q:[0],P:[0],Y:[18]},{Q:[1],P:[1],Y:[0,179]},{Q:[8],P:[2,3,4,6,7,8,9,10,11],Y:[0,1,5,108,163,210]},{Q:[24,19,22,15,13,40],P:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,35,36,37,38,39,40,41,42],Y:[21,34,108,115,131,163,249,269,352,358]},{Q:[1],P:[0,1,2],Y:[3,4]},{Q:[1],P:[0,1],Y:[4,10]},{Q:[0],P:[0],Y:[4]},{Q:[0],P:[0],Y:[179]},{Q:[],P:[2],Y:[0,1,4,5]},{Q:[2,5,1],P:[0,1,2,3,4,5,6,7,8,9,10,11],Y:[105]},{Q:[],P:[],Y:[]},{Q:[5],P:[3,4,5],Y:[0,1,2,204]},{Q:[],P:[],Y:[45,55,109,166,310]},{Q:[],P:[1,2,3,4,6,7,8,10,12,13,14],Y:[0,5,9,11,17,72,163,172,352]},{Q:[8],P:[0,1,2,3,4,5,6,7,8],Y:[13,108,163]},{Q:[1],P:[1],Y:[0]},{Q:[],P:[3,4,7,8,9,10,12,13,14,15,16,17,18,20,21,22,23,24,25],Y:[0,1,2,5,6,11,19,31,108,163]},{Q:[],P:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,22],Y:[7,20,21,31,38,108,163,349,352]},{Q:[2],P:[2,3],Y:[0,1]},{Q:[],P:[],Y:[7,10]},{Q:[0],P:[0],Y:[]},{Q:[],P:[0,1,2,4,5,6],Y:[3,7,163]},{Q:[1],P:[0,1,2],Y:[45,109]},{Q:[],P:[],Y:[4]},{Q:[3,5],P:[0,3,4,5],Y:[1,2]},{Q:[7],P:[0,1,2,3,4,5,6,7,8,9,10],Y:[11,18,26,32,115,249,269]},{Q:[],P:[0,2,3,5,6,7,8],Y:[1,4,11,13,19,23,25,26,27,29,30,32,33,35,108,163]},{Q:[2],P:[2],Y:[0,1]},{Q:[0],P:[0],Y:[45,310]},{Q:[1,0],P:[0,1],Y:[350]},{Q:[],P:[],Y:[3,15]},{Q:[],P:[],Y:[0,6]},{Q:[1],P:[1],Y:[0]},{C:0,Q:[],P:[],Y:[]},{Q:[],P:[],Y:[0,1]},{Q:[5],P:[0,2,3,4,5],Y:[1,9,11,32,121]},{A:3,Q:[],P:[],Y:[0,1,2]},{Q:[0],P:[0],Y:[]},{Q:[0],P:[0],Y:[2,9,15,27,29]},{Q:[],P:[0,1,3,5,6],Y:[2,4,10,11]},{Q:[],P:[],Y:[4]},{Q:[1,3],P:[0,1,3],Y:[2,31]},{Q:[],P:[],Y:[2,8,10,17,129,263]},{Q:[2],P:[0,1,2],Y:[10,18,26,27,42,249]},{Q:[0],P:[0],Y:[3]},{Q:[2],P:[0,1,2,3,4],Y:[306,356]},{Q:[],P:[],Y:[]},{Q:[5],P:[0,1,2,5,6],Y:[3,4]},{Q:[5],P:[0,1,2,3,4,5],Y:[]},{Q:[],P:[2,5,7,8],Y:[0,1,3,4,6]},{Q:[],P:[],Y:[]},{Q:[0],P:[0],Y:[]},{Q:[0],P:[0],Y:[]},{Q:[2,1],P:[0,1,2],Y:[5,58,139]},{Q:[14],P:[0,2,4,10,11,13,14,17,18],Y:[1,3,5,6,7,8,9,12,15,16,50,70,114,118,140,175,177,183,194,196,226,256,279,282,314]},{Q:[0],P:[0,1],Y:[62,313]},{A:5,Q:[],P:[1,2,3,4,6],Y:[0,179]},{Q:[2],P:[0,1,2,3,4,5],Y:[12]},{Q:[1],P:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],Y:[19,20,108,163,288,354]},{Q:[1,2],P:[0,1,2],Y:[]},{Q:[],P:[0,1,2],Y:[]},{Q:[6,5],P:[1,2,4,5,6],Y:[0,3,122,319]},{Q:[0],P:[0],Y:[1]},{Q:[],P:[],Y:[3,7,9,13,14,19,50,56,70,114,116,118,140,175,177,183,196,219,226,256,279,314,326]},{Q:[2],P:[0,1,2,3],Y:[11,108,163]},{C:7,Q:[8,9],P:[0,1,2,3,4,5,6,8,9,10,11,12],Y:[22,27,51,69,79,124,198,227,307,333]},{Q:[0],P:[0],Y:[]},{Q:[2,3,7,1],P:[0,1,2,3,4,5,6,7],Y:[190,320]},{Q:[0,5,7],P:[0,1,2,3,4,5,6,7,8],Y:[259,280]},{Q:[1],P:[1],Y:[0]},{Q:[0],P:[0],Y:[8]},{Q:[5,8,3,32,41,22],P:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,35,36,37,38,39,41,42],Y:[7,21,34,40,76,108,163,180,181,282,286,293,296,298,322,352]},{Q:[0],P:[0],Y:[23,129,177,179,226,263,314]},{Q:[0],P:[0],Y:[4]},{Q:[],P:[0,1,2],Y:[4,13,14,121]},{Q:[0],P:[0],Y:[45,55]},{Q:[],P:[],Y:[]},{Q:[],P:[0,1,2,5,8,11,13,16,18,19,20,22,23],Y:[3,4,6,7,9,10,12,14,15,17,21,38,49,84,85,102,108,157,163,170,209,217,232,342,352]},{Q:[2,3,0,4],P:[0,1,2,3,4],Y:[177,226,314]},{Q:[4],P:[0,2,4,5],Y:[1,3,54,245,252]},{Q:[],P:[0,1],Y:[41,63,71,216,272,325,331]},{Q:[0],P:[0,1],Y:[20,23]},{Q:[],P:[3],Y:[0,1,2,4,7]},{Q:[1],P:[0,1],Y:[]},{Q:[1,0],P:[0,1,2],Y:[26]},{Q:[],P:[1,2,4,5,7,10,11,12,14,16,17,18,19,22,23,25,26,28,29,34],Y:[0,3,6,8,9,13,15,20,21,24,27,30,31,32,33,35,38,41,42,74,90,94,108,163,184,199,253,299,312,322,352]},{Q:[],P:[],Y:[19,39]},{Q:[],P:[],Y:[]},{Q:[],P:[0,2,4,5,6,8],Y:[1,3,7,163]},{C:0,Q:[1],P:[1],Y:[216]},{Q:[4],P:[0,1,2,3,4,5,6],Y:[14,108,163]},{Q:[1],P:[0,1],Y:[14,91,111,185,192,195,316]},{Q:[],P:[0,2,3,4,6,7,8,10,11,12],Y:[1,5,9,14,19,36,39,90,163,352]},{C:2,Q:[3],P:[0,1,3,4],Y:[41]},{Q:[0],P:[0],Y:[]},{Q:[0],P:[0],Y:[]},{A:6,Q:[],P:[0,1,2,5,8],Y:[3,4,7,10]},{Q:[],P:[2,3,4,5,10,11,12,13,14,15,16,18,19,20,22,23,24,25,29,33,34,35,36,38],Y:[0,1,6,7,8,9,17,21,26,27,28,30,31,32,37,41,108,163,352]},{Q:[],P:[],Y:[2]},{Q:[],P:[2,4,6,7],Y:[0,1,3,5,9,20,23,24,25,108,163,334,352]},{Q:[6],P:[0,1,2,3,4,5,6,7,8,9,10,11,12],Y:[13,313,345]},{Q:[],P:[0,1,2],Y:[]},{C:2,Q:[0],P:[0,1,3,4],Y:[]},{Q:[0],P:[0],Y:[20]},{Q:[],P:[0,1,2,3],Y:[4]},{Q:[0],P:[0],Y:[19]},{C:0,Q:[3],P:[1,2,3],Y:[]},{Q:[0,12],P:[0,1,2,3,4,6,7,9,10,11,12,13,14,15,16],Y:[5,8,32,42,103,110,119,121,151,152,161,208,230,250,323,339]},{Q:[2],P:[2,3,4,5],Y:[0,1,7,8,10,11,12,13,14,16,18,19]},{Q:[3,1],P:[0,1,3,4],Y:[2]},{C:11,Q:[8,5,7],P:[1,4,5,6,7,8,9,10],Y:[0,2,3,108,160]},{Q:[5],P:[3,4,5],Y:[0,1,2,271]},{Q:[0],P:[0],Y:[6]},{Q:[1,6,5,15,8,7,0,9,2],P:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],Y:[283,327]},{Q:[],P:[0,2,6,7,8,10,12,16,17],Y:[1,3,4,5,9,11,13,14,15,18,19,20,27,28,29,32,33,35,108,163,176,242,348,352]},{Q:[12,18],P:[0,1,2,5,6,8,9,10,12,13,14,15,16,17,18,19,20,21,22],Y:[3,4,7,11,39,50,56,70,114,116,118,140,175,177,183,196,226,256,279,314,326]},{Q:[0],P:[0],Y:[179]},{Q:[0],P:[0],Y:[]},{C:0,Q:[],P:[],Y:[]},{Q:[0],P:[0],Y:[29]},{Q:[0],P:[0],Y:[179]},{Q:[],P:[],Y:[0,5,13,19,20,87,108,120,163,288,341,354]},{Q:[4],P:[0,1,2,3,4],Y:[8]},{Q:[0],P:[0],Y:[5,16]},{Q:[],P:[],Y:[4]},{Q:[7,5],P:[0,4,5,7],Y:[1,2,3,6,259]},{Q:[],P:[],Y:[2,3]},{Q:[1],P:[1],Y:[0]},{Q:[16,6,10,22,11,13],P:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25],Y:[7,19,21,34,108,112,137,163,171,191,205,249,269,291,317,334,352]},{Q:[],P:[],Y:[]},{Q:[1,0],P:[0,1],Y:[20]},{Q:[],P:[],Y:[]},{Q:[],P:[0,1],Y:[3,5,16,20,25,29,33,35,36]},{Q:[6],P:[6,11,12,13,14,15],Y:[0,1,2,3,4,5,7,8,9,10,294]},{Q:[1],P:[1,2],Y:[0,3,5,6,7,8]},{Q:[],P:[],Y:[]},{Q:[2],P:[2],Y:[0,1,179,204]},{Q:[],P:[],Y:[]},{Q:[0],P:[0],Y:[19]},{Q:[8],P:[0,1,4,5,6,7,8],Y:[2,3,12,13,345]},{Q:[],P:[],Y:[0,3,5,9]},{Q:[],P:[],Y:[5]},{C:0,Q:[4,3],P:[2,3,4],Y:[1]},{Q:[],P:[1,3,4,5,6],Y:[0,2,7,8,9,11,17,30,31]},{Q:[0],P:[0],Y:[5,16]},{Q:[17,15],P:[0,1,2,4,5,6,8,9,10,11,12,14,15,16,17,18,19,20],Y:[3,7,13,50,56,70,114,116,118,140,175,177,183,196,226,256,279,314,326]},{Q:[],P:[0],Y:[75,151,208]},{Q:[],P:[1,2],Y:[0,153]},{Q:[10],P:[0,2,3,4,6,7,8,9,10,11,12,13],Y:[1,5,21,108,163,352]},{Q:[],P:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15],Y:[2,19,108,163]},{Q:[],P:[],Y:[0,2]},{Q:[1,0],P:[0,1],Y:[14,16]},{Q:[],P:[0,1,2],Y:[303,321]},{Q:[1],P:[0,1,2,3],Y:[]},{C:1,Q:[2],P:[0,2,3,4,5,6,7,8],Y:[]},{Q:[1],P:[0,1,2,4,6,9,10,11,12,13,14,15,16,17,18,19,20],Y:[3,5,7,8,39,42,50,56,70,103,110,114,116,118,121,140,175,177,183,196,219,226,248,250,256,268,279,289,314,326,339]},{C:1,Q:[0],P:[0],Y:[]},{Q:[0,2,1],P:[0,1,2],Y:[4,12,14]},{Q:[0],P:[0],Y:[285]},{Q:[0],P:[0],Y:[]},{Q:[1,0],P:[0,1,3,4],Y:[2,144,266]},{Q:[],P:[],Y:[]},{Q:[4,1],P:[0,1,3,4,6],Y:[2,5,11,13,19,20,31,108,163]},{C:3,Q:[1,6,4],P:[0,1,2,4,5,6,7,8],Y:[41,63,71,272,331]},{Q:[0],P:[0],Y:[2]},{Q:[0],P:[0],Y:[4,6]},{Q:[0],P:[0],Y:[]},{Q:[],P:[0,1,2,3,4,7,8],Y:[5,6,9,11,12,108,163,191,243,291,352]},{Q:[0],P:[0],Y:[]},{Q:[3],P:[0,1,3,4,5,6,8,9],Y:[2,7,13,60,216]},{Q:[4,6],P:[0,1,2,3,4,5,6,9],Y:[7,8,17,205,249,269]},{Q:[0],P:[0],Y:[2,8,10]},{Q:[0],P:[0],Y:[5]},{Q:[0],P:[0],Y:[]},{Q:[0],P:[0],Y:[2]},{Q:[],P:[],Y:[10]},{Q:[],P:[],Y:[0,5]},{Q:[25,17,21,20,9,3],P:[0,1,2,3,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],Y:[4,7,34,108,163,247,275,305,352]},{Q:[6,3,7,5],P:[0,1,2,3,4,5,6,7],Y:[16,26,30,54,82,133,150,245,252,261]},{Q:[],P:[],Y:[0]},{Q:[17],P:[8,9,10,11,12,13,14,15,16,17,18,19],Y:[0,1,2,3,4,5,6,7,23,129,177,226,263,314]},{C:1,Q:[0],P:[0,2,3,4],Y:[]},{Q:[1,0],P:[0,1],Y:[328]},{Q:[0],P:[0],Y:[322]},{Q:[4],P:[1,2,3,4,5],Y:[0,108,163]},{Q:[],P:[2],Y:[0,1]},{Q:[0],P:[0],Y:[]},{Q:[0,1],P:[0,1],Y:[179,271]},{Q:[8],P:[0,3,4,5,7,8,9],Y:[1,2,6,31,92,104,214,215,222]},{Q:[0],P:[0],Y:[2,5]},{Q:[0],P:[0],Y:[1,203]},{Q:[0],P:[0,1,2,3],Y:[11,20,30,35,37,42]},{Q:[1],P:[0,1],Y:[]},{Q:[6,8],P:[1,2,3,4,5,6,7,8],Y:[0,113,169,235,254,260,322,330]},{Q:[],P:[],Y:[]},{Q:[2],P:[2],Y:[0,1,179,271]},{Q:[],P:[],Y:[]},{Q:[],P:[],Y:[0,3,4,7,10,11,13,17,19,39,50,56,70,114,116,118,140,175,177,183,196,219,226,256,279,314,326]},{Q:[0],P:[0],Y:[3,261]},{Q:[0],P:[0,1],Y:[62,313]},{Q:[],P:[1,2,4,5,8,9,12,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],Y:[0,3,6,7,10,11,13,14,15,16,17,18,108,163,224,352]},{Q:[1],P:[0,1,2,3],Y:[9,239,328]},{Q:[],P:[0,1,2,3,4,5],Y:[8,14,15,17,163]},{Q:[],P:[0,1,2,3,4,5],Y:[8,9,13,15,16,21,29,30,31,32,42,57,65,90,94,108,122,141,163,179,184,199,253,319,320,325,337,352,357]},{Q:[1],P:[1],Y:[0]},{Q:[0,2],P:[0,1,2],Y:[]},{Q:[1],P:[1],Y:[0]},{Q:[1],P:[1],Y:[0,3]},{Q:[1],P:[0,1],Y:[]},{Q:[0],P:[0],Y:[14]},{Q:[],P:[0,1,2,4,5,6,7,10,11],Y:[3,8,9,14,17,24,108,163]},{Q:[],P:[1,3,4,5,6],Y:[0,2,7,8,9,11,17,30,31]},{Q:[3],P:[0,1,2,3,4,5,6],Y:[29,108,163]},{Q:[4],P:[0,1,2,3,4,5,6,7,8,9],Y:[25]},{C:2,Q:[1,3],P:[0,1,3],Y:[]},{Q:[0],P:[0,2,3,4],Y:[1,26]},{Q:[5,4,2,1],P:[0,1,2,3,4,5,6,7,8],Y:[29,86,168,255,267,302]},{Q:[0],P:[0],Y:[6,12]},{Q:[24,2,15,10,8,22],P:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],Y:[7,72,73,108,163,172,174,188,191,221,236,280,352]},{Q:[2],P:[2],Y:[0,1,3,4,7]},{Q:[0],P:[0],Y:[36]},{Q:[0],P:[0],Y:[179]},{Q:[],P:[],Y:[285]},{Q:[0],P:[0],Y:[35]},{Q:[],P:[],Y:[1,4]},{Q:[],P:[0,1],Y:[9,14,19,219,248]},{Q:[],P:[],Y:[0,5,10,16,28,31,37,92,214,300,343]},{Q:[],P:[],Y:[5]},{Q:[1],P:[1],Y:[0]},{Q:[6,2,0],P:[0,1,2,3,4,5,6,7],Y:[]},{Q:[0],P:[0,1],Y:[4,5,7,31,92]},{Q:[2,0],P:[0,1,2],Y:[]},{C:0,Q:[],P:[],Y:[1]},{Q:[0],P:[0],Y:[]},{Q:[0],P:[0],Y:[8,260]},{Q:[],P:[],Y:[]},{C:0,Q:[],P:[],Y:[]},{Q:[10],P:[0,1,2,3,4,5,7,8,9,10,11,13,14],Y:[6,12,23,30,115,249]},{Q:[1],P:[1,2,3],Y:[0,6]},{Q:[0],P:[0],Y:[]},{Q:[],P:[],Y:[20]},{Q:[],P:[],Y:[8]},{Q:[1,2],P:[1,2],Y:[0]},{C:14,Q:[6],P:[3,4,6,8,9,10,11,12,13,15,16,17,18,19,20,21,22],Y:[0,1,2,5,7,78,90,123,175,177,223,226,285,314,344]},{Q:[3],P:[1,2,3,4],Y:[0]},{Q:[],P:[],Y:[1,8,10,11]},{Q:[0,1],P:[0,1,2],Y:[51,69]},{Q:[],P:[0,1,2,4,6],Y:[3,5,7,8,9,10,108,163,234,304]},{Q:[0],P:[0],Y:[1,5]},{Q:[0,15,10,6,13,14],P:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16],Y:[7,21,48,81,108,163,212,352]},{Q:[],P:[3,4,5,7,8,9,12,14,15],Y:[0,1,2,6,10,11,13,60,108,131,163,216,291,352,357]},{C:0,Q:[],P:[],Y:[]},{C:2,Q:[0],P:[0],Y:[1,9]},{Q:[],P:[],Y:[]},{Q:[],P:[],Y:[]},{Q:[1],P:[1],Y:[0]},{Q:[0],P:[0],Y:[1]},{Q:[0],P:[0,3],Y:[1,2,4,5,7,31,214]},{Q:[0],P:[0],Y:[3,5]},{Q:[1],P:[1],Y:[0,2,4,9,11]},{Q:[0],P:[0],Y:[18]},{Q:[2],P:[0,2,5,6,7,8],Y:[1,3,4,9,11,13,19,27,29,32,33,35,176]},{Q:[34,19,4,11,23,40],P:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,35,36,37,38,39,40,41,42],Y:[2,33,57,65,67,74,90,94,108,122,141,163,164,179,184,199,253,262,264,299,312,319,320,322,325,337,352,357]},{Q:[0],P:[0],Y:[3,261]},{Q:[],P:[0,1,4,7,8,9,13,14],Y:[2,3,5,6,10,11,12,16,18,20,23,25,26,27,29,30,32,33,35,36,42,108,115,163,249,269]},{Q:[],P:[],Y:[0,1,8,22]},{Q:[],P:[0],Y:[1,2,4]},{Q:[4],P:[0,1,2,3,4,5,6],Y:[20,108,163,352]},{Q:[5],P:[5,7,12,13,14,15,16],Y:[0,1,2,3,4,6,8,9,10,11,105]},{Q:[3,1],P:[0,1,2,3],Y:[51]},{Q:[5],P:[0,1,2,3,4,5,7,8,9],Y:[6,12,23,30,115,249]},{Q:[],P:[1,3,5,8,9,12,13,14,17,22,24,26,28,31,32,34,36,38,39,40,41,43,44,45,46,47,48],Y:[0,2,4,6,7,10,11,15,16,18,19,20,21,23,25,27,29,30,33,35,37,42,76,108,163,286,322,352]},{Q:[1,2],P:[0,1,2],Y:[6,31]},{Q:[3],P:[0,1,2,3],Y:[8,23,72,88,289]},{Q:[0,1],P:[0,1],Y:[]},{Q:[0],P:[0],Y:[2]},{Q:[],P:[0,1,2,3],Y:[6,25,36,89,98,113,143,235,257,287]},{Q:[],P:[],Y:[]},{C:5,Q:[3,2,1,4],P:[0,1,2,3,4,6],Y:[]},{Q:[],P:[1,2,3],Y:[0,10,13,17,18,19,219,248]},{Q:[0],P:[0],Y:[]},{Q:[],P:[],Y:[5,8]},{Q:[0,1],P:[0,1],Y:[95]},{Q:[0],P:[0],Y:[]},{Q:[1,0],P:[0,1],Y:[11]},{Q:[4],P:[2,3,4,5,6,7,8],Y:[0,1]},{Q:[2,0],P:[0,2,3],Y:[1,31]},{Q:[5],P:[0,1,2,3,4,5,7,8,9],Y:[6,12,23,30,115,249]},{Q:[1,4,6,7,5,2,3],P:[1,2,3,4,5,6,7],Y:[0,23,129,177,179,226,263,314]},{Q:[1,0],P:[0,1,2],Y:[31,93]},{Q:[0],P:[0,1,2,3,4,5,6,7],Y:[10,11,51,124,198]},{Q:[],P:[0,1,2,3,5,6],Y:[4,14,15,17,163,290]},{C:3,A:4,Q:[],P:[0,2,5,6,7],Y:[1]},{Q:[4],P:[0,1,4,5,6,7,8,9],Y:[2,3,13,25,95,97,177,220,226,229,292,314,347]},{Q:[],P:[],Y:[5,28,37]},{Q:[],P:[0],Y:[8,11,39,90]},{Q:[2],P:[1,2],Y:[0,3,5]},{Q:[0],P:[0,1,2,3],Y:[53,62,179,202,303,313,321]},{Q:[4],P:[0,1,2,3,4],Y:[45,166]},{Q:[],P:[],Y:[3]},{Q:[],P:[16,17,18,21,22,23,24,25,26,27,28,29,30],Y:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,19,20,108,163,288,354]},{Q:[0,5],P:[0,5],Y:[1,2,3,4]},{Q:[1],P:[1],Y:[0]},{Q:[],P:[0,1,2,3],Y:[10,12,16,19,24,108,163]},{Q:[],P:[0],Y:[153,189]},{Q:[0],P:[0],Y:[191]},{Q:[0],P:[0],Y:[2]},{Q:[],P:[],Y:[0]},{Q:[0],P:[0],Y:[3,8]},{Q:[],P:[],Y:[8,9]},{Q:[],P:[],Y:[]},{Q:[],P:[],Y:[1,2,3]},{Q:[3,1],P:[1,2,3],Y:[0,31]},{Q:[8,1],P:[0,1,2,3,4,5,6,7,8],Y:[]},{Q:[],P:[0,1],Y:[13,53,59,64,113,125,169,207,235,238,254,260,265,303,321,322,330]},{Q:[],P:[1,2,3,5,6,8,9,10,11,12],Y:[0,4,7,108,163,352]},{Q:[0],P:[0],Y:[]},{C:0,Q:[1],P:[1,2,3,4],Y:[68,203]},{Q:[],P:[0],Y:[17,18]},{Q:[],P:[0],Y:[331]},{Q:[],P:[],Y:[2,10,14,105]},{Q:[3],P:[0,1,2,3],Y:[6,8,191,243]},{Q:[0],P:[0],Y:[]},{Q:[],P:[0,3,5,7,9,11,12,13,16,19,20,21,22],Y:[1,2,4,6,8,10,14,15,17,18,25,27,28,33,36,38,108,163,181,282]},{Q:[0],P:[0],Y:[]},{Q:[5,1,6,7,3,2],P:[1,2,3,4,5,6,7,8,9,10,11,12,13],Y:[0,145,276,281,284,320]},{Q:[],P:[0,1,2,3,4,5,8,9,11,13,14,15,16,18,19,20,22,23,24,25,26,27,28],Y:[6,7,10,12,17,21,31,36,37,38,108,163,349,352]},{A:6,Q:[],P:[2,3,4,5,7],Y:[0,1,8,9,10,11]},{Q:[],P:[3,5,9,10,13,16,17,20],Y:[0,1,2,4,6,7,8,11,12,14,15,18,19,21,22,23,108,127,163]},{Q:[0],P:[0],Y:[56]},{Q:[],P:[0,1,2,3],Y:[5]},{Q:[0],P:[0],Y:[]},{Q:[0],P:[0,1],Y:[297,305]},{Q:[7],P:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],Y:[72,89,201,287]},{Q:[1,0,5,12],P:[0,1,2,3,4,5,6,7,8,9,10,11,12],Y:[305]},{Q:[3,13,30,10],P:[0,1,2,3,4,5,7,8,9,10,11,12,13,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30],Y:[6,14,17,46,47,80,91,111,126,135,147,159,165,167,185,192,195,197,228,258,301,309,316,322,332,353]},{C:12,A:8,Q:[6],P:[0,1,2,3,4,5,6,7,9,10,11],Y:[51,107,124,198]},{Q:[],P:[],Y:[3,4]},{Q:[],P:[],Y:[4,8,14,15,17,163]},{Q:[0],P:[0],Y:[9]},{Q:[],P:[0,1,2,3,4],Y:[7,19,21,108,163]},{C:6,A:3,Q:[11],P:[0,1,4,5,7,8,9,10,11],Y:[2,318]},{Q:[3],P:[1,3,4,5],Y:[0,2,28,309]},{Q:[],P:[5,8,13,14,15,16],Y:[0,1,2,3,4,6,7,9,10,11,12]},{Q:[4,2,1,3,5,6],P:[0,1,2,3,4,5,6],Y:[7,108,163,352]},{Q:[0,1],P:[0,1],Y:[142,308]},{Q:[],P:[],Y:[9,11,108,131,163]},{Q:[],P:[0],Y:[]},{Q:[1],P:[0,1,2,3],Y:[20,23]},{Q:[1,0],P:[0,1],Y:[179,204]},{Q:[0],P:[0],Y:[1]},{Q:[],P:[],Y:[1,7]},{Q:[2],P:[2],Y:[0,1]},{Q:[],P:[],Y:[]},{Q:[],P:[],Y:[0,13]},{Q:[0],P:[0],Y:[]},{Q:[0],P:[0],Y:[57]},{Q:[],P:[],Y:[]},{Q:[],P:[0,1,2],Y:[5,8,108,163]},{C:5,Q:[],P:[0,1,2,3,4],Y:[41,331]},{Q:[31,18,19,5,0,29,1,26,4,16,34],P:[0,1,2,4,5,6,8,9,14,15,16,17,18,19,21,22,23,24,26,27,28,29,30,31,32,33,34],Y:[3,7,10,11,12,13,20,25,35,36,53,56,62,70,72,77,83,88,89,90,95,97,98,99,100,113,114,117,128,143,148,149,155,156,162,177,178,179,202,219,220,226,229,235,241,256,257,260,279,285,287,289,292,303,305,311,313,314,321,330,335,338,340,345,346,347]},{Q:[0],P:[0],Y:[106,169,229,345]},{Q:[0],P:[0],Y:[]},{Q:[],P:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15],Y:[2,17,18,21,23,108,163,352]},{Q:[0],P:[0,2],Y:[1,8,9,11]},{Q:[1],P:[1],Y:[0,106,169,345]},{Q:[],P:[],Y:[285]},{Q:[7,5],P:[1,2,3,4,5,6,7],Y:[0,64,113,125,169,207,235,254,260,322,330]},{Q:[],P:[],Y:[8]},{Q:[],P:[],Y:[187]},{Q:[0],P:[0],Y:[3,8,9]},{Q:[],P:[],Y:[3,6]},{Q:[1],P:[1,2,3],Y:[0,106,229,345]},{Q:[0],P:[0],Y:[3,260]},{Q:[3],P:[0,1,2,3,4],Y:[9,10,11,16,171,191]},{Q:[0],P:[0],Y:[]},{Q:[0],P:[0,1],Y:[42,277,315]},{Q:[0],P:[0],Y:[]},{C:0,Q:[1],P:[1],Y:[325]},{Q:[],P:[0,1,2,3,5,6,7,8],Y:[4,14,38,39,108,131,163,352]},{Q:[0],P:[0],Y:[1]},{Q:[6,1,3,5,0,4],P:[0,1,2,3,4,5,6],Y:[108,163,352]},{Q:[],P:[],Y:[0,16]},{C:2,A:6,Q:[],P:[0,1,3,4,5],Y:[]},{Q:[4],P:[0,1,2,4,6,9,10,11,12,13,14,15,16,17,18,19,20],Y:[3,5,7,8,42,50,56,70,103,110,114,116,118,121,140,175,177,183,196,219,226,248,250,256,268,279,289,314,326,339]},{Q:[14,7,11,10,17,0,4],P:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],Y:[23,179]},{Q:[1],P:[0,1,4],Y:[2,3]},{Q:[1],P:[1],Y:[0,179]},{Q:[3,4,6],P:[0,1,2,3,4,5,6,7,8,9,10,11],Y:[294]},{Q:[1,0],P:[0,1,2,3],Y:[39,56]},{C:0,Q:[],P:[],Y:[]},{Q:[],P:[0,3,4,5],Y:[1,2,8,15,18,23,108,127,163]},{Q:[1,0],P:[0,1],Y:[8,16]},{Q:[],P:[],Y:[]},{Q:[],P:[1,3,5,7,8,10,12,13,14,16,17,18],Y:[0,2,4,6,9,11,15,20,24,25,27,30,42,108,163]},{Q:[0],P:[0],Y:[]},{Q:[3],P:[0,1,2,3,4,5],Y:[11]},{Q:[],P:[],Y:[3,15]},{Q:[0],P:[0],Y:[]},{Q:[0],P:[0],Y:[4]},{Q:[],P:[0,1],Y:[10,12,14,15,16,24]},{Q:[],P:[],Y:[]},{Q:[15],P:[0,1,2,4,5,6,8,9,10,11,12,13,14,15,16],Y:[3,7,28,31,37,50,56,70,92,114,118,140,175,177,183,194,196,214,226,256,279,282,300,314,343]},{Q:[],P:[1,2,3,4,5,7,9,11,13,14,15,17,20,21,22,23],Y:[0,6,8,10,12,16,18,19,24,163,305]},{Q:[],P:[0,1,2,3,5,6,8,9,10,11,13,16],Y:[4,7,12,14,15,19,108,112,137,163,171,191,291,317]},{Q:[],P:[3],Y:[0,1,2,4,5]},{Q:[3,8],P:[0,1,2,3,4,5,6,7,8,9],Y:[27,51,213]},{Q:[0],P:[0],Y:[12]},{Q:[2],P:[0,2,4],Y:[1,3,7,320]},{C:2,Q:[3],P:[0,1,3],Y:[]},{Q:[16,4,5,7,15,12],P:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],Y:[24,60,108,131,163,216,291,352,357]},{Q:[7],P:[0,1,2,3,4,5,6,7,8],Y:[11,18,26,32,115,249,269]},{Q:[],P:[],Y:[2,6,18,23]},{Q:[0],P:[0],Y:[2,4,7]},{Q:[],P:[0,2,5,8,9,10,11,12,15,17,22,24,26,27,28,29,30,31,32],Y:[1,3,4,6,7,13,14,16,18,19,20,21,23,25,73,108,163,188,191,221,236]},{Q:[],P:[],Y:[0,3]},{Q:[0],P:[0,1,2,3],Y:[42,121,246]},{Q:[1],P:[0,1],Y:[7,19,21,22]},{Q:[],P:[],Y:[231]},{Q:[0],P:[0],Y:[13]},{Q:[],P:[1,2],Y:[0,7,8,9,17]},{Q:[],P:[0,1,2],Y:[3,108,163]},{Q:[0],P:[0],Y:[15,23]},{Q:[2],P:[0,1,2,3,4],Y:[108,160]},{Q:[],P:[],Y:[8]},{C:9,Q:[6,10,14,7],P:[6,7,8,10,11,12,13,14,15,16,17,18,19,20],Y:[0,1,2,3,4,5]},{Q:[2,3,7],P:[1,2,3,4,5,6,7],Y:[0]},{Q:[],P:[],Y:[0,2]},{Q:[3],P:[1,3],Y:[0,2]},{Q:[2,8,16,1,18,11],P:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21],Y:[15,38,49,84,85,87,102,108,120,157,163,170,209,217,232,288,341,342,352,354]},{Q:[1],P:[1],Y:[0]},{Q:[],P:[0,1,2,3,4,5,8,9,12,13,14,16,17,18],Y:[6,7,10,11,15,53,56,62,77,90,99,100,117,128,148,155,177,178,179,202,226,241,292,303,311,313,314,321,338,340]},{Q:[],P:[0,1,2,3,4],Y:[]},{Q:[0,9,11,4,2,6],P:[0,1,2,3,4,5,6,7,8,9,10,11],Y:[108,163,234,304]},{Q:[16,7,10],P:[0,1,2,3,4,6,7,9,10,11,12,13,14,15,16],Y:[5,8,32,42,66,103,110,119,121,139,151,152,161,208,230,250,270,278,323,339,351]},{Q:[],P:[],Y:[4]},{Q:[0],P:[0],Y:[]},{Q:[],P:[],Y:[0,7,108,163,357]},{Q:[],P:[0,1,2,3,4,5],Y:[]},{Q:[],P:[1,3,4,5,6],Y:[0,2,7,8,9,11,17,30,31]},{Q:[0],P:[0],Y:[4,318]},{Q:[1,0],P:[0,1],Y:[]},{Q:[],P:[],Y:[]},{Q:[3],P:[0,1,3],Y:[2,5]},{Q:[],P:[0,1,2,3],Y:[4,7,10,16,108,163]},{Q:[0],P:[0,1],Y:[3,6,7]},{Q:[0],P:[0,1,2,3,4,5,6,7],Y:[]},{C:0,Q:[2,1],P:[1,2],Y:[]},{Q:[0],P:[0],Y:[]},{Q:[],P:[0,1,2,4,5,6,8],Y:[3,7,163]},{Q:[],P:[0],Y:[2,8,17,18,177,226,263,314]},{Q:[6],P:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],Y:[72,201,206,226,287]},{Q:[],P:[0,1],Y:[20,38]},{Q:[1],P:[0,1],Y:[20,23]},{Q:[],P:[],Y:[]},{A:3,Q:[],P:[0,2],Y:[1]},{Q:[3],P:[0,1,2,3],Y:[22,27,51,68,69,79,107,124,144,198,203,227,233,266,274,307,318,333]},{Q:[5],P:[0,2,3,4,5,6],Y:[1,38,108,163,352]},{Q:[0],P:[0],Y:[229]},{Q:[0],P:[0],Y:[1,4,7]},{Q:[],P:[],Y:[0,1]},{Q:[],P:[],Y:[]},{Q:[],P:[0,1,2,3,4,5,6,7,8,9,10,11,14,15,16,17,18,19,20,21,22,23,24,25,27],Y:[12,13,26,28,36,38,39,180,293,296,298]},{Q:[],P:[],Y:[4]},{Q:[],P:[],Y:[3]},{Q:[0],P:[0],Y:[]},{Q:[],P:[2,10],Y:[0,1,3,4,5,6,7,8,9,11,12,13,15,16,31,50,70,92,114,118,140,175,177,183,194,196,214,226,256,279,282,314]},{C:1,Q:[0],P:[0],Y:[]},{Q:[0],P:[0],Y:[2,6]},{Q:[2],P:[0,2],Y:[1,4,7,10]},{Q:[7,3,0,2],P:[0,2,3,4,5,6,7],Y:[1,44,78,90,123,175,177,223,226,273,285,314,318,344]},{Q:[],P:[],Y:[0,2]},{Q:[0],P:[0],Y:[11]},{Q:[0],P:[0],Y:[5,15,18,19]},{Q:[5,0],P:[0,1,2,3,4,5],Y:[16,30,133,150]},{Q:[1],P:[0,1],Y:[2]},{Q:[3],P:[0,1,2,3,4,5,6,7,9,10],Y:[8,108,163,234]},{Q:[1,0],P:[0,1],Y:[]},{Q:[],P:[0,1,2,5,6,7,8,9,11,12,13,16],Y:[3,4,10,14,15,38,84,85,102,157,163,170,209,217,232,342]},{Q:[],P:[2,3,6,7,12,14,15,16,17],Y:[0,1,4,5,8,9,10,11,13,145,276,281,284]},{Q:[],P:[0,3,5,6,8,9,10,11,12,15,16,17,18,19,20,21,24,25,27],Y:[1,2,4,7,13,14,22,23,26,108,163,247,275,352]},{Q:[0,6,2,4],P:[0,1,2,3,4,5,6],Y:[108,163,210,291]},{A:4,Q:[],P:[0,1,2,3,5],Y:[8,9,10,11]},{Q:[0],P:[0,1,2],Y:[]},{Q:[182],P:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358],Y:[]},{Q:[0],P:[0],Y:[]},{Q:[0,7,1],P:[0,1,2,3,4,5,6,7],Y:[56,132]},{Q:[36],P:[1,6,10,12,14,15,17,23,24,25,28,29,30,31,32,33,34,35,36,37],Y:[0,2,3,4,5,7,8,9,11,13,16,18,19,20,21,22,26,27,38,108,163,352]},{Q:[1],P:[0,1,2,3],Y:[190]},{C:1,Q:[],P:[0,2],Y:[41]},{Q:[1],P:[0,1],Y:[]},{Q:[],P:[],Y:[3]},{Q:[0,1],P:[0,1],Y:[]},{Q:[3,7,1,4],P:[0,1,2,3,4,5,6,7],Y:[]},{Q:[],P:[],Y:[]},{Q:[1],P:[0,1],Y:[4]},{A:4,Q:[9],P:[0,1,2,3,5,6,7,8,9,10],Y:[]},{Q:[],P:[],Y:[1,3,5,271]},{Q:[1,6,3],P:[1,2,3,4,5,6,7],Y:[0]},{Q:[],P:[0,1,2,3,4,5,6,7],Y:[28,31,52,92,93,101,104,186,214,215,222,244,251,300,343]},{Q:[2],P:[2],Y:[0,1,142,308]},{Q:[0],P:[0],Y:[4]},{C:0,Q:[],P:[],Y:[]},{Q:[2],P:[0,1,2,3,4],Y:[7]},{Q:[0],P:[0],Y:[4]},{Q:[3],P:[0,1,2,3],Y:[9]},{Q:[],P:[1,3,6,7],Y:[0,2,4,5,9]},{Q:[16,8,0,24,22,34],P:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],Y:[7,18,21,108,163,176,242,348,349,352]},{Q:[0],P:[0],Y:[5]},{Q:[5,3],P:[0,1,2,3,4,5],Y:[16,26,30,82,150]},{Q:[0],P:[0],Y:[191,236]},{Q:[1],P:[0,1,2,3,4,5,6],Y:[11,18,26,32,115,249,269]},{Q:[1,0,5,9,2,12],P:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18],Y:[7,108,163,224,290,352]},{Q:[],P:[0,1,2,3,4],Y:[9,11,30,31]},{Q:[],P:[],Y:[4]},{Q:[],P:[],Y:[2,8,10,17,129,263]},{Q:[2],P:[0,2],Y:[1,4,5,204]},{C:3,Q:[2],P:[1,2],Y:[0]},{C:7,A:5,Q:[],P:[2,3,4],Y:[0,1,6,10,139,278]},{Q:[0],P:[0],Y:[4]},{Q:[0],P:[0],Y:[]},{Q:[0],P:[0],Y:[5]},{Q:[],P:[0,1,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20],Y:[2,6,108,163,352]},{Q:[0],P:[0],Y:[3,57,65,122,141,179,319,320,325]},{Q:[1,2],P:[0,1,2],Y:[]},{Q:[0],P:[0],Y:[5]}];var Of=[3322761680,2515914589,3264258168,4256225765,152.2,.4,1896780699,77017224e4,4294967296,-149,67186012,1544293025,1015661095,1203055223,18.2,1890660842,2063178280,769250209,720464759,9.2,56.2,-1074,3735928559,217.2,46.2,257348550135456.88,36.2,.8,29.2,2272839610,260.2,423700115,4124200167,257962403,307.2,99.2,2309313177,3104656435,202.2,7.5398223600000005,3766388551,7532777102,72010572,6528516336,762575047,2778356659,88.2,2147483648,2158697745,6.2831853,2.75,81.2,1249959798,795855071,36062257,10.05309648,1335235337,134.2,92.2,3784767593,74.2,0x1FFFFFFFFFFFFF,1041398815,3264186553,133.2,166061711,185.2,67108864,117.2,140.2,3767740714,644425708,.7,5.02654824,3946897189,128.2,1742517096,28.2,45.2,2303798862,534438896,261.2,3846669060,1665971767,2323730504,547570699,.2,3826394576,206.2,2686762210,90.2,536870911,655806151,224.2,1644486426,0xD67FF8E4BA9D3,2813237121,237765286,.6,153.2,2689737878,4294967295,83.2,132.2,54.2,50.2,-1022,816313693,249.2,236.2,247.2,2389837486,47.2,3849009036,265.2,2156821490,3272909225,3.5,.9,123.2,77.2,27.2,3054697510,2154911861,125.2,235.2,3624989579,72.2,228.2,201.2,2.51327412,3810708086,3211917416,.3,3544026985,326.2,2874630438,33107924,2419270689,157.2,310.2,111.2,2238679815,6642468440,936574095,239.2,12.5663706,0x20000000000000,.5,1353486316,18446744073709550000,2941169218,.1,-126,1344176359];var OW=[Array.prototype.map,Array.prototype.forEach,Array.prototype.filter];function OU(M){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";var f=M.length;var B=new Or(OS(f*3/4));var Z,z,j,t,S,p,O;for(var P=0,g=0;P<f;P+=4,g+=3){Z=X(E,OZ(M,P));z=X(E,OZ(M,P+1));j=X(E,OZ(M,P+2));t=X(E,OZ(M,P+3));S=Z<<2|z>>4;p=(z&15)<<4|j>>2;O=(j&3)<<6|t;B[g]=S;if(P+2<f){B[g+1]=p}if(P+3<f){B[g+2]=O}}return B}var a={value:null,writable:true};function Oq(){this.D=[]}var u=Oq.prototype;Oj(u,"D",a);Oj(u,"c",{value:function(B){this.D[B]={v:void 0}}});Oj(u,"u",{value:function(B){return this.D[B].v}});Oj(u,"L",{value:function(O,B){this.D[O].v=B}});Oj(u,"K",{value:function(){var B=new Oq;B.D=[].slice!==D?I(this.D,0):this.D.slice(0);return B}});function V(){var B=[];Oj(B,"G",{value:y});Oj(B,"b",{value:x});Oj(B,"s",{value:D});Oj(B,"I",{value:q});return B}function OR(p,S,O,B){this.X=V();this.O=V();this.t=V();this.q=void 0;this.f=S;this.i=p;this.z=O;this.F=B==null?T:Om(B);this.W=B;this.k=0}var d=OR.prototype;Oj(d,"R",{value:function(){{var B=Oe[this.f][w[this.i++]];this.f=B[0];return B[1]}}});Oj(d,"X",a);Oj(d,"O",a);Oj(d,"t",a);Oj(d,"q",a);Oj(d,"f",a);Oj(d,"i",a);Oj(d,"z",a);Oj(d,"F",a);Oj(d,"W",a);Oj(d,"k",a);function OM(p,O){try{p(O)}catch(B){Ot(B,O)}}function Ot(S,B){var p=B.t.G();for(var O=0;O<p.p;++O){B.O.G()}B.O.b({V:true,l:S});B.i=p.v;B.f=p.f}var Oi=[function(B){B.X[B.X.length-2]=B.X[B.X.length-2]>=B.X[B.X.length-1];B.X.length-=1},function(B){var f=w[B.i];var S=w[B.i+1];var p=w[B.i+2];B.i+=3;B.z.L(S,f);B.X[B.X.length]=B.z.u(p)},function(B){var t=w[B.i];var M=w[B.i+1];B.i+=2;var g=B.X[B.X.length-2];var f=B.X[B.X.length-1];var S=g^f;B.z.L(t,S);var O=B.X.length-2;B.X[O]=S;B.X[O+1]=M},function(O){var B=w[O.i];O.i+=1;O.X.length=B},function(B){B.X[B.X.length]=B.F},function(O){var A=n[w[O.i]<<8|w[O.i+1]];var m=w[O.i+2]<<8|w[O.i+3];var o=w[O.i+4];O.i+=5;b1:{var S=A;var j=S+","+m;var p=U[j];if(typeof p!=="undefined"){var E=p;break b1}var t=n[m];var B=OU(t);var f=OU(S);var g=B[0]+f[0]&255;var z="";for(var M=1;M<B.length;++M){z+=OB(f[M]^B[M]^g)}var E=U[j]=z}var Y=O.X[O.X.length-1];var P=Y[E];O.z.L(o,P);O.X.length-=1},function(B){var M=w[B.i];var g=w[B.i+1];B.i+=2;var f=B.X[B.X.length-2];var S=B.X[B.X.length-1];Oj(f,S,{writable:true,configurable:true,enumerable:true,value:M});var O=B.X.length-2;B.X[O]=f;B.X[O+1]=g},function(B){var j=w[B.i];var t=w[B.i+1]<<16|(w[B.i+2]<<8|w[B.i+3]);var M=w[B.i+4];B.i+=5;var g=B.X[B.X.length-3];var f=B.X[B.X.length-2];var S=B.X[B.X.length-1];Oj(g,f,{writable:true,configurable:true,enumerable:true,value:S});B.k={i:B.i,f:B.f};B.i=t;B.f=M;var O=B.X.length-3;B.X[O]=g;B.X[O+1]=j;B.X.length-=1},function(O){var B=w[O.i]<<16|(w[O.i+1]<<8|w[O.i+2]);O.i+=3;O.X[O.X.length]=B},function(B){var M=w[B.i];var g=w[B.i+1];var f=w[B.i+2];B.i+=3;var S=B.X[B.X.length-1];B.z.L(M,S);var p=B.z.u(g);B.z.L(f,p);B.X.length-=1},function(O){var o=n[w[O.i]<<8|w[O.i+1]];var Y=w[O.i+2]<<8|w[O.i+3];O.i+=4;var E=O.X[O.X.length-1];var S=o;var z=S+","+Y;var p=U[z];if(typeof p!=="undefined"){var t=O.X.length-1;O.X[t]=E;O.X[t+1]=E;O.X[t+2]=p;return}var j=n[Y];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var t=O.X.length-1;O.X[t]=E;O.X[t+1]=E;O.X[t+2]=U[z]=Z},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]%B.X[B.X.length-1];B.X.length-=1},function(B){var M=w[B.i];var g=w[B.i+1];var f=n[w[B.i+2]<<8|w[B.i+3]];var S=w[B.i+4];B.i+=5;var p=B.z.u(M);B.z.L(g,p);B.z.L(S,f)},function(O){var m=w[O.i];var o=n[w[O.i+1]<<8|w[O.i+2]];var Y=w[O.i+3]<<8|w[O.i+4];O.i+=5;b2:{var S=o;var j=S+","+Y;var p=U[j];if(typeof p!=="undefined"){var P=p;break b2}var t=n[Y];var B=OU(t);var f=OU(S);var g=B[0]+f[0]&255;var z="";for(var M=1;M<B.length;++M){z+=OB(f[M]^B[M]^g)}var P=U[j]=z}var E=O.X[O.X.length-1];Oj(E,m,{writable:true,configurable:true,enumerable:true,value:P});O.X[O.X.length-1]=E},function(B){var g=w[B.i];B.i+=1;var f=B.X[B.X.length-1];B.z.L(g,f);var p=null;var S=B.X[B.X.length-2];B.X[B.X.length-2]=S==p;B.X.length-=1},function(B){throw B.X[B.X.length-1];B.X.length-=1},function(B){var j=w[B.i];var t=w[B.i+1];var M=w[B.i+2];B.i+=3;var S=B.z.u(j);var g=B.X[B.X.length-2];var f=B.X[B.X.length-1];Oj(g,f,{writable:true,configurable:true,enumerable:true,value:S});var O=B.X.length-2;B.X[O]=g;B.X[O+1]=t;B.X[O+2]=B.z.u(M)},function(B){var O=B.X[B.X.length-5];B.X[B.X.length-5]=O(B.X[B.X.length-4],B.X[B.X.length-3],B.X[B.X.length-2],B.X[B.X.length-1]);B.X.length-=4},function(B){var S=w[B.i]<<16|(w[B.i+1]<<8|w[B.i+2]);var O=w[B.i+3];B.i+=4;if(!B.X[B.X.length-1]){B.i=S;B.f=O}B.X.length-=1},function(O){var B=OW[w[O.i]];O.i+=1;O.X[O.X.length]=B},function(B){var S=w[B.i];var p=w[B.i+1]<<8|w[B.i+2];B.i+=3;B.i=p;B.f=S},function(B){var f=w[B.i];var S=w[B.i+1];B.i+=2;var p=B.z.u(f);B.z.L(S,p);B.X[B.X.length]=p},function(B){var M=w[B.i];var g=w[B.i+1];B.i+=2;var f=B.z.u(M);var S=B.z.u(g);var O=f;B.X[B.X.length]=O(S)},function(B){var j=w[B.i];var t=w[B.i+1];var M=w[B.i+2];var g=w[B.i+3]<<16|(w[B.i+4]<<8|w[B.i+5]);var f=w[B.i+6];B.i+=7;var S=B.z.u(M);B.k={i:B.i,f:B.f};B.i=g;B.f=f;var O=B.X.length;B.X[O]=j;B.X[O+1]=t;B.X[O+2]=S},function(B){var t=w[B.i];var M=w[B.i+1]<<8|w[B.i+2];var g=w[B.i+3];B.i+=4;var f=B.X[B.X.length-1];B.z.L(t,f);var S=B.z.u(M);var O=B.X.length-1;B.X[O]=S;B.X[O+1]=B.z.u(g)},function(B){var Z=w[B.i];var z=w[B.i+1];var j=w[B.i+2]<<16|(w[B.i+3]<<8|w[B.i+4]);var t=w[B.i+5];B.i+=6;var M=B.X[B.X.length-3];var g=B.X[B.X.length-2];var f=B.X[B.X.length-1];Oj(M,g,{writable:true,configurable:true,enumerable:true,value:f});var S=B.z.u(z);B.k={i:B.i,f:B.f};B.i=j;B.f=t;var O=B.X.length-3;B.X[O]=M;B.X[O+1]=Z;B.X[O+2]=S},function(B){var M=w[B.i];var g=n[w[B.i+1]<<8|w[B.i+2]];var f=w[B.i+3];B.i+=4;var S=B.X[B.X.length-1];Oj(S,M,{writable:true,configurable:true,enumerable:true,value:g});var O=B.X.length-1;B.X[O]=S;B.X[O+1]=f},function(B){var f=w[B.i];var S=w[B.i+1];B.i+=2;var p=B.X[B.X.length-1];B.z.L(f,p);B.z.L(S,p);B.X.length-=1},function(B){var g=w[B.i];var f=w[B.i+1];B.i+=2;var S=B.z.u(g);var O=B.X.length-1;B.X[O]=S;B.X[O+1]=f},function(B){var O=B.X[B.X.length-3];B.X[B.X.length-3]=O(B.X[B.X.length-2],B.X[B.X.length-1]);B.X.length-=2},function(B){var M=n[w[B.i]<<8|w[B.i+1]];var g=w[B.i+2];B.i+=3;var f=B.X[B.X.length-1];var S=f[M];var O=B.X.length-1;B.X[O]=S;B.X[O+1]=B.z.u(g)},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]===B.X[B.X.length-1];B.X.length-=1},function(O){var A=n[w[O.i]<<8|w[O.i+1]];var m=w[O.i+2]<<8|w[O.i+3];O.i+=4;var o=O.X[O.X.length-3];var Y=O.X[O.X.length-2];var E=O.X[O.X.length-1];Oj(o,Y,{writable:true,configurable:true,enumerable:true,value:E});var S=A;var z=S+","+m;var p=U[z];if(typeof p!=="undefined"){var t=O.X.length-3;O.X[t]=o;O.X[t+1]=p;O.X.length-=1;return}var j=n[m];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var t=O.X.length-3;O.X[t]=o;O.X[t+1]=U[z]=Z;O.X.length-=1},function(B){var g=w[B.i];var f=n[w[B.i+1]<<8|w[B.i+2]];B.i+=3;var S=B.z.u(g);var O=B.X.length-1;B.X[O]=S;B.X[O+1]=f},function(B){var S=w[B.i]<<8|w[B.i+1];var O=w[B.i+2];B.i+=3;B.t.b({v:S,f:O,p:0})},function(B){var g=n[w[B.i]<<8|w[B.i+1]];var f=w[B.i+2];B.i+=3;var S=B.X[B.X.length-1];var p=S[g];B.z.L(f,p);B.X.length-=1},function(O){var B=w[O.i];O.i+=1;O.z.L(B,O.X[O.X.length-1]);O.X.length-=1},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]!=B.X[B.X.length-1];B.X.length-=1},function(B){var t=Of[w[B.i]];B.i+=1;var M=B.X[B.X.length-2];var g=B.X[B.X.length-1];var S=M[g];var f=B.X[B.X.length-3];var p=f+S;B.X[B.X.length-3]=p&t;B.X.length-=2},function(B){var t=w[B.i];var M=w[B.i+1]<<16|(w[B.i+2]<<8|w[B.i+3]);var g=w[B.i+4];B.i+=5;var S=B.z.u(t);var f=B.X[B.X.length-1];var p=f in S;if(p){B.i=M;B.f=g}B.X.length-=1},function(B){var g=w[B.i];var f=w[B.i+1];B.i+=2;var S=B.X[B.X.length-1];B.z.L(g,S);var O=B.X.length-1;B.X[O]=S;B.X[O+1]=B.z.u(f)},function(B){var S=w[B.i];var O=w[B.i+1];B.i+=2;B.t.b({v:S,f:O,p:0})},function(O){var B=Of[w[O.i]];O.i+=1;O.X[O.X.length]=B},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]&B.X[B.X.length-1];B.X.length-=1},function(B){var O=B.X[B.X.length-1];B.X[B.X.length-1]=O()},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]-B.X[B.X.length-1];B.X.length-=1},function(B){var E=w[B.i];var P=w[B.i+1];B.i+=2;var Z=B.X[B.X.length-4];var z=B.X[B.X.length-3];var j=B.X[B.X.length-2];var t=B.X[B.X.length-1];var O=Z;var f=O(z,j,t);var M=B.X[B.X.length-6];var g=B.X[B.X.length-5];Oj(M,g,{writable:true,configurable:true,enumerable:true,value:f});var p=B.X.length-6;B.X[p]=M;B.X[p+1]=E;B.X[p+2]=B.z.u(P);B.X.length-=3},function(B){"use strict";var j=Of[w[B.i]];B.i+=1;var t=B.X[B.X.length-2];var M=B.X[B.X.length-1];var S=t+M;var p=S&j;var g=B.X[B.X.length-4];var f=B.X[B.X.length-3];g[f]=p;B.X.length-=4},function(O){var G=n[w[O.i]<<8|w[O.i+1]];var A=w[O.i+2]<<8|w[O.i+3];var m=w[O.i+4];O.i+=5;b1:{var S=G;var z=S+","+A;var p=U[z];if(typeof p!=="undefined"){var E=p;break b1}var j=n[A];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var E=U[z]=Z}var o=O.X[O.X.length-2];var Y=O.X[O.X.length-1];Oj(o,Y,{writable:true,configurable:true,enumerable:true,value:E});var t=O.X.length-2;O.X[t]=o;O.X[t+1]=m},function(B){var S=w[B.i]<<16|(w[B.i+1]<<8|w[B.i+2]);var O=w[B.i+3];B.i=S;B.f=O},function(B){var M=w[B.i];var g=w[B.i+1]<<16|(w[B.i+2]<<8|w[B.i+3]);var f=w[B.i+4];B.i+=5;var S=B.X[B.X.length-1];var p=S+M;B.i=g;B.f=f;B.X[B.X.length-1]=p},function(B){var f=w[B.i];B.i+=1;var S=null;var p=B.z.u(f);B.X[B.X.length]=S!=p},function(B){var S=w[B.i];var O=w[B.i+1];B.i+=2;if(B.X[B.X.length-1]){B.i=S;B.f=O}B.X.length-=1},function(O){var A=n[w[O.i]<<8|w[O.i+1]];var m=w[O.i+2]<<8|w[O.i+3];O.i+=4;b1:{var S=A;var z=S+","+m;var p=U[z];if(typeof p!=="undefined"){var Y=p;break b1}var j=n[m];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var Y=U[z]=Z}var o=O.X[O.X.length-1];var E=o[Y];var t=O.X.length-1;O.X[t]=E;O.X[t+1]=E},function(B){var g=n[w[B.i]<<8|w[B.i+1]];var f=w[B.i+2];B.i+=3;var S=B.z.u(f);var O=B.X.length;B.X[O]=g;B.X[O+1]=typeof S},function(B){var O=n[w[B.i]<<8|w[B.i+1]];B.i+=2;if(!(O in T)){throw new Oo(O+" is not defined.")}B.X[B.X.length]=T[O]},function(B){var g=w[B.i];var f=w[B.i+1];var S=w[B.i+2];B.i+=3;var O=B.X.length;B.X[O]=g;B.X[O+1]=f;B.X[O+2]=S},function(B){--B.t[B.t.length-1].p},function(B){var t=w[B.i]<<8|w[B.i+1];var M=w[B.i+2];var g=w[B.i+3];B.i+=4;var f=B.X[B.X.length-2];var S=B.X[B.X.length-1];var p=N(t,S,f,B.z);B.z.L(M,p);B.X[B.X.length-2]=B.z.u(g);B.X.length-=1},function(B){var M=w[B.i];var g=w[B.i+1];var f=w[B.i+2];B.i+=3;var S=B.z.u(f);var O=B.X.length;B.X[O]=M;B.X[O+1]=g&S},function(B){var M=w[B.i];var g=w[B.i+1];B.i+=2;var S=B.z.u(M);var p=S>>>g;var f=B.X[B.X.length-1];B.X[B.X.length-1]=f|p},function(O){var P=w[O.i]<<8|w[O.i+1];O.i+=2;var S=O.X[O.X.length-1];var j=S+","+P;var p=U[j];if(typeof p!=="undefined"){O.X[O.X.length-1]=p;return}var t=n[P];var B=OU(t);var f=OU(S);var g=B[0]+f[0]&255;var z="";for(var M=1;M<B.length;++M){z+=OB(f[M]^B[M]^g)}O.X[O.X.length-1]=U[j]=z},function(B){var t=w[B.i];var M=w[B.i+1];var g=n[w[B.i+2]<<8|w[B.i+3]];B.i+=4;var f=B.z.u(t);var S=B.z.u(M);var O=B.X.length;B.X[O]=f;B.X[O+1]=S;B.X[O+2]=g},function(B){var g=w[B.i];var f=w[B.i+1];B.i+=2;var S=B.X[B.X.length-1];B.z.L(g,S);var p=B.X[B.X.length-2];B.z.L(f,p);B.X[B.X.length-2]=p;B.X.length-=1},function(B){var S=w[B.i];var O=w[B.i+1];B.i+=2;if(!B.X[B.X.length-1]){B.i=S;B.f=O}B.X.length-=1},function(B){"use strict";var O=B.X[B.X.length-1];B.X[B.X.length-3][B.X[B.X.length-2]]=O;B.X[B.X.length-3]=O;B.X.length-=2},function(B){var f=w[B.i];var S=n[w[B.i+1]<<8|w[B.i+2]];B.i+=3;var p=B.X[B.X.length-1];B.z.L(f,p);B.X[B.X.length-1]=p[S]},function(O){var Y=n[w[O.i]<<8|w[O.i+1]];var E=w[O.i+2]<<8|w[O.i+3];O.i+=4;b1:{var S=Y;var j=S+","+E;var p=U[j];if(typeof p!=="undefined"){var P=p;break b1}var t=n[E];var B=OU(t);var f=OU(S);var g=B[0]+f[0]&255;var z="";for(var M=1;M<B.length;++M){z+=OB(f[M]^B[M]^g)}var P=U[j]=z}O.i=O.k.i;O.f=O.k.f;O.X[O.X.length]=P},function(B){B.X[B.X.length-2]=B.X[B.X.length-2][B.X[B.X.length-1]];B.X.length-=1},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]^B.X[B.X.length-1];B.X.length-=1},function(B){var f=w[B.i];var S=w[B.i+1];B.i+=2;var p=B.z.u(f);B.X[B.X.length]=p[S]},function(B){var j=w[B.i];var t=w[B.i+1];var M=w[B.i+2];B.i+=3;var g=B.X[B.X.length-3];var f=B.X[B.X.length-2];var S=B.X[B.X.length-1];Oj(g,f,{writable:true,configurable:true,enumerable:true,value:S});B.z.L(j,g);var p=B.X[B.X.length-4];B.z.L(t,p);B.X[B.X.length-4]=B.z.u(M);B.X.length-=3},function(B){var p=w[B.i];B.i+=1;B.X[B.X.length-(2+p)]=OH(B.X[B.X.length-(1+p)],B.X[B.X.length-(2+p)],B.X.s(B.X.length-p));B.X.length-=1+p},function(B){var S=w[B.i]<<8|w[B.i+1];var O=w[B.i+2];B.i+=3;if(!B.X[B.X.length-1]){B.i=S;B.f=O}B.X.length-=1},function(B){B.X[B.X.length]=B.X[B.X.length-1]},function(B){var j=w[B.i];var t=Of[w[B.i+1]];B.i+=2;var M=B.X[B.X.length-1];var f=M>>>j;var g=B.X[B.X.length-2];var S=g|f;var O=B.X.length-2;B.X[O]=S;B.X[O+1]=t},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]>>B.X[B.X.length-1];B.X.length-=1},function(O){var G=w[O.i]<<8|w[O.i+1];var A=w[O.i+2];var m=n[w[O.i+3]<<8|w[O.i+4]];O.i+=5;b0:{var o=O.X[O.X.length-1];var S=o;var z=S+","+G;var p=U[z];if(typeof p!=="undefined"){var E=p;break b0}var j=n[G];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var E=U[z]=Z}var Y=O.X[O.X.length-2];Oj(Y,E,{writable:true,configurable:true,enumerable:true,value:A});var t=O.X.length-2;O.X[t]=Y;O.X[t+1]=m},function(B){var t=w[B.i];var M=Of[w[B.i+1]];B.i+=2;var f=B.z.u(t);var S=f^M;var g=B.X[B.X.length-1];var O=g;B.X[B.X.length-1]=O(S)},function(B){var t=w[B.i];var M=w[B.i+1];var g=Of[w[B.i+2]];B.i+=3;var f=B.z.u(t);var S=B.z.u(M);var O=B.X.length;B.X[O]=f;B.X[O+1]=S^g},function(B){var O=B.X[B.X.length-3];B.X[B.X.length-3]=new O(B.X[B.X.length-2],B.X[B.X.length-1]);B.X.length-=2},function(B){var t=w[B.i];var M=n[w[B.i+1]<<8|w[B.i+2]];B.i+=3;var S=B.z.u(t);var g=B.X[B.X.length-2];var f=B.X[B.X.length-1];Oj(g,f,{writable:true,configurable:true,enumerable:true,value:S});var O=B.X.length-2;B.X[O]=g;B.X[O+1]=M},function(B){var S=w[B.i]<<8|w[B.i+1];var O=w[B.i+2];B.i+=3;if(B.X[B.X.length-1]){B.i=S;B.f=O}B.X.length-=1},function(B){var g=w[B.i];var f=w[B.i+1];var S=w[B.i+2];B.i+=3;var p=B.z.u(g);B.z.L(f,p);B.X[B.X.length]=B.z.u(S)},function(B){B.X[B.X.length]=p},function(B){"use strict";B.X[B.X.length-3][B.X[B.X.length-2]]=B.X[B.X.length-1];B.X.length-=3},function(B){var M=w[B.i];var g=w[B.i+1];B.i+=2;var f=B.X[B.X.length-1];B.z.L(M,f);var S=[];var O=B.X.length-1;B.X[O]=S;B.X[O+1]=g},function(B){"use strict";var M=w[B.i];B.i+=1;var g=B.X[B.X.length-1];var p=g^M;var f=B.X[B.X.length-3];var S=B.X[B.X.length-2];f[S]=p;B.X.length-=3},function(O){var B=w[O.i]<<8|w[O.i+1];O.i+=2;O.z.L(B,O.X[O.X.length-1]);O.X.length-=1},function(B){var O=B.X[B.X.length-12];B.X[B.X.length-12]=new O(B.X[B.X.length-11],B.X[B.X.length-10],B.X[B.X.length-9],B.X[B.X.length-8],B.X[B.X.length-7],B.X[B.X.length-6],B.X[B.X.length-5],B.X[B.X.length-4],B.X[B.X.length-3],B.X[B.X.length-2],B.X[B.X.length-1]);B.X.length-=11},function(B){var j=w[B.i];var t=w[B.i+1];var M=w[B.i+2]<<16|(w[B.i+3]<<8|w[B.i+4]);var g=w[B.i+5];B.i+=6;var f=B.z.u(j);var S=f+t;var O=B.X.length;B.X[O]=S;B.X[O+1]=g;B.X[O+2]=M},function(B){var M=w[B.i];var g=w[B.i+1];var f=w[B.i+2];B.i+=3;var S=B.z.u(M);var p=S+g;B.z.L(f,p)},function(B){var t=w[B.i];B.i+=1;var S=B.z.u(t);var M=B.X[B.X.length-1];var p=M&S;var g=B.X[B.X.length-3];var f=B.X[B.X.length-2];Oj(g,f,{writable:true,configurable:true,enumerable:true,value:p});B.X[B.X.length-3]=g;B.X.length-=2},function(B){var g=w[B.i];var f=w[B.i+1];B.i+=2;var S=[];var O=B.X.length;B.X[O]=S;B.X[O+1]=g;B.X[O+2]=B.z.u(f)},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]==B.X[B.X.length-1];B.X.length-=1},function(B){var M=w[B.i];var g=w[B.i+1];var f=w[B.i+2]<<16|(w[B.i+3]<<8|w[B.i+4]);var S=w[B.i+5];B.i+=6;var p=B.z.u(M);B.z.L(g,p);B.k={i:B.i,f:B.f};B.i=f;B.f=S},function(B){"use strict";B.X[B.X.length-2]=delete B.X[B.X.length-2][B.X[B.X.length-1]];B.X.length-=1},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]<B.X[B.X.length-1];B.X.length-=1},function(B){B.i=B.k.i;B.f=B.k.f},function(O){var B=w[O.i]<<8|w[O.i+1];O.i+=2;O.X[O.X.length]=O.z.u(B)},function(B){var g=w[B.i];var f=w[B.i+1];B.i+=2;var S=B.z.u(g);var p=B.z.u(f);B.i=p;B.f=S},function(O){var G=n[w[O.i]<<8|w[O.i+1]];var A=w[O.i+2]<<8|w[O.i+3];var m=n[w[O.i+4]<<8|w[O.i+5]];O.i+=6;b1:{var S=G;var z=S+","+A;var p=U[z];if(typeof p!=="undefined"){var Y=p;break b1}var j=n[A];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var Y=U[z]=Z}var o=O.X[O.X.length-1];var E=o[Y];var t=O.X.length-1;O.X[t]=E;O.X[t+1]=m},function(B){B.X[B.X.length]=false},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]|B.X[B.X.length-1];B.X.length-=1},function(B){B.X[B.X.length]=true},function(B){var M=w[B.i];var g=w[B.i+1];var f=w[B.i+2];B.i+=3;var S=B.X[B.X.length-1];var p=S+M;B.z.L(g,p);B.X[B.X.length-1]=B.z.u(f)},function(B){B.X.b(function(){null[0]()})},function(B){B.X[B.X.length-1]=typeof B.X[B.X.length-1]},function(B){var j=w[B.i];var t=w[B.i+1];var M=w[B.i+2];B.i+=3;var g=B.X[B.X.length-1];var f=g[j];var S=B.z.u(t);var O=B.X.length-1;B.X[O]=f;B.X[O+1]=S;B.X[O+2]=M},function(B){var M=w[B.i];var g=w[B.i+1]<<8|w[B.i+2];var f=w[B.i+3];B.i+=4;var S=B.X[B.X.length-1];Oj(S,M,{writable:true,configurable:true,enumerable:true,value:g});var O=B.X.length-1;B.X[O]=S;B.X[O+1]=f},function(B){var S=w[B.i]<<16|(w[B.i+1]<<8|w[B.i+2]);var O=w[B.i+3];B.i+=4;if(B.X[B.X.length-1]){B.i=S;B.f=O}B.X.length-=1},function(O){var m=n[w[O.i]<<8|w[O.i+1]];var o=w[O.i+2]<<8|w[O.i+3];O.i+=4;b1:{var S=m;var j=S+","+o;var p=U[j];if(typeof p!=="undefined"){var E=p;break b1}var t=n[o];var B=OU(t);var f=OU(S);var g=B[0]+f[0]&255;var z="";for(var M=1;M<B.length;++M){z+=OB(f[M]^B[M]^g)}var E=U[j]=z}var Y=O.X[O.X.length-1];var P=Y[E]();O.X.length-=1},function(B){var M=w[B.i];var g=w[B.i+1];B.i+=2;var f=B.X[B.X.length-1];B.z.L(M,f);var S=null;var O=B.X.length-1;B.X[O]=S;B.X[O+1]=B.z.u(g)},function(B){++B.t[B.t.length-1].p},function(B){var z=w[B.i];var j=w[B.i+1];B.i+=2;var t=B.X[B.X.length-2];var M=B.X[B.X.length-1];var p=t&M;var g=B.X[B.X.length-4];var f=B.X[B.X.length-3];Oj(g,f,{writable:true,configurable:true,enumerable:true,value:p});B.z.L(z,g);var S=B.X[B.X.length-5];B.z.L(j,S);B.X.length-=5},function(B){var f=n[w[B.i]<<8|w[B.i+1]];var S=n[w[B.i+2]<<8|w[B.i+3]];B.i+=4;if(!(f in T)){throw new Oo(f+" is not defined.")}var p=T[f];B.X[B.X.length]=p[S]},function(B){var M=w[B.i];var g=w[B.i+1];var f=w[B.i+2];B.i+=3;var S=B.z.u(g);var O=B.X.length;B.X[O]=M;B.X[O+1]=S;B.X[O+2]=f},function(B){var t=w[B.i];var M=w[B.i+1];B.i+=2;var g=B.X[B.X.length-2];var f=B.X[B.X.length-1];var O=g;var S=O(f);B.z.L(t,S);B.X[B.X.length-2]=B.z.u(M);B.X.length-=1},function(B){var O=B.t.G();var p={V:false,l:B.i,f:B.f};B.O.b(p);B.i=O.v;B.f=O.f},function(B){"use strict";var j=w[B.i];var t=n[w[B.i+1]<<8|w[B.i+2]];B.i+=3;var M=B.X[B.X.length-3];var g=B.X[B.X.length-2];var f=B.X[B.X.length-1];M[g]=f;var S=B.z.u(j);var O=B.X.length-3;B.X[O]=S;B.X[O+1]=t;B.X.length-=1},function(B){var j=w[B.i];var t=w[B.i+1];var M=w[B.i+2]<<16|(w[B.i+3]<<8|w[B.i+4]);var g=w[B.i+5];B.i+=6;var f=B.z.u(j);var S=B.z.u(t);B.k={i:B.i,f:B.f};B.i=M;B.f=g;var O=B.X.length;B.X[O]=f;B.X[O+1]=S},function(O){var B=w[O.i];O.i+=1;O.X[O.X.length]=O.z.u(B)},function(B){var M=w[B.i];var g=w[B.i+1];var f=w[B.i+2];B.i+=3;var S=B.X[B.X.length-1];B.z.L(M,S);var O=B.X.length-1;B.X[O]=g;B.X[O+1]=B.z.u(f)},function(B){B.X[B.X.length]=Q},function(B){var t=w[B.i];var M=w[B.i+1];var g=w[B.i+2];B.i+=3;var f=B.z.u(t);var S=B.z.u(M);var O=B.X.length;B.X[O]=f;B.X[O+1]=S;B.X[O+2]=g},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]in B.X[B.X.length-1];B.X.length-=1},function(B){var z=w[B.i];var j=w[B.i+1];B.i+=2;var t=B.X[B.X.length-4];var M=B.X[B.X.length-3];var g=B.X[B.X.length-2];var f=B.X[B.X.length-1];var O=t;var S=O(M,g,f,z);B.z.L(j,S);B.X.length-=4},function(B){var S=w[B.i]<<8|w[B.i+1];var O=w[B.i+2];B.i+=3;B.k={i:B.i,f:B.f};B.i=S;B.f=O},function(B){var t=w[B.i];var M=w[B.i+1];var g=w[B.i+2];B.i+=3;var f=B.z.u(t);var S=B.z.u(M);var O=B.X.length;B.X[O]=f;B.X[O+1]=S;B.X[O+2]=B.z.u(g)},function(O){var m=n[w[O.i]<<8|w[O.i+1]];var o=n[w[O.i+2]<<8|w[O.i+3]];var Y=w[O.i+4]<<8|w[O.i+5];O.i+=6;if(!(m in T)){throw new Oo(m+" is not defined.")}var E=T[m];var S=o;var z=S+","+Y;var p=U[z];if(typeof p!=="undefined"){var t=O.X.length;O.X[t]=E;O.X[t+1]=p;return}var j=n[Y];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var t=O.X.length;O.X[t]=E;O.X[t+1]=U[z]=Z},function(B){var O=[];for(var p in B.X[B.X.length-1]){H(O,p)}B.X[B.X.length-1]=O},function(B){var O=B.X[B.X.length-1];B.X[B.X.length-1]=new O},function(B){var t=w[B.i];var M=w[B.i+1];var g=w[B.i+2]<<16|(w[B.i+3]<<8|w[B.i+4]);var f=w[B.i+5];B.i+=6;var S=B.X[B.X.length-1];B.z.L(t,S);var p=B.z.u(M);B.k={i:B.i,f:B.f};B.i=g;B.f=f;B.X[B.X.length-1]=p},function(O){var B=w[O.i];O.i+=1;var p=O.O.G();O.z.L(B,p.l)},function(B){B.X[B.X.length]={}},function(B){var f=w[B.i];var S=w[B.i+1];B.i+=2;var p=B.z.u(f);B.X[B.X.length]=p&S},function(B){var M=w[B.i];var g=Of[w[B.i+1]];var f=w[B.i+2];B.i+=3;var S=B.z.u(M);var O=B.X.length;B.X[O]=S;B.X[O+1]=g;B.X[O+2]=B.z.u(f)},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]instanceof B.X[B.X.length-1];B.X.length-=1},function(B){var j=w[B.i];var t=w[B.i+1];B.i+=2;var M=B.X[B.X.length-2];var g=B.X[B.X.length-1];var f=M[g];var S=B.z.u(j);var O=B.X.length-2;B.X[O]=f;B.X[O+1]=S;B.X[O+2]=B.z.u(t)},function(O){var m=w[O.i];var o=n[w[O.i+1]<<8|w[O.i+2]];var Y=w[O.i+3]<<8|w[O.i+4];O.i+=5;var E=O.z.u(m);var S=o;var z=S+","+Y;var p=U[z];if(typeof p!=="undefined"){var t=O.X.length;O.X[t]=E;O.X[t+1]=p;return}var j=n[Y];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var t=O.X.length;O.X[t]=E;O.X[t+1]=U[z]=Z},function(O){var W=w[O.i]<<8|w[O.i+1];var e=w[O.i+2];O.i+=3;b0:{var G=O.X[O.X.length-1];var S=G;var z=S+","+W;var p=U[z];if(typeof p!=="undefined"){var Y=p;break b0}var j=n[W];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var Y=U[z]=Z}var A=O.X[O.X.length-2];var E=OY(Y,A);var m=O.X[O.X.length-4];var o=O.X[O.X.length-3];Oj(m,o,{writable:true,configurable:true,enumerable:true,value:E});var t=O.X.length-4;O.X[t]=m;O.X[t+1]=e;O.X.length-=2},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]>>>B.X[B.X.length-1];B.X.length-=1},function(B){if(B.X[B.X.length-1]===null||B.X[B.X.length-1]===void 0){throw new OP(B.X[B.X.length-1]+" is not an object")}B.X[B.X.length-1]=Om(B.X[B.X.length-1])},function(B){var S=w[B.i]<<16|(w[B.i+1]<<8|w[B.i+2]);var O=w[B.i+3];B.i+=4;B.k={i:B.i,f:B.f};B.i=S;B.f=O},function(B){B.X[B.X.length-2]=delete B.X[B.X.length-2][B.X[B.X.length-1]];B.X.length-=1},function(B){var M=w[B.i];var g=w[B.i+1];B.i+=2;var S=B.z.u(M);var f=B.X[B.X.length-1];var p=f[S];B.z.L(g,p);B.X.length-=1},function(B){var t=w[B.i]<<8|w[B.i+1];var M=w[B.i+2];var g=n[w[B.i+3]<<8|w[B.i+4]];B.i+=5;var f=B.z.u(t);var S=B.z.u(M);var O=B.X.length;B.X[O]=f;B.X[O+1]=S;B.X[O+2]=g},function(B){var M=w[B.i]<<8|w[B.i+1];var g=w[B.i+2];B.i+=3;var f=B.z.u(M);var S=B.z.u(g);var O=f;B.X[B.X.length]=O(S)},function(B){var g=w[B.i];var f=w[B.i+1];B.i+=2;var S=B.X[B.X.length-1];B.z.L(g,S);var p=[];B.z.L(f,p);B.X.length-=1},function(B){var g=w[B.i];var f=n[w[B.i+1]<<8|w[B.i+2]];B.i+=3;var S=[];var O=B.X.length;B.X[O]=S;B.X[O+1]=g;B.X[O+2]=f},function(B){var g=w[B.i];var f=w[B.i+1];B.i+=2;var S=B.X[B.X.length-1];var p=S[g];B.z.L(f,p);B.X.length-=1},function(B){var j=w[B.i];B.i+=1;var t=B.X[B.X.length-2];var M=B.X[B.X.length-1];var f=t^M;var g=B.X[B.X.length-3];var O=g;var S=O(f);B.z.L(j,S);B.X.length-=3},function(B){var z=w[B.i]<<16|(w[B.i+1]<<8|w[B.i+2]);var j=w[B.i+3]<<16|(w[B.i+4]<<8|w[B.i+5]);B.i+=6;var t=B.X[B.X.length-2];var M=B.X[B.X.length-1];var O=t;var S=O(M,z,j);var g=B.X[B.X.length-4];var f=B.X[B.X.length-3];Oj(g,f,{writable:true,configurable:true,enumerable:true,value:S});B.X[B.X.length-4]=g;B.X.length-=3},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]+B.X[B.X.length-1];B.X.length-=1},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]>B.X[B.X.length-1];B.X.length-=1},function(B){var j=w[B.i];var t=w[B.i+1];var M=w[B.i+2]<<16|(w[B.i+3]<<8|w[B.i+4]);var g=w[B.i+5]<<16|(w[B.i+6]<<8|w[B.i+7]);B.i+=8;var f=B.z.u(j);var S=B.z.u(t);var O=B.X.length;B.X[O]=f;B.X[O+1]=S;B.X[O+2]=M;B.X[O+3]=g},function(O){var B=n[w[O.i]<<8|w[O.i+1]];O.i+=2;O.X[O.X.length]=B},function(B){var M=n[w[B.i]<<8|w[B.i+1]];var g=n[w[B.i+2]<<8|w[B.i+3]];B.i+=4;var f=B.X[B.X.length-1];var S=f[M];var O=B.X.length-1;B.X[O]=S;B.X[O+1]=g},function(B){var t=w[B.i]<<8|w[B.i+1];var M=w[B.i+2];var g=w[B.i+3]<<8|w[B.i+4];B.i+=5;var f=B.X[B.X.length-2];var S=B.X[B.X.length-1];Oj(f,S,{writable:true,configurable:true,enumerable:true,value:t});var O=B.X.length-2;B.X[O]=f;B.X[O+1]=M;B.X[O+2]=g},function(B){var f=w[B.i];var S=n[w[B.i+1]<<8|w[B.i+2]];B.i+=3;var p=B.z.u(f);B.X[B.X.length]=p[S]},function(O){var A=n[w[O.i]<<8|w[O.i+1]];var m=w[O.i+2]<<8|w[O.i+3];var o=n[w[O.i+4]<<8|w[O.i+5]];var Y=w[O.i+6]<<8|w[O.i+7];O.i+=8;b1:{var S=A;var z=S+","+m;var p=U[z];if(typeof p!=="undefined"){var E=p;break b1}var j=n[m];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var E=U[z]=Z}var S=o;var z=S+","+Y;var p=U[z];if(typeof p!=="undefined"){var t=O.X.length;O.X[t]=E;O.X[t+1]=p;return}var j=n[Y];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var t=O.X.length;O.X[t]=E;O.X[t+1]=U[z]=Z},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]*B.X[B.X.length-1];B.X.length-=1},function(B){var S=w[B.i]<<8|w[B.i+1];var O=w[B.i+2];B.i=S;B.f=O},function(B){B.X[B.X.length]=[]},function(B){Od=void 0},function(B){var Z=w[B.i];var z=w[B.i+1];B.i+=2;var j=B.X[B.X.length-5];var t=B.X[B.X.length-4];var M=B.X[B.X.length-3];var g=B.X[B.X.length-2];var f=B.X[B.X.length-1];var O=j;var S=O(t,M,g,f);B.z.L(Z,S);B.X[B.X.length-5]=B.z.u(z);B.X.length-=4},function(B){Od=B.X[B.X.length-1];B.X.length-=1},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]<=B.X[B.X.length-1];B.X.length-=1},function(B){var S=w[B.i]<<16|(w[B.i+1]<<8|w[B.i+2]);var O=w[B.i+3];B.i+=4;B.t.b({v:S,f:O,p:0})},function(B){var O=B.X[B.X.length-8];B.X[B.X.length-8]=O(B.X[B.X.length-7],B.X[B.X.length-6],B.X[B.X.length-5],B.X[B.X.length-4],B.X[B.X.length-3],B.X[B.X.length-2],B.X[B.X.length-1]);B.X.length-=7},function(B){var g=w[B.i];var f=w[B.i+1];B.i+=2;var S=B.z.u(g);var p=B.z.u(f);B.X[B.X.length]=S[p]},function(B){var g=w[B.i];var f=w[B.i+1];B.i+=2;var S=B.X[B.X.length-1];B.z.L(g,S);var p=null;B.z.L(f,p);B.X.length-=1},function(O){var B=w[O.i]<<8|w[O.i+1];O.i+=2;O.X[O.X.length]=B},function(B){var O=B.X[B.X.length-7];B.X[B.X.length-7]=O(B.X[B.X.length-6],B.X[B.X.length-5],B.X[B.X.length-4],B.X[B.X.length-3],B.X[B.X.length-2],B.X[B.X.length-1]);B.X.length-=6},function(B){var M=w[B.i];var g=n[w[B.i+1]<<8|w[B.i+2]];var f=w[B.i+3];var S=w[B.i+4];B.i+=5;var p=B.X[B.X.length-1];B.z.L(M,p);B.z.L(f,g);B.X[B.X.length-1]=B.z.u(S)},function(B){B.t.G()},function(O){var A=n[w[O.i]<<8|w[O.i+1]];var m=w[O.i+2]<<8|w[O.i+3];O.i+=4;b1:{var S=A;var z=S+","+m;var p=U[z];if(typeof p!=="undefined"){var E=p;break b1}var j=n[m];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var E=U[z]=Z}var o=O.X[O.X.length-2];var Y=O.X[O.X.length-1];var t=o;O.X[O.X.length-2]=t(Y,E);O.X.length-=1},function(B){var t=w[B.i];var M=w[B.i+1];var g=w[B.i+2]<<16|(w[B.i+3]<<8|w[B.i+4]);var f=w[B.i+5];B.i+=6;var S=B.X[B.X.length-1];B.z.L(t,S);var O=B.X.length-1;B.X[O]=M;B.X[O+1]=f;B.X[O+2]=g},function(B){var S=w[B.i]<<16|(w[B.i+1]<<8|w[B.i+2]);var O=w[B.i+3];B.i+=4;w[S]=O},function(B){var g=w[B.i];B.i+=1;var f=B.X[B.X.length-2];var S=B.X[B.X.length-1];var p=f[S];B.z.L(g,p);B.X[B.X.length-2]=p;B.X.length-=1},function(B){var g=n[w[B.i]<<8|w[B.i+1]];B.i+=2;var f=B.X[B.X.length-1];var S=f[g];B.i=B.k.i;B.f=B.k.f;var O=B.X.length-1;B.X[O]=f;B.X[O+1]=S},function(B){var t=w[B.i];var M=w[B.i+1]<<16|(w[B.i+2]<<8|w[B.i+3]);var g=w[B.i+4];B.i+=5;var S=B.z.u(t);var f=B.X[B.X.length-1];var p=f<S;if(!p){B.i=M;B.f=g}B.X.length-=1},function(B){var f=w[B.i];B.i+=1;var S=B.z.u(f);var p=null;B.X[B.X.length]=S!=p},function(B){var O=n[w[B.i]<<8|w[B.i+1]];B.i+=2;B.X[B.X.length]=OY(O)},function(B){var t=w[B.i];var M=w[B.i+1]<<16|(w[B.i+2]<<8|w[B.i+3]);var g=w[B.i+4];B.i+=5;var f=B.X[B.X.length-2];var S=B.X[B.X.length-1];var p=f[S];B.z.L(t,p);B.k={i:B.i,f:B.f};B.i=M;B.f=g;B.X.length-=2},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]!==B.X[B.X.length-1];B.X.length-=1},function(O){var A=n[w[O.i]<<8|w[O.i+1]];var m=w[O.i+2]<<8|w[O.i+3];var o=w[O.i+4];O.i+=5;b1:{var S=A;var j=S+","+m;var p=U[j];if(typeof p!=="undefined"){var E=p;break b1}var t=n[m];var B=OU(t);var f=OU(S);var g=B[0]+f[0]&255;var z="";for(var M=1;M<B.length;++M){z+=OB(f[M]^B[M]^g)}var E=U[j]=z}var P=O.z.u(o);var Y=O.X[O.X.length-1];Oj(Y,E,{writable:true,configurable:true,enumerable:true,value:P});O.X[O.X.length-1]=Y},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]+B.X[B.X.length-1];B.X.length-=1},function(B){var M=w[B.i];var g=w[B.i+1]<<8|w[B.i+2];B.i+=3;var f=B.X[B.X.length-3];var S=B.X[B.X.length-2];var p=B.X[B.X.length-1];Oj(f,S,{writable:true,configurable:true,enumerable:true,value:p});Oj(f,M,{writable:true,configurable:true,enumerable:true,value:g});B.X[B.X.length-3]=f;B.X.length-=2},function(B){var f=w[B.i];var S=w[B.i+1];B.i+=2;var p=[];B.z.L(f,p);B.X[B.X.length]=B.z.u(S)},function(B){var O=B.X[B.X.length-2];B.X[B.X.length-2]=new O(B.X[B.X.length-1]);B.X.length-=1},function(B){B.O.G()},function(B){var S=w[B.i];var O=w[B.i+1];B.i=S;B.f=O},function(B){var g=w[B.i];var f=n[w[B.i+1]<<8|w[B.i+2]];B.i+=3;var S=B.z.u(g);var O=B.X.length;B.X[O]=S;B.X[O+1]=S;B.X[O+2]=f},function(B){B.X[B.X.length-1]=-B.X[B.X.length-1]},function(B){B.i=B.X[B.X.length-1];B.f=B.X[B.X.length-2];B.X.length-=2},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]/B.X[B.X.length-1];B.X.length-=1},function(B){var O=B.X[B.X.length-2];B.X[B.X.length-2]=O(B.X[B.X.length-1]);B.X.length-=1},function(B){var t=w[B.i];var M=w[B.i+1]<<16|(w[B.i+2]<<8|w[B.i+3]);var g=w[B.i+4]<<16|(w[B.i+5]<<8|w[B.i+6]);B.i+=7;var S=B.z.u(t);var f=B.X[B.X.length-1];var O=f;B.X[B.X.length-1]=O(S,M,g)},function(O){var B=w[O.i];O.i+=1;O.X[O.X.length]=B},function(O){var m=w[O.i];var o=n[w[O.i+1]<<8|w[O.i+2]];var Y=w[O.i+3]<<8|w[O.i+4];O.i+=5;var E=O.X[O.X.length-1];O.z.L(m,E);var S=o;var z=S+","+Y;var p=U[z];if(typeof p!=="undefined"){var t=O.X.length-1;O.X[t]=E;O.X[t+1]=p;return}var j=n[Y];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var t=O.X.length-1;O.X[t]=E;O.X[t+1]=U[z]=Z},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]+B.X[B.X.length-1];B.X.length-=1},function(B){B.X.length-=1},function(B){var O=n[w[B.i]<<8|w[B.i+1]];B.i+=2;B.X[B.X.length]=typeof T[O]},function(B){B.X[B.X.length]=void 0},function(B){B.X[B.X.length-2]=B.X[B.X.length-2][B.X[B.X.length-1]]();B.X.length-=1},function(B){B.X[B.X.length-2]=OY(B.X[B.X.length-1],B.X[B.X.length-2]);B.X.length-=1},function(B){"use strict";var Z=w[B.i];var z=w[B.i+1];B.i+=2;var j=B.X[B.X.length-2];var t=B.X[B.X.length-1];var f=j&t;var M=B.X[B.X.length-4];var g=B.X[B.X.length-3];M[g]=f;var S=B.z.u(Z);var O=B.X.length-4;B.X[O]=S;B.X[O+1]=z;B.X.length-=2},function(B){var M=w[B.i];var g=w[B.i+1];B.i+=2;var f=B.X[B.X.length-1];B.z.L(M,f);var S=B.z.u(g);var O=B.X.length-1;B.X[O]=S;B.X[O+1]=S},function(B){B.X[B.X.length]=B.W},function(B){var O=B.O.G();if(O.V){throw O.l}B.i=O.l;B.f=O.f},function(B){var P=w[B.i];var Z=w[B.i+1];var z=w[B.i+2];B.i+=3;var g=B.z.u(P);var f=B.z.u(Z);var j=B.X[B.X.length-3];var t=B.X[B.X.length-2];var M=B.X[B.X.length-1];var O=j;var S=O(t,M,g,f);B.z.L(z,S);B.X.length-=3},function(B){Od=Oh},function(O){var e=w[O.i]<<8|w[O.i+1];var G=w[O.i+2];var A=n[w[O.i+3]<<8|w[O.i+4]];O.i+=5;b0:{var m=O.X[O.X.length-1];var S=m;var z=S+","+e;var p=U[z];if(typeof p!=="undefined"){var E=p;break b0}var j=n[e];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var E=U[z]=Z}var o=O.X[O.X.length-3];var Y=O.X[O.X.length-2];Oj(o,Y,{writable:true,configurable:true,enumerable:true,value:E});var t=O.X.length-3;O.X[t]=o;O.X[t+1]=G;O.X[t+2]=A},function(O){"use strict";var A=w[O.i]<<8|w[O.i+1];var m=w[O.i+2];O.i+=3;b0:{var o=O.X[O.X.length-1];var S=o;var j=S+","+A;var p=U[j];if(typeof p!=="undefined"){var E=p;break b0}var t=n[A];var B=OU(t);var f=OU(S);var g=B[0]+f[0]&255;var z="";for(var M=1;M<B.length;++M){z+=OB(f[M]^B[M]^g)}var E=U[j]=z}var P=O.z.u(m);var Y=O.X[O.X.length-2];Y[E]=P;O.X.length-=2},function(B){B.X[B.X.length-1]=OA(B.X[B.X.length-1])},function(B){B.X[B.X.length]=null},function(B){var t=w[B.i];var M=w[B.i+1];var g=w[B.i+2];B.i+=3;var f=B.X[B.X.length-1];B.z.L(t,f);var S=B.X[B.X.length-2];B.z.L(M,S);var p=B.X[B.X.length-3];B.z.L(g,p);B.X.length-=3},function(B){var g=w[B.i];var f=w[B.i+1];B.i+=2;var S=B.z.u(g);var p=B.z.u(f);B.X[B.X.length]=S in p},function(B){B.X[B.X.length-2]=B.X[B.X.length-2]<<B.X[B.X.length-1];B.X.length-=1},function(O){var G=w[O.i]<<8|w[O.i+1];var A=w[O.i+2];O.i+=3;b0:{var m=O.X[O.X.length-1];var S=m;var z=S+","+G;var p=U[z];if(typeof p!=="undefined"){var Y=p;break b0}var j=n[G];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var Y=U[z]=Z}var o=O.X[O.X.length-2];var E=o[Y];var t=O.X.length-2;O.X[t]=E;O.X[t+1]=O.z.u(A)},function(B){var z=w[B.i]<<8|w[B.i+1];var j=w[B.i+2];B.i+=3;var t=B.X[B.X.length-2];var M=B.X[B.X.length-1];var f=N(z,M,t,B.z);var g=B.X[B.X.length-3];var O=g;var S=O(f);B.X[B.X.length-3]=B.z.u(j);B.X.length-=2},function(B){"use strict";var z=w[B.i];var j=w[B.i+1];var t=w[B.i+2];B.i+=3;var M=B.X[B.X.length-3];var g=B.X[B.X.length-2];var f=B.X[B.X.length-1];M[g]=f;var S=B.z.u(z);var O=B.X.length-3;B.X[O]=S;B.X[O+1]=j;B.X[O+2]=B.z.u(t)},function(B){var j=w[B.i];var t=w[B.i+1]<<16|(w[B.i+2]<<8|w[B.i+3]);var M=w[B.i+4];B.i+=5;var g=B.X[B.X.length-1];var f=B.z.u(j);var S=g[f];var O=B.X.length-1;B.X[O]=g;B.X[O+1]=S;B.X[O+2]=M;B.X[O+3]=t},function(B){var t=n[w[B.i]<<8|w[B.i+1]];var M=w[B.i+2];var g=n[w[B.i+3]<<8|w[B.i+4]];B.i+=5;var f=B.X[B.X.length-2];var S=B.X[B.X.length-1];Oj(f,S,{writable:true,configurable:true,enumerable:true,value:t});var O=B.X.length-2;B.X[O]=f;B.X[O+1]=M;B.X[O+2]=g},function(B){var M=w[B.i];var g=w[B.i+1];var f=w[B.i+2];B.i+=3;var S=B.X[B.X.length-1];B.z.L(M,S);var p=B.z.u(g);B.X[B.X.length-1]=p+f},function(B){var t=n[w[B.i]<<8|w[B.i+1]];var M=w[B.i+2];var g=w[B.i+3];var f=n[w[B.i+4]<<8|w[B.i+5]];B.i+=6;B.z.L(M,t);var S=B.z.u(g);var O=B.X.length;B.X[O]=S;B.X[O+1]=f},function(B){Oj(B.X[B.X.length-3],B.X[B.X.length-2],{writable:true,configurable:true,enumerable:true,value:B.X[B.X.length-1]});B.X.length-=2},function(B){var t=w[B.i];var M=w[B.i+1];var g=w[B.i+2]<<16|(w[B.i+3]<<8|w[B.i+4]);var f=w[B.i+5];B.i+=6;var S=B.X[B.X.length-1];B.z.L(t,S);var p=B.X[B.X.length-2];B.z.L(M,p);B.k={i:B.i,f:B.f};B.i=g;B.f=f;B.X.length-=2},function(B){var j=Of[w[B.i]];var t=w[B.i+1];B.i+=2;var M=B.X[B.X.length-2];var g=B.X[B.X.length-1];var f=M<<g;var S=f&j;var O=B.X.length-2;B.X[O]=S;B.X[O+1]=B.z.u(t)},function(B){var z=w[B.i];var j=w[B.i+1];var t=w[B.i+2];B.i+=3;var M=B.X[B.X.length-3];var g=B.X[B.X.length-2];var f=B.X[B.X.length-1];Oj(M,g,{writable:true,configurable:true,enumerable:true,value:f});var S=B.z.u(j);var O=B.X.length-3;B.X[O]=M;B.X[O+1]=z;B.X[O+2]=S;B.X[O+3]=B.z.u(t)},function(B){var t=w[B.i];var M=w[B.i+1];var g=w[B.i+2];B.i+=3;var f=B.X[B.X.length-1];B.z.L(t,f);var S=B.z.u(M);var O=B.X.length-1;B.X[O]=S;B.X[O+1]=B.z.u(g)},function(B){var f=w[B.i];var S=n[w[B.i+1]<<8|w[B.i+2]];B.i+=3;var p=B.z.u(f);B.X[B.X.length]=p[S]()},function(O){var B=w[O.i]<<8|w[O.i+1];O.i+=2;O.X[O.X.length-2]=N(B,O.X[O.X.length-1],O.X[O.X.length-2],O.z);O.X.length-=1},function(B){"use strict";var j=w[B.i];var t=w[B.i+1]<<16|(w[B.i+2]<<8|w[B.i+3]);var M=w[B.i+4];B.i+=5;var g=B.X[B.X.length-3];var f=B.X[B.X.length-2];var S=B.X[B.X.length-1];g[f]=S;var p=B.z.u(j);B.k={i:B.i,f:B.f};B.i=t;B.f=M;B.X[B.X.length-3]=p;B.X.length-=2},function(B){B.X[B.X.length-1]=!B.X[B.X.length-1]},function(B){var j=w[B.i];var t=w[B.i+1];B.i+=2;var M=B.X[B.X.length-3];var g=B.X[B.X.length-2];var f=B.X[B.X.length-1];Oj(M,g,{writable:true,configurable:true,enumerable:true,value:f});var S=[];var O=B.X.length-3;B.X[O]=M;B.X[O+1]=j;B.X[O+2]=S;B.X[O+3]=t},function(B){var g=w[B.i];var f=w[B.i+1];B.i+=2;var S=B.X[B.X.length-1];var p=S|g;B.z.L(f,p);B.X.length-=1},function(B){var M=w[B.i];var g=n[w[B.i+1]<<8|w[B.i+2]];var f=w[B.i+3];B.i+=4;var S=B.X[B.X.length-1];B.z.L(M,S);var O=B.X.length-1;B.X[O]=g;B.X[O+1]=B.z.u(f)},function(B){var O=B.X[B.X.length-4];B.X[B.X.length-4]=O(B.X[B.X.length-3],B.X[B.X.length-2],B.X[B.X.length-1]);B.X.length-=3},function(O){var A=n[w[O.i]<<8|w[O.i+1]];var m=w[O.i+2]<<8|w[O.i+3];var o=w[O.i+4];O.i+=5;b1:{var S=A;var z=S+","+m;var p=U[z];if(typeof p!=="undefined"){var Y=p;break b1}var j=n[m];var B=OU(j);var f=OU(S);var g=B[0]+f[0]&255;var Z="";for(var M=1;M<B.length;++M){Z+=OB(f[M]^B[M]^g)}var Y=U[z]=Z}var E=[];var t=O.X.length;O.X[t]=Y;O.X[t+1]=E;O.X[t+2]=o},function(B){if(typeof B.X[B.X.length-1]==="object"||typeof B.X[B.X.length-1]==="function"){B.X[B.X.length-1]=Oz(B.X[B.X.length-1]);return}B.X[B.X.length-1]={}}];function N(O,f,B,S){"use strict";var p=F[O];return c(f,B,S,p.P,p.Y,p.Q,p.A,p.C)};var Od=OK;var w=OU(" ");function c(z,Z,O,S,P,p,E,M){var j=new Oq;var g,f,t;var B=E!==void 0;for(g=0,f=P.length;g<f;++g){j.D[P[g]]=O.D[P[g]]}t=l(z,Z,j,S,p,B,E);if(M!==void 0){j.c(M);j.L(M,t)}return t};function l(P,E,m,j,t,M,Y){var Z=t.length;var z=function(){"use strict";var f=m.K();var B=new OR(P,E,f,this);var S,p,O=k(arguments.length,Z);if(M){f.c(Y);f.L(Y,arguments)}for(S=0,p=j.length;S<p;++S){f.c(j[S])}for(S=0;S<O;++S){f.L(t[S],arguments[S])}for(S=O;S<Z;++S){f.L(t[S],void 0)}return Og(B)};return z}function Og(O){var p,B;for(;;){if(Od!==OK){B=Od;Od=OK;return B}p=O.R();if(O.t.length===0){Oi[p](O)}else{OM(Oi[p],O)}}}c(0,0,null,[],[],[],void 0,void 0)()}(typeof window!=="undefined"&&window!=null&&window.window===window?window:typeof global!=="undefined"&&global!=null&&global.global===global?global:this))
;(function(e,d){var isk=["ApcPYXkBh"];for(var i=0;i<isk.length;++i){e.initCustomEvent(isk[i],false,false,d);dispatchEvent(e)}}(document.createEvent("CustomEvent"),["A30ZFwSLAQAAqozXKphw_pUXLpVk0TafiovdxewnohX3WC_C-3UVyA4_isWOASaWDWX6K21wobReCOfvosJeCA==","Yn2fcG9i=oZxEDyJ_alrkCK5Rtpvu3meA6sN-7gVS0QIdHbOPWBThzqUjXLw18F4M",[],[1276483203,1522784412,1166609642,1305008463,1486785484,674838905,711657189,1247146891],document.currentScript&&document.currentScript.nonce||"+LerSDylN2EqTGvXcb0HWr5a",document.currentScript&&document.currentScript.nonce||"+LerSDylN2EqTGvXcb0HWr5a",[],typeof arguments==="undefined"?void 0:arguments]))
