debug = false;
dtavm = {}
print = console.log
dtavm.log = console.log
// console.log = function () {}
window = this;

_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 _getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
Object.getOwnPropertyDescriptor = function (){
    // console.log('Object.getOwnPropertyDescriptor', arguments[1])
    return _getOwnPropertyDescriptor.apply(this, arguments)
}
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);
            console.log(`${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);
            console.log(`${name} -> set ${propKey} value -> ${value}`);
            // if (propKey == 'pathname')debugger;
            return temp;
        },
        has(target, propKey){ //拦截propKey in proxy的操作，返回一个布尔值。
            const temp = Reflect.has(target,propKey);
            try{
                console.log(`${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) {

        return -1 == o(n) && (e(n), r(`function${' ' +nn} ${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
}();

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.
var v_console_logger = console.log
var v_console_log = function(){if (true){ v_console_logger.apply(this, arguments) }}
// 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){var temp=v_new_toggle; v_new_toggle = true; var r = new v; v_new_toggle = temp; return r}


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

EventTarget = v_saf(function EventTarget(){;})
CanvasRenderingContext2D = v_saf(function CanvasRenderingContext2D(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
CanvasGradient = v_saf(function CanvasGradient(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
WebGL2RenderingContext = v_saf(function WebGL2RenderingContext(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
MutationObserver = v_saf(function MutationObserver(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
OffscreenCanvasRenderingContext2D = v_saf(function OffscreenCanvasRenderingContext2D(){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 :"Netscape",
    appVersion:"5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
    language:"en-US",
    languages:['en-US', 'en', 'zh-CN'],
    maxTouchPoints:0,
    platform:"MacIntel",
    product:"Gecko",
    productSub:"20030107",
    userAgent:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
    vendor:"Google Inc.",
    vendorSub:"",
    webdriver:false,
}
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 || []);
            return this._plugins || []
        }, undefined, 'get')
    },
    mimeTypes: {
        get: v_saf(function mimeTypes() {
            v_console_log("  [*] Navigator -> mimeTypes[get]", this._mimeTypes || []);
            return this._mimeTypes || []
        }, undefined,'get')
    },
    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 8
        }
    },
    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 {}
        }
    },
    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() {
            })
        }
    },
    [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")
    }
    ;
    this[0] = v_new(Plugin);
    this[0].description = "Portable Document Format";
    this[0].filename = "internal-pdf-viewer";
    this[0].length = 2;
    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";
})
// PluginArray = new Proxy(PluginArray, {
//     get(target, p, receiver) {
//         let temp = Reflect.get(target, p, receiver);
//         console.log('PluginArray get ', p);
//         return temp;
//     }
// })
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(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };
//     this.getRandomValues = function(){
//         v_console_log('  [*] Crypto -> getRandomValues[func]')
//         var e=arguments[0]; return e.map(function(x, i){return e[i]=v_random()*1073741824});}
//     this.randomUUID = function(){
//         v_console_log('  [*] Crypto -> randomUUID[func]')
//         function get2(){return (v_random()*255^0).toString(16).padStart(2,'0')}
//         function rpt(func,num){var r=[];for(var i=0;i<num;i++){r.push(func())};return r.join('')}
//         return [rpt(get2,4),rpt(get2,2),rpt(get2,2),rpt(get2,2),rpt(get2,6)].join('-')}})
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(){})
webkitRTCPeerConnection = v_saf(function webkitRTCPeerConnection(){;}); _inherits(webkitRTCPeerConnection, EventTarget)
RTCPeerConnection = v_saf(function RTCPeerConnection(){;}); _inherits(RTCPeerConnection, EventTarget)
Node = v_saf(function Node(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(Node, EventTarget)
OffscreenCanvas = v_saf(function OffscreenCanvas(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(OffscreenCanvas, EventTarget)
WebSocket = v_saf(function WebSocket(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(WebSocket, EventTarget)
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.BarcodeDetector =  v_saf(function BarcodeDetector(){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") };});
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.OffscreenCanvas =  v_saf(function OffscreenCanvas(){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)
Worker = v_saf(function Worker(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(Worker, EventTarget)
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: v_saf(function open(){console.log("open_call", arguments)}, undefined, ''),  enumerable: true, configurable: true},
    overrideMimeType: {get(){ console.log("overrideMimeType_call", arguments)},  enumerable: true, configurable: true},
    send: {
        value: function () {
            console.log("send_call", arguments);
            debugger;
            this.onload && this.onload()
        }, enumerable: true, configurable: true
    },
    setRequestHeader: {
        value: function () {
            console.log("setRequestHeader_call", arguments, arguments[1].length);
            this.headers[arguments[0].toLowerCase()] = arguments[1];
            if (arguments[0] === 'EE30zvQLWf-b') {
                console.log(this.headers)
            }
            ;
        }, 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)
// }
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, {
    [Symbol.toStringTag]: {value:"HTMLBodyElement",writable:false,enumerable:false,configurable:true},
})
HTMLCanvasElement = v_saf(function HTMLCanvasElement(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(HTMLCanvasElement, HTMLElement)
HTMLAnchorElement = v_saf(function HTMLAnchorElement(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };return v_hook_href(this, 'HTMLAnchorElement', location.href)});
// _inherits(HTMLAnchorElement, HTMLElement)
// Object.defineProperties(HTMLAnchorElement.prototype, {
//     href: {
//         get() {
//             v_console_log("  [*] HTMLAnchorElement -> href[get]", "https://www.southwest.com/air/booking/index.html?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 "https://www.southwest.com/air/booking/index.html?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"
//         }, 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 mediaResult = {'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},
})
Window = v_saf(function Window(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(Window, EventTarget)

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)
HTMLBodyElement = v_saf(function HTMLBodyElement(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(HTMLBodyElement, 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") };})
WebGLRenderingContext = v_saf(function WebGLRenderingContext(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };
    function WebGLBuffer(){}
    function WebGLProgram(){}
    function WebGLShader(){}
    this._toggle = {}
    this.createBuffer = function(){ v_console_log('  [*] WebGLRenderingContext -> createBuffer[func]'); return v_new(WebGLBuffer) }
    this.createProgram = function(){ v_console_log('  [*] WebGLRenderingContext -> createProgram[func]'); return v_new(WebGLProgram) }
    this.createShader = function(){ v_console_log('  [*] WebGLRenderingContext -> createShader[func]'); return v_new(WebGLShader) }
    this.getSupportedExtensions = function(){
        v_console_log('  [*] WebGLRenderingContext -> getSupportedExtensions[func]')
        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"
        ]
    }
    var self = this
    this.getExtension = function(key){
        v_console_log('  [*] WebGLRenderingContext -> getExtension[func]:', key)
        class WebGLDebugRendererInfo{
            get UNMASKED_VENDOR_WEBGL(){self._toggle[37445]=1;return 37445}
            get UNMASKED_RENDERER_WEBGL(){self._toggle[37446]=1;return 37446}
        }
        class WebGLLoseContext{
            loseContext(){}
            restoreContext(){}
        }
        if (key == 'WEBGL_debug_renderer_info'){ var r = new WebGLDebugRendererInfo }
        else  if (key == 'EXT_texture_filter_anisotropic'){ var r = v_new(EXTTextureFilterAnisotropic) }
        else if (key == 'WEBGL_lose_context'){ var r = new WebGLLoseContext }
        else{ var r = new WebGLDebugRendererInfo }
        return aaProxy(r, key)
    }
    this.getParameter = function(key){
        v_console_log('  [*] WebGLRenderingContext -> getParameter[func]:', key)
        if (this._toggle[key]){
            if (key == 37445){ return "Google Inc. (ATI Technologies Inc.)" }
            if (key == 37446){ return "ANGLE (ATI Technologies Inc., AMD Radeon RX 560 OpenGL Engine, OpenGL 4.1)" }
        }else{
            if (key == 33902){ return new Float32Array([1,1]) }
            if (key == 33901){ return new Float32Array([1,1024]) }
            if (key == 35661){ return 32 }
            if (key == 34047){ return 16 }
            if (key == 34076){ return 16384 }
            if (key == 36349){ return 1024 }
            if (key == 34024){ return 16384 }
            if (key == 34930){ return 16 }
            if (key == 3379){ return 16384 }
            if (key == 36348){ return 30 }
            if (key == 34921){ return 16 }
            if (key == 35660){ return 16 }
            if (key == 36347){ return 4095 }
            if (key == 3386){ return new Int32Array([32767, 32767]) }
            if (key == 3410){ return 8 }
            if (key == 7937){ return "WebKit WebGL" }
            if (key == 35724){ return "WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)" }
            if (key == 3415){ return 0 }
            if (key == 7936){ return "WebKit" }
            if (key == 7938){ return "WebGL 1.0 (OpenGL ES 2.0 Chromium)" }
            if (key == 3411){ return 8 }
            if (key == 3412){ return 8 }
            if (key == 3413){ return 8 }
            if (key == 3414){ return 24 }
            return null
        }
    }
    this.getContextAttributes = function(){
        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,
        }
    }
    this.getShaderPrecisionFormat = function(a,b){
        v_console_log('  [*] WebGLRenderingContext -> getShaderPrecisionFormat[func]', a, b)

        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')
    }
    v_saf(this.createBuffer, 'createBuffer')
    v_saf(this.createProgram, 'createProgram')
    v_saf(this.createShader, 'createShader')
    v_saf(this.getSupportedExtensions, 'getSupportedExtensions')
    v_saf(this.getExtension, 'getExtension')
    v_saf(this.getParameter, 'getParameter')
    v_saf(this.getContextAttributes, 'getContextAttributes')
    v_saf(this.getShaderPrecisionFormat, 'getShaderPrecisionFormat')})
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.TouchEvent = TouchEvent
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
        }
    }
})
Object.defineProperties(RTCSessionDescription.prototype, {
    sdp: {get(){ v_console_log("  [*] RTCSessionDescription -> sdp[get]", "v=0\r\no=- 5120583643863650707 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:4FAM\r\na=ice-pwd:B2HUyhm4GPxXqRVTf952iddh\r\na=ice-options:trickle\r\na=fingerprint:sha-256 D2:D1:0B:04:EA:37:9E:D6:94:EC:73:F1:B0:12:13:1D:8F:A0:F6:F9:0A:BA:CD:06:FA:E0:83:15:61:0F:6F:FD\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n");return "v=0\r\no=- 5120583643863650707 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:4FAM\r\na=ice-pwd:B2HUyhm4GPxXqRVTf952iddh\r\na=ice-options:trickle\r\na=fingerprint:sha-256 D2:D1:0B:04:EA:37:9E:D6:94:EC:73:F1:B0:12:13:1D:8F:A0:F6:F9:0A:BA:CD:06:FA:E0:83:15:61:0F:6F:FD\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n" }},
    type: {get(){ v_console_log("  [*] 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},
})
Object.defineProperties(CanvasRenderingContext2D.prototype, {
    filleStyleVal: {value:'', writable:true},
    rectVal: {value:'', writable:true},
    // filleStyleVal: {value:'', writable:true},
    fillRect: {
        value: v_saf(function fillRect() {
            v_console_log("  [*] CanvasRenderingContext2D -> fillRect[func]", [].slice.call(arguments));
            this.rectVal = arguments;
        })
    },
    arc: {value: v_saf(function arc(){v_console_log("  [*] CanvasRenderingContext2D -> arc[func]", [].slice.call(arguments));})},
    createLinearGradient: {value: v_saf(function createLinearGradient(){v_console_log("  [*] CanvasRenderingContext2D -> createLinearGradient[func]", [].slice.call(arguments));})},
    moveTo: {value: v_saf(function moveTo(){v_console_log("  [*] CanvasRenderingContext2D -> moveTo[func]", [].slice.call(arguments)); this.moveToText = arguments;})},
    lineTo: {value: v_saf(function lineTo(){v_console_log("  [*] CanvasRenderingContext2D -> lineTo[func]", [].slice.call(arguments)); this.lineToText = arguments })},
    getImageData: {
        value: v_saf(function getImageData() {
            v_console_log("  [*] CanvasRenderingContext2D -> getImageData[func]", [].slice.call(arguments));
            let t =  v_new(ImageData)
            if (arguments[0] == 18 && arguments[1] == 90){
                console.log('ggiggg')
                t.data = Uint8ClampedArray.from([214, 122, 6, 255])
                t.width = 1;
                t.height = 1;
            }
            if (arguments[0] == 38 && arguments[1] == 77){
                console.log('ggiggg')
                t.data = Uint8ClampedArray.from([255, 255, 255, 255])
                t.width = 1;
                t.height = 1;
            }
            t.imageData = arguments;
            console.log(t)
            return t
        }, undefined,'')
    },
    measureText: {
        value: v_saf(function measureText() {
            v_console_log("  [*] CanvasRenderingContext2D -> measureText[func]", [].slice.call(arguments));
            let t =  v_new(TextMetrics)
            t.text = arguments
            t.fontval = this.fontVal

            console.log(t, this)
            return t
        })
    },
    fillText: {value: v_saf(function fillText(){v_console_log("  [*] CanvasRenderingContext2D -> fillText[func]", [].slice.call(arguments)); this.fillTextVal = arguments}, undefined,'')},
    fillStyle: {
        set: v_saf(function fillStyle() {
            v_console_log("  [*] CanvasRenderingContext2D -> fillStyle[set]", [].slice.call(arguments));
            this.filleStyleVal = arguments;
        },undefined,'set'),
        get: v_saf(function fillStyle(){
            v_console_log("  [*] CanvasRenderingContext2D -> fillStyle[get]", [].slice.call(arguments));
            return this.filleStyleVal
        },undefined,'get')
    },
    lineWidth: {set(){ v_console_log("  [*] CanvasRenderingContext2D -> lineWidth[set]", [].slice.call(arguments)); }},
    strokeStyle: {
        set: v_saf(function strokeStyle() {
            v_console_log("  [*] CanvasRenderingContext2D -> strokeStyle[set]", [].slice.call(arguments));
            this._strokeStyle = arguments
        }, undefined,'set'),
        get: v_saf(function strokeStyle() {
            v_console_log("  [*] CanvasRenderingContext2D -> strokeStyle[get]", [].slice.call(arguments));
            return this._strokeStyle;
        }, undefined, 'get')
    },
    textBaseline: {set(){ v_console_log("  [*] CanvasRenderingContext2D -> textBaseline[set]", [].slice.call(arguments)); }},
    font: {
        set: v_saf(function font() {
            v_console_log("  [*] CanvasRenderingContext2D -> font[set]", [].slice.call(arguments));
            this.fontVal = arguments[0];
        }, undefined,'set'),
        get:v_saf(function font(){
            v_console_log("  [*] CanvasRenderingContext2D -> font[get]", [].slice.call(arguments));
            return this.fontVal
        }, undefined, 'get')
    },
    shadowOffsetX: {set(){ v_console_log("  [*] CanvasRenderingContext2D -> shadowOffsetX[set]", [].slice.call(arguments));this.shadowOffsetXText = arguments[0] }},
    shadowOffsetY: {set(){ v_console_log("  [*] CanvasRenderingContext2D -> shadowOffsetY[set]", [].slice.call(arguments)); this.shadowOffsetYText = arguments[0] }},
    shadowBlur: {set(){ v_console_log("  [*] CanvasRenderingContext2D -> shadowBlur[set]", [].slice.call(arguments)); this.shadowBlurText = arguments[0] }},
    shadowColor: {set(){ v_console_log("  [*] CanvasRenderingContext2D -> shadowColor[set]", [].slice.call(arguments));  this.shadowColorText = arguments[0]}},
    beginPath: {value: v_saf(function beginPath(){v_console_log("  [*] CanvasRenderingContext2D -> beginPath[func]", [].slice.call(arguments));})},
    stroke: {value: v_saf(function stroke(){v_console_log("  [*] CanvasRenderingContext2D -> stroke[func]", [].slice.call(arguments));})},
    closePath: {value: v_saf(function closePath(){v_console_log("  [*] CanvasRenderingContext2D -> closePath[func]", [].slice.call(arguments));})},
    fill: {value: v_saf(function fill(){v_console_log("  [*] CanvasRenderingContext2D -> fill[func]", [].slice.call(arguments));})},
    drawImage: {value: v_saf(function drawImage(){v_console_log("  [*] CanvasRenderingContext2D -> drawImage[func]", [].slice.call(arguments));})},
    [Symbol.toStringTag]: {value:"CanvasRenderingContext2D",writable:false,enumerable:false,configurable:true},
})
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},
})
Object.defineProperties(WebGL2RenderingContext.prototype, {
    createShader: {value: v_saf(function createShader(){v_console_log("  [*] WebGL2RenderingContext -> createShader[func]", [].slice.call(arguments));})},
    shaderSource: {value: v_saf(function shaderSource(){v_console_log("  [*] WebGL2RenderingContext -> shaderSource[func]", [].slice.call(arguments));})},
    compileShader: {value: v_saf(function compileShader(){v_console_log("  [*] WebGL2RenderingContext -> compileShader[func]", [].slice.call(arguments));})},
    getShaderParameter: {value: v_saf(function getShaderParameter(){v_console_log("  [*] WebGL2RenderingContext -> getShaderParameter[func]", [].slice.call(arguments));})},
    attachShader: {value: v_saf(function attachShader(){v_console_log("  [*] WebGL2RenderingContext -> attachShader[func]", [].slice.call(arguments));})},
    linkProgram: {value: v_saf(function linkProgram(){v_console_log("  [*] WebGL2RenderingContext -> linkProgram[func]", [].slice.call(arguments));})},
    getProgramParameter: {value: v_saf(function getProgramParameter(){v_console_log("  [*] WebGL2RenderingContext -> getProgramParameter[func]", [].slice.call(arguments));})},
    bindBuffer: {value: v_saf(function bindBuffer(){v_console_log("  [*] WebGL2RenderingContext -> bindBuffer[func]", [].slice.call(arguments));})},
    bufferData: {value: v_saf(function bufferData(){v_console_log("  [*] WebGL2RenderingContext -> bufferData[func]", [].slice.call(arguments));})},
    getAttribLocation: {value: v_saf(function getAttribLocation(){v_console_log("  [*] WebGL2RenderingContext -> getAttribLocation[func]", [].slice.call(arguments));})},
    vertexAttribPointer: {value: v_saf(function vertexAttribPointer(){v_console_log("  [*] WebGL2RenderingContext -> vertexAttribPointer[func]", [].slice.call(arguments));})},
    enableVertexAttribArray: {value: v_saf(function enableVertexAttribArray(){v_console_log("  [*] WebGL2RenderingContext -> enableVertexAttribArray[func]", [].slice.call(arguments));})},
    useProgram: {value: v_saf(function useProgram(){v_console_log("  [*] WebGL2RenderingContext -> useProgram[func]", [].slice.call(arguments));})},
    getUniformLocation: {value: v_saf(function getUniformLocation(){v_console_log("  [*] WebGL2RenderingContext -> getUniformLocation[func]", [].slice.call(arguments));})},
    uniform4fv: {value: v_saf(function uniform4fv(){v_console_log("  [*] WebGL2RenderingContext -> uniform4fv[func]", [].slice.call(arguments));})},
    drawArrays: {value: v_saf(function drawArrays(){v_console_log("  [*] WebGL2RenderingContext -> drawArrays[func]", [].slice.call(arguments));})},
    readPixels: {value: v_saf(function readPixels(){v_console_log("  [*] WebGL2RenderingContext -> readPixels[func]", [].slice.call(arguments));})},
    createProgram: {value: v_saf(function createProgram(){v_console_log("  [*] WebGL2RenderingContext -> createProgram[func]", [].slice.call(arguments));})},
    createBuffer: {value: v_saf(function createBuffer(){v_console_log("  [*] WebGL2RenderingContext -> createBuffer[func]", [].slice.call(arguments));})},
    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: {"value":0,"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: {"value":0,"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: {"value":0,"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: {"value":0,"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},
    READ_BUFFER: {"value":3074,"writable":false,"enumerable":true,"configurable":false},
    UNPACK_ROW_LENGTH: {"value":3314,"writable":false,"enumerable":true,"configurable":false},
    UNPACK_SKIP_ROWS: {"value":3315,"writable":false,"enumerable":true,"configurable":false},
    UNPACK_SKIP_PIXELS: {"value":3316,"writable":false,"enumerable":true,"configurable":false},
    PACK_ROW_LENGTH: {"value":3330,"writable":false,"enumerable":true,"configurable":false},
    PACK_SKIP_ROWS: {"value":3331,"writable":false,"enumerable":true,"configurable":false},
    PACK_SKIP_PIXELS: {"value":3332,"writable":false,"enumerable":true,"configurable":false},
    COLOR: {"value":6144,"writable":false,"enumerable":true,"configurable":false},
    DEPTH: {"value":6145,"writable":false,"enumerable":true,"configurable":false},
    STENCIL: {"value":6146,"writable":false,"enumerable":true,"configurable":false},
    RED: {"value":6403,"writable":false,"enumerable":true,"configurable":false},
    RGB8: {"value":32849,"writable":false,"enumerable":true,"configurable":false},
    RGBA8: {"value":32856,"writable":false,"enumerable":true,"configurable":false},
    RGB10_A2: {"value":32857,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_BINDING_3D: {"value":32874,"writable":false,"enumerable":true,"configurable":false},
    UNPACK_SKIP_IMAGES: {"value":32877,"writable":false,"enumerable":true,"configurable":false},
    UNPACK_IMAGE_HEIGHT: {"value":32878,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_3D: {"value":32879,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_WRAP_R: {"value":32882,"writable":false,"enumerable":true,"configurable":false},
    MAX_3D_TEXTURE_SIZE: {"value":32883,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNED_INT_2_10_10_10_REV: {"value":33640,"writable":false,"enumerable":true,"configurable":false},
    MAX_ELEMENTS_VERTICES: {"value":33000,"writable":false,"enumerable":true,"configurable":false},
    MAX_ELEMENTS_INDICES: {"value":33001,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_MIN_LOD: {"value":33082,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_MAX_LOD: {"value":33083,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_BASE_LEVEL: {"value":33084,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_MAX_LEVEL: {"value":33085,"writable":false,"enumerable":true,"configurable":false},
    MIN: {"value":32775,"writable":false,"enumerable":true,"configurable":false},
    MAX: {"value":32776,"writable":false,"enumerable":true,"configurable":false},
    DEPTH_COMPONENT24: {"value":33190,"writable":false,"enumerable":true,"configurable":false},
    MAX_TEXTURE_LOD_BIAS: {"value":34045,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_COMPARE_MODE: {"value":34892,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_COMPARE_FUNC: {"value":34893,"writable":false,"enumerable":true,"configurable":false},
    CURRENT_QUERY: {"value":34917,"writable":false,"enumerable":true,"configurable":false},
    QUERY_RESULT: {"value":34918,"writable":false,"enumerable":true,"configurable":false},
    QUERY_RESULT_AVAILABLE: {"value":34919,"writable":false,"enumerable":true,"configurable":false},
    STREAM_READ: {"value":35041,"writable":false,"enumerable":true,"configurable":false},
    STREAM_COPY: {"value":35042,"writable":false,"enumerable":true,"configurable":false},
    STATIC_READ: {"value":35045,"writable":false,"enumerable":true,"configurable":false},
    STATIC_COPY: {"value":35046,"writable":false,"enumerable":true,"configurable":false},
    DYNAMIC_READ: {"value":35049,"writable":false,"enumerable":true,"configurable":false},
    DYNAMIC_COPY: {"value":35050,"writable":false,"enumerable":true,"configurable":false},
    MAX_DRAW_BUFFERS: {"value":34852,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER0: {"value":34853,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER1: {"value":34854,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER2: {"value":34855,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER3: {"value":34856,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER4: {"value":34857,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER5: {"value":34858,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER6: {"value":34859,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER7: {"value":34860,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER8: {"value":34861,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER9: {"value":34862,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER10: {"value":34863,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER11: {"value":34864,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER12: {"value":34865,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER13: {"value":34866,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER14: {"value":34867,"writable":false,"enumerable":true,"configurable":false},
    DRAW_BUFFER15: {"value":34868,"writable":false,"enumerable":true,"configurable":false},
    MAX_FRAGMENT_UNIFORM_COMPONENTS: {"value":35657,"writable":false,"enumerable":true,"configurable":false},
    MAX_VERTEX_UNIFORM_COMPONENTS: {"value":35658,"writable":false,"enumerable":true,"configurable":false},
    SAMPLER_3D: {"value":35679,"writable":false,"enumerable":true,"configurable":false},
    SAMPLER_2D_SHADOW: {"value":35682,"writable":false,"enumerable":true,"configurable":false},
    FRAGMENT_SHADER_DERIVATIVE_HINT: {"value":35723,"writable":false,"enumerable":true,"configurable":false},
    PIXEL_PACK_BUFFER: {"value":35051,"writable":false,"enumerable":true,"configurable":false},
    PIXEL_UNPACK_BUFFER: {"value":35052,"writable":false,"enumerable":true,"configurable":false},
    PIXEL_PACK_BUFFER_BINDING: {"value":35053,"writable":false,"enumerable":true,"configurable":false},
    PIXEL_UNPACK_BUFFER_BINDING: {"value":35055,"writable":false,"enumerable":true,"configurable":false},
    FLOAT_MAT2x3: {"value":35685,"writable":false,"enumerable":true,"configurable":false},
    FLOAT_MAT2x4: {"value":35686,"writable":false,"enumerable":true,"configurable":false},
    FLOAT_MAT3x2: {"value":35687,"writable":false,"enumerable":true,"configurable":false},
    FLOAT_MAT3x4: {"value":35688,"writable":false,"enumerable":true,"configurable":false},
    FLOAT_MAT4x2: {"value":35689,"writable":false,"enumerable":true,"configurable":false},
    FLOAT_MAT4x3: {"value":35690,"writable":false,"enumerable":true,"configurable":false},
    SRGB: {"value":35904,"writable":false,"enumerable":true,"configurable":false},
    SRGB8: {"value":35905,"writable":false,"enumerable":true,"configurable":false},
    SRGB8_ALPHA8: {"value":35907,"writable":false,"enumerable":true,"configurable":false},
    COMPARE_REF_TO_TEXTURE: {"value":34894,"writable":false,"enumerable":true,"configurable":false},
    RGBA32F: {"value":34836,"writable":false,"enumerable":true,"configurable":false},
    RGB32F: {"value":34837,"writable":false,"enumerable":true,"configurable":false},
    RGBA16F: {"value":34842,"writable":false,"enumerable":true,"configurable":false},
    RGB16F: {"value":34843,"writable":false,"enumerable":true,"configurable":false},
    VERTEX_ATTRIB_ARRAY_INTEGER: {"value":35069,"writable":false,"enumerable":true,"configurable":false},
    MAX_ARRAY_TEXTURE_LAYERS: {"value":35071,"writable":false,"enumerable":true,"configurable":false},
    MIN_PROGRAM_TEXEL_OFFSET: {"value":35076,"writable":false,"enumerable":true,"configurable":false},
    MAX_PROGRAM_TEXEL_OFFSET: {"value":35077,"writable":false,"enumerable":true,"configurable":false},
    MAX_VARYING_COMPONENTS: {"value":35659,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_2D_ARRAY: {"value":35866,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_BINDING_2D_ARRAY: {"value":35869,"writable":false,"enumerable":true,"configurable":false},
    R11F_G11F_B10F: {"value":35898,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNED_INT_10F_11F_11F_REV: {"value":35899,"writable":false,"enumerable":true,"configurable":false},
    RGB9_E5: {"value":35901,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNED_INT_5_9_9_9_REV: {"value":35902,"writable":false,"enumerable":true,"configurable":false},
    TRANSFORM_FEEDBACK_BUFFER_MODE: {"value":35967,"writable":false,"enumerable":true,"configurable":false},
    MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: {"value":35968,"writable":false,"enumerable":true,"configurable":false},
    TRANSFORM_FEEDBACK_VARYINGS: {"value":35971,"writable":false,"enumerable":true,"configurable":false},
    TRANSFORM_FEEDBACK_BUFFER_START: {"value":35972,"writable":false,"enumerable":true,"configurable":false},
    TRANSFORM_FEEDBACK_BUFFER_SIZE: {"value":35973,"writable":false,"enumerable":true,"configurable":false},
    TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: {"value":35976,"writable":false,"enumerable":true,"configurable":false},
    RASTERIZER_DISCARD: {"value":35977,"writable":false,"enumerable":true,"configurable":false},
    MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: {"value":35978,"writable":false,"enumerable":true,"configurable":false},
    MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: {"value":35979,"writable":false,"enumerable":true,"configurable":false},
    INTERLEAVED_ATTRIBS: {"value":35980,"writable":false,"enumerable":true,"configurable":false},
    SEPARATE_ATTRIBS: {"value":35981,"writable":false,"enumerable":true,"configurable":false},
    TRANSFORM_FEEDBACK_BUFFER: {"value":35982,"writable":false,"enumerable":true,"configurable":false},
    TRANSFORM_FEEDBACK_BUFFER_BINDING: {"value":35983,"writable":false,"enumerable":true,"configurable":false},
    RGBA32UI: {"value":36208,"writable":false,"enumerable":true,"configurable":false},
    RGB32UI: {"value":36209,"writable":false,"enumerable":true,"configurable":false},
    RGBA16UI: {"value":36214,"writable":false,"enumerable":true,"configurable":false},
    RGB16UI: {"value":36215,"writable":false,"enumerable":true,"configurable":false},
    RGBA8UI: {"value":36220,"writable":false,"enumerable":true,"configurable":false},
    RGB8UI: {"value":36221,"writable":false,"enumerable":true,"configurable":false},
    RGBA32I: {"value":36226,"writable":false,"enumerable":true,"configurable":false},
    RGB32I: {"value":36227,"writable":false,"enumerable":true,"configurable":false},
    RGBA16I: {"value":36232,"writable":false,"enumerable":true,"configurable":false},
    RGB16I: {"value":36233,"writable":false,"enumerable":true,"configurable":false},
    RGBA8I: {"value":36238,"writable":false,"enumerable":true,"configurable":false},
    RGB8I: {"value":36239,"writable":false,"enumerable":true,"configurable":false},
    RED_INTEGER: {"value":36244,"writable":false,"enumerable":true,"configurable":false},
    RGB_INTEGER: {"value":36248,"writable":false,"enumerable":true,"configurable":false},
    RGBA_INTEGER: {"value":36249,"writable":false,"enumerable":true,"configurable":false},
    SAMPLER_2D_ARRAY: {"value":36289,"writable":false,"enumerable":true,"configurable":false},
    SAMPLER_2D_ARRAY_SHADOW: {"value":36292,"writable":false,"enumerable":true,"configurable":false},
    SAMPLER_CUBE_SHADOW: {"value":36293,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNED_INT_VEC2: {"value":36294,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNED_INT_VEC3: {"value":36295,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNED_INT_VEC4: {"value":36296,"writable":false,"enumerable":true,"configurable":false},
    INT_SAMPLER_2D: {"value":36298,"writable":false,"enumerable":true,"configurable":false},
    INT_SAMPLER_3D: {"value":36299,"writable":false,"enumerable":true,"configurable":false},
    INT_SAMPLER_CUBE: {"value":36300,"writable":false,"enumerable":true,"configurable":false},
    INT_SAMPLER_2D_ARRAY: {"value":36303,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNED_INT_SAMPLER_2D: {"value":36306,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNED_INT_SAMPLER_3D: {"value":36307,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNED_INT_SAMPLER_CUBE: {"value":36308,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNED_INT_SAMPLER_2D_ARRAY: {"value":36311,"writable":false,"enumerable":true,"configurable":false},
    DEPTH_COMPONENT32F: {"value":36012,"writable":false,"enumerable":true,"configurable":false},
    DEPTH32F_STENCIL8: {"value":36013,"writable":false,"enumerable":true,"configurable":false},
    FLOAT_32_UNSIGNED_INT_24_8_REV: {"value":36269,"writable":false,"enumerable":true,"configurable":false},
    FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: {"value":33296,"writable":false,"enumerable":true,"configurable":false},
    FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: {"value":33297,"writable":false,"enumerable":true,"configurable":false},
    FRAMEBUFFER_ATTACHMENT_RED_SIZE: {"value":33298,"writable":false,"enumerable":true,"configurable":false},
    FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: {"value":33299,"writable":false,"enumerable":true,"configurable":false},
    FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: {"value":33300,"writable":false,"enumerable":true,"configurable":false},
    FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: {"value":33301,"writable":false,"enumerable":true,"configurable":false},
    FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: {"value":33302,"writable":false,"enumerable":true,"configurable":false},
    FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: {"value":33303,"writable":false,"enumerable":true,"configurable":false},
    FRAMEBUFFER_DEFAULT: {"value":33304,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNED_INT_24_8: {"value":34042,"writable":false,"enumerable":true,"configurable":false},
    DEPTH24_STENCIL8: {"value":35056,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNED_NORMALIZED: {"value":35863,"writable":false,"enumerable":true,"configurable":false},
    DRAW_FRAMEBUFFER_BINDING: {"value":36006,"writable":false,"enumerable":true,"configurable":false},
    READ_FRAMEBUFFER: {"value":36008,"writable":false,"enumerable":true,"configurable":false},
    DRAW_FRAMEBUFFER: {"value":36009,"writable":false,"enumerable":true,"configurable":false},
    READ_FRAMEBUFFER_BINDING: {"value":36010,"writable":false,"enumerable":true,"configurable":false},
    RENDERBUFFER_SAMPLES: {"value":36011,"writable":false,"enumerable":true,"configurable":false},
    FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: {"value":36052,"writable":false,"enumerable":true,"configurable":false},
    MAX_COLOR_ATTACHMENTS: {"value":36063,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT1: {"value":36065,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT2: {"value":36066,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT3: {"value":36067,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT4: {"value":36068,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT5: {"value":36069,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT6: {"value":36070,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT7: {"value":36071,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT8: {"value":36072,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT9: {"value":36073,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT10: {"value":36074,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT11: {"value":36075,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT12: {"value":36076,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT13: {"value":36077,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT14: {"value":36078,"writable":false,"enumerable":true,"configurable":false},
    COLOR_ATTACHMENT15: {"value":36079,"writable":false,"enumerable":true,"configurable":false},
    FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: {"value":36182,"writable":false,"enumerable":true,"configurable":false},
    MAX_SAMPLES: {"value":36183,"writable":false,"enumerable":true,"configurable":false},
    HALF_FLOAT: {"value":5131,"writable":false,"enumerable":true,"configurable":false},
    RG: {"value":33319,"writable":false,"enumerable":true,"configurable":false},
    RG_INTEGER: {"value":33320,"writable":false,"enumerable":true,"configurable":false},
    R8: {"value":33321,"writable":false,"enumerable":true,"configurable":false},
    RG8: {"value":33323,"writable":false,"enumerable":true,"configurable":false},
    R16F: {"value":33325,"writable":false,"enumerable":true,"configurable":false},
    R32F: {"value":33326,"writable":false,"enumerable":true,"configurable":false},
    RG16F: {"value":33327,"writable":false,"enumerable":true,"configurable":false},
    RG32F: {"value":33328,"writable":false,"enumerable":true,"configurable":false},
    R8I: {"value":33329,"writable":false,"enumerable":true,"configurable":false},
    R8UI: {"value":33330,"writable":false,"enumerable":true,"configurable":false},
    R16I: {"value":33331,"writable":false,"enumerable":true,"configurable":false},
    R16UI: {"value":33332,"writable":false,"enumerable":true,"configurable":false},
    R32I: {"value":33333,"writable":false,"enumerable":true,"configurable":false},
    R32UI: {"value":33334,"writable":false,"enumerable":true,"configurable":false},
    RG8I: {"value":33335,"writable":false,"enumerable":true,"configurable":false},
    RG8UI: {"value":33336,"writable":false,"enumerable":true,"configurable":false},
    RG16I: {"value":33337,"writable":false,"enumerable":true,"configurable":false},
    RG16UI: {"value":33338,"writable":false,"enumerable":true,"configurable":false},
    RG32I: {"value":33339,"writable":false,"enumerable":true,"configurable":false},
    RG32UI: {"value":33340,"writable":false,"enumerable":true,"configurable":false},
    VERTEX_ARRAY_BINDING: {"value":34229,"writable":false,"enumerable":true,"configurable":false},
    R8_SNORM: {"value":36756,"writable":false,"enumerable":true,"configurable":false},
    RG8_SNORM: {"value":36757,"writable":false,"enumerable":true,"configurable":false},
    RGB8_SNORM: {"value":36758,"writable":false,"enumerable":true,"configurable":false},
    RGBA8_SNORM: {"value":36759,"writable":false,"enumerable":true,"configurable":false},
    SIGNED_NORMALIZED: {"value":36764,"writable":false,"enumerable":true,"configurable":false},
    COPY_READ_BUFFER: {"value":36662,"writable":false,"enumerable":true,"configurable":false},
    COPY_WRITE_BUFFER: {"value":36663,"writable":false,"enumerable":true,"configurable":false},
    COPY_READ_BUFFER_BINDING: {"value":36662,"writable":false,"enumerable":true,"configurable":false},
    COPY_WRITE_BUFFER_BINDING: {"value":36663,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_BUFFER: {"value":35345,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_BUFFER_BINDING: {"value":35368,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_BUFFER_START: {"value":35369,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_BUFFER_SIZE: {"value":35370,"writable":false,"enumerable":true,"configurable":false},
    MAX_VERTEX_UNIFORM_BLOCKS: {"value":35371,"writable":false,"enumerable":true,"configurable":false},
    MAX_FRAGMENT_UNIFORM_BLOCKS: {"value":35373,"writable":false,"enumerable":true,"configurable":false},
    MAX_COMBINED_UNIFORM_BLOCKS: {"value":35374,"writable":false,"enumerable":true,"configurable":false},
    MAX_UNIFORM_BUFFER_BINDINGS: {"value":35375,"writable":false,"enumerable":true,"configurable":false},
    MAX_UNIFORM_BLOCK_SIZE: {"value":35376,"writable":false,"enumerable":true,"configurable":false},
    MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: {"value":35377,"writable":false,"enumerable":true,"configurable":false},
    MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: {"value":35379,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_BUFFER_OFFSET_ALIGNMENT: {"value":35380,"writable":false,"enumerable":true,"configurable":false},
    ACTIVE_UNIFORM_BLOCKS: {"value":35382,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_TYPE: {"value":35383,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_SIZE: {"value":35384,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_BLOCK_INDEX: {"value":35386,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_OFFSET: {"value":35387,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_ARRAY_STRIDE: {"value":35388,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_MATRIX_STRIDE: {"value":35389,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_IS_ROW_MAJOR: {"value":35390,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_BLOCK_BINDING: {"value":35391,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_BLOCK_DATA_SIZE: {"value":35392,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_BLOCK_ACTIVE_UNIFORMS: {"value":35394,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: {"value":35395,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: {"value":35396,"writable":false,"enumerable":true,"configurable":false},
    UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: {"value":35398,"writable":false,"enumerable":true,"configurable":false},
    INVALID_INDEX: {"value":4294967295,"writable":false,"enumerable":true,"configurable":false},
    MAX_VERTEX_OUTPUT_COMPONENTS: {"value":37154,"writable":false,"enumerable":true,"configurable":false},
    MAX_FRAGMENT_INPUT_COMPONENTS: {"value":37157,"writable":false,"enumerable":true,"configurable":false},
    MAX_SERVER_WAIT_TIMEOUT: {"value":37137,"writable":false,"enumerable":true,"configurable":false},
    OBJECT_TYPE: {"value":37138,"writable":false,"enumerable":true,"configurable":false},
    SYNC_CONDITION: {"value":37139,"writable":false,"enumerable":true,"configurable":false},
    SYNC_STATUS: {"value":37140,"writable":false,"enumerable":true,"configurable":false},
    SYNC_FLAGS: {"value":37141,"writable":false,"enumerable":true,"configurable":false},
    SYNC_FENCE: {"value":37142,"writable":false,"enumerable":true,"configurable":false},
    SYNC_GPU_COMMANDS_COMPLETE: {"value":37143,"writable":false,"enumerable":true,"configurable":false},
    UNSIGNALED: {"value":37144,"writable":false,"enumerable":true,"configurable":false},
    SIGNALED: {"value":37145,"writable":false,"enumerable":true,"configurable":false},
    ALREADY_SIGNALED: {"value":37146,"writable":false,"enumerable":true,"configurable":false},
    TIMEOUT_EXPIRED: {"value":37147,"writable":false,"enumerable":true,"configurable":false},
    CONDITION_SATISFIED: {"value":37148,"writable":false,"enumerable":true,"configurable":false},
    WAIT_FAILED: {"value":37149,"writable":false,"enumerable":true,"configurable":false},
    SYNC_FLUSH_COMMANDS_BIT: {"value":1,"writable":false,"enumerable":true,"configurable":false},
    VERTEX_ATTRIB_ARRAY_DIVISOR: {"value":35070,"writable":false,"enumerable":true,"configurable":false},
    ANY_SAMPLES_PASSED: {"value":35887,"writable":false,"enumerable":true,"configurable":false},
    ANY_SAMPLES_PASSED_CONSERVATIVE: {"value":36202,"writable":false,"enumerable":true,"configurable":false},
    SAMPLER_BINDING: {"value":35097,"writable":false,"enumerable":true,"configurable":false},
    RGB10_A2UI: {"value":36975,"writable":false,"enumerable":true,"configurable":false},
    INT_2_10_10_10_REV: {"value":36255,"writable":false,"enumerable":true,"configurable":false},
    TRANSFORM_FEEDBACK: {"value":36386,"writable":false,"enumerable":true,"configurable":false},
    TRANSFORM_FEEDBACK_PAUSED: {"value":36387,"writable":false,"enumerable":true,"configurable":false},
    TRANSFORM_FEEDBACK_ACTIVE: {"value":36388,"writable":false,"enumerable":true,"configurable":false},
    TRANSFORM_FEEDBACK_BINDING: {"value":36389,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_IMMUTABLE_FORMAT: {"value":37167,"writable":false,"enumerable":true,"configurable":false},
    MAX_ELEMENT_INDEX: {"value":36203,"writable":false,"enumerable":true,"configurable":false},
    TEXTURE_IMMUTABLE_LEVELS: {"value":33503,"writable":false,"enumerable":true,"configurable":false},
    TIMEOUT_IGNORED: {"value":-1,"writable":false,"enumerable":true,"configurable":false},
    MAX_CLIENT_WAIT_TIMEOUT_WEBGL: {"value":37447,"writable":false,"enumerable":true,"configurable":false},
    [Symbol.toStringTag]: {value:"WebGL2RenderingContext",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(MutationObserver.prototype, {
    observe: {value: v_saf(function observe(){v_console_log("  [*] MutationObserver -> observe[func]", [].slice.call(arguments));})},
    [Symbol.toStringTag]: {value:"MutationObserver",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(OffscreenCanvasRenderingContext2D.prototype, {
    measureText: {value: v_saf(function measureText(){v_console_log("  [*] OffscreenCanvasRenderingContext2D -> measureText[func]", [].slice.call(arguments));  this.measureTextVal = arguments[0]})},
    font: {set(){ v_console_log("  [*] OffscreenCanvasRenderingContext2D -> font[set]", [].slice.call(arguments)); }},
    [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(FeaturePolicy.prototype, {
    getAllowlistForFeature: {value: v_saf(function getAllowlistForFeature(){v_console_log("  [*] FeaturePolicy -> getAllowlistForFeature[func]", [].slice.call(arguments));})},
    features: {value: v_saf(function features(){v_console_log("  [*] FeaturePolicy -> features[func]", [].slice.call(arguments));})},
    allowedFeatures: {value: v_saf(function allowedFeatures(){v_console_log("  [*] FeaturePolicy -> allowedFeatures[func]", [].slice.call(arguments));})},
    [Symbol.toStringTag]: {value:"FeaturePolicy",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},
})
// PluginArray = myProxy(PluginArray, 'PluginArray')
// Object.defineProperties(PluginArray.prototype, {
//     length: {
//         get() {
//             v_console_log("  [*] PluginArray -> length[get]", 5);
//             return 5
//         }
//     },
//     [Symbol.toStringTag]: {value:"PluginArray",writable:false,enumerable:false,configurable:true},
// })

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(WebKitMutationObserver.prototype, {
    observe: {value: v_saf(function observe(){v_console_log("  [*] WebKitMutationObserver -> observe[func]", [].slice.call(arguments));})},
    [Symbol.toStringTag]: {value:"WebKitMutationObserver",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},
})
Object.defineProperties(webkitRTCPeerConnection.prototype, {
    setLocalDescription: {value: v_saf(function setLocalDescription(){v_console_log("  [*] webkitRTCPeerConnection -> setLocalDescription111[func]", [].slice.call(arguments));})},
    [Symbol.toStringTag]: {value:"webkitRTCPeerConnection",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(RTCPeerConnection.prototype, {
    createDataChannel: {
        value: v_saf(function createDataChannel(label, option) {
            v_console_log("  [*] RTCPeerConnection -> createDataChannel[func]", [].slice.call(arguments));
            return {
                'onopen':function onopen() {
                    v_console_log("  [*] RTCPeerConnection -> createDataChannel[func] onopen", [].slice.call(arguments));

                } ,
                'onmessage':function onmessage() {
                    v_console_log("  [*] RTCPeerConnection -> createDataChannel[func] onmessage", [].slice.call(arguments));

                } ,
            }
        })
    },
    createOffer: {
        value: v_saf(function createOffer(){
            v_console_log("  [*] RTCPeerConnection -> createOffer[func]", [].slice.call(arguments));
            let p = new Promise(function (resolve, reject) {
                // 2. 执行异步操作任务
                console.log('RTCPeerConnection create');
                resolve(v_new(RTCSessionDescription))
            })
            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() {
            v_console_log("  [*] RTCPeerConnection -> setLocalDescription[func]", [].slice.call(arguments));

            // let p = new Promise(function (resolve, reject) {
            //     // 2. 执行异步操作任务
            //     // let res = this.setLocalDescription(v_new(RTCSessionDescription))
            //     // console.log('RTCPeerConnection create',res);
            //     v_console_log("  [*] RTCPeerConnection -> setLocalDescription[func] then", [].slice.call(arguments));
            //
            //     resolve(res)
            //     return res
            // })
            // return p;
            return {
                then: function (func, func2) {
                    v_console_log("  [*] RTCPeerConnection -> setLocalDescription[func] then", [].slice.call(arguments));

                    return this
                }, catch: function () {
                }
            }
        })
    },
    [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},
})
Object.defineProperties(RTCPeerConnectionIceEvent.prototype, {
    candidate: {get(){ v_console_log("  [*] RTCPeerConnectionIceEvent -> candidate[get]", {});return {} }},
    [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 = 1;
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),v_new(HTMLHeadElement),v_new(HTMLBaseElement),v_new(HTMLMetaElement),v_new(HTMLTitleElement),v_new(HTMLMetaElement),v_new(HTMLMetaElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLLinkElement),v_new(HTMLScriptElement),v_new(HTMLScriptElement),v_new(HTMLScriptElement),v_new(HTMLScriptElement),v_new(HTMLLinkElement),v_new(HTMLStyleElement),v_new(HTMLStyleElement),v_new(HTMLStyleElement),v_new(HTMLStyleElement),v_new(HTMLStyleElement),v_new(HTMLScriptElement),v_new(HTMLStyleElement),v_new(HTMLStyleElement),v_new(HTMLStyleElement),v_new(HTMLStyleElement),v_new(HTMLStyleElement),v_new(HTMLMetaElement),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(HTMLBodyElement),v_new(HTMLElement),v_new(HTMLElement),v_new(HTMLAnchorElement),v_new(HTMLElement),v_new(HTMLElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLElement),v_new(SVGSVGElement),v_new(SVGGElement),v_new(SVGPathElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLAnchorElement),v_new(HTMLDivElement),v_new(HTMLElement),v_new(HTMLButtonElement),v_new(HTMLElement),v_new(SVGSVGElement),v_new(SVGTitleElement),v_new(SVGGElement),v_new(SVGGElement),v_new(SVGGElement),v_new(SVGGElement),v_new(SVGGElement),v_new(SVGPathElement),v_new(SVGPathElement),v_new(SVGPathElement),v_new(HTMLDivElement),v_new(HTMLElement),v_new(HTMLDivElement),v_new(HTMLElement),v_new(HTMLElement),v_new(HTMLElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLElement),v_new(SVGSVGElement),v_new(SVGGElement),v_new(SVGPathElement),v_new(HTMLElement),v_new(SVGSVGElement),v_new(SVGGElement),v_new(SVGPathElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLElement),v_new(SVGSVGElement),v_new(SVGGElement),v_new(SVGPathElement),v_new(SVGRectElement),v_new(SVGCircleElement),v_new(SVGPathElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLElement),v_new(HTMLElement),v_new(HTMLElement),v_new(SVGSVGElement),v_new(SVGStyleElement),v_new(SVGCircleElement),v_new(SVGCircleElement),v_new(SVGCircleElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLSpanElement),v_new(HTMLDivElement),v_new(HTMLSpanElement),v_new(HTMLElement),v_new(HTMLAnchorElement),v_new(HTMLAnchorElement),v_new(HTMLDivElement),v_new(HTMLSpanElement),v_new(HTMLDivElement),v_new(HTMLElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLSpanElement),v_new(HTMLDivElement),v_new(HTMLSpanElement),v_new(HTMLElement),v_new(HTMLAnchorElement),v_new(HTMLAnchorElement),v_new(HTMLDivElement),v_new(HTMLSpanElement),v_new(HTMLElement),v_new(HTMLDivElement),v_new(HTMLElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLUListElement),v_new(HTMLLIElement),v_new(HTMLAnchorElement),v_new(HTMLLIElement),v_new(HTMLAnchorElement),v_new(HTMLLIElement),v_new(HTMLAnchorElement),v_new(HTMLLIElement),v_new(HTMLAnchorElement),v_new(HTMLElement),v_new(SVGSVGElement),v_new(SVGGElement),v_new(SVGPolygonElement),v_new(HTMLDivElement),v_new(HTMLDivElement),v_new(HTMLUListElement),v_new(HTMLLIElement),v_new(HTMLAnchorElement),v_new(HTMLLIElement),v_new(HTMLAnchorElement),v_new(HTMLLIElement),v_new(HTMLElement),v_new(SVGSVGElement),v_new(SVGPathElement),v_new(HTMLSpanElement),v_new(HTMLDivElement),v_new(HTMLElement),v_new(HTMLDivElement),v_new(HTMLScriptElement),v_new(HTMLScriptElement),v_new(HTMLScriptElement),v_new(HTMLElement),v_new(HTMLScriptElement),v_new(HTMLScriptElement),v_new(HTMLScriptElement),v_new(HTMLScriptElement),v_new(HTMLScriptElement),v_new(HTMLScriptElement),v_new(HTMLScriptElement),v_new(HTMLDivElement),v_new(HTMLScriptElement)] }
    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
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
}();

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 6122.799999713898
        }
    },
    // 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: v_saf(function stopPropagation() {
            v_console_log("  [*] Event -> stopPropagation[func]", [].slice.call(arguments));
        }),
        writable: true, enumerable: true, configurable: true
    },
    preventDefault: {
        value: v_saf(function preventDefault() {
            v_console_log("  [*] Event -> preventDefault[func]", [].slice.call(arguments));
        }),
        writable: true, enumerable: true, configurable: true
    },
    cancelBubble: {
        // value: function cancelBubble() {
        //     v_console_log("  [*] Event -> cancelBubble[func]", [].slice.call(arguments));
        // },
        //     // get(){},
        //     // set(){},
    },
    stopImmediatePropagation: {
        value: v_saf(function preventDefault() {
            v_console_log("  [*] Event -> stopImmediatePropagation[func]", [].slice.call(arguments));
        }),
        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
origin = location.origin
self = window;
globalThis = window

let performanceNow = Math.random() * 200
window.performance = {
    now: function (){
        return performanceNow + Math.random() * 3000
    },
    "timeOrigin": 1684049607547.1,
    "timing": {
        "connectStart": 1684048540500,
        "navigationStart": 1684048540499,
        "secureConnectionStart": 0,
        "fetchStart": 1684048540500,
        "domContentLoadedEventStart": 0,
        "responseStart": 1684048540502,
        "domInteractive": 0,
        "domainLookupEnd": 1684048540500,
        "responseEnd": 1684048540502,
        "redirectStart": 0,
        "requestStart": 1684048540501,
        "unloadEventEnd": 1684048540503,
        "unloadEventStart": 1684048540503,
        "domLoading": 1684048540507,
        "domComplete": 0,
        "domainLookupStart": 1684048540500,
        "loadEventStart": 0,
        "domContentLoadedEventEnd": 0,
        "loadEventEnd": 0,
        "redirectEnd": 0,
        "connectEnd": 1684048540500
    },
    "navigation": {
        "type": 1,
        "redirectCount": 0
    },
    getEntriesByName: function getEntriesByName() {
    },
    memory:{
        jsHeapSizeLimit: 4294705152,
        totalJSHeapSize: 11528626,
        usedJSHeapSize : 9311362,
    }
}
// window.Proxy = window
window.BigInt = BigInt
window.OffscreenCanvas = function OffscreenCanvas() {
}
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;
    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: 1330,
    availLeft: 0,
    availTop: 25,
    availWidth: 3440,
    colorDepth: 24,
    height: 1440,
    orientation: {angle: 0, type: 'landscape-primary', onchange: null},
    pixelDepth: 24,
    width: 3440

}
window.screen = v_new(Screen)

// window.screen = dtavm.proxy(screen, 'screen')
window.screenX = 0
window.screenY = 25
window.isSecureContext = true
window.innerWidth = 1920;
window.outerWidth = 1920;
window.innerHeight = 892;
window.outerHeight = 971;
window.screenLeft = 0;
window.screenTop = 364;
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){
    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)
    v_console_log('_createElement name ', name, ret)

    return ret
}
document = {
    all: HTMLAllCollection,
    characterSet: 'UTF-8',
    charset: 'UTF-8',
    compatMode: 'CSS1Compat',
    documentMode: undefined,
    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: 'loading',
    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[0][0])
//     if (arguments[0].toString() === '[object Arguments]' && arguments[0][0].isTrusted == true) {
//         return '{"0":{"isTrusted":false}}'
//     }
//     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: v_saf(function createElement(name) {
            return _createElement(name, 'createElement')
        })
    },
    createElementNS: {
        value: v_saf(function createElementNS(name) {
            return _createElement(name, 'createElementNS')
        })
    },
    featurePolicy: {get(){ v_console_log("  [*] Document -> featurePolicy[get]", {});return {} }},
    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;
    // 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: v_saf(function submit(){
            _console2("HTMLFormElement.prototype.submit", arguments)
        }),
        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:{
        // "f": "Aybc2A2IAQAAV6ZBFR6AQE9OjvCO-QqU_KrlzuUUGRZlMAK4SiVVBgNsvYNrAS0rIPCuchZ2wH8AAOfvAAAAAA==",
    },
    setItem:function (name,value){
        this.items[name] = value
    },
    getItem:function (name,value){
        return this.items[name]
    },
    removeItem: function (name){
        delete this.items[name]
    }

}

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 v_body }},
    })
}
function v_init_canvas(){
    HTMLCanvasElement.prototype.getContext = v_saf(function  getContext() {
        console.log("GET getContext ");
        if (arguments[0] == '2d') {
            var r = v_new(CanvasRenderingContext2D);
            return r
        }
        ;
        if (arguments[0] == 'webgl' || arguments[0] == 'experimental-webgl') {
            var r = v_new(WebGLRenderingContext);
            r._canvas = this;
            return r
        }
        ;
        return null
    })
    HTMLCanvasElement.prototype.toDataURL = v_saf(function toDataURL() {
        console.log('HTMLCanvasElement.prototype.toDataURL', this);
        return "data:image/png;base64, "
    })
    HTMLCanvasElement.prototype.toBlob = v_saf(function toBlob() {
        return console.log('HTMLCanvasElement.prototype.toBlob')
    })
}
v_init_canvas();
v_init_document();
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.Function = Function;
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") };});

document.__proto__ = Document.prototype
window.document = document
window.BluetoothUUID = BluetoothUUID
window.Animation = Animation;
window.Worker = Worker;
window.URL = URL;
window.WebGLRenderingContext = WebGLRenderingContext;
window.HTMLCanvasElement = HTMLCanvasElement;
window.CanvasRenderingContext2D = CanvasRenderingContext2D;
window.UIEvent = UIEvent;
window.clearInterval = clearInterval;
window.setInterval = function (func, delay){
    // console.log('setInterval',delay,  func)
    try{
        // func()
    }catch (e){}
};
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 = webkitRTCPeerConnection;
window.mozRTCPeerConnection = mozRTCPeerConnection;
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.MutationObserver = MutationObserver;
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 = 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);return 3 }},
    [Symbol.toStringTag]: {value:"History",writable:false,enumerable:false,configurable:true},
})

// 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 = function setTimeout(func, delay){
    console.log(func, delay)
    // if (delay==0)func()
    try{
        // console.log(func)
        // func()
    }catch (e){}
    // _setTimeout.call(this, func, 1)
    timesIds++;
    return timesIds;
};
window.location = location
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.structuredClone = v_saf(function structuredClone(){
    v_console_log("structuredClone")
})
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 = v_saf(function clearTimeout() {
    console.log('clearTimeout ', arguments)
})
window.window = window;

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

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

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

_console2 = function (){};
// _console2 = console.log;


