Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

detect-gpu

Package Overview
Dependencies
Maintainers
1
Versions
201
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

detect-gpu - npm Package Compare versions

Comparing version 1.1.4 to 1.1.5

2

dist/detect-gpu.cjs.js

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const GPU_BENCHMARK_SCORE_DESKTOP=["790 - AMD Radeon HD 7290","780 - AMD Radeon HD 8180","778 - AMD Radeon HD 7310","776 - AMD Radeon HD 7340","772 - Intel HD Graphics (Bay Trail)","729 - Intel HD Graphics (Ivy Bridge)","725 - AMD Radeon HD 8210","701 - Intel HD Graphics (Cherry Trail)","700 - AMD Radeon HD 8250","699 - AMD Radeon R6 (Mullins)","698 - AMD Radeon HD 8240","690 - AMD Radeon HD 8280","687 - AMD Radeon R2 (Mullins/Beema/Carrizo-L)","665 - Intel HD Graphics (Haswell)","656 - Intel HD Graphics 400 (Braswell)","655 - Intel HD Graphics (Braswell)","654 - Intel HD Graphics 405 (Braswell)","634 - Intel HD Graphics 500","633 - Intel UHD Graphics 600","632 - AMD Radeon HD 8330","631 - AMD Radeon HD 8350G","618 - AMD Radeon HD 8400","614 - AMD Radeon HD 8450G","605 - Intel HD Graphics 4200","604 - Intel HD Graphics (Broadwell)","603 - AMD Radeon R2 (Stoney Ridge)","602 - AMD Radeon R3 (Mullins/Beema)","601 - AMD Radeon R4 (Kaveri)","600 - AMD Radeon R4 (Beema)","599 - AMD Radeon R5 (Beema/Carrizo-L)","597 - AMD Radeon R4 (Stoney Ridge)","593 - Intel HD Graphics 4000","592 - AMD Radeon HD 7480D","584 - Intel HD Graphics 5300","583 - Intel HD Graphics 505","582 - Intel UHD Graphics 605","553 - Intel HD Graphics 510","552 - AMD Radeon HD 8610G","551 - Intel HD Graphics 610","550 - Intel HD Graphics 4400","549 - Intel HD Graphics 515","541 - AMD Radeon HD 8470D","532 - AMD Radeon HD 8550G","516 - Intel HD Graphics 5000","513 - AMD Radeon HD 7660G","512 - NVIDIA GeForce 710M","509 - AMD Radeon R5 (Kaveri)","508 - AMD Radeon R5 (Carrizo)","507 - Intel HD Graphics 615","506 - Intel UHD Graphics 615","505 - Intel UHD Graphics 617","497 - Qualcomm Adreno 630","494 - Intel HD Graphics 5500","492 - Intel HD Graphics 4600","488 - Intel Iris Graphics 5100","486 - NVIDIA Quadro K610M","485 - Intel HD Graphics 6000","479 - AMD Radeon R5 (Stoney Ridge)","478 - AMD Radeon R5 M420","477 - AMD Radeon R5 M315","475 - AMD Radeon R5 M320","472 - NVIDIA GeForce GT 720M","471 - Intel Iris Graphics 6100","470 - Intel HD Graphics 520","469 - NVIDIA GeForce 820M","468 - NVIDIA GeForce 910M","466 - AMD Radeon RX Vega 3","465 - AMD Radeon R5 M255","464 - AMD Radeon R5 M430","463 - AMD Radeon R5 M330","460 - AMD Radeon HD 7560D","454 - AMD Radeon HD 8650G","438 - NVIDIA Quadro K1000M","436 - AMD Radeon HD 7660D","435 - AMD Radeon R6 M255DX","428 - Intel HD Graphics 5600","418 - AMD FirePro W2100","409 - AMD Radeon R6 (Kaveri)","397 - Qualcomm Adreno 680","396 - Qualcomm Adreno 685","395 - AMD Radeon R6 (Carrizo)","394 - Intel HD Graphics 620","393 - Intel UHD Graphics 620","392 - AMD Radeon R5 (Bristol Ridge)","390 - Intel HD Graphics P530","389 - Intel HD Graphics 530","388 - Intel HD Graphics P630","387 - Intel HD Graphics 630","386 - Intel UHD Graphics P630","385 - Intel UHD Graphics 630","384 - Intel UHD Graphics G1 (Ice Lake 32 EU)","383 - AMD Radeon RX Vega 6","381 - AMD Radeon 610","380 - AMD Radeon 520","379 - AMD Radeon R7 M340","372 - AMD Radeon R7 M440","371 - AMD Radeon 620","370 - AMD Radeon R8 M445DX","367 - NVIDIA GeForce 920M","365 - AMD Radeon R7 M360","362 - AMD Radeon R7 M460","360 - AMD Radeon R7 (Kaveri)","359 - AMD Radeon R7 (Carrizo)","358 - NVIDIA GeForce GT 640M","357 - AMD Radeon R7 (Bristol Ridge)","353 - AMD Radeon R7 M265","349 - AMD FirePro M4100","346 - NVIDIA GeForce GT 730M","336 - AMD FirePro M4000","334 - NVIDIA GeForce 825M","332 - NVIDIA GeForce GT 735M","329 - NVIDIA Quadro K2000M","325 - Intel Iris Graphics 540","324 - NVIDIA GeForce 920MX","323 - Intel Iris Plus Graphics 640","322 - NVIDIA GeForce MX110","321 - NVIDIA GeForce 830M","319 - Intel Iris Plus Graphics 645","318 - AMD Radeon 625","317 - AMD Radeon 530","316 - Intel Iris Graphics 550","315 - NVIDIA GeForce 930M","314 - Intel Iris Plus Graphics 650","313 - NVIDIA GeForce GT 740M","312 - AMD Radeon R7 384 Cores (Kaveri Desktop)","311 - Intel Iris Pro Graphics 5200","310 - AMD Radeon R7 512 Cores (Kaveri Desktop)","307 - NVIDIA GeForce GT 745M","305 - NVIDIA GeForce 840M","304 - NVIDIA Quadro M500M","299 - AMD Radeon R7 M445","298 - Intel Iris Plus Graphics 655","297 - AMD Radeon R9 M375","296 - AMD FirePro W4190M","295 - NVIDIA Quadro M600M","293 - NVIDIA GeForce 930MX","292 - Intel Iris Plus Graphics G4 (Ice Lake 48 EU)","291 - NVIDIA GeForce 940M","290 - AMD Radeon RX Vega 8","289 - NVIDIA Quadro K1100M","288 - NVIDIA Quadro M520","287 - NVIDIA GeForce 940MX","286 - NVIDIA GeForce MX130","285 - Intel Iris Pro Graphics 6200","284 - NVIDIA GeForce GT 750M","279 - AMD FirePro W4100","278 - AMD FirePro W4170M","276 - AMD Radeon R7 M465","274 - AMD Radeon R9 M265X","271 - NVIDIA GeForce 845M","269 - NVIDIA GeForce GT 755M","268 - AMD Radeon R7 250","263 - NVIDIA Quadro K2100M","262 - NVIDIA GeForce MX230","261 - AMD FirePro M5100","260 - AMD FirePro M6000","258 - NVIDIA Quadro K3000M","252 - AMD FirePro W5130M","251 - NVIDIA Maxwell GPU Surface Book (940M, GDDR5)","250 - AMD Radeon RX Vega 9","244 - AMD Radeon R9 M370X","243 - AMD FirePro W5170M","242 - NVIDIA Quadro K3100M","231 - AMD Radeon R9 M470","226 - Intel Iris Pro Graphics 580","225 - Intel Iris Pro Graphics P580","224 - AMD Radeon RX Vega 10","223 - Intel Iris Plus Graphics G7 (Ice Lake 64 EU)","222 - NVIDIA Quadro P500","221 - NVIDIA Quadro K4000M","216 - NVIDIA GeForce 945M","210 - AMD Radeon RX Vega 11","209 - NVIDIA Quadro M620","208 - NVIDIA Quadro M1000M","207 - NVIDIA GeForce GTX 850M","206 - NVIDIA Quadro P520","205 - AMD Radeon R9 M385X","204 - AMD Radeon R9 M470X","203 - AMD Radeon Pro 450","202 - NVIDIA GeForce GTX 950M","194 - NVIDIA GeForce GTX 860M","193 - AMD Radeon Pro WX 3100","192 - AMD Radeon RX 540","191 - AMD Radeon Pro WX 2100","190 - AMD Radeon RX 540X","188 - NVIDIA Quadro K4100M","187 - NVIDIA Quadro K5000M","186 - NVIDIA Quadro M2000M","185 - NVIDIA GeForce MX150","184 - NVIDIA GeForce MX250","183 - NVIDIA Quadro P600","182 - NVIDIA GeForce GT 1030 (Desktop)","181 - AMD Radeon 630","180 - AMD Radeon Pro 455","179 - AMD Radeon Pro 555","178 - AMD Radeon Pro 555X","177 - AMD Radeon Pro WX 3200","176 - AMD Radeon RX 640","175 - AMD Radeon RX 550 (Laptop)","174 - AMD Radeon RX 550X (Laptop)","173 - NVIDIA Quadro P620","172 - NVIDIA Quadro M1200","167 - NVIDIA GeForce GTX 960M","166 - AMD Radeon Pro WX 4130","165 - AMD Radeon Pro 460","164 - AMD Radeon Pro 560","163 - AMD Radeon Pro 560X","161 - AMD FirePro M6100","160 - AMD Radeon R9 M390","157 - AMD Radeon RX 460 (Laptop)","150 - NVIDIA GeForce GTX 870M","149 - NVIDIA Quadro M2200","148 - AMD Radeon RX 560 (Laptop)","147 - AMD Radeon RX 560X (Laptop)","146 - NVIDIA GeForce GTX 965M","144 - AMD Radeon Pro WX 4150","143 - AMD Radeon RX 460 (Desktop)","141 - NVIDIA Quadro P1000","140 - NVIDIA Quadro K5100M","136 - AMD Radeon R9 270X","135 - NVIDIA GeForce GTX 950","134 - NVIDIA GeForce GTX 1050 Max-Q","133 - NVIDIA GeForce GTX 880M","131 - AMD Radeon R7 370","130 - AMD Radeon R9 M395","129 - AMD FirePro W7170M","128 - Intel Xe DG1 (iDG1LP) Mobile","127 - NVIDIA GeForce GTX 1050 (Laptop)","126 - NVIDIA GeForce GTX 1050 (Desktop)","125 - NVIDIA Quadro M3000M","122 - AMD Radeon R9 M485X","121 - AMD Radeon Pro Vega 16","120 - AMD Radeon Pro WX Vega M GL","119 - AMD Radeon RX Vega M GL / 870","118 - NVIDIA GeForce GTX 1050 Ti Max-Q","117 - AMD Radeon R9 M395X","112 - NVIDIA GeForce GTX 970M","111 - NVIDIA Quadro M4000M","110 - NVIDIA Quadro P2000 Max-Q","109 - NVIDIA Quadro P2000","108 - NVIDIA GeForce GTX 1050 Ti (Desktop)","107 - NVIDIA GeForce GTX 1050 Ti (Laptop)","106 - NVIDIA GeForce GTX 960","105 - AMD Radeon R9 380","104 - AMD Radeon R9 280X","103 - NVIDIA Quadro M5000M","102 - AMD Radeon Pro Vega 20","101 - AMD Radeon RX Vega M GH","100 - NVIDIA GeForce GTX 980M","93 - AMD Radeon R9 290X","90 - NVIDIA Quadro T1000 Max-Q","89 - NVIDIA Quadro T1000 (Laptop)","88 - NVIDIA GeForce GTX 1650 Max-Q","87 - AMD Radeon RX 470 (Laptop)","86 - AMD Radeon RX 570 (Laptop)","85 - AMD Radeon RX 570X (Laptop)","84 - AMD Radeon RX 470 (Desktop)","83 - AMD Radeon Pro WX 7100","81 - NVIDIA Quadro P3000 Max-Q","80 - NVIDIA GeForce GTX 1060 Max-Q","79 - NVIDIA GeForce GTX 1650 (Desktop)","78 - NVIDIA GeForce GTX 1650 (Laptop)","77 - NVIDIA GeForce GTX 970","76 - NVIDIA Quadro P3000","75 - AMD Radeon RX 5300M","74 - AMD Radeon RX Vega Mobile","72 - AMD Radeon RX 580 (Laptop)","71 - AMD Radeon RX 580X (Laptop)","70 - NVIDIA Quadro P3200","69 - NVIDIA Quadro P4000 Max-Q","68 - NVIDIA GeForce GTX 1060 (Laptop)","67 - AMD Radeon RX 480 (Desktop)","66 - NVIDIA GeForce GTX 1650 Ti (Desktop)","65 - NVIDIA Quadro T2000 Max-Q","64 - NVIDIA Quadro T2000 (Laptop)","63 - NVIDIA Quadro P4000","62 - AMD Radeon RX 570 (Desktop)","61 - NVIDIA GeForce GTX 1060 (Desktop)","59 - AMD Radeon R9 390X","58 - NVIDIA Quadro M5500","57 - NVIDIA GeForce GTX 980 (Laptop)","56 - AMD Radeon RX 580 (Desktop)","55 - AMD Radeon RX 590 (Desktop)","54 - NVIDIA GeForce GTX 980","53 - AMD Radeon R9 Nano","52 - AMD Radeon R9 Fury","50 - NVIDIA Quadro P5000 Max-Q","49 - NVIDIA GeForce GTX 1660 Ti Max-Q","48 - AMD Radeon RX 5500M","47 - NVIDIA GeForce GTX 1070 Max-Q","46 - NVIDIA GeForce GTX 980 Ti","45 - NVIDIA GeForce GTX 1660 Ti (Laptop)","44 - NVIDIA Quadro P5000","43 - NVIDIA Quadro P4200","42 - NVIDIA GeForce GTX 1660 Ti (Desktop)","41 - NVIDIA GeForce GTX 1070 (Laptop)","39 - AMD Radeon Pro Vega 56","38 - NVIDIA GeForce GTX 1080 Max-Q","37 - NVIDIA GeForce GTX 1070 (Desktop)","36 - NVIDIA Quadro P5200","34 - NVIDIA GeForce RTX 2060 (Laptop)","33 - AMD Radeon RX Vega 56","32 - NVIDIA Quadro RTX 3000 Max-Q","31 - NVIDIA Quadro RTX 3000 (Laptop)","30 - NVIDIA GeForce RTX 2070 Max-Q","29 - NVIDIA GeForce GTX 1070 Ti (Desktop)","28 - NVIDIA GeForce RTX 2060 (Desktop)","27 - NVIDIA Quadro RTX 4000 Max-Q","26 - NVIDIA Quadro RTX 4000 (Laptop)","25 - NVIDIA GeForce GTX 1080 (Laptop)","24 - AMD Radeon RX Vega 64","23 - AMD Radeon RX 5700M","22 - AMD Radeon RX 5700 (Desktop)","21 - NVIDIA GeForce RTX 2060 Super","20 - NVIDIA GeForce RTX 2070 (Laptop)","19 - NVIDIA GeForce GTX 1080 (Desktop)","18 - NVIDIA GeForce RTX 2070 (Desktop)","17 - AMD Radeon RX 5700 XT (Desktop)","16 - AMD Radeon VII","15 - NVIDIA GeForce RTX 2070 Super","14 - NVIDIA GeForce RTX 2080 Max-Q","13 - NVIDIA GeForce GTX 1070 SLI (Laptop)","12 - NVIDIA GeForce GTX 1070 SLI (Desktop)","11 - NVIDIA GeForce GTX 1080 SLI (Laptop)","10 - NVIDIA Titan X Pascal","9 - NVIDIA GeForce GTX 1080 Ti (Desktop)","8 - NVIDIA GeForce RTX 2080 (Laptop)","7 - NVIDIA Quadro RTX 5000 Max-Q","6 - NVIDIA Quadro RTX 5000 (Laptop)","5 - NVIDIA GeForce RTX 2080 (Desktop)","4 - NVIDIA GeForce RTX 2080 Super","3 - NVIDIA Quadro RTX 6000 (Laptop)","2 - NVIDIA GeForce RTX 2080 Ti (Desktop)","1 - NVIDIA Titan RTX"],GPU_BENCHMARK_SCORE_MOBILE=["933 - ARM Mali-200","932 - Qualcomm Adreno 200","931 - PowerVR SGX530","930 - PowerVR SGX531","929 - PowerVR SGX535","928 - Vivante GC800","927 - Qualcomm Adreno 203","926 - Qualcomm Adreno 205","924 - PowerVR SGX540","922 - NVIDIA GeForce ULP (Tegra 2)","921 - ARM Mali-400 MP","920 - ARM Mali-400 MP2","919 - Vivante GC1000+ Dual-Core","918 - Qualcomm Adreno 220","917 - Broadcom VideoCore-IV","916 - NVIDIA GeForce ULP (Tegra 3)","915 - ARM Mali-400 MP4","914 - Vivante GC4000","913 - Qualcomm Adreno 225","905 - Qualcomm Adreno 302","904 - Vivante GC7000UL","903 - ARM Mali-T720","902 - Qualcomm Adreno 304","901 - Qualcomm Adreno 305","900 - Qualcomm Adreno 306","899 - Qualcomm Adreno 308","898 - PowerVR SGX544","897 - ARM Mali-T720 MP2","896 - PowerVR SGX544MP2","895 - PowerVR SGX545","892 - PowerVR SGX543MP2","882 - PowerVR SGX543MP3","874 - ARM Mali-T830 MP1","873 - ARM Mali-450 MP4","872 - ARM Mali-T720 MP4","871 - PowerVR GE8100","870 - PowerVR GE8300","869 - PowerVR GE8320","868 - ARM Mali-T760 MP2","867 - Qualcomm Adreno 320","866 - ARM Mali-T624","865 - PowerVR SGX543MP4","838 - ARM Mali-T830 MP2","837 - Qualcomm Adreno 405","836 - PowerVR G6200","835 - NVIDIA GeForce Tegra 4","830 - ARM Mali-T604 MP4","824 - ARM Mali-T830 MP3","823 - ARM Mali-T860 MP2","819 - Qualcomm Adreno 504","818 - Qualcomm Adreno 505","817 - PowerVR GE8322 / IMG8322","816 - Qualcomm Adreno 506","815 - Qualcomm Adreno 508","814 - Qualcomm Adreno 509","813 - ARM Mali-T628 MP4","812 - PowerVR SGX554MP4","774 - ARM Mali-T760 MP4","773 - ARM Mali-T628 MP6","772 - Intel HD Graphics (Bay Trail)","771 - PowerVR G6400","770 - PowerVR GX6250","769 - PowerVR G6430","768 - Qualcomm Adreno 330","767 - Qualcomm Adreno 510","766 - Qualcomm Adreno 512","765 - Qualcomm Adreno 610","764 - Qualcomm Adreno 612","701 - Intel HD Graphics (Cherry Trail)","688 - ARM Mali-G51 MP4","686 - Qualcomm Adreno 616","685 - Qualcomm Adreno 618","684 - Qualcomm Adreno 418","664 - Qualcomm Adreno 420","663 - PowerVR GX6450","653 - ARM Mali-T880 MP2","652 - ARM Mali-T760 MP6","620 - ARM Mali-T880 MP4","619 - ARM Mali-G72 MP3","598 - Qualcomm Adreno 430","595 - ARM Mali-G71 MP2","594 - ARM Mali-T760 MP8","548 - ARM Mali-G76 MP4","547 - ARM Mali-T880 MP12","546 - Apple A9 / PowerVR GT7600","545 - NVIDIA Tegra K1 Kepler GPU","544 - PowerVR GXA6850","543 - Qualcomm Adreno 530","504 - ARM Mali-G71 MP8","503 - ARM Mali-G72 MP12","502 - ARM Mali-G71 MP20","501 - ARM Mali-G72 MP18","500 - Qualcomm Adreno 540","499 - ARM Mali-G76 MP10","498 - ARM Mali-G76 MP12","497 - Qualcomm Adreno 630","496 - Qualcomm Adreno 640","495 - ARM Mali-G76 MP16","480 - Apple A10 Fusion GPU / PowerVR","391 - NVIDIA Tegra X1 Maxwell GPU","364 - Apple A9X / PowerVR Series 7XT","328 - Apple A10X Fusion GPU / PowerVR","327 - Apple A11 Bionic GPU","326 - Apple A12 Bionic GPU","320 - Apple A13 Bionic GPU","294 - Apple A12X Bionic GPU"],cleanEntryString=e=>e.toLowerCase().split("- ")[1].split(" /")[0],cleanRendererString=e=>{let o=e.toLowerCase();return o.includes("angle (")&&o.includes("direct3d")&&(o=o.replace("angle (","").split(" direct3d")[0]),o.includes("nvidia")&&o.includes("gb")&&(o=o.split(/\dgb/)[0]),o},getBenchmarkByPercentage=(e,o)=>{let r=0;return o.map(o=>{const a=Math.round(e.length/100*o),i=e.slice(r,r+a);return r+=a,i})};var DetectUA=function(){function e(e){this.cache=new Map,this.userAgent=e||(window&&window.navigator?window.navigator.userAgent:""),this.android=!/like android/i.test(this.userAgent)&&/android/i.test(this.userAgent),this.iOS=this.match(1,/(iphone|ipod|ipad)/i).toLowerCase(),"MacIntel"===navigator.platform&&navigator.maxTouchPoints>2&&!window.MSStream&&(this.iOS="ipad")}return e.prototype.match=function(e,o){var r=this.userAgent.match(o);return r&&r.length>1&&r[e]||""},Object.defineProperty(e.prototype,"isMobile",{get:function(){var e=this.cache.get("isMobile");return e||(!this.isTablet&&(/[^-]mobi/i.test(this.userAgent)||"iphone"===this.iOS||"ipod"===this.iOS||this.android||/nexus\s*[0-6]\s*/i.test(this.userAgent))?(this.cache.set("isMobile",!0),!0):(this.cache.set("isMobile",!1),!1))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isTablet",{get:function(){var e=this.cache.get("isTablet");return e||(/tablet/i.test(this.userAgent)&&!/tablet pc/i.test(this.userAgent)||"ipad"===this.iOS||this.android&&!/[^-]mobi/i.test(this.userAgent)||!/nexus\s*[0-6]\s*/i.test(this.userAgent)&&/nexus\s*[0-9]+/i.test(this.userAgent)?(this.cache.set("isTablet",!0),!0):(this.cache.set("isTablet",!1),!1))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDesktop",{get:function(){var e=this.cache.get("isDesktop");if(e)return e;var o=!this.isMobile&&!this.isTablet;return this.cache.set("isDesktop",o),o},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isiOS",{get:function(){var e=this.cache.get("isiOS");return e||!!this.iOS&&{name:"iOS",version:this.match(1,/os (\d+([_\s]\d+)*) like mac os x/i).replace(/[_\s]/g,".")||this.match(1,/version\/(\d+(\.\d+)?)/i)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAndroid",{get:function(){var e=this.cache.get("isAndroid");return e||!!this.android&&{name:"Android",version:this.match(1,/android[ \/-](\d+(\.\d+)*)/i)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"browser",{get:function(){var e=this.cache.get("browser");if(e)return e;var o=this.match(1,/version\/(\d+(\.\d+)?)/i),r=void 0;return r=/opera/i.test(this.userAgent)?{name:"Opera",version:o||this.match(1,/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)}:/opr\/|opios/i.test(this.userAgent)?{name:"Opera",version:this.match(1,/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||o}:/SamsungBrowser/i.test(this.userAgent)?{name:"Samsung Internet for Android",version:o||this.match(1,/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)}:/yabrowser/i.test(this.userAgent)?{name:"Yandex Browser",version:o||this.match(1,/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)}:/ucbrowser/i.test(this.userAgent)?{name:"UC Browser",version:this.match(1,/(?:ucbrowser)[\s\/](\d+(\.\d+)?)/i)}:/msie|trident/i.test(this.userAgent)?{name:"Internet Explorer",version:this.match(1,/(?:msie |rv:)(\d+(\.\d+)?)/i)}:/edg([ea]|ios)/i.test(this.userAgent)?{name:"Microsoft Edge",version:this.match(2,/edg([ea]|ios)\/(\d+(\.\d+)?)/i)}:/firefox|iceweasel|fxios/i.test(this.userAgent)?{name:"Firefox",version:this.match(1,/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)}:/chromium/i.test(this.userAgent)?{name:"Chromium",version:this.match(1,/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||o}:/chrome|crios|crmo/i.test(this.userAgent)?{name:"Chrome",version:this.match(1,/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:/safari|applewebkit/i.test(this.userAgent)?{name:"Safari",version:o}:{name:this.match(1,/^(.*)\/(.*) /),version:this.match(2,/^(.*)\/(.*) /)},this.cache.set("browser",r),r},enumerable:!0,configurable:!0}),e}();const device=new DetectUA,{browser:browser,isMobile:isMobile,isTablet:isTablet,isDesktop:isDesktop}=device,getEntryVersionNumber=e=>e.replace(/[\D]/g,""),getWebGLUnmaskedRenderer=e=>{const o=e.getExtension("WEBGL_debug_renderer_info");return o&&e.getParameter(o.UNMASKED_RENDERER_WEBGL)},isWebGLSupported=({browser:e})=>{const o={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"high-performance",stencil:!1};"boolean"!=typeof e&&"Safari"===e.name&&e.version.includes("12")&&delete o.powerPreference;const r=document.createElement("canvas"),a=r.getContext("webgl",o)||r.getContext("experimental-webgl",o);if(a&&a instanceof WebGLRenderingContext)return a},getGPUTier=(e={})=>{const o=e.mobileBenchmarkPercentages||[0,50,30,20],r=e.desktopBenchmarkPercentages||[0,50,30,20],a=e.forceRendererString||"",i=e.forceMobile||!1;let n,t="",M="";if(a)n=a;else{const o=e.glContext||isWebGLSupported({browser:browser});if(!o)return isMobile||isTablet||i?{tier:"GPU_MOBILE_TIER_0",type:"WEBGL_UNSUPPORTED"}:{tier:"GPU_DESKTOP_TIER_0",type:"WEBGL_UNSUPPORTED"};n=getWebGLUnmaskedRenderer(o)}const A=(n=cleanRendererString(n)).replace(/[\D]/g,"");if(/(radeon hd 6970m|radeon hd 6770m|radeon hd 6490m|radeon hd 6630m|radeon hd 6750m|radeon hd 5750|radeon hd 5670|radeon hd 4850|radeon hd 4870|radeon hd 4670|geforce 9400m|geforce 320m|geforce 330m|geforce gt 130|geforce gt 120|geforce gtx 285|geforce 8600|geforce 9600m|geforce 9400m|geforce 8800 gs|geforce 8800 gt|quadro fx 5|quadro fx 4|radeon hd 2600|radeon hd 2400|radeon hd 2600|mali-4|mali-3|mali-2)/.test(n))return isMobile||isTablet||i?{tier:"GPU_MOBILE_TIER_0",type:"BLACKLISTED"}:{tier:"GPU_DESKTOP_TIER_0",type:"BLACKLISTED"};if(isMobile||isTablet||i){const e=getBenchmarkByPercentage(GPU_BENCHMARK_SCORE_MOBILE,o),r=n.includes("adreno"),a=n.includes("apple"),i=n.includes("mali")&&!n.includes("mali-t"),s=n.includes("mali-t"),D=n.includes("nvidia"),d=n.includes("powervr");return e.forEach((e,o)=>e.forEach(e=>{const n=cleanEntryString(e),I=getEntryVersionNumber(n);(n.includes("adreno")&&r||n.includes("apple")&&a||n.includes("mali")&&!n.includes("mali-t")&&i||n.includes("mali-t")&&s||n.includes("nvidia")&&D||n.includes("powervr")&&d)&&I.includes(A)&&(t=`GPU_MOBILE_TIER_${o}`,M=`BENCHMARK - ${n}`)})),t||(t="GPU_MOBILE_TIER_1",M="FALLBACK"),{tier:t,type:M}}if(isDesktop){const e=getBenchmarkByPercentage(GPU_BENCHMARK_SCORE_DESKTOP,r),o=n.includes("intel"),a=n.includes("amd"),i=n.includes("nvidia");return e.forEach((e,r)=>e.forEach(e=>{const n=cleanEntryString(e),s=getEntryVersionNumber(n);(n.includes("intel")&&o||n.includes("amd")&&a||n.includes("nvidia")&&i)&&s.includes(A)&&(t=`GPU_DESKTOP_TIER_${r}`,M=`BENCHMARK - ${n}`)})),t||(t="GPU_DESKTOP_TIER_1",M="FALLBACK"),{tier:t,type:M}}return{tier:t,type:M}};exports.getGPUTier=getGPUTier;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=["790 - AMD Radeon HD 7290","780 - AMD Radeon HD 8180","778 - AMD Radeon HD 7310","776 - AMD Radeon HD 7340","772 - Intel HD Graphics (Bay Trail)","729 - Intel HD Graphics (Ivy Bridge)","725 - AMD Radeon HD 8210","701 - Intel HD Graphics (Cherry Trail)","700 - AMD Radeon HD 8250","699 - AMD Radeon R6 (Mullins)","698 - AMD Radeon HD 8240","690 - AMD Radeon HD 8280","687 - AMD Radeon R2 (Mullins/Beema/Carrizo-L)","665 - Intel HD Graphics (Haswell)","656 - Intel HD Graphics 400 (Braswell)","655 - Intel HD Graphics (Braswell)","654 - Intel HD Graphics 405 (Braswell)","634 - Intel HD Graphics 500","633 - Intel UHD Graphics 600","632 - AMD Radeon HD 8330","631 - AMD Radeon HD 8350G","618 - AMD Radeon HD 8400","614 - AMD Radeon HD 8450G","605 - Intel HD Graphics 4200","604 - Intel HD Graphics (Broadwell)","603 - AMD Radeon R2 (Stoney Ridge)","602 - AMD Radeon R3 (Mullins/Beema)","601 - AMD Radeon R4 (Kaveri)","600 - AMD Radeon R4 (Beema)","599 - AMD Radeon R5 (Beema/Carrizo-L)","597 - AMD Radeon R4 (Stoney Ridge)","593 - Intel HD Graphics 4000","592 - AMD Radeon HD 7480D","584 - Intel HD Graphics 5300","583 - Intel HD Graphics 505","582 - Intel UHD Graphics 605","553 - Intel HD Graphics 510","552 - AMD Radeon HD 8610G","551 - Intel HD Graphics 610","550 - Intel HD Graphics 4400","549 - Intel HD Graphics 515","541 - AMD Radeon HD 8470D","532 - AMD Radeon HD 8550G","516 - Intel HD Graphics 5000","513 - AMD Radeon HD 7660G","512 - NVIDIA GeForce 710M","509 - AMD Radeon R5 (Kaveri)","508 - AMD Radeon R5 (Carrizo)","507 - Intel HD Graphics 615","506 - Intel UHD Graphics 615","505 - Intel UHD Graphics 617","497 - Qualcomm Adreno 630","494 - Intel HD Graphics 5500","492 - Intel HD Graphics 4600","488 - Intel Iris Graphics 5100","486 - NVIDIA Quadro K610M","485 - Intel HD Graphics 6000","479 - AMD Radeon R5 (Stoney Ridge)","478 - AMD Radeon R5 M420","477 - AMD Radeon R5 M315","475 - AMD Radeon R5 M320","472 - NVIDIA GeForce GT 720M","471 - Intel Iris Graphics 6100","470 - Intel HD Graphics 520","469 - NVIDIA GeForce 820M","468 - NVIDIA GeForce 910M","466 - AMD Radeon RX Vega 3","465 - AMD Radeon R5 M255","464 - AMD Radeon R5 M430","463 - AMD Radeon R5 M330","460 - AMD Radeon HD 7560D","454 - AMD Radeon HD 8650G","438 - NVIDIA Quadro K1000M","436 - AMD Radeon HD 7660D","435 - AMD Radeon R6 M255DX","428 - Intel HD Graphics 5600","418 - AMD FirePro W2100","409 - AMD Radeon R6 (Kaveri)","397 - Qualcomm Adreno 680","396 - Qualcomm Adreno 685","395 - AMD Radeon R6 (Carrizo)","394 - Intel HD Graphics 620","393 - Intel UHD Graphics 620","392 - AMD Radeon R5 (Bristol Ridge)","390 - Intel HD Graphics P530","389 - Intel HD Graphics 530","388 - Intel HD Graphics P630","387 - Intel HD Graphics 630","386 - Intel UHD Graphics P630","385 - Intel UHD Graphics 630","384 - Intel UHD Graphics G1 (Ice Lake 32 EU)","383 - AMD Radeon RX Vega 6","381 - AMD Radeon 610","380 - AMD Radeon 520","379 - AMD Radeon R7 M340","372 - AMD Radeon R7 M440","371 - AMD Radeon 620","370 - AMD Radeon R8 M445DX","367 - NVIDIA GeForce 920M","365 - AMD Radeon R7 M360","362 - AMD Radeon R7 M460","360 - AMD Radeon R7 (Kaveri)","359 - AMD Radeon R7 (Carrizo)","358 - NVIDIA GeForce GT 640M","357 - AMD Radeon R7 (Bristol Ridge)","353 - AMD Radeon R7 M265","349 - AMD FirePro M4100","346 - NVIDIA GeForce GT 730M","336 - AMD FirePro M4000","334 - NVIDIA GeForce 825M","332 - NVIDIA GeForce GT 735M","329 - NVIDIA Quadro K2000M","325 - Intel Iris Graphics 540","324 - NVIDIA GeForce 920MX","323 - Intel Iris Plus Graphics 640","322 - NVIDIA GeForce MX110","321 - NVIDIA GeForce 830M","319 - Intel Iris Plus Graphics 645","318 - AMD Radeon 625","317 - AMD Radeon 530","316 - Intel Iris Graphics 550","315 - NVIDIA GeForce 930M","314 - Intel Iris Plus Graphics 650","313 - NVIDIA GeForce GT 740M","312 - AMD Radeon R7 384 Cores (Kaveri Desktop)","311 - Intel Iris Pro Graphics 5200","310 - AMD Radeon R7 512 Cores (Kaveri Desktop)","307 - NVIDIA GeForce GT 745M","305 - NVIDIA GeForce 840M","304 - NVIDIA Quadro M500M","299 - AMD Radeon R7 M445","298 - Intel Iris Plus Graphics 655","297 - AMD Radeon R9 M375","296 - AMD FirePro W4190M","295 - NVIDIA Quadro M600M","293 - NVIDIA GeForce 930MX","292 - Intel Iris Plus Graphics G4 (Ice Lake 48 EU)","291 - NVIDIA GeForce 940M","290 - AMD Radeon RX Vega 8","289 - NVIDIA Quadro K1100M","288 - NVIDIA Quadro M520","287 - NVIDIA GeForce 940MX","286 - NVIDIA GeForce MX130","285 - Intel Iris Pro Graphics 6200","284 - NVIDIA GeForce GT 750M","279 - AMD FirePro W4100","278 - AMD FirePro W4170M","276 - AMD Radeon R7 M465","274 - AMD Radeon R9 M265X","271 - NVIDIA GeForce 845M","269 - NVIDIA GeForce GT 755M","268 - AMD Radeon R7 250","263 - NVIDIA Quadro K2100M","262 - NVIDIA GeForce MX230","261 - AMD FirePro M5100","260 - AMD FirePro M6000","258 - NVIDIA Quadro K3000M","252 - AMD FirePro W5130M","251 - NVIDIA Maxwell GPU Surface Book (940M, GDDR5)","250 - AMD Radeon RX Vega 9","244 - AMD Radeon R9 M370X","243 - AMD FirePro W5170M","242 - NVIDIA Quadro K3100M","231 - AMD Radeon R9 M470","226 - Intel Iris Pro Graphics 580","225 - Intel Iris Pro Graphics P580","224 - AMD Radeon RX Vega 10","223 - Intel Iris Plus Graphics G7 (Ice Lake 64 EU)","222 - NVIDIA Quadro P500","221 - NVIDIA Quadro K4000M","216 - NVIDIA GeForce 945M","210 - AMD Radeon RX Vega 11","209 - NVIDIA Quadro M620","208 - NVIDIA Quadro M1000M","207 - NVIDIA GeForce GTX 850M","206 - NVIDIA Quadro P520","205 - AMD Radeon R9 M385X","204 - AMD Radeon R9 M470X","203 - AMD Radeon Pro 450","202 - NVIDIA GeForce GTX 950M","194 - NVIDIA GeForce GTX 860M","193 - AMD Radeon Pro WX 3100","192 - AMD Radeon RX 540","191 - AMD Radeon Pro WX 2100","190 - AMD Radeon RX 540X","188 - NVIDIA Quadro K4100M","187 - NVIDIA Quadro K5000M","186 - NVIDIA Quadro M2000M","185 - NVIDIA GeForce MX150","184 - NVIDIA GeForce MX250","183 - NVIDIA Quadro P600","182 - NVIDIA GeForce GT 1030 (Desktop)","181 - AMD Radeon 630","180 - AMD Radeon Pro 455","179 - AMD Radeon Pro 555","178 - AMD Radeon Pro 555X","177 - AMD Radeon Pro WX 3200","176 - AMD Radeon RX 640","175 - AMD Radeon RX 550 (Laptop)","174 - AMD Radeon RX 550X (Laptop)","173 - NVIDIA Quadro P620","172 - NVIDIA Quadro M1200","167 - NVIDIA GeForce GTX 960M","166 - AMD Radeon Pro WX 4130","165 - AMD Radeon Pro 460","164 - AMD Radeon Pro 560","163 - AMD Radeon Pro 560X","161 - AMD FirePro M6100","160 - AMD Radeon R9 M390","157 - AMD Radeon RX 460 (Laptop)","150 - NVIDIA GeForce GTX 870M","149 - NVIDIA Quadro M2200","148 - AMD Radeon RX 560 (Laptop)","147 - AMD Radeon RX 560X (Laptop)","146 - NVIDIA GeForce GTX 965M","144 - AMD Radeon Pro WX 4150","143 - AMD Radeon RX 460 (Desktop)","141 - NVIDIA Quadro P1000","140 - NVIDIA Quadro K5100M","136 - AMD Radeon R9 270X","135 - NVIDIA GeForce GTX 950","134 - NVIDIA GeForce GTX 1050 Max-Q","133 - NVIDIA GeForce GTX 880M","131 - AMD Radeon R7 370","130 - AMD Radeon R9 M395","129 - AMD FirePro W7170M","128 - Intel Xe DG1 (iDG1LP) Mobile","127 - NVIDIA GeForce GTX 1050 (Laptop)","126 - NVIDIA GeForce GTX 1050 (Desktop)","125 - NVIDIA Quadro M3000M","122 - AMD Radeon R9 M485X","121 - AMD Radeon Pro Vega 16","120 - AMD Radeon Pro WX Vega M GL","119 - AMD Radeon RX Vega M GL / 870","118 - NVIDIA GeForce GTX 1050 Ti Max-Q","117 - AMD Radeon R9 M395X","112 - NVIDIA GeForce GTX 970M","111 - NVIDIA Quadro M4000M","110 - NVIDIA Quadro P2000 Max-Q","109 - NVIDIA Quadro P2000","108 - NVIDIA GeForce GTX 1050 Ti (Desktop)","107 - NVIDIA GeForce GTX 1050 Ti (Laptop)","106 - NVIDIA GeForce GTX 960","105 - AMD Radeon R9 380","104 - AMD Radeon R9 280X","103 - NVIDIA Quadro M5000M","102 - AMD Radeon Pro Vega 20","101 - AMD Radeon RX Vega M GH","100 - NVIDIA GeForce GTX 980M","93 - AMD Radeon R9 290X","90 - NVIDIA Quadro T1000 Max-Q","89 - NVIDIA Quadro T1000 (Laptop)","88 - NVIDIA GeForce GTX 1650 Max-Q","87 - AMD Radeon RX 470 (Laptop)","86 - AMD Radeon RX 570 (Laptop)","85 - AMD Radeon RX 570X (Laptop)","84 - AMD Radeon RX 470 (Desktop)","83 - AMD Radeon Pro WX 7100","81 - NVIDIA Quadro P3000 Max-Q","80 - NVIDIA GeForce GTX 1060 Max-Q","79 - NVIDIA GeForce GTX 1650 (Desktop)","78 - NVIDIA GeForce GTX 1650 (Laptop)","77 - NVIDIA GeForce GTX 970","76 - NVIDIA Quadro P3000","75 - AMD Radeon RX 5300M","74 - AMD Radeon RX Vega Mobile","72 - AMD Radeon RX 580 (Laptop)","71 - AMD Radeon RX 580X (Laptop)","70 - NVIDIA Quadro P3200","69 - NVIDIA Quadro P4000 Max-Q","68 - NVIDIA GeForce GTX 1060 (Laptop)","67 - AMD Radeon RX 480 (Desktop)","66 - NVIDIA GeForce GTX 1650 Ti (Desktop)","65 - NVIDIA Quadro T2000 Max-Q","64 - NVIDIA Quadro T2000 (Laptop)","63 - NVIDIA Quadro P4000","62 - AMD Radeon RX 570 (Desktop)","61 - NVIDIA GeForce GTX 1060 (Desktop)","59 - AMD Radeon R9 390X","58 - NVIDIA Quadro M5500","57 - NVIDIA GeForce GTX 980 (Laptop)","56 - AMD Radeon RX 580 (Desktop)","55 - AMD Radeon RX 590 (Desktop)","54 - NVIDIA GeForce GTX 980","53 - AMD Radeon R9 Nano","52 - AMD Radeon R9 Fury","50 - NVIDIA Quadro P5000 Max-Q","49 - NVIDIA GeForce GTX 1660 Ti Max-Q","48 - AMD Radeon RX 5500M","47 - NVIDIA GeForce GTX 1070 Max-Q","46 - NVIDIA GeForce GTX 980 Ti","45 - NVIDIA GeForce GTX 1660 Ti (Laptop)","44 - NVIDIA Quadro P5000","43 - NVIDIA Quadro P4200","42 - NVIDIA GeForce GTX 1660 Ti (Desktop)","41 - NVIDIA GeForce GTX 1070 (Laptop)","39 - AMD Radeon Pro Vega 56","38 - NVIDIA GeForce GTX 1080 Max-Q","37 - NVIDIA GeForce GTX 1070 (Desktop)","36 - NVIDIA Quadro P5200","34 - NVIDIA GeForce RTX 2060 (Laptop)","33 - AMD Radeon RX Vega 56","32 - NVIDIA Quadro RTX 3000 Max-Q","31 - NVIDIA Quadro RTX 3000 (Laptop)","30 - NVIDIA GeForce RTX 2070 Max-Q","29 - NVIDIA GeForce GTX 1070 Ti (Desktop)","28 - NVIDIA GeForce RTX 2060 (Desktop)","27 - NVIDIA Quadro RTX 4000 Max-Q","26 - NVIDIA Quadro RTX 4000 (Laptop)","25 - NVIDIA GeForce GTX 1080 (Laptop)","24 - AMD Radeon RX Vega 64","23 - AMD Radeon RX 5700M","22 - AMD Radeon RX 5700 (Desktop)","21 - NVIDIA GeForce RTX 2060 Super","20 - NVIDIA GeForce RTX 2070 (Laptop)","19 - NVIDIA GeForce GTX 1080 (Desktop)","18 - NVIDIA GeForce RTX 2070 (Desktop)","17 - AMD Radeon RX 5700 XT (Desktop)","16 - AMD Radeon VII","15 - NVIDIA GeForce RTX 2070 Super","14 - NVIDIA GeForce RTX 2080 Max-Q","13 - NVIDIA GeForce GTX 1070 SLI (Laptop)","12 - NVIDIA GeForce GTX 1070 SLI (Desktop)","11 - NVIDIA GeForce GTX 1080 SLI (Laptop)","10 - NVIDIA Titan X Pascal","9 - NVIDIA GeForce GTX 1080 Ti (Desktop)","8 - NVIDIA GeForce RTX 2080 (Laptop)","7 - NVIDIA Quadro RTX 5000 Max-Q","6 - NVIDIA Quadro RTX 5000 (Laptop)","5 - NVIDIA GeForce RTX 2080 (Desktop)","4 - NVIDIA GeForce RTX 2080 Super","3 - NVIDIA Quadro RTX 6000 (Laptop)","2 - NVIDIA GeForce RTX 2080 Ti (Desktop)","1 - NVIDIA Titan RTX"],r=["933 - ARM Mali-200","932 - Qualcomm Adreno 200","931 - PowerVR SGX530","930 - PowerVR SGX531","929 - PowerVR SGX535","928 - Vivante GC800","927 - Qualcomm Adreno 203","926 - Qualcomm Adreno 205","924 - PowerVR SGX540","922 - NVIDIA GeForce ULP (Tegra 2)","921 - ARM Mali-400 MP","920 - ARM Mali-400 MP2","919 - Vivante GC1000+ Dual-Core","918 - Qualcomm Adreno 220","917 - Broadcom VideoCore-IV","916 - NVIDIA GeForce ULP (Tegra 3)","915 - ARM Mali-400 MP4","914 - Vivante GC4000","913 - Qualcomm Adreno 225","905 - Qualcomm Adreno 302","904 - Vivante GC7000UL","903 - ARM Mali-T720","902 - Qualcomm Adreno 304","901 - Qualcomm Adreno 305","900 - Qualcomm Adreno 306","899 - Qualcomm Adreno 308","898 - PowerVR SGX544","897 - ARM Mali-T720 MP2","896 - PowerVR SGX544MP2","895 - PowerVR SGX545","892 - PowerVR SGX543MP2","882 - PowerVR SGX543MP3","874 - ARM Mali-T830 MP1","873 - ARM Mali-450 MP4","872 - ARM Mali-T720 MP4","871 - PowerVR GE8100","870 - PowerVR GE8300","869 - PowerVR GE8320","868 - ARM Mali-T760 MP2","867 - Qualcomm Adreno 320","866 - ARM Mali-T624","865 - PowerVR SGX543MP4","838 - ARM Mali-T830 MP2","837 - Qualcomm Adreno 405","836 - PowerVR G6200","835 - NVIDIA GeForce Tegra 4","830 - ARM Mali-T604 MP4","824 - ARM Mali-T830 MP3","823 - ARM Mali-T860 MP2","819 - Qualcomm Adreno 504","818 - Qualcomm Adreno 505","817 - PowerVR GE8322 / IMG8322","816 - Qualcomm Adreno 506","815 - Qualcomm Adreno 508","814 - Qualcomm Adreno 509","813 - ARM Mali-T628 MP4","812 - PowerVR SGX554MP4","774 - ARM Mali-T760 MP4","773 - ARM Mali-T628 MP6","772 - Intel HD Graphics (Bay Trail)","771 - PowerVR G6400","770 - PowerVR GX6250","769 - PowerVR G6430","768 - Qualcomm Adreno 330","767 - Qualcomm Adreno 510","766 - Qualcomm Adreno 512","765 - Qualcomm Adreno 610","764 - Qualcomm Adreno 612","701 - Intel HD Graphics (Cherry Trail)","688 - ARM Mali-G51 MP4","686 - Qualcomm Adreno 616","685 - Qualcomm Adreno 618","684 - Qualcomm Adreno 418","664 - Qualcomm Adreno 420","663 - PowerVR GX6450","653 - ARM Mali-T880 MP2","652 - ARM Mali-T760 MP6","620 - ARM Mali-T880 MP4","619 - ARM Mali-G72 MP3","598 - Qualcomm Adreno 430","595 - ARM Mali-G71 MP2","594 - ARM Mali-T760 MP8","548 - ARM Mali-G76 MP4","547 - ARM Mali-T880 MP12","546 - Apple A9 / PowerVR GT7600","545 - NVIDIA Tegra K1 Kepler GPU","544 - PowerVR GXA6850","543 - Qualcomm Adreno 530","504 - ARM Mali-G71 MP8","503 - ARM Mali-G72 MP12","502 - ARM Mali-G71 MP20","501 - ARM Mali-G72 MP18","500 - Qualcomm Adreno 540","499 - ARM Mali-G76 MP10","498 - ARM Mali-G76 MP12","497 - Qualcomm Adreno 630","496 - Qualcomm Adreno 640","495 - ARM Mali-G76 MP16","480 - Apple A10 Fusion GPU / PowerVR","391 - NVIDIA Tegra X1 Maxwell GPU","364 - Apple A9X / PowerVR Series 7XT","328 - Apple A10X Fusion GPU / PowerVR","327 - Apple A11 Bionic GPU","326 - Apple A12 Bionic GPU","320 - Apple A13 Bionic GPU","294 - Apple A12X Bionic GPU"],o=e=>e.toLowerCase().split("- ")[1].split(" /")[0],a=(e,r)=>{let o=0;return r.map(r=>{const a=Math.round(e.length/100*r),i=e.slice(o,o+a);return o+=a,i})};const i=new(function(){function e(e){this.cache=new Map,this.userAgent=e||(window&&window.navigator?window.navigator.userAgent:""),this.android=!/like android/i.test(this.userAgent)&&/android/i.test(this.userAgent),this.iOS=this.match(1,/(iphone|ipod|ipad)/i).toLowerCase(),"MacIntel"===navigator.platform&&navigator.maxTouchPoints>2&&!window.MSStream&&(this.iOS="ipad")}return e.prototype.match=function(e,r){var o=this.userAgent.match(r);return o&&o.length>1&&o[e]||""},Object.defineProperty(e.prototype,"isMobile",{get:function(){var e=this.cache.get("isMobile");return void 0!==e?e:!this.isTablet&&(/[^-]mobi/i.test(this.userAgent)||"iphone"===this.iOS||"ipod"===this.iOS||this.android||/nexus\s*[0-6]\s*/i.test(this.userAgent))?(this.cache.set("isMobile",!0),!0):(this.cache.set("isMobile",!1),!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isTablet",{get:function(){var e=this.cache.get("isTablet");return void 0!==e?e:/tablet/i.test(this.userAgent)&&!/tablet pc/i.test(this.userAgent)||"ipad"===this.iOS||this.android&&!/[^-]mobi/i.test(this.userAgent)||!/nexus\s*[0-6]\s*/i.test(this.userAgent)&&/nexus\s*[0-9]+/i.test(this.userAgent)?(this.cache.set("isTablet",!0),!0):(this.cache.set("isTablet",!1),!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDesktop",{get:function(){var e=this.cache.get("isDesktop");if(void 0!==e)return e;var r=!this.isMobile&&!this.isTablet;return this.cache.set("isDesktop",r),r},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isMacOS",{get:function(){var e=this.cache.get("isMacOS");if(void 0!==e)return e;if(/macintosh/i.test(this.userAgent)){return{name:"MacOS",version:function(e){var r=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(r.push(0),10!==r[0])return"";switch(r[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return""}}(this.match(1,/mac os x (\d+(\.?_?\d+)+)/i).replace(/[_\s]/g,"."))}}return this.cache.set("isMacOS",!1),!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isWindows",{get:function(){var e=this.cache.get("isWindows");if(void 0!==e)return e;if(/windows /i.test(this.userAgent)){var r={name:"Windows",version:function(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return""}}(this.match(1,/Windows ((NT|XP)( \d\d?.\d)?)/i))};return this.cache.set("isWindows",r),r}return this.cache.set("isWindows",!1),!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isiOS",{get:function(){var e=this.cache.get("isiOS");if(void 0!==e)return e;if(this.iOS){var r={name:"iOS",version:this.match(1,/os (\d+([_\s]\d+)*) like mac os x/i).replace(/[_\s]/g,".")||this.match(1,/version\/(\d+(\.\d+)?)/i)};return this.cache.set("iOS",r),r}return this.cache.set("iOS",!1),!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAndroid",{get:function(){var e=this.cache.get("isAndroid");if(void 0!==e)return e;if(this.android){var r={name:"Android",version:this.match(1,/android[ \/-](\d+(\.\d+)*)/i)};return this.cache.set("Android",r),r}return!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"browser",{get:function(){var e=this.cache.get("browser");if(void 0!==e)return e;var r=this.match(1,/version\/(\d+(\.\d+)?)/i),o=void 0;return o=/opera/i.test(this.userAgent)?{name:"Opera",version:r||this.match(1,/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)}:/opr\/|opios/i.test(this.userAgent)?{name:"Opera",version:this.match(1,/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||r}:/SamsungBrowser/i.test(this.userAgent)?{name:"Samsung Internet for Android",version:r||this.match(1,/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)}:/yabrowser/i.test(this.userAgent)?{name:"Yandex Browser",version:r||this.match(1,/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)}:/ucbrowser/i.test(this.userAgent)?{name:"UC Browser",version:this.match(1,/(?:ucbrowser)[\s\/](\d+(\.\d+)?)/i)}:/msie|trident/i.test(this.userAgent)?{name:"Internet Explorer",version:this.match(1,/(?:msie |rv:)(\d+(\.\d+)?)/i)}:/(edge|edgios|edga|edg)/i.test(this.userAgent)?{name:"Microsoft Edge",version:this.match(2,/(edge|edgios|edga|edg)\/(\d+(\.\d+)?)/i)}:/firefox|iceweasel|fxios/i.test(this.userAgent)?{name:"Firefox",version:this.match(1,/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)}:/chromium/i.test(this.userAgent)?{name:"Chromium",version:this.match(1,/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||r}:/chrome|crios|crmo/i.test(this.userAgent)?{name:"Chrome",version:this.match(1,/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:/safari|applewebkit/i.test(this.userAgent)?{name:"Safari",version:r}:{name:this.match(1,/^(.*)\/(.*) /),version:this.match(2,/^(.*)\/(.*) /)},this.cache.set("browser",o),o},enumerable:!0,configurable:!0}),e}()),{browser:n,isMobile:t,isTablet:s,isDesktop:d}=i,M=e=>e.replace(/[\D]/g,"");exports.getGPUTier=(i={})=>{const A=i.mobileBenchmarkPercentages||[0,50,30,20],c=i.desktopBenchmarkPercentages||[0,50,30,20],D=i.forceRendererString||"",I=i.forceMobile||!1;let R,l="",G="";if(D)R=D;else{const e=i.glContext||(({browser:e})=>{const r={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"high-performance",stencil:!1};"boolean"!=typeof e&&"Safari"===e.name&&e.version.includes("12")&&delete r.powerPreference;const o=document.createElement("canvas"),a=o.getContext("webgl",r)||o.getContext("experimental-webgl",r);if(a&&a instanceof WebGLRenderingContext)return a})({browser:n});if(!e)return t||s||I?{tier:"GPU_MOBILE_TIER_0",type:"WEBGL_UNSUPPORTED"}:{tier:"GPU_DESKTOP_TIER_0",type:"WEBGL_UNSUPPORTED"};R=(e=>{const r=e.getExtension("WEBGL_debug_renderer_info");return r&&e.getParameter(r.UNMASKED_RENDERER_WEBGL)})(e)}R=(e=>{let r=e.toLowerCase();return r.includes("angle (")&&r.includes("direct3d")&&(r=r.replace("angle (","").split(" direct3d")[0]),r.includes("nvidia")&&r.includes("gb")&&(r=r.split(/\dgb/)[0]),r})(R);const u=R.replace(/[\D]/g,"");if(/(radeon hd 6970m|radeon hd 6770m|radeon hd 6490m|radeon hd 6630m|radeon hd 6750m|radeon hd 5750|radeon hd 5670|radeon hd 4850|radeon hd 4870|radeon hd 4670|geforce 9400m|geforce 320m|geforce 330m|geforce gt 130|geforce gt 120|geforce gtx 285|geforce 8600|geforce 9600m|geforce 9400m|geforce 8800 gs|geforce 8800 gt|quadro fx 5|quadro fx 4|radeon hd 2600|radeon hd 2400|radeon hd 2600|mali-4|mali-3|mali-2)/.test(R))return t||s||I?{tier:"GPU_MOBILE_TIER_0",type:"BLACKLISTED"}:{tier:"GPU_DESKTOP_TIER_0",type:"BLACKLISTED"};if(t||s||I){const e=a(r,A),i=R.includes("adreno"),n=R.includes("apple"),t=R.includes("mali")&&!R.includes("mali-t"),s=R.includes("mali-t"),d=R.includes("nvidia"),c=R.includes("powervr");return e.forEach((e,r)=>e.forEach(e=>{const a=o(e),A=M(a);(a.includes("adreno")&&i||a.includes("apple")&&n||a.includes("mali")&&!a.includes("mali-t")&&t||a.includes("mali-t")&&s||a.includes("nvidia")&&d||a.includes("powervr")&&c)&&A.includes(u)&&(l=`GPU_MOBILE_TIER_${r}`,G=`BENCHMARK - ${a}`)})),l||(l="GPU_MOBILE_TIER_1",G="FALLBACK"),{tier:l,type:G}}if(d){const r=a(e,c),i=R.includes("intel"),n=R.includes("amd"),t=R.includes("nvidia");return r.forEach((e,r)=>e.forEach(e=>{const a=o(e),s=M(a);(a.includes("intel")&&i||a.includes("amd")&&n||a.includes("nvidia")&&t)&&s.includes(u)&&(l=`GPU_DESKTOP_TIER_${r}`,G=`BENCHMARK - ${a}`)})),l||(l="GPU_DESKTOP_TIER_1",G="FALLBACK"),{tier:l,type:G}}return{tier:l,type:G}};

@@ -471,3 +471,3 @@ // !! AUTO-GENERATED FILE - DO NOT EDIT !!

let chunkOffset = 0;
const benchmarkTiers = percentages.map(percentage => {
const benchmarkTiers = percentages.map((percentage) => {
const chunkSize = Math.round((benchmark.length / 100) * percentage);

@@ -497,3 +497,3 @@ const chunk = benchmark.slice(chunkOffset, chunkOffset + chunkSize);

this.iOS = this.match(1, /(iphone|ipod|ipad)/i).toLowerCase();
// Workaround for ipadOS
// Workaround for ipadOS, force detection as tablet
// SEE: https://github.com/lancedikson/bowser/issues/329

@@ -522,3 +522,3 @@ // SEE: https://stackoverflow.com/questions/58019463/how-to-detect-device-name-in-safari-on-ios-13-while-it-doesnt-show-the-correct

var cached = this.cache.get('isMobile');
if (cached) {
if (cached !== undefined) {
return cached;

@@ -532,3 +532,4 @@ }

// iPhone / iPod
(this.iOS === 'iphone' || this.iOS === 'ipod') ||
this.iOS === 'iphone' ||
this.iOS === 'ipod' ||
// Android

@@ -554,3 +555,3 @@ this.android ||

var cached = this.cache.get('isTablet');
if (cached) {
if (cached !== undefined) {
return cached;

@@ -584,3 +585,3 @@ }

var cached = this.cache.get('isDesktop');
if (cached) {
if (cached !== undefined) {
return cached;

@@ -597,9 +598,120 @@ }

});
Object.defineProperty(DetectUA.prototype, "isMacOS", {
/**
* Returns if the device is running MacOS (and if so which version)
*/
get: function () {
var cached = this.cache.get('isMacOS');
if (cached !== undefined) {
return cached;
}
else {
if (/macintosh/i.test(this.userAgent)) {
var getMacOSVersionName = function (version) {
var v = version
.split('.')
.splice(0, 2)
.map(function (s) { return parseInt(s, 10) || 0; });
v.push(0);
if (v[0] !== 10) {
return '';
}
switch (v[1]) {
case 5:
return 'Leopard';
case 6:
return 'Snow Leopard';
case 7:
return 'Lion';
case 8:
return 'Mountain Lion';
case 9:
return 'Mavericks';
case 10:
return 'Yosemite';
case 11:
return 'El Capitan';
case 12:
return 'Sierra';
case 13:
return 'High Sierra';
case 14:
return 'Mojave';
case 15:
return 'Catalina';
default:
return '';
}
};
var result = {
name: 'MacOS',
version: getMacOSVersionName(this.match(1, /mac os x (\d+(\.?_?\d+)+)/i).replace(/[_\s]/g, '.')),
};
return result;
}
this.cache.set('isMacOS', false);
return false;
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(DetectUA.prototype, "isWindows", {
/**
* Returns if the device is running Windows (and if so which version)
*/
get: function () {
var cached = this.cache.get('isWindows');
if (cached !== undefined) {
return cached;
}
else {
if (/windows /i.test(this.userAgent)) {
var getWindowsVersionName = function (version) {
switch (version) {
case 'NT':
return 'NT';
case 'XP':
return 'XP';
case 'NT 5.0':
return '2000';
case 'NT 5.1':
return 'XP';
case 'NT 5.2':
return '2003';
case 'NT 6.0':
return 'Vista';
case 'NT 6.1':
return '7';
case 'NT 6.2':
return '8';
case 'NT 6.3':
return '8.1';
case 'NT 10.0':
return '10';
default:
return '';
}
};
var result = {
name: 'Windows',
version: getWindowsVersionName(this.match(1, /Windows ((NT|XP)( \d\d?.\d)?)/i)),
};
this.cache.set('isWindows', result);
return result;
}
this.cache.set('isWindows', false);
return false;
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(DetectUA.prototype, "isiOS", {
/**
* Returns if the device is an iOS device
* Returns if the device is an iOS device (and if so which version)
*/
get: function () {
var cached = this.cache.get('isiOS');
if (cached) {
if (cached !== undefined) {
return cached;

@@ -609,3 +721,3 @@ }

if (this.iOS) {
return {
var result = {
name: 'iOS',

@@ -615,4 +727,7 @@ version: this.match(1, /os (\d+([_\s]\d+)*) like mac os x/i).replace(/[_\s]/g, '.') ||

};
this.cache.set('iOS', result);
return result;
}
else {
this.cache.set('iOS', false);
return false;

@@ -627,7 +742,7 @@ }

/**
* Returns if the device is an Android device
* Returns if the device is an Android device (and if so which version)
*/
get: function () {
var cached = this.cache.get('isAndroid');
if (cached) {
if (cached !== undefined) {
return cached;

@@ -637,6 +752,8 @@ }

if (this.android) {
return {
var result = {
name: 'Android',
version: this.match(1, /android[ \/-](\d+(\.\d+)*)/i),
};
this.cache.set('Android', result);
return result;
}

@@ -657,3 +774,3 @@ else {

var cached = this.cache.get('browser');
if (cached) {
if (cached !== undefined) {
return cached;

@@ -706,7 +823,7 @@ }

}
else if (/edg([ea]|ios)/i.test(this.userAgent)) {
else if (/(edge|edgios|edga|edg)/i.test(this.userAgent)) {
// Edge
result = {
name: 'Microsoft Edge',
version: this.match(2, /edg([ea]|ios)\/(\d+(\.\d+)?)/i),
version: this.match(2, /(edge|edgios|edga|edg)\/(\d+(\.\d+)?)/i),
};

@@ -865,3 +982,3 @@ }

const isRendererPowerVR = renderer.includes('powervr');
mobileBenchmark.forEach((benchmarkTier, index) => benchmarkTier.forEach(benchmarkEntry => {
mobileBenchmark.forEach((benchmarkTier, index) => benchmarkTier.forEach((benchmarkEntry) => {
const entry = cleanEntryString(benchmarkEntry);

@@ -896,3 +1013,3 @@ const entryVersionNumber = getEntryVersionNumber(entry);

const isRendererNVIDIA = renderer.includes('nvidia');
desktopBenchmark.forEach((benchmarkTier, index) => benchmarkTier.forEach(benchmarkEntry => {
desktopBenchmark.forEach((benchmarkTier, index) => benchmarkTier.forEach((benchmarkEntry) => {
const entry = cleanEntryString(benchmarkEntry);

@@ -899,0 +1016,0 @@ const entryVersionNumber = getEntryVersionNumber(entry);

@@ -1,1 +0,1 @@

!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((e=e||self).DetectGPU={})}(this,(function(e){"use strict";const o=["790 - AMD Radeon HD 7290","780 - AMD Radeon HD 8180","778 - AMD Radeon HD 7310","776 - AMD Radeon HD 7340","772 - Intel HD Graphics (Bay Trail)","729 - Intel HD Graphics (Ivy Bridge)","725 - AMD Radeon HD 8210","701 - Intel HD Graphics (Cherry Trail)","700 - AMD Radeon HD 8250","699 - AMD Radeon R6 (Mullins)","698 - AMD Radeon HD 8240","690 - AMD Radeon HD 8280","687 - AMD Radeon R2 (Mullins/Beema/Carrizo-L)","665 - Intel HD Graphics (Haswell)","656 - Intel HD Graphics 400 (Braswell)","655 - Intel HD Graphics (Braswell)","654 - Intel HD Graphics 405 (Braswell)","634 - Intel HD Graphics 500","633 - Intel UHD Graphics 600","632 - AMD Radeon HD 8330","631 - AMD Radeon HD 8350G","618 - AMD Radeon HD 8400","614 - AMD Radeon HD 8450G","605 - Intel HD Graphics 4200","604 - Intel HD Graphics (Broadwell)","603 - AMD Radeon R2 (Stoney Ridge)","602 - AMD Radeon R3 (Mullins/Beema)","601 - AMD Radeon R4 (Kaveri)","600 - AMD Radeon R4 (Beema)","599 - AMD Radeon R5 (Beema/Carrizo-L)","597 - AMD Radeon R4 (Stoney Ridge)","593 - Intel HD Graphics 4000","592 - AMD Radeon HD 7480D","584 - Intel HD Graphics 5300","583 - Intel HD Graphics 505","582 - Intel UHD Graphics 605","553 - Intel HD Graphics 510","552 - AMD Radeon HD 8610G","551 - Intel HD Graphics 610","550 - Intel HD Graphics 4400","549 - Intel HD Graphics 515","541 - AMD Radeon HD 8470D","532 - AMD Radeon HD 8550G","516 - Intel HD Graphics 5000","513 - AMD Radeon HD 7660G","512 - NVIDIA GeForce 710M","509 - AMD Radeon R5 (Kaveri)","508 - AMD Radeon R5 (Carrizo)","507 - Intel HD Graphics 615","506 - Intel UHD Graphics 615","505 - Intel UHD Graphics 617","497 - Qualcomm Adreno 630","494 - Intel HD Graphics 5500","492 - Intel HD Graphics 4600","488 - Intel Iris Graphics 5100","486 - NVIDIA Quadro K610M","485 - Intel HD Graphics 6000","479 - AMD Radeon R5 (Stoney Ridge)","478 - AMD Radeon R5 M420","477 - AMD Radeon R5 M315","475 - AMD Radeon R5 M320","472 - NVIDIA GeForce GT 720M","471 - Intel Iris Graphics 6100","470 - Intel HD Graphics 520","469 - NVIDIA GeForce 820M","468 - NVIDIA GeForce 910M","466 - AMD Radeon RX Vega 3","465 - AMD Radeon R5 M255","464 - AMD Radeon R5 M430","463 - AMD Radeon R5 M330","460 - AMD Radeon HD 7560D","454 - AMD Radeon HD 8650G","438 - NVIDIA Quadro K1000M","436 - AMD Radeon HD 7660D","435 - AMD Radeon R6 M255DX","428 - Intel HD Graphics 5600","418 - AMD FirePro W2100","409 - AMD Radeon R6 (Kaveri)","397 - Qualcomm Adreno 680","396 - Qualcomm Adreno 685","395 - AMD Radeon R6 (Carrizo)","394 - Intel HD Graphics 620","393 - Intel UHD Graphics 620","392 - AMD Radeon R5 (Bristol Ridge)","390 - Intel HD Graphics P530","389 - Intel HD Graphics 530","388 - Intel HD Graphics P630","387 - Intel HD Graphics 630","386 - Intel UHD Graphics P630","385 - Intel UHD Graphics 630","384 - Intel UHD Graphics G1 (Ice Lake 32 EU)","383 - AMD Radeon RX Vega 6","381 - AMD Radeon 610","380 - AMD Radeon 520","379 - AMD Radeon R7 M340","372 - AMD Radeon R7 M440","371 - AMD Radeon 620","370 - AMD Radeon R8 M445DX","367 - NVIDIA GeForce 920M","365 - AMD Radeon R7 M360","362 - AMD Radeon R7 M460","360 - AMD Radeon R7 (Kaveri)","359 - AMD Radeon R7 (Carrizo)","358 - NVIDIA GeForce GT 640M","357 - AMD Radeon R7 (Bristol Ridge)","353 - AMD Radeon R7 M265","349 - AMD FirePro M4100","346 - NVIDIA GeForce GT 730M","336 - AMD FirePro M4000","334 - NVIDIA GeForce 825M","332 - NVIDIA GeForce GT 735M","329 - NVIDIA Quadro K2000M","325 - Intel Iris Graphics 540","324 - NVIDIA GeForce 920MX","323 - Intel Iris Plus Graphics 640","322 - NVIDIA GeForce MX110","321 - NVIDIA GeForce 830M","319 - Intel Iris Plus Graphics 645","318 - AMD Radeon 625","317 - AMD Radeon 530","316 - Intel Iris Graphics 550","315 - NVIDIA GeForce 930M","314 - Intel Iris Plus Graphics 650","313 - NVIDIA GeForce GT 740M","312 - AMD Radeon R7 384 Cores (Kaveri Desktop)","311 - Intel Iris Pro Graphics 5200","310 - AMD Radeon R7 512 Cores (Kaveri Desktop)","307 - NVIDIA GeForce GT 745M","305 - NVIDIA GeForce 840M","304 - NVIDIA Quadro M500M","299 - AMD Radeon R7 M445","298 - Intel Iris Plus Graphics 655","297 - AMD Radeon R9 M375","296 - AMD FirePro W4190M","295 - NVIDIA Quadro M600M","293 - NVIDIA GeForce 930MX","292 - Intel Iris Plus Graphics G4 (Ice Lake 48 EU)","291 - NVIDIA GeForce 940M","290 - AMD Radeon RX Vega 8","289 - NVIDIA Quadro K1100M","288 - NVIDIA Quadro M520","287 - NVIDIA GeForce 940MX","286 - NVIDIA GeForce MX130","285 - Intel Iris Pro Graphics 6200","284 - NVIDIA GeForce GT 750M","279 - AMD FirePro W4100","278 - AMD FirePro W4170M","276 - AMD Radeon R7 M465","274 - AMD Radeon R9 M265X","271 - NVIDIA GeForce 845M","269 - NVIDIA GeForce GT 755M","268 - AMD Radeon R7 250","263 - NVIDIA Quadro K2100M","262 - NVIDIA GeForce MX230","261 - AMD FirePro M5100","260 - AMD FirePro M6000","258 - NVIDIA Quadro K3000M","252 - AMD FirePro W5130M","251 - NVIDIA Maxwell GPU Surface Book (940M, GDDR5)","250 - AMD Radeon RX Vega 9","244 - AMD Radeon R9 M370X","243 - AMD FirePro W5170M","242 - NVIDIA Quadro K3100M","231 - AMD Radeon R9 M470","226 - Intel Iris Pro Graphics 580","225 - Intel Iris Pro Graphics P580","224 - AMD Radeon RX Vega 10","223 - Intel Iris Plus Graphics G7 (Ice Lake 64 EU)","222 - NVIDIA Quadro P500","221 - NVIDIA Quadro K4000M","216 - NVIDIA GeForce 945M","210 - AMD Radeon RX Vega 11","209 - NVIDIA Quadro M620","208 - NVIDIA Quadro M1000M","207 - NVIDIA GeForce GTX 850M","206 - NVIDIA Quadro P520","205 - AMD Radeon R9 M385X","204 - AMD Radeon R9 M470X","203 - AMD Radeon Pro 450","202 - NVIDIA GeForce GTX 950M","194 - NVIDIA GeForce GTX 860M","193 - AMD Radeon Pro WX 3100","192 - AMD Radeon RX 540","191 - AMD Radeon Pro WX 2100","190 - AMD Radeon RX 540X","188 - NVIDIA Quadro K4100M","187 - NVIDIA Quadro K5000M","186 - NVIDIA Quadro M2000M","185 - NVIDIA GeForce MX150","184 - NVIDIA GeForce MX250","183 - NVIDIA Quadro P600","182 - NVIDIA GeForce GT 1030 (Desktop)","181 - AMD Radeon 630","180 - AMD Radeon Pro 455","179 - AMD Radeon Pro 555","178 - AMD Radeon Pro 555X","177 - AMD Radeon Pro WX 3200","176 - AMD Radeon RX 640","175 - AMD Radeon RX 550 (Laptop)","174 - AMD Radeon RX 550X (Laptop)","173 - NVIDIA Quadro P620","172 - NVIDIA Quadro M1200","167 - NVIDIA GeForce GTX 960M","166 - AMD Radeon Pro WX 4130","165 - AMD Radeon Pro 460","164 - AMD Radeon Pro 560","163 - AMD Radeon Pro 560X","161 - AMD FirePro M6100","160 - AMD Radeon R9 M390","157 - AMD Radeon RX 460 (Laptop)","150 - NVIDIA GeForce GTX 870M","149 - NVIDIA Quadro M2200","148 - AMD Radeon RX 560 (Laptop)","147 - AMD Radeon RX 560X (Laptop)","146 - NVIDIA GeForce GTX 965M","144 - AMD Radeon Pro WX 4150","143 - AMD Radeon RX 460 (Desktop)","141 - NVIDIA Quadro P1000","140 - NVIDIA Quadro K5100M","136 - AMD Radeon R9 270X","135 - NVIDIA GeForce GTX 950","134 - NVIDIA GeForce GTX 1050 Max-Q","133 - NVIDIA GeForce GTX 880M","131 - AMD Radeon R7 370","130 - AMD Radeon R9 M395","129 - AMD FirePro W7170M","128 - Intel Xe DG1 (iDG1LP) Mobile","127 - NVIDIA GeForce GTX 1050 (Laptop)","126 - NVIDIA GeForce GTX 1050 (Desktop)","125 - NVIDIA Quadro M3000M","122 - AMD Radeon R9 M485X","121 - AMD Radeon Pro Vega 16","120 - AMD Radeon Pro WX Vega M GL","119 - AMD Radeon RX Vega M GL / 870","118 - NVIDIA GeForce GTX 1050 Ti Max-Q","117 - AMD Radeon R9 M395X","112 - NVIDIA GeForce GTX 970M","111 - NVIDIA Quadro M4000M","110 - NVIDIA Quadro P2000 Max-Q","109 - NVIDIA Quadro P2000","108 - NVIDIA GeForce GTX 1050 Ti (Desktop)","107 - NVIDIA GeForce GTX 1050 Ti (Laptop)","106 - NVIDIA GeForce GTX 960","105 - AMD Radeon R9 380","104 - AMD Radeon R9 280X","103 - NVIDIA Quadro M5000M","102 - AMD Radeon Pro Vega 20","101 - AMD Radeon RX Vega M GH","100 - NVIDIA GeForce GTX 980M","93 - AMD Radeon R9 290X","90 - NVIDIA Quadro T1000 Max-Q","89 - NVIDIA Quadro T1000 (Laptop)","88 - NVIDIA GeForce GTX 1650 Max-Q","87 - AMD Radeon RX 470 (Laptop)","86 - AMD Radeon RX 570 (Laptop)","85 - AMD Radeon RX 570X (Laptop)","84 - AMD Radeon RX 470 (Desktop)","83 - AMD Radeon Pro WX 7100","81 - NVIDIA Quadro P3000 Max-Q","80 - NVIDIA GeForce GTX 1060 Max-Q","79 - NVIDIA GeForce GTX 1650 (Desktop)","78 - NVIDIA GeForce GTX 1650 (Laptop)","77 - NVIDIA GeForce GTX 970","76 - NVIDIA Quadro P3000","75 - AMD Radeon RX 5300M","74 - AMD Radeon RX Vega Mobile","72 - AMD Radeon RX 580 (Laptop)","71 - AMD Radeon RX 580X (Laptop)","70 - NVIDIA Quadro P3200","69 - NVIDIA Quadro P4000 Max-Q","68 - NVIDIA GeForce GTX 1060 (Laptop)","67 - AMD Radeon RX 480 (Desktop)","66 - NVIDIA GeForce GTX 1650 Ti (Desktop)","65 - NVIDIA Quadro T2000 Max-Q","64 - NVIDIA Quadro T2000 (Laptop)","63 - NVIDIA Quadro P4000","62 - AMD Radeon RX 570 (Desktop)","61 - NVIDIA GeForce GTX 1060 (Desktop)","59 - AMD Radeon R9 390X","58 - NVIDIA Quadro M5500","57 - NVIDIA GeForce GTX 980 (Laptop)","56 - AMD Radeon RX 580 (Desktop)","55 - AMD Radeon RX 590 (Desktop)","54 - NVIDIA GeForce GTX 980","53 - AMD Radeon R9 Nano","52 - AMD Radeon R9 Fury","50 - NVIDIA Quadro P5000 Max-Q","49 - NVIDIA GeForce GTX 1660 Ti Max-Q","48 - AMD Radeon RX 5500M","47 - NVIDIA GeForce GTX 1070 Max-Q","46 - NVIDIA GeForce GTX 980 Ti","45 - NVIDIA GeForce GTX 1660 Ti (Laptop)","44 - NVIDIA Quadro P5000","43 - NVIDIA Quadro P4200","42 - NVIDIA GeForce GTX 1660 Ti (Desktop)","41 - NVIDIA GeForce GTX 1070 (Laptop)","39 - AMD Radeon Pro Vega 56","38 - NVIDIA GeForce GTX 1080 Max-Q","37 - NVIDIA GeForce GTX 1070 (Desktop)","36 - NVIDIA Quadro P5200","34 - NVIDIA GeForce RTX 2060 (Laptop)","33 - AMD Radeon RX Vega 56","32 - NVIDIA Quadro RTX 3000 Max-Q","31 - NVIDIA Quadro RTX 3000 (Laptop)","30 - NVIDIA GeForce RTX 2070 Max-Q","29 - NVIDIA GeForce GTX 1070 Ti (Desktop)","28 - NVIDIA GeForce RTX 2060 (Desktop)","27 - NVIDIA Quadro RTX 4000 Max-Q","26 - NVIDIA Quadro RTX 4000 (Laptop)","25 - NVIDIA GeForce GTX 1080 (Laptop)","24 - AMD Radeon RX Vega 64","23 - AMD Radeon RX 5700M","22 - AMD Radeon RX 5700 (Desktop)","21 - NVIDIA GeForce RTX 2060 Super","20 - NVIDIA GeForce RTX 2070 (Laptop)","19 - NVIDIA GeForce GTX 1080 (Desktop)","18 - NVIDIA GeForce RTX 2070 (Desktop)","17 - AMD Radeon RX 5700 XT (Desktop)","16 - AMD Radeon VII","15 - NVIDIA GeForce RTX 2070 Super","14 - NVIDIA GeForce RTX 2080 Max-Q","13 - NVIDIA GeForce GTX 1070 SLI (Laptop)","12 - NVIDIA GeForce GTX 1070 SLI (Desktop)","11 - NVIDIA GeForce GTX 1080 SLI (Laptop)","10 - NVIDIA Titan X Pascal","9 - NVIDIA GeForce GTX 1080 Ti (Desktop)","8 - NVIDIA GeForce RTX 2080 (Laptop)","7 - NVIDIA Quadro RTX 5000 Max-Q","6 - NVIDIA Quadro RTX 5000 (Laptop)","5 - NVIDIA GeForce RTX 2080 (Desktop)","4 - NVIDIA GeForce RTX 2080 Super","3 - NVIDIA Quadro RTX 6000 (Laptop)","2 - NVIDIA GeForce RTX 2080 Ti (Desktop)","1 - NVIDIA Titan RTX"],r=["933 - ARM Mali-200","932 - Qualcomm Adreno 200","931 - PowerVR SGX530","930 - PowerVR SGX531","929 - PowerVR SGX535","928 - Vivante GC800","927 - Qualcomm Adreno 203","926 - Qualcomm Adreno 205","924 - PowerVR SGX540","922 - NVIDIA GeForce ULP (Tegra 2)","921 - ARM Mali-400 MP","920 - ARM Mali-400 MP2","919 - Vivante GC1000+ Dual-Core","918 - Qualcomm Adreno 220","917 - Broadcom VideoCore-IV","916 - NVIDIA GeForce ULP (Tegra 3)","915 - ARM Mali-400 MP4","914 - Vivante GC4000","913 - Qualcomm Adreno 225","905 - Qualcomm Adreno 302","904 - Vivante GC7000UL","903 - ARM Mali-T720","902 - Qualcomm Adreno 304","901 - Qualcomm Adreno 305","900 - Qualcomm Adreno 306","899 - Qualcomm Adreno 308","898 - PowerVR SGX544","897 - ARM Mali-T720 MP2","896 - PowerVR SGX544MP2","895 - PowerVR SGX545","892 - PowerVR SGX543MP2","882 - PowerVR SGX543MP3","874 - ARM Mali-T830 MP1","873 - ARM Mali-450 MP4","872 - ARM Mali-T720 MP4","871 - PowerVR GE8100","870 - PowerVR GE8300","869 - PowerVR GE8320","868 - ARM Mali-T760 MP2","867 - Qualcomm Adreno 320","866 - ARM Mali-T624","865 - PowerVR SGX543MP4","838 - ARM Mali-T830 MP2","837 - Qualcomm Adreno 405","836 - PowerVR G6200","835 - NVIDIA GeForce Tegra 4","830 - ARM Mali-T604 MP4","824 - ARM Mali-T830 MP3","823 - ARM Mali-T860 MP2","819 - Qualcomm Adreno 504","818 - Qualcomm Adreno 505","817 - PowerVR GE8322 / IMG8322","816 - Qualcomm Adreno 506","815 - Qualcomm Adreno 508","814 - Qualcomm Adreno 509","813 - ARM Mali-T628 MP4","812 - PowerVR SGX554MP4","774 - ARM Mali-T760 MP4","773 - ARM Mali-T628 MP6","772 - Intel HD Graphics (Bay Trail)","771 - PowerVR G6400","770 - PowerVR GX6250","769 - PowerVR G6430","768 - Qualcomm Adreno 330","767 - Qualcomm Adreno 510","766 - Qualcomm Adreno 512","765 - Qualcomm Adreno 610","764 - Qualcomm Adreno 612","701 - Intel HD Graphics (Cherry Trail)","688 - ARM Mali-G51 MP4","686 - Qualcomm Adreno 616","685 - Qualcomm Adreno 618","684 - Qualcomm Adreno 418","664 - Qualcomm Adreno 420","663 - PowerVR GX6450","653 - ARM Mali-T880 MP2","652 - ARM Mali-T760 MP6","620 - ARM Mali-T880 MP4","619 - ARM Mali-G72 MP3","598 - Qualcomm Adreno 430","595 - ARM Mali-G71 MP2","594 - ARM Mali-T760 MP8","548 - ARM Mali-G76 MP4","547 - ARM Mali-T880 MP12","546 - Apple A9 / PowerVR GT7600","545 - NVIDIA Tegra K1 Kepler GPU","544 - PowerVR GXA6850","543 - Qualcomm Adreno 530","504 - ARM Mali-G71 MP8","503 - ARM Mali-G72 MP12","502 - ARM Mali-G71 MP20","501 - ARM Mali-G72 MP18","500 - Qualcomm Adreno 540","499 - ARM Mali-G76 MP10","498 - ARM Mali-G76 MP12","497 - Qualcomm Adreno 630","496 - Qualcomm Adreno 640","495 - ARM Mali-G76 MP16","480 - Apple A10 Fusion GPU / PowerVR","391 - NVIDIA Tegra X1 Maxwell GPU","364 - Apple A9X / PowerVR Series 7XT","328 - Apple A10X Fusion GPU / PowerVR","327 - Apple A11 Bionic GPU","326 - Apple A12 Bionic GPU","320 - Apple A13 Bionic GPU","294 - Apple A12X Bionic GPU"],a=e=>e.toLowerCase().split("- ")[1].split(" /")[0],i=(e,o)=>{let r=0;return o.map(o=>{const a=Math.round(e.length/100*o),i=e.slice(r,r+a);return r+=a,i})};const n=new(function(){function e(e){this.cache=new Map,this.userAgent=e||(window&&window.navigator?window.navigator.userAgent:""),this.android=!/like android/i.test(this.userAgent)&&/android/i.test(this.userAgent),this.iOS=this.match(1,/(iphone|ipod|ipad)/i).toLowerCase(),"MacIntel"===navigator.platform&&navigator.maxTouchPoints>2&&!window.MSStream&&(this.iOS="ipad")}return e.prototype.match=function(e,o){var r=this.userAgent.match(o);return r&&r.length>1&&r[e]||""},Object.defineProperty(e.prototype,"isMobile",{get:function(){var e=this.cache.get("isMobile");return e||(!this.isTablet&&(/[^-]mobi/i.test(this.userAgent)||"iphone"===this.iOS||"ipod"===this.iOS||this.android||/nexus\s*[0-6]\s*/i.test(this.userAgent))?(this.cache.set("isMobile",!0),!0):(this.cache.set("isMobile",!1),!1))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isTablet",{get:function(){var e=this.cache.get("isTablet");return e||(/tablet/i.test(this.userAgent)&&!/tablet pc/i.test(this.userAgent)||"ipad"===this.iOS||this.android&&!/[^-]mobi/i.test(this.userAgent)||!/nexus\s*[0-6]\s*/i.test(this.userAgent)&&/nexus\s*[0-9]+/i.test(this.userAgent)?(this.cache.set("isTablet",!0),!0):(this.cache.set("isTablet",!1),!1))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDesktop",{get:function(){var e=this.cache.get("isDesktop");if(e)return e;var o=!this.isMobile&&!this.isTablet;return this.cache.set("isDesktop",o),o},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isiOS",{get:function(){var e=this.cache.get("isiOS");return e||!!this.iOS&&{name:"iOS",version:this.match(1,/os (\d+([_\s]\d+)*) like mac os x/i).replace(/[_\s]/g,".")||this.match(1,/version\/(\d+(\.\d+)?)/i)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAndroid",{get:function(){var e=this.cache.get("isAndroid");return e||!!this.android&&{name:"Android",version:this.match(1,/android[ \/-](\d+(\.\d+)*)/i)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"browser",{get:function(){var e=this.cache.get("browser");if(e)return e;var o=this.match(1,/version\/(\d+(\.\d+)?)/i),r=void 0;return r=/opera/i.test(this.userAgent)?{name:"Opera",version:o||this.match(1,/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)}:/opr\/|opios/i.test(this.userAgent)?{name:"Opera",version:this.match(1,/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||o}:/SamsungBrowser/i.test(this.userAgent)?{name:"Samsung Internet for Android",version:o||this.match(1,/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)}:/yabrowser/i.test(this.userAgent)?{name:"Yandex Browser",version:o||this.match(1,/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)}:/ucbrowser/i.test(this.userAgent)?{name:"UC Browser",version:this.match(1,/(?:ucbrowser)[\s\/](\d+(\.\d+)?)/i)}:/msie|trident/i.test(this.userAgent)?{name:"Internet Explorer",version:this.match(1,/(?:msie |rv:)(\d+(\.\d+)?)/i)}:/edg([ea]|ios)/i.test(this.userAgent)?{name:"Microsoft Edge",version:this.match(2,/edg([ea]|ios)\/(\d+(\.\d+)?)/i)}:/firefox|iceweasel|fxios/i.test(this.userAgent)?{name:"Firefox",version:this.match(1,/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)}:/chromium/i.test(this.userAgent)?{name:"Chromium",version:this.match(1,/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||o}:/chrome|crios|crmo/i.test(this.userAgent)?{name:"Chrome",version:this.match(1,/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:/safari|applewebkit/i.test(this.userAgent)?{name:"Safari",version:o}:{name:this.match(1,/^(.*)\/(.*) /),version:this.match(2,/^(.*)\/(.*) /)},this.cache.set("browser",r),r},enumerable:!0,configurable:!0}),e}()),{browser:t,isMobile:A,isTablet:M,isDesktop:D}=n,s=e=>e.replace(/[\D]/g,"");e.getGPUTier=(e={})=>{const n=e.mobileBenchmarkPercentages||[0,50,30,20],d=e.desktopBenchmarkPercentages||[0,50,30,20],I=e.forceRendererString||"",c=e.forceMobile||!1;let R,l="",G="";if(I)R=I;else{const o=e.glContext||(({browser:e})=>{const o={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"high-performance",stencil:!1};"boolean"!=typeof e&&"Safari"===e.name&&e.version.includes("12")&&delete o.powerPreference;const r=document.createElement("canvas"),a=r.getContext("webgl",o)||r.getContext("experimental-webgl",o);if(a&&a instanceof WebGLRenderingContext)return a})({browser:t});if(!o)return A||M||c?{tier:"GPU_MOBILE_TIER_0",type:"WEBGL_UNSUPPORTED"}:{tier:"GPU_DESKTOP_TIER_0",type:"WEBGL_UNSUPPORTED"};R=(e=>{const o=e.getExtension("WEBGL_debug_renderer_info");return o&&e.getParameter(o.UNMASKED_RENDERER_WEBGL)})(o)}const p=(R=(e=>{let o=e.toLowerCase();return o.includes("angle (")&&o.includes("direct3d")&&(o=o.replace("angle (","").split(" direct3d")[0]),o.includes("nvidia")&&o.includes("gb")&&(o=o.split(/\dgb/)[0]),o})(R)).replace(/[\D]/g,"");if(/(radeon hd 6970m|radeon hd 6770m|radeon hd 6490m|radeon hd 6630m|radeon hd 6750m|radeon hd 5750|radeon hd 5670|radeon hd 4850|radeon hd 4870|radeon hd 4670|geforce 9400m|geforce 320m|geforce 330m|geforce gt 130|geforce gt 120|geforce gtx 285|geforce 8600|geforce 9600m|geforce 9400m|geforce 8800 gs|geforce 8800 gt|quadro fx 5|quadro fx 4|radeon hd 2600|radeon hd 2400|radeon hd 2600|mali-4|mali-3|mali-2)/.test(R))return A||M||c?{tier:"GPU_MOBILE_TIER_0",type:"BLACKLISTED"}:{tier:"GPU_DESKTOP_TIER_0",type:"BLACKLISTED"};if(A||M||c){const e=i(r,n),o=R.includes("adreno"),t=R.includes("apple"),A=R.includes("mali")&&!R.includes("mali-t"),M=R.includes("mali-t"),D=R.includes("nvidia"),d=R.includes("powervr");return e.forEach((e,r)=>e.forEach(e=>{const i=a(e),n=s(i);(i.includes("adreno")&&o||i.includes("apple")&&t||i.includes("mali")&&!i.includes("mali-t")&&A||i.includes("mali-t")&&M||i.includes("nvidia")&&D||i.includes("powervr")&&d)&&n.includes(p)&&(l=`GPU_MOBILE_TIER_${r}`,G=`BENCHMARK - ${i}`)})),l||(l="GPU_MOBILE_TIER_1",G="FALLBACK"),{tier:l,type:G}}if(D){const e=i(o,d),r=R.includes("intel"),n=R.includes("amd"),t=R.includes("nvidia");return e.forEach((e,o)=>e.forEach(e=>{const i=a(e),A=s(i);(i.includes("intel")&&r||i.includes("amd")&&n||i.includes("nvidia")&&t)&&A.includes(p)&&(l=`GPU_DESKTOP_TIER_${o}`,G=`BENCHMARK - ${i}`)})),l||(l="GPU_DESKTOP_TIER_1",G="FALLBACK"),{tier:l,type:G}}return{tier:l,type:G}},Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((e=e||self).DetectGPU={})}(this,(function(e){"use strict";const o=["790 - AMD Radeon HD 7290","780 - AMD Radeon HD 8180","778 - AMD Radeon HD 7310","776 - AMD Radeon HD 7340","772 - Intel HD Graphics (Bay Trail)","729 - Intel HD Graphics (Ivy Bridge)","725 - AMD Radeon HD 8210","701 - Intel HD Graphics (Cherry Trail)","700 - AMD Radeon HD 8250","699 - AMD Radeon R6 (Mullins)","698 - AMD Radeon HD 8240","690 - AMD Radeon HD 8280","687 - AMD Radeon R2 (Mullins/Beema/Carrizo-L)","665 - Intel HD Graphics (Haswell)","656 - Intel HD Graphics 400 (Braswell)","655 - Intel HD Graphics (Braswell)","654 - Intel HD Graphics 405 (Braswell)","634 - Intel HD Graphics 500","633 - Intel UHD Graphics 600","632 - AMD Radeon HD 8330","631 - AMD Radeon HD 8350G","618 - AMD Radeon HD 8400","614 - AMD Radeon HD 8450G","605 - Intel HD Graphics 4200","604 - Intel HD Graphics (Broadwell)","603 - AMD Radeon R2 (Stoney Ridge)","602 - AMD Radeon R3 (Mullins/Beema)","601 - AMD Radeon R4 (Kaveri)","600 - AMD Radeon R4 (Beema)","599 - AMD Radeon R5 (Beema/Carrizo-L)","597 - AMD Radeon R4 (Stoney Ridge)","593 - Intel HD Graphics 4000","592 - AMD Radeon HD 7480D","584 - Intel HD Graphics 5300","583 - Intel HD Graphics 505","582 - Intel UHD Graphics 605","553 - Intel HD Graphics 510","552 - AMD Radeon HD 8610G","551 - Intel HD Graphics 610","550 - Intel HD Graphics 4400","549 - Intel HD Graphics 515","541 - AMD Radeon HD 8470D","532 - AMD Radeon HD 8550G","516 - Intel HD Graphics 5000","513 - AMD Radeon HD 7660G","512 - NVIDIA GeForce 710M","509 - AMD Radeon R5 (Kaveri)","508 - AMD Radeon R5 (Carrizo)","507 - Intel HD Graphics 615","506 - Intel UHD Graphics 615","505 - Intel UHD Graphics 617","497 - Qualcomm Adreno 630","494 - Intel HD Graphics 5500","492 - Intel HD Graphics 4600","488 - Intel Iris Graphics 5100","486 - NVIDIA Quadro K610M","485 - Intel HD Graphics 6000","479 - AMD Radeon R5 (Stoney Ridge)","478 - AMD Radeon R5 M420","477 - AMD Radeon R5 M315","475 - AMD Radeon R5 M320","472 - NVIDIA GeForce GT 720M","471 - Intel Iris Graphics 6100","470 - Intel HD Graphics 520","469 - NVIDIA GeForce 820M","468 - NVIDIA GeForce 910M","466 - AMD Radeon RX Vega 3","465 - AMD Radeon R5 M255","464 - AMD Radeon R5 M430","463 - AMD Radeon R5 M330","460 - AMD Radeon HD 7560D","454 - AMD Radeon HD 8650G","438 - NVIDIA Quadro K1000M","436 - AMD Radeon HD 7660D","435 - AMD Radeon R6 M255DX","428 - Intel HD Graphics 5600","418 - AMD FirePro W2100","409 - AMD Radeon R6 (Kaveri)","397 - Qualcomm Adreno 680","396 - Qualcomm Adreno 685","395 - AMD Radeon R6 (Carrizo)","394 - Intel HD Graphics 620","393 - Intel UHD Graphics 620","392 - AMD Radeon R5 (Bristol Ridge)","390 - Intel HD Graphics P530","389 - Intel HD Graphics 530","388 - Intel HD Graphics P630","387 - Intel HD Graphics 630","386 - Intel UHD Graphics P630","385 - Intel UHD Graphics 630","384 - Intel UHD Graphics G1 (Ice Lake 32 EU)","383 - AMD Radeon RX Vega 6","381 - AMD Radeon 610","380 - AMD Radeon 520","379 - AMD Radeon R7 M340","372 - AMD Radeon R7 M440","371 - AMD Radeon 620","370 - AMD Radeon R8 M445DX","367 - NVIDIA GeForce 920M","365 - AMD Radeon R7 M360","362 - AMD Radeon R7 M460","360 - AMD Radeon R7 (Kaveri)","359 - AMD Radeon R7 (Carrizo)","358 - NVIDIA GeForce GT 640M","357 - AMD Radeon R7 (Bristol Ridge)","353 - AMD Radeon R7 M265","349 - AMD FirePro M4100","346 - NVIDIA GeForce GT 730M","336 - AMD FirePro M4000","334 - NVIDIA GeForce 825M","332 - NVIDIA GeForce GT 735M","329 - NVIDIA Quadro K2000M","325 - Intel Iris Graphics 540","324 - NVIDIA GeForce 920MX","323 - Intel Iris Plus Graphics 640","322 - NVIDIA GeForce MX110","321 - NVIDIA GeForce 830M","319 - Intel Iris Plus Graphics 645","318 - AMD Radeon 625","317 - AMD Radeon 530","316 - Intel Iris Graphics 550","315 - NVIDIA GeForce 930M","314 - Intel Iris Plus Graphics 650","313 - NVIDIA GeForce GT 740M","312 - AMD Radeon R7 384 Cores (Kaveri Desktop)","311 - Intel Iris Pro Graphics 5200","310 - AMD Radeon R7 512 Cores (Kaveri Desktop)","307 - NVIDIA GeForce GT 745M","305 - NVIDIA GeForce 840M","304 - NVIDIA Quadro M500M","299 - AMD Radeon R7 M445","298 - Intel Iris Plus Graphics 655","297 - AMD Radeon R9 M375","296 - AMD FirePro W4190M","295 - NVIDIA Quadro M600M","293 - NVIDIA GeForce 930MX","292 - Intel Iris Plus Graphics G4 (Ice Lake 48 EU)","291 - NVIDIA GeForce 940M","290 - AMD Radeon RX Vega 8","289 - NVIDIA Quadro K1100M","288 - NVIDIA Quadro M520","287 - NVIDIA GeForce 940MX","286 - NVIDIA GeForce MX130","285 - Intel Iris Pro Graphics 6200","284 - NVIDIA GeForce GT 750M","279 - AMD FirePro W4100","278 - AMD FirePro W4170M","276 - AMD Radeon R7 M465","274 - AMD Radeon R9 M265X","271 - NVIDIA GeForce 845M","269 - NVIDIA GeForce GT 755M","268 - AMD Radeon R7 250","263 - NVIDIA Quadro K2100M","262 - NVIDIA GeForce MX230","261 - AMD FirePro M5100","260 - AMD FirePro M6000","258 - NVIDIA Quadro K3000M","252 - AMD FirePro W5130M","251 - NVIDIA Maxwell GPU Surface Book (940M, GDDR5)","250 - AMD Radeon RX Vega 9","244 - AMD Radeon R9 M370X","243 - AMD FirePro W5170M","242 - NVIDIA Quadro K3100M","231 - AMD Radeon R9 M470","226 - Intel Iris Pro Graphics 580","225 - Intel Iris Pro Graphics P580","224 - AMD Radeon RX Vega 10","223 - Intel Iris Plus Graphics G7 (Ice Lake 64 EU)","222 - NVIDIA Quadro P500","221 - NVIDIA Quadro K4000M","216 - NVIDIA GeForce 945M","210 - AMD Radeon RX Vega 11","209 - NVIDIA Quadro M620","208 - NVIDIA Quadro M1000M","207 - NVIDIA GeForce GTX 850M","206 - NVIDIA Quadro P520","205 - AMD Radeon R9 M385X","204 - AMD Radeon R9 M470X","203 - AMD Radeon Pro 450","202 - NVIDIA GeForce GTX 950M","194 - NVIDIA GeForce GTX 860M","193 - AMD Radeon Pro WX 3100","192 - AMD Radeon RX 540","191 - AMD Radeon Pro WX 2100","190 - AMD Radeon RX 540X","188 - NVIDIA Quadro K4100M","187 - NVIDIA Quadro K5000M","186 - NVIDIA Quadro M2000M","185 - NVIDIA GeForce MX150","184 - NVIDIA GeForce MX250","183 - NVIDIA Quadro P600","182 - NVIDIA GeForce GT 1030 (Desktop)","181 - AMD Radeon 630","180 - AMD Radeon Pro 455","179 - AMD Radeon Pro 555","178 - AMD Radeon Pro 555X","177 - AMD Radeon Pro WX 3200","176 - AMD Radeon RX 640","175 - AMD Radeon RX 550 (Laptop)","174 - AMD Radeon RX 550X (Laptop)","173 - NVIDIA Quadro P620","172 - NVIDIA Quadro M1200","167 - NVIDIA GeForce GTX 960M","166 - AMD Radeon Pro WX 4130","165 - AMD Radeon Pro 460","164 - AMD Radeon Pro 560","163 - AMD Radeon Pro 560X","161 - AMD FirePro M6100","160 - AMD Radeon R9 M390","157 - AMD Radeon RX 460 (Laptop)","150 - NVIDIA GeForce GTX 870M","149 - NVIDIA Quadro M2200","148 - AMD Radeon RX 560 (Laptop)","147 - AMD Radeon RX 560X (Laptop)","146 - NVIDIA GeForce GTX 965M","144 - AMD Radeon Pro WX 4150","143 - AMD Radeon RX 460 (Desktop)","141 - NVIDIA Quadro P1000","140 - NVIDIA Quadro K5100M","136 - AMD Radeon R9 270X","135 - NVIDIA GeForce GTX 950","134 - NVIDIA GeForce GTX 1050 Max-Q","133 - NVIDIA GeForce GTX 880M","131 - AMD Radeon R7 370","130 - AMD Radeon R9 M395","129 - AMD FirePro W7170M","128 - Intel Xe DG1 (iDG1LP) Mobile","127 - NVIDIA GeForce GTX 1050 (Laptop)","126 - NVIDIA GeForce GTX 1050 (Desktop)","125 - NVIDIA Quadro M3000M","122 - AMD Radeon R9 M485X","121 - AMD Radeon Pro Vega 16","120 - AMD Radeon Pro WX Vega M GL","119 - AMD Radeon RX Vega M GL / 870","118 - NVIDIA GeForce GTX 1050 Ti Max-Q","117 - AMD Radeon R9 M395X","112 - NVIDIA GeForce GTX 970M","111 - NVIDIA Quadro M4000M","110 - NVIDIA Quadro P2000 Max-Q","109 - NVIDIA Quadro P2000","108 - NVIDIA GeForce GTX 1050 Ti (Desktop)","107 - NVIDIA GeForce GTX 1050 Ti (Laptop)","106 - NVIDIA GeForce GTX 960","105 - AMD Radeon R9 380","104 - AMD Radeon R9 280X","103 - NVIDIA Quadro M5000M","102 - AMD Radeon Pro Vega 20","101 - AMD Radeon RX Vega M GH","100 - NVIDIA GeForce GTX 980M","93 - AMD Radeon R9 290X","90 - NVIDIA Quadro T1000 Max-Q","89 - NVIDIA Quadro T1000 (Laptop)","88 - NVIDIA GeForce GTX 1650 Max-Q","87 - AMD Radeon RX 470 (Laptop)","86 - AMD Radeon RX 570 (Laptop)","85 - AMD Radeon RX 570X (Laptop)","84 - AMD Radeon RX 470 (Desktop)","83 - AMD Radeon Pro WX 7100","81 - NVIDIA Quadro P3000 Max-Q","80 - NVIDIA GeForce GTX 1060 Max-Q","79 - NVIDIA GeForce GTX 1650 (Desktop)","78 - NVIDIA GeForce GTX 1650 (Laptop)","77 - NVIDIA GeForce GTX 970","76 - NVIDIA Quadro P3000","75 - AMD Radeon RX 5300M","74 - AMD Radeon RX Vega Mobile","72 - AMD Radeon RX 580 (Laptop)","71 - AMD Radeon RX 580X (Laptop)","70 - NVIDIA Quadro P3200","69 - NVIDIA Quadro P4000 Max-Q","68 - NVIDIA GeForce GTX 1060 (Laptop)","67 - AMD Radeon RX 480 (Desktop)","66 - NVIDIA GeForce GTX 1650 Ti (Desktop)","65 - NVIDIA Quadro T2000 Max-Q","64 - NVIDIA Quadro T2000 (Laptop)","63 - NVIDIA Quadro P4000","62 - AMD Radeon RX 570 (Desktop)","61 - NVIDIA GeForce GTX 1060 (Desktop)","59 - AMD Radeon R9 390X","58 - NVIDIA Quadro M5500","57 - NVIDIA GeForce GTX 980 (Laptop)","56 - AMD Radeon RX 580 (Desktop)","55 - AMD Radeon RX 590 (Desktop)","54 - NVIDIA GeForce GTX 980","53 - AMD Radeon R9 Nano","52 - AMD Radeon R9 Fury","50 - NVIDIA Quadro P5000 Max-Q","49 - NVIDIA GeForce GTX 1660 Ti Max-Q","48 - AMD Radeon RX 5500M","47 - NVIDIA GeForce GTX 1070 Max-Q","46 - NVIDIA GeForce GTX 980 Ti","45 - NVIDIA GeForce GTX 1660 Ti (Laptop)","44 - NVIDIA Quadro P5000","43 - NVIDIA Quadro P4200","42 - NVIDIA GeForce GTX 1660 Ti (Desktop)","41 - NVIDIA GeForce GTX 1070 (Laptop)","39 - AMD Radeon Pro Vega 56","38 - NVIDIA GeForce GTX 1080 Max-Q","37 - NVIDIA GeForce GTX 1070 (Desktop)","36 - NVIDIA Quadro P5200","34 - NVIDIA GeForce RTX 2060 (Laptop)","33 - AMD Radeon RX Vega 56","32 - NVIDIA Quadro RTX 3000 Max-Q","31 - NVIDIA Quadro RTX 3000 (Laptop)","30 - NVIDIA GeForce RTX 2070 Max-Q","29 - NVIDIA GeForce GTX 1070 Ti (Desktop)","28 - NVIDIA GeForce RTX 2060 (Desktop)","27 - NVIDIA Quadro RTX 4000 Max-Q","26 - NVIDIA Quadro RTX 4000 (Laptop)","25 - NVIDIA GeForce GTX 1080 (Laptop)","24 - AMD Radeon RX Vega 64","23 - AMD Radeon RX 5700M","22 - AMD Radeon RX 5700 (Desktop)","21 - NVIDIA GeForce RTX 2060 Super","20 - NVIDIA GeForce RTX 2070 (Laptop)","19 - NVIDIA GeForce GTX 1080 (Desktop)","18 - NVIDIA GeForce RTX 2070 (Desktop)","17 - AMD Radeon RX 5700 XT (Desktop)","16 - AMD Radeon VII","15 - NVIDIA GeForce RTX 2070 Super","14 - NVIDIA GeForce RTX 2080 Max-Q","13 - NVIDIA GeForce GTX 1070 SLI (Laptop)","12 - NVIDIA GeForce GTX 1070 SLI (Desktop)","11 - NVIDIA GeForce GTX 1080 SLI (Laptop)","10 - NVIDIA Titan X Pascal","9 - NVIDIA GeForce GTX 1080 Ti (Desktop)","8 - NVIDIA GeForce RTX 2080 (Laptop)","7 - NVIDIA Quadro RTX 5000 Max-Q","6 - NVIDIA Quadro RTX 5000 (Laptop)","5 - NVIDIA GeForce RTX 2080 (Desktop)","4 - NVIDIA GeForce RTX 2080 Super","3 - NVIDIA Quadro RTX 6000 (Laptop)","2 - NVIDIA GeForce RTX 2080 Ti (Desktop)","1 - NVIDIA Titan RTX"],r=["933 - ARM Mali-200","932 - Qualcomm Adreno 200","931 - PowerVR SGX530","930 - PowerVR SGX531","929 - PowerVR SGX535","928 - Vivante GC800","927 - Qualcomm Adreno 203","926 - Qualcomm Adreno 205","924 - PowerVR SGX540","922 - NVIDIA GeForce ULP (Tegra 2)","921 - ARM Mali-400 MP","920 - ARM Mali-400 MP2","919 - Vivante GC1000+ Dual-Core","918 - Qualcomm Adreno 220","917 - Broadcom VideoCore-IV","916 - NVIDIA GeForce ULP (Tegra 3)","915 - ARM Mali-400 MP4","914 - Vivante GC4000","913 - Qualcomm Adreno 225","905 - Qualcomm Adreno 302","904 - Vivante GC7000UL","903 - ARM Mali-T720","902 - Qualcomm Adreno 304","901 - Qualcomm Adreno 305","900 - Qualcomm Adreno 306","899 - Qualcomm Adreno 308","898 - PowerVR SGX544","897 - ARM Mali-T720 MP2","896 - PowerVR SGX544MP2","895 - PowerVR SGX545","892 - PowerVR SGX543MP2","882 - PowerVR SGX543MP3","874 - ARM Mali-T830 MP1","873 - ARM Mali-450 MP4","872 - ARM Mali-T720 MP4","871 - PowerVR GE8100","870 - PowerVR GE8300","869 - PowerVR GE8320","868 - ARM Mali-T760 MP2","867 - Qualcomm Adreno 320","866 - ARM Mali-T624","865 - PowerVR SGX543MP4","838 - ARM Mali-T830 MP2","837 - Qualcomm Adreno 405","836 - PowerVR G6200","835 - NVIDIA GeForce Tegra 4","830 - ARM Mali-T604 MP4","824 - ARM Mali-T830 MP3","823 - ARM Mali-T860 MP2","819 - Qualcomm Adreno 504","818 - Qualcomm Adreno 505","817 - PowerVR GE8322 / IMG8322","816 - Qualcomm Adreno 506","815 - Qualcomm Adreno 508","814 - Qualcomm Adreno 509","813 - ARM Mali-T628 MP4","812 - PowerVR SGX554MP4","774 - ARM Mali-T760 MP4","773 - ARM Mali-T628 MP6","772 - Intel HD Graphics (Bay Trail)","771 - PowerVR G6400","770 - PowerVR GX6250","769 - PowerVR G6430","768 - Qualcomm Adreno 330","767 - Qualcomm Adreno 510","766 - Qualcomm Adreno 512","765 - Qualcomm Adreno 610","764 - Qualcomm Adreno 612","701 - Intel HD Graphics (Cherry Trail)","688 - ARM Mali-G51 MP4","686 - Qualcomm Adreno 616","685 - Qualcomm Adreno 618","684 - Qualcomm Adreno 418","664 - Qualcomm Adreno 420","663 - PowerVR GX6450","653 - ARM Mali-T880 MP2","652 - ARM Mali-T760 MP6","620 - ARM Mali-T880 MP4","619 - ARM Mali-G72 MP3","598 - Qualcomm Adreno 430","595 - ARM Mali-G71 MP2","594 - ARM Mali-T760 MP8","548 - ARM Mali-G76 MP4","547 - ARM Mali-T880 MP12","546 - Apple A9 / PowerVR GT7600","545 - NVIDIA Tegra K1 Kepler GPU","544 - PowerVR GXA6850","543 - Qualcomm Adreno 530","504 - ARM Mali-G71 MP8","503 - ARM Mali-G72 MP12","502 - ARM Mali-G71 MP20","501 - ARM Mali-G72 MP18","500 - Qualcomm Adreno 540","499 - ARM Mali-G76 MP10","498 - ARM Mali-G76 MP12","497 - Qualcomm Adreno 630","496 - Qualcomm Adreno 640","495 - ARM Mali-G76 MP16","480 - Apple A10 Fusion GPU / PowerVR","391 - NVIDIA Tegra X1 Maxwell GPU","364 - Apple A9X / PowerVR Series 7XT","328 - Apple A10X Fusion GPU / PowerVR","327 - Apple A11 Bionic GPU","326 - Apple A12 Bionic GPU","320 - Apple A13 Bionic GPU","294 - Apple A12X Bionic GPU"],a=e=>e.toLowerCase().split("- ")[1].split(" /")[0],i=(e,o)=>{let r=0;return o.map(o=>{const a=Math.round(e.length/100*o),i=e.slice(r,r+a);return r+=a,i})};const n=new(function(){function e(e){this.cache=new Map,this.userAgent=e||(window&&window.navigator?window.navigator.userAgent:""),this.android=!/like android/i.test(this.userAgent)&&/android/i.test(this.userAgent),this.iOS=this.match(1,/(iphone|ipod|ipad)/i).toLowerCase(),"MacIntel"===navigator.platform&&navigator.maxTouchPoints>2&&!window.MSStream&&(this.iOS="ipad")}return e.prototype.match=function(e,o){var r=this.userAgent.match(o);return r&&r.length>1&&r[e]||""},Object.defineProperty(e.prototype,"isMobile",{get:function(){var e=this.cache.get("isMobile");return void 0!==e?e:!this.isTablet&&(/[^-]mobi/i.test(this.userAgent)||"iphone"===this.iOS||"ipod"===this.iOS||this.android||/nexus\s*[0-6]\s*/i.test(this.userAgent))?(this.cache.set("isMobile",!0),!0):(this.cache.set("isMobile",!1),!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isTablet",{get:function(){var e=this.cache.get("isTablet");return void 0!==e?e:/tablet/i.test(this.userAgent)&&!/tablet pc/i.test(this.userAgent)||"ipad"===this.iOS||this.android&&!/[^-]mobi/i.test(this.userAgent)||!/nexus\s*[0-6]\s*/i.test(this.userAgent)&&/nexus\s*[0-9]+/i.test(this.userAgent)?(this.cache.set("isTablet",!0),!0):(this.cache.set("isTablet",!1),!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDesktop",{get:function(){var e=this.cache.get("isDesktop");if(void 0!==e)return e;var o=!this.isMobile&&!this.isTablet;return this.cache.set("isDesktop",o),o},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isMacOS",{get:function(){var e=this.cache.get("isMacOS");if(void 0!==e)return e;if(/macintosh/i.test(this.userAgent)){return{name:"MacOS",version:function(e){var o=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(o.push(0),10!==o[0])return"";switch(o[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return""}}(this.match(1,/mac os x (\d+(\.?_?\d+)+)/i).replace(/[_\s]/g,"."))}}return this.cache.set("isMacOS",!1),!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isWindows",{get:function(){var e=this.cache.get("isWindows");if(void 0!==e)return e;if(/windows /i.test(this.userAgent)){var o={name:"Windows",version:function(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return""}}(this.match(1,/Windows ((NT|XP)( \d\d?.\d)?)/i))};return this.cache.set("isWindows",o),o}return this.cache.set("isWindows",!1),!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isiOS",{get:function(){var e=this.cache.get("isiOS");if(void 0!==e)return e;if(this.iOS){var o={name:"iOS",version:this.match(1,/os (\d+([_\s]\d+)*) like mac os x/i).replace(/[_\s]/g,".")||this.match(1,/version\/(\d+(\.\d+)?)/i)};return this.cache.set("iOS",o),o}return this.cache.set("iOS",!1),!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAndroid",{get:function(){var e=this.cache.get("isAndroid");if(void 0!==e)return e;if(this.android){var o={name:"Android",version:this.match(1,/android[ \/-](\d+(\.\d+)*)/i)};return this.cache.set("Android",o),o}return!1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"browser",{get:function(){var e=this.cache.get("browser");if(void 0!==e)return e;var o=this.match(1,/version\/(\d+(\.\d+)?)/i),r=void 0;return r=/opera/i.test(this.userAgent)?{name:"Opera",version:o||this.match(1,/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)}:/opr\/|opios/i.test(this.userAgent)?{name:"Opera",version:this.match(1,/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||o}:/SamsungBrowser/i.test(this.userAgent)?{name:"Samsung Internet for Android",version:o||this.match(1,/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)}:/yabrowser/i.test(this.userAgent)?{name:"Yandex Browser",version:o||this.match(1,/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)}:/ucbrowser/i.test(this.userAgent)?{name:"UC Browser",version:this.match(1,/(?:ucbrowser)[\s\/](\d+(\.\d+)?)/i)}:/msie|trident/i.test(this.userAgent)?{name:"Internet Explorer",version:this.match(1,/(?:msie |rv:)(\d+(\.\d+)?)/i)}:/(edge|edgios|edga|edg)/i.test(this.userAgent)?{name:"Microsoft Edge",version:this.match(2,/(edge|edgios|edga|edg)\/(\d+(\.\d+)?)/i)}:/firefox|iceweasel|fxios/i.test(this.userAgent)?{name:"Firefox",version:this.match(1,/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)}:/chromium/i.test(this.userAgent)?{name:"Chromium",version:this.match(1,/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||o}:/chrome|crios|crmo/i.test(this.userAgent)?{name:"Chrome",version:this.match(1,/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:/safari|applewebkit/i.test(this.userAgent)?{name:"Safari",version:o}:{name:this.match(1,/^(.*)\/(.*) /),version:this.match(2,/^(.*)\/(.*) /)},this.cache.set("browser",r),r},enumerable:!0,configurable:!0}),e}()),{browser:t,isMobile:s,isTablet:d,isDesktop:M}=n,c=e=>e.replace(/[\D]/g,"");e.getGPUTier=(e={})=>{const n=e.mobileBenchmarkPercentages||[0,50,30,20],A=e.desktopBenchmarkPercentages||[0,50,30,20],D=e.forceRendererString||"",I=e.forceMobile||!1;let R,l="",u="";if(D)R=D;else{const o=e.glContext||(({browser:e})=>{const o={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"high-performance",stencil:!1};"boolean"!=typeof e&&"Safari"===e.name&&e.version.includes("12")&&delete o.powerPreference;const r=document.createElement("canvas"),a=r.getContext("webgl",o)||r.getContext("experimental-webgl",o);if(a&&a instanceof WebGLRenderingContext)return a})({browser:t});if(!o)return s||d||I?{tier:"GPU_MOBILE_TIER_0",type:"WEBGL_UNSUPPORTED"}:{tier:"GPU_DESKTOP_TIER_0",type:"WEBGL_UNSUPPORTED"};R=(e=>{const o=e.getExtension("WEBGL_debug_renderer_info");return o&&e.getParameter(o.UNMASKED_RENDERER_WEBGL)})(o)}R=(e=>{let o=e.toLowerCase();return o.includes("angle (")&&o.includes("direct3d")&&(o=o.replace("angle (","").split(" direct3d")[0]),o.includes("nvidia")&&o.includes("gb")&&(o=o.split(/\dgb/)[0]),o})(R);const G=R.replace(/[\D]/g,"");if(/(radeon hd 6970m|radeon hd 6770m|radeon hd 6490m|radeon hd 6630m|radeon hd 6750m|radeon hd 5750|radeon hd 5670|radeon hd 4850|radeon hd 4870|radeon hd 4670|geforce 9400m|geforce 320m|geforce 330m|geforce gt 130|geforce gt 120|geforce gtx 285|geforce 8600|geforce 9600m|geforce 9400m|geforce 8800 gs|geforce 8800 gt|quadro fx 5|quadro fx 4|radeon hd 2600|radeon hd 2400|radeon hd 2600|mali-4|mali-3|mali-2)/.test(R))return s||d||I?{tier:"GPU_MOBILE_TIER_0",type:"BLACKLISTED"}:{tier:"GPU_DESKTOP_TIER_0",type:"BLACKLISTED"};if(s||d||I){const e=i(r,n),o=R.includes("adreno"),t=R.includes("apple"),s=R.includes("mali")&&!R.includes("mali-t"),d=R.includes("mali-t"),M=R.includes("nvidia"),A=R.includes("powervr");return e.forEach((e,r)=>e.forEach(e=>{const i=a(e),n=c(i);(i.includes("adreno")&&o||i.includes("apple")&&t||i.includes("mali")&&!i.includes("mali-t")&&s||i.includes("mali-t")&&d||i.includes("nvidia")&&M||i.includes("powervr")&&A)&&n.includes(G)&&(l=`GPU_MOBILE_TIER_${r}`,u=`BENCHMARK - ${i}`)})),l||(l="GPU_MOBILE_TIER_1",u="FALLBACK"),{tier:l,type:u}}if(M){const e=i(o,A),r=R.includes("intel"),n=R.includes("amd"),t=R.includes("nvidia");return e.forEach((e,o)=>e.forEach(e=>{const i=a(e),s=c(i);(i.includes("intel")&&r||i.includes("amd")&&n||i.includes("nvidia")&&t)&&s.includes(G)&&(l=`GPU_DESKTOP_TIER_${o}`,u=`BENCHMARK - ${i}`)})),l||(l="GPU_DESKTOP_TIER_1",u="FALLBACK"),{tier:l,type:u}}return{tier:l,type:u}},Object.defineProperty(e,"__esModule",{value:!0})}));

@@ -81,3 +81,3 @@ "use strict";

const isRendererPowerVR = renderer.includes('powervr');
mobileBenchmark.forEach((benchmarkTier, index) => benchmarkTier.forEach(benchmarkEntry => {
mobileBenchmark.forEach((benchmarkTier, index) => benchmarkTier.forEach((benchmarkEntry) => {
const entry = cleanEntryString_1.cleanEntryString(benchmarkEntry);

@@ -112,3 +112,3 @@ const entryVersionNumber = getEntryVersionNumber_1.getEntryVersionNumber(entry);

const isRendererNVIDIA = renderer.includes('nvidia');
desktopBenchmark.forEach((benchmarkTier, index) => benchmarkTier.forEach(benchmarkEntry => {
desktopBenchmark.forEach((benchmarkTier, index) => benchmarkTier.forEach((benchmarkEntry) => {
const entry = cleanEntryString_1.cleanEntryString(benchmarkEntry);

@@ -115,0 +115,0 @@ const entryVersionNumber = getEntryVersionNumber_1.getEntryVersionNumber(entry);

@@ -6,3 +6,3 @@ "use strict";

let chunkOffset = 0;
const benchmarkTiers = percentages.map(percentage => {
const benchmarkTiers = percentages.map((percentage) => {
const chunkSize = Math.round((benchmark.length / 100) * percentage);

@@ -9,0 +9,0 @@ const chunk = benchmark.slice(chunkOffset, chunkOffset + chunkSize);

{
"name": "detect-gpu",
"version": "1.1.4",
"version": "1.1.5",
"description": "Classify GPU's based on their benchmark score in order to provide an adaptive experience.",

@@ -23,24 +23,24 @@ "main": "dist/detect-gpu.cjs.js",

"dependencies": {
"detect-ua": "^0.0.12"
"detect-ua": "^0.1.0"
},
"devDependencies": {
"@types/jest": "^24.0.22",
"@types/jest": "^25.1.2",
"@types/webgl2": "^0.0.5",
"csvtojson": "^2.0.10",
"jest": "^24.9.0",
"jest": "^25.1.0",
"jssoup": "^0.0.10",
"moment": "^2.24.0",
"node-fetch": "^2.6.0",
"prettier": "^1.18.2",
"rimraf": "^3.0.0",
"rollup": "^1.26.3",
"prettier": "^1.19.1",
"rimraf": "^3.0.2",
"rollup": "^1.31.0",
"rollup-plugin-commonjs": "^10.1.0",
"rollup-plugin-filesize": "^6.2.1",
"rollup-plugin-node-resolve": "^5.2.0",
"rollup-plugin-terser": "^5.1.2",
"rollup-plugin-typescript2": "^0.25.2",
"ts-jest": "^24.1.0",
"tslint": "^5.20.1",
"rollup-plugin-terser": "^5.2.0",
"rollup-plugin-typescript2": "^0.26.0",
"ts-jest": "^25.2.0",
"tslint": "^6.0.0",
"tslint-config-prettier": "^1.18.0",
"typescript": "^3.7.2"
"typescript": "^3.7.5"
},

@@ -47,0 +47,0 @@ "prettier": {

@@ -109,4 +109,4 @@ // Generated data

mobileBenchmark.forEach((benchmarkTier, index) =>
benchmarkTier.forEach(benchmarkEntry => {
mobileBenchmark.forEach((benchmarkTier: string[], index: number): void =>
benchmarkTier.forEach((benchmarkEntry: string): void => {
const entry = cleanEntryString(benchmarkEntry);

@@ -154,4 +154,4 @@ const entryVersionNumber = getEntryVersionNumber(entry);

desktopBenchmark.forEach((benchmarkTier, index) =>
benchmarkTier.forEach(benchmarkEntry => {
desktopBenchmark.forEach((benchmarkTier: string[], index: number): void =>
benchmarkTier.forEach((benchmarkEntry: string): void => {
const entry = cleanEntryString(benchmarkEntry);

@@ -158,0 +158,0 @@ const entryVersionNumber = getEntryVersionNumber(entry);

@@ -8,3 +8,3 @@ // Get benchmark entry's by percentage of the total benchmark entries

const benchmarkTiers = percentages.map(percentage => {
const benchmarkTiers = percentages.map((percentage: number): string[] => {
const chunkSize = Math.round((benchmark.length / 100) * percentage);

@@ -11,0 +11,0 @@ const chunk = benchmark.slice(chunkOffset, chunkOffset + chunkSize);

@@ -9,3 +9,3 @@ // Source

const stripPrefix = (entries: string[]): string[] =>
entries.map(entry => entry.split(' - ')[1].toLowerCase());
entries.map((entry: string): string => entry.split(' - ')[1].toLowerCase());

@@ -17,43 +17,39 @@ const mobile = stripPrefix(RENDERER_MOBILE);

function testPerDeviceType(deviceType: string[], forceMobile = false): void {
deviceType.map(
(rendererEntry): void => {
const GPUTier = getGPUTier({
forceMobile,
forceRendererString: rendererEntry,
});
deviceType.map((rendererEntry): void => {
const GPUTier = getGPUTier({
forceMobile,
forceRendererString: rendererEntry,
});
test(`${deviceType} -> GPUTier returns a valid tier`, () => {
const expected = /GPU_(MOBILE|DESKTOP)_TIER_(0|1|2|3)/;
test(`${deviceType} -> GPUTier returns a valid tier`, (): void => {
const expected = /GPU_(MOBILE|DESKTOP)_TIER_(0|1|2|3)/;
expect(GPUTier.tier).toEqual(expect.stringMatching(expected));
});
expect(GPUTier.tier).toEqual(expect.stringMatching(expected));
});
test(`${deviceType} -> GPUTier returns a benchmark entry`, () => {
if (GPUTier.type === 'WEBGL_UNSUPPORTED') {
console.warn(
`WEBGL_UNSUPPORTED -> Entry: ${rendererEntry}, Tier: ${GPUTier.tier}, Type: ${
GPUTier.type
}`
);
}
if (GPUTier.type === 'BLACKLISTED') {
console.warn(
`BLACKLISTED -> Entry: ${rendererEntry}, Tier: ${GPUTier.tier}, Type: ${GPUTier.type}`
);
} else if (GPUTier.tier.match(/GPU_(MOBILE|DESKTOP)_TIER_0/)) {
console.warn(
`TIER 0 -> Entry: ${rendererEntry}, Tier: ${GPUTier.tier}, Type: ${GPUTier.type}`
);
} else if (GPUTier.type === 'FALLBACK') {
console.log(
`FALLBACK -> Entry: ${rendererEntry}, Tier: ${GPUTier.tier}, Type: ${GPUTier.type}`
);
} else {
console.log(`SUCCESS -> Tier: ${GPUTier.tier}, Type: ${GPUTier.type}`);
}
test(`${deviceType} -> GPUTier returns a benchmark entry`, (): void => {
if (GPUTier.type === 'WEBGL_UNSUPPORTED') {
console.warn(
`WEBGL_UNSUPPORTED -> Entry: ${rendererEntry}, Tier: ${GPUTier.tier}, Type: ${GPUTier.type}`
);
}
if (GPUTier.type === 'BLACKLISTED') {
console.warn(
`BLACKLISTED -> Entry: ${rendererEntry}, Tier: ${GPUTier.tier}, Type: ${GPUTier.type}`
);
} else if (GPUTier.tier.match(/GPU_(MOBILE|DESKTOP)_TIER_0/)) {
console.warn(
`TIER 0 -> Entry: ${rendererEntry}, Tier: ${GPUTier.tier}, Type: ${GPUTier.type}`
);
} else if (GPUTier.type === 'FALLBACK') {
console.log(
`FALLBACK -> Entry: ${rendererEntry}, Tier: ${GPUTier.tier}, Type: ${GPUTier.type}`
);
} else {
console.log(`SUCCESS -> Tier: ${GPUTier.tier}, Type: ${GPUTier.type}`);
}
expect(GPUTier.type).toBeDefined();
});
}
);
expect(GPUTier.type).toBeDefined();
});
});
}

@@ -60,0 +56,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc