!function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,(function(r){return o(e[i][1][r]||r)}),p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}({1:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))((function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){var value;result.done?resolve(result.value):(value=result.value,value instanceof P?value:new P((function(resolve){resolve(value)}))).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0});const fingerprint_generator_1=require("@hyperia/fingerprint-generator");window.UTracker={userUrl:window.taUrl,fp:null,fpWorker:null,eh:null,campaignId:null,uidRequested:!1,dataStatus:"unknown",init(){if(!this.userIsAllowed())return void(this.userUrl="");this.fp=CookieManager.getCookie("fp"),this.uid=CookieManager.getCookie("uid"),this.urid=window.urid;const trackerStrategyData=GeoStorage.get("tracker");let geoStrategy=null;trackerStrategyData&&trackerStrategyData.hasOwnProperty("geo_strategy")&&(geoStrategy=trackerStrategyData.geo_strategy),this._isNullAttribute(this.uid)&&this._isNullAttribute(this.fp)||this._isNullAttribute(geoStrategy)?(this.dataStatus="requesting",this._sendFingerPrint()):(this.dataStatus="requested",this.uidRequested=!0)},userIsAllowed:()=>!UserHelper.isBot(),_isNullAttribute:attr=>null===attr||"null"===attr,waitForData(){let tracker=this;return new Promise((resolve=>{const intervalId=setInterval((()=>{"requested"===tracker.dataStatus&&(clearInterval(intervalId),resolve())}),10)}))},_waitForLoadingGeolocationManager:function(){return new Promise((resolve=>{const intervalId=setInterval((()=>{"undefined"!=typeof GeolocationManager&&(clearInterval(intervalId),resolve())}),10)}))},getData(uid){const userUrl=this.userUrl,geoManager=GeolocationManager,fp=this.fp;let tracker=this;return new Promise(((resolve,reject)=>{let url=`${userUrl}/user/?uid=${uid||0}&urid=${this.urid||0}&fp=${fp||0}&country=${window.let_country}&project=let`;$.ajax({url:url,type:"GET",dataType:"json",success:function(data){return __awaiter(this,void 0,void 0,(function*(){if(data.hasOwnProperty("result")&&data.result.hasOwnProperty("lat")&&data.result.hasOwnProperty("lat")&&null!==data.result.lat&&null!==data.result.lon){let ip_coords={lat:data.result.lat,lon:data.result.lon};null===sessionStorage.getItem("ip_requested")&&(yield tracker._waitForLoadingGeolocationManager(),geoManager.setCoordinates("ip_address",ip_coords,null,Math.floor(178*Math.random()+178)),geoManager.shouldSaveStrategy("ip_address")&&geoManager.setCoordinates("tracker",ip_coords,"ip_address"),sessionStorage.setItem("ip_requested","true"))}tracker.dataStatus="requested",resolve(data)}))},error:function(xhr,status,error){bconsole.error("TrackerError: getData failed ("+url+"): "+error,"tracker-error"),tracker.dataStatus="requested",reject("Request not successful")}})}))},updateData(key){return __awaiter(this,void 0,void 0,(function*(){const userUrl=this.userUrl,geoManager=GeolocationManager,tracker=this,geoCoordinates=yield geoManager.getCoordinates(!1,"tracker.updateData"),currentStrategy=yield geoManager.getCurrentStrategy("tracker.updateData");return new Promise(((resolve,reject)=>{let postData=Object.assign(Object.assign({},geoCoordinates),{geo_strategy:currentStrategy,event_key:key,country:window.let_country,metadata:Object.assign(Object.assign(Object.assign({client_library:0,fingerprint:this.fp},this._getNavigatorForPost()),this._getScreenForPost()),this._getTimeZone())});this._addMailing(postData),this._addRegistration(postData),this._addCityData(postData);const uidCookie=CookieManager.getCookie("uid");tracker._isNullAttribute(uidCookie)?tracker.getData(CookieManager.getCookie("uid")).then((data=>{CookieManager.setCookie("uid",data.result.uid,356),this._userUpdate(userUrl,postData,data.result.uid).then((data=>{resolve(data)})).catch((error=>{reject(error)}))})):this._userUpdate(userUrl,postData,uidCookie).then((data=>{resolve(data)})).catch((error=>{reject(error)}))}))}))},_userUpdate:function(userUrl,postData,uidCookie){return new Promise(((resolve,reject)=>{let url=`${userUrl}/user/?uid=${uidCookie}&project=let`;$.ajax({url:url,type:"POST",dataType:"json",contentType:"application/json",data:JSON.stringify(postData),success:function(data){resolve(data)},error:function(xhr,status,error){bconsole.error("TrackerError: _userUpdate failed ("+url+"): "+error,"tracker-error"),reject("Ajax post request failed.")}})}))},userActivityUpdate:function(brochureData,isExternal=!1){if(!this.userIsAllowed())return Promise.reject("Country not allowed");const uidCookie=CookieManager.getCookie("uid");if(!uidCookie)return Promise.reject("Uid not set");let activityObj={};return isExternal?activityObj.external_url=Object.assign({},brochureData):activityObj.leaflet=Object.assign({},brochureData),new Promise(((resolve,reject)=>{let url=`${UTracker.userUrl}/activity/?uid=${uidCookie}&country=${window.let_country}`;$.ajax({url:url,type:"POST",dataType:"json",contentType:"application/json",data:JSON.stringify(activityObj),success:function(data){resolve(data)},error:function(xhr,status,error){bconsole.error("TrackerError: userActivityUpdate failed ("+url+"): "+error,"tracker-error"),reject("Ajax post request failed.")}})}))},userActivityGet:function(){if(!this.userIsAllowed())return Promise.reject("Country not allowed");const uidCookie=CookieManager.getCookie("uid");return uidCookie?new Promise(((resolve,reject)=>{let url=`${UTracker.userUrl}/activity/all-items/?uid=${uidCookie}&country=${window.let_country}`;$.ajax({url:url,type:"GET",dataType:"json",success:function(data){resolve(data.result)},error:function(xhr,status,error){console.error("TrackerError: userActivityGet failed ("+url+"): "+error,"tracker-error"),reject("Ajax get request failed.")}})})):Promise.reject("Uid not set")},_saveStrategy(tracker,data){const{country:resultCountry,geo_strategy:geo_strategy,lat:lat,lon:lon}=data.result,{let_country:let_country}=window;if(tracker._isInCorrectCountry(let_country,resultCountry))GeolocationManager.shouldSaveStrategy(geo_strategy)&&GeolocationManager.setCoordinates("tracker",{lat:lat,lon:lon},geo_strategy);else{const newCoords={lat:window.capital_coords.lat,lon:window.capital_coords.lon};GeolocationManager.setCoordinates("tracker",newCoords,"fallback_capital"),GeolocationManager.setCoordinates("fallback_capital",newCoords)}},_sendFingerPrint(){const fp=new fingerprint_generator_1.FingerPrint,tracker=this;fp.calculateFingerprint().then((fingerprint=>{tracker.fp=fingerprint,tracker.getData(CookieManager.getCookie("uid")).then((data=>{tracker.uidRequested=!0,tracker.uid=data.result.uid,CookieManager.setCookie("fp",fingerprint,356),CookieManager.setCookie("uid",tracker.uid,356),null!==data.result.lat&&null!==data.result.lon&&this._saveStrategy(tracker,data),CustomEventRepository.create("let::update-content").dispatchLast(document)}))})).catch((err=>{tracker.dataStatus="requested",console.error("FP: ",err)}))},_getNavigatorForPost:()=>({hardware_concurrency:window.navigator.hardwareConcurrency||0,language:window.navigator.language,languages:window.navigator.languages.join(";"),max_touch_points:window.navigator.maxTouchPoints||0,platform:window.navigator.platform||"",user_agent:window.navigator.userAgent||"",vendor:window.navigator.vendor||""}),_getScreenForPost:()=>({screen_size:screen.height>screen.width?`${screen.height}x${screen.width}`:`${screen.width}x${screen.height}`,color_depth:screen.colorDepth,pixel_depth:screen.pixelDepth,device_pixel_ratio:window.devicePixelRatio}),_getTimeZone:()=>({timezone:Intl.DateTimeFormat().resolvedOptions().timeZone}),_addRegistration:function(postData){null!==this.urid&&(postData.registration={urid:this.urid,hashed_email:window.haem})},_addCityData:function(postData){if(CookieManager.hasCookie("CITY")){const city=JSON.parse(CookieManager.getCookie("CITY"));postData.city_name=city.name||null,postData.city_id=city.id||null}},_addMailing:function(postData){null!==this.eh&&this.eh.length>0&&(postData.mailing_last_visit_hashed_email=this.eh),null!==this.campaignId&&this.campaignId.length>0&&(postData.mailing_campaign_id=this.campaignId)},isMlngCampaign:function(){if(null!==sessionStorage.getItem("hasEh"))return!1;const queryString=window.location.search,urlParams=new URLSearchParams(queryString);return this.eh=urlParams.get("eh"),this.campaignId=urlParams.get("utm_campaign"),null!==this.eh&&this.eh.length>0&&(sessionStorage.setItem("hasEh","true"),!0)},_isInCorrectCountry:function(letCountry,trackerCountry){return letCountry.toLowerCase()===trackerCountry.toLowerCase()}},document.addEventListener("let::update-content",(e=>{console.debug("update content for user event triggered")})),document.addEventListener("DOMContentLoaded",(event=>{const countryIsAllowed=UTracker.userIsAllowed();countryIsAllowed&&!CookieManager.hasCookie("uid")&&CookieManager.hasCookie("fp")&&UTracker.updateData("page-loaded").catch((error=>console.log("Page loaded",error))),countryIsAllowed&&UTracker.isMlngCampaign()&&UTracker.updateData("mlng").catch((error=>console.log("Mlng: ",error)))})),window.UTracker.init()},{"@hyperia/fingerprint-generator":9}],2:[function(require,module,exports){"use strict";var _AudioDetector_instances,_AudioDetector_setCompressorValues,_AudioDetector_setCompressorValueIfDefined,__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(receiver,state,kind,f){if("a"===kind&&!f)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof state?receiver!==state||!f:!state.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===kind?f:"a"===kind?f.call(receiver):f?f.value:state.get(receiver)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.AudioDetector=void 0;exports.AudioDetector=class{constructor(){_AudioDetector_instances.add(this),this.onComplete=event=>{this.generateFingerprints(event),this.compressor.disconnect()},this.generateFingerprints=event=>{let output="";for(let i=4500;5e3>i;i++){let channelData=event.renderedBuffer.getChannelData(0)[i];output+=Math.abs(channelData)}return this.fingerprint=output.toString(),this.callback(this.fingerprint)},this.fingerprint="";const audioContext=window.OfflineAudioContext;this.context=new audioContext(1,44100,44100),this.currentTime=this.context.currentTime,this.oscillator=this.context.createOscillator(),this.oscillator.type="triangle",this.oscillator.frequency.setValueAtTime(1e4,this.currentTime),this.compressor=this.context.createDynamicsCompressor(),__classPrivateFieldGet(this,_AudioDetector_instances,"m",_AudioDetector_setCompressorValues).call(this)}getString(cb){this.callback=cb;try{this.oscillator.connect(this.compressor),this.compressor.connect(this.context.destination),this.oscillator.start(0),this.context.startRendering(),this.context.oncomplete=this.onComplete}catch(e){return`Audio error:${e}`}return this.fingerprint}},_AudioDetector_instances=new WeakSet,_AudioDetector_setCompressorValues=function(){__classPrivateFieldGet(this,_AudioDetector_instances,"m",_AudioDetector_setCompressorValueIfDefined).call(this,"threshold",-50),__classPrivateFieldGet(this,_AudioDetector_instances,"m",_AudioDetector_setCompressorValueIfDefined).call(this,"knee",40),__classPrivateFieldGet(this,_AudioDetector_instances,"m",_AudioDetector_setCompressorValueIfDefined).call(this,"ratio",12),__classPrivateFieldGet(this,_AudioDetector_instances,"m",_AudioDetector_setCompressorValueIfDefined).call(this,"reduction",-20),__classPrivateFieldGet(this,_AudioDetector_instances,"m",_AudioDetector_setCompressorValueIfDefined).call(this,"attack",0),__classPrivateFieldGet(this,_AudioDetector_instances,"m",_AudioDetector_setCompressorValueIfDefined).call(this,"release",.25)},_AudioDetector_setCompressorValueIfDefined=function(item,value){void 0!==this.compressor[item]&&"function"==typeof this.compressor[item].setValueAtTime&&this.compressor[item].setValueAtTime(value,this.context.currentTime)}},{}],3:[function(require,module,exports){"use strict";var _CanvasDetector_isCanvasSupported,__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(receiver,state,kind,f){if("a"===kind&&!f)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof state?receiver!==state||!f:!state.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===kind?f:"a"===kind?f.call(receiver):f?f.value:state.get(receiver)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CanvasDetector=void 0;exports.CanvasDetector=class{constructor(){_CanvasDetector_isCanvasSupported.set(this,(()=>!(!this.canvas.getContext||!this.canvas.getContext("2d")))),this.canvas=document.createElement("canvas")}getString(){if(!__classPrivateFieldGet(this,_CanvasDetector_isCanvasSupported,"f").call(this))throw new Error("[CanvasDetector] canvas not suported");try{const canvas=this.canvas,ctx=canvas.getContext("2d"),txt="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~1!2@3#4$5%6^7&8*9(0)-_=+[{]}|;:',<.>/?";if(!ctx)throw new Error("[CanvasDetector]ctx is null");return ctx.textBaseline="top",ctx.font="14px 'Arial'",ctx.textBaseline="alphabetic",ctx.fillStyle="#f60",ctx.fillRect(125,1,62,20),ctx.fillStyle="#069",ctx.fillText(txt,2,15),ctx.fillStyle="rgba(102, 204, 0, 0.7)",ctx.fillText(txt,4,17),ctx.globalCompositeOperation="multiply",ctx.fillStyle="rgb(255,0,255)",ctx.beginPath(),ctx.arc(50,50,50,0,2*Math.PI,!0),ctx.closePath(),ctx.fill(),ctx.fillStyle="rgb(0,255,255)",ctx.beginPath(),ctx.arc(100,50,50,0,2*Math.PI,!0),ctx.closePath(),ctx.fill(),ctx.fillStyle="rgb(255,255,0)",ctx.beginPath(),ctx.arc(75,100,50,0,2*Math.PI,!0),ctx.closePath(),ctx.fill(),ctx.fillStyle="rgb(255,0,255)",ctx.arc(75,75,75,0,2*Math.PI,!0),ctx.arc(75,75,25,0,2*Math.PI,!0),ctx.fill("evenodd"),canvas.toDataURL()}catch(error){return`canvas: ${error}`}}},_CanvasDetector_isCanvasSupported=new WeakMap},{}],4:[function(require,module,exports){"use strict";var _FingerPrint_instances,_FingerPrint_calculateCanvas,_FingerPrint_calculateWebgl,_FingerPrint_calculateFont,_FingerPrint_calculateNavigator,_FingerPrint_calculateAudio,__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(receiver,state,kind,f){if("a"===kind&&!f)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof state?receiver!==state||!f:!state.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===kind?f:"a"===kind?f.call(receiver):f?f.value:state.get(receiver)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FingerPrint=void 0;const hash_1=require("./hash"),CanvasDetector_1=require("./CanvasDetector"),AudioDetector_1=require("./AudioDetector"),WebGlDetector_1=require("./WebGlDetector"),FontDetector_1=require("./FontDetector"),NavigatorDetector_1=require("./NavigatorDetector");exports.FingerPrint=class{constructor({canvas:canvas=!0,audio:audio=!0,webgl:webgl=!0,font:font=!0,navigator:navigator=!0,externalLib:externalLib=!0,debug:debug=!1}={}){_FingerPrint_instances.add(this),this.canvas=canvas,this.audio=audio,this.webgl=webgl,this.font=font,this.navigator=navigator,this.externalLib=externalLib,this.debug=debug,this.hashSeed=5,this.debugData=[]}async calculateFingerprint(){return Promise.allSettled([__classPrivateFieldGet(this,_FingerPrint_instances,"m",_FingerPrint_calculateCanvas).call(this),__classPrivateFieldGet(this,_FingerPrint_instances,"m",_FingerPrint_calculateAudio).call(this),__classPrivateFieldGet(this,_FingerPrint_instances,"m",_FingerPrint_calculateWebgl).call(this),__classPrivateFieldGet(this,_FingerPrint_instances,"m",_FingerPrint_calculateFont).call(this),__classPrivateFieldGet(this,_FingerPrint_instances,"m",_FingerPrint_calculateNavigator).call(this)]).then((values=>{let fingerprintString="";return values.filter((result=>"fulfilled"===result.status)).forEach((result=>{fingerprintString+=result.value})),this.debug&&console.log("debugData from detectors: ",this.debugData),0===fingerprintString.length?0:(0,hash_1.murmurhash3_32_gc)(fingerprintString,this.hashSeed)}))}},_FingerPrint_instances=new WeakSet,_FingerPrint_calculateCanvas=function(){return new Promise(((resolve,reject)=>{if(!this.canvas)return void reject("Canvas");const canvas=(new CanvasDetector_1.CanvasDetector).getString();this.debug&&this.debugData.push({canvas:canvas,fp:(0,hash_1.murmurhash3_32_gc)(canvas,this.hashSeed)}),resolve(canvas)}))},_FingerPrint_calculateWebgl=function(){return new Promise(((resolve,reject)=>{if(!this.webgl)return void reject("Webgl");const webgl=(new WebGlDetector_1.WebGlDetector).getString();this.debug&&this.debugData.push({webgl:webgl,fp:(0,hash_1.murmurhash3_32_gc)(webgl,this.hashSeed)}),resolve(webgl)}))},_FingerPrint_calculateFont=function(){return new Promise(((resolve,reject)=>{if(!this.font)return void reject("Font");const font=(new FontDetector_1.FontDetector).getString();this.debug&&this.debugData.push({font:font,fp:(0,hash_1.murmurhash3_32_gc)(font,this.hashSeed)}),resolve(font)}))},_FingerPrint_calculateNavigator=function(){return new Promise(((resolve,reject)=>{if(!this.navigator)return void reject("Navigator");const navigator=(new NavigatorDetector_1.NavigatorDetector).getString();this.debug&&this.debugData.push({navigator:navigator,fp:(0,hash_1.murmurhash3_32_gc)(navigator,this.hashSeed)}),resolve(navigator)}))},_FingerPrint_calculateAudio=function(){const getTheAudioPrints=new Promise(((resolve,reject)=>{if(!this.audio)return void reject("Audio");const isDebug=this.debug,debugData=this.debugData,hashSeed=this.hashSeed;(new AudioDetector_1.AudioDetector).getString((function(fingerprint){isDebug&&debugData.push({audio:fingerprint,fp:(0,hash_1.murmurhash3_32_gc)(fingerprint,hashSeed)}),resolve(fingerprint)}))}));return new Promise(((resolve,reject)=>{getTheAudioPrints.then((audioChannelResult=>{resolve(window.btoa(audioChannelResult))})).catch((error=>{reject("Audio error: "+error)}))}))}},{"./AudioDetector":2,"./CanvasDetector":3,"./FontDetector":5,"./NavigatorDetector":6,"./WebGlDetector":7,"./hash":8}],5:[function(require,module,exports){"use strict";var _FontDetector_instances,_FontDetector_getFontSmoothing,_FontDetector_getFont,__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(receiver,state,kind,f){if("a"===kind&&!f)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof state?receiver!==state||!f:!state.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===kind?f:"a"===kind?f.call(receiver):f?f.value:state.get(receiver)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FontDetector=void 0;exports.FontDetector=class{constructor(fontSmoothing=!0){_FontDetector_instances.add(this),this.fontSmoothing=fontSmoothing}getString(){let result=__classPrivateFieldGet(this,_FontDetector_instances,"m",_FontDetector_getFont).call(this);return this.fontSmoothing&&(result+=" "+__classPrivateFieldGet(this,_FontDetector_instances,"m",_FontDetector_getFontSmoothing).call(this)),result}},_FontDetector_instances=new WeakSet,_FontDetector_getFontSmoothing=function(){let i,j,strFontSmoothing=null,canvas=null,ctx=null,imageData=null,alpha=null;if(void 0!==screen.fontSmoothingEnabled)strFontSmoothing=screen.fontSmoothingEnabled;else try{if(canvas=document.createElement("canvas"),canvas.width=35,canvas.height=35,canvas.style.display="none",ctx=canvas.getContext("2d"),null===ctx)throw new Error("[FontDetector]ctx is null");for(ctx.textBaseline="top",ctx.font="32px Arial",ctx.fillStyle="black",ctx.strokeStyle="black",ctx.fillText("O",0,0),j=8;j<=32;j+=1)for(i=1;i<=32;i+=1)imageData=ctx.getImageData(i,j,1,1).data,alpha=imageData[3],255!==alpha&&0!==alpha&&(strFontSmoothing="true")}catch(err){return"Unknown"}return strFontSmoothing},_FontDetector_getFont=function(){let fragment,style=null,fonts=null,font=null,count=0,template=null,divs=null,e=null,div=null,body=null,i=0,result=[];try{for(style="position: absolute; visibility: hidden; display: block !important",fonts=["Abadi MT Condensed Light","Adobe Fangsong Std","Adobe Hebrew","Adobe Ming Std","Agency FB","Aharoni","Andalus","Angsana New","AngsanaUPC","Aparajita","Arab","Arabic Transparent","Arabic Typesetting","Arial Baltic","Arial Black","Arial CE","Arial CYR","Arial Greek","Arial TUR","Arial","Batang","BatangChe","Bauhaus 93","Bell MT","Bitstream Vera Serif","Bodoni MT","Bookman Old Style","Braggadocio","Broadway","Browallia New","BrowalliaUPC","Calibri Light","Calibri","Californian FB","Cambria Math","Cambria","Candara","Castellar","Casual","Centaur","Century Gothic","Chalkduster","Colonna MT","Comic Sans MS","Consolas","Constantia","Copperplate Gothic Light","Corbel","Cordia New","CordiaUPC","Courier New Baltic","Courier New CE","Courier New CYR","Courier New Greek","Courier New TUR","Courier New","DFKai-SB","DaunPenh","David","DejaVu LGC Sans Mono","Desdemona","DilleniaUPC","DokChampa","Dotum","DotumChe","Ebrima","Engravers MT","Eras Bold ITC","Estrangelo Edessa","EucrosiaUPC","Euphemia","Eurostile","FangSong","Forte","FrankRuehl","Franklin Gothic Heavy","Franklin Gothic Medium","FreesiaUPC","French Script MT","Gabriola","Gautami","Georgia","Gigi","Gisha","Goudy Old Style","Gulim","GulimChe","GungSeo","Gungsuh","GungsuhChe","Haettenschweiler","Harrington","Hei S","HeiT","Heisei Kaku Gothic","Hiragino Sans GB","Impact","Informal Roman","IrisUPC","Iskoola Pota","JasmineUPC","KacstOne","KaiTi","Kalinga","Kartika","Khmer UI","Kino MT","KodchiangUPC","Kokila","Kozuka Gothic Pr6N","Lao UI","Latha","Leelawadee","Levenim MT","LilyUPC","Lohit Gujarati","Loma","Lucida Bright","Lucida Console","Lucida Fax","Lucida Sans Unicode","MS Gothic","MS Mincho","MS PGothic","MS PMincho","MS Reference Sans Serif","MS UI Gothic","MV Boli","Magneto","Malgun Gothic","Mangal","Marlett","Matura MT Script Capitals","Meiryo UI","Meiryo","Menlo","Microsoft Himalaya","Microsoft JhengHei","Microsoft New Tai Lue","Microsoft PhagsPa","Microsoft Sans Serif","Microsoft Tai Le","Microsoft Uighur","Microsoft YaHei","Microsoft Yi Baiti","MingLiU","MingLiU-ExtB","MingLiU_HKSCS","MingLiU_HKSCS-ExtB","Miriam Fixed","Miriam","Mongolian Baiti","MoolBoran","NSimSun","Narkisim","News Gothic MT","Niagara Solid","Nyala","PMingLiU","PMingLiU-ExtB","Palace Script MT","Palatino Linotype","Papyrus","Perpetua","Plantagenet Cherokee","Playbill","Prelude Bold","Prelude Condensed Bold","Prelude Condensed Medium","Prelude Medium","PreludeCompressedWGL Black","PreludeCompressedWGL Bold","PreludeCompressedWGL Light","PreludeCompressedWGL Medium","PreludeCondensedWGL Black","PreludeCondensedWGL Bold","PreludeCondensedWGL Light","PreludeCondensedWGL Medium","PreludeWGL Black","PreludeWGL Bold","PreludeWGL Light","PreludeWGL Medium","Raavi","Rachana","Rockwell","Rod","Sakkal Majalla","Sawasdee","Script MT Bold","Segoe Print","Segoe Script","Segoe UI Light","Segoe UI Semibold","Segoe UI Symbol","Segoe UI","Shonar Bangla","Showcard Gothic","Shruti","SimHei","SimSun","SimSun-ExtB","Simplified Arabic Fixed","Simplified Arabic","Snap ITC","Sylfaen","Symbol","Tahoma","Times New Roman Baltic","Times New Roman CE","Times New Roman CYR","Times New Roman Greek","Times New Roman TUR","Times New Roman","TlwgMono","Traditional Arabic","Trebuchet MS","Tunga","Tw Cen MT Condensed Extra Bold","Ubuntu","Umpush","Univers","Utopia","Utsaah","Vani","Verdana","Vijaya","Vladimir Script","Vrinda","Webdings","Wide Latin","Wingdings"],count=fonts.length,template="<b style=\"display:inline !important; width:auto !important; font:normal 10px/1 'X',sans-serif !important\">ww</b><b style=\"display:inline !important; width:auto !important; font:normal 10px/1 'X',monospace !important\">ww</b>",fragment=document.createDocumentFragment(),divs=[],i=0;i<count;i+=1)font=fonts[i],div=document.createElement("div"),font=font.replace(/['"<>]/g,""),div.innerHTML=template.replace(/X/g,font),div.style.cssText=style,fragment.appendChild(div),divs.push(div);for(body=document.body,body.insertBefore(fragment,body.firstChild),i=0;i<count;i+=1)e=divs[i].getElementsByTagName("b"),e[0].offsetWidth===e[1].offsetWidth&&result.push(fonts[i]);for(i=0;i<count;i+=1)body.removeChild(divs[i]);return result.join("|")}catch(err){return"Error"}}},{}],6:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.NavigatorDetector=void 0;exports.NavigatorDetector=class{constructor(enableScreen=!0,enableTimezone=!0){this.enableScreen=enableScreen,this.enableTimezone=enableTimezone}getString(){const navigarorValues=[window.navigator.cookieEnabled,window.navigator.deviceMemory,window.navigator.doNotTrack,window.navigator.hardwareConcurrency,window.navigator.language,window.navigator.languages,window.navigator.maxTouchPoints,window.navigator.platform,window.navigator.userAgent,window.navigator.vendor];if(this.enableScreen){const screen=window.screen;navigarorValues.push(...screen.height>screen.width?[screen.height,screen.width]:[screen.width,screen.height],screen.colorDepth,screen.pixelDepth,window.devicePixelRatio)}return this.enableTimezone&&(navigarorValues.push((new Date).getTimezoneOffset()),navigarorValues.push(Intl.DateTimeFormat().resolvedOptions().timeZone)),JSON.stringify(navigarorValues)}}},{}],7:[function(require,module,exports){"use strict";var _WebGlDetector_isCanvasSupported,__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(receiver,state,kind,f){if("a"===kind&&!f)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof state?receiver!==state||!f:!state.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===kind?f:"a"===kind?f.call(receiver):f?f.value:state.get(receiver)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.WebGlDetector=void 0;exports.WebGlDetector=class{constructor(){this.width=300,this.height=150,_WebGlDetector_isCanvasSupported.set(this,(()=>!(!this.canvas.getContext||!(this.canvas.getContext("webgl2")||this.canvas.getContext("experimental-webgl2")||this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl")||this.canvas.getContext("moz-webgl"))))),this.canvas=document.createElement("canvas")}getString(){if(!__classPrivateFieldGet(this,_WebGlDetector_isCanvasSupported,"f").call(this))throw new Error("[CanvasDetector] canvas not suported");this.canvas.width=this.width,this.canvas.height=this.height;const ctx=this.canvas.getContext("webgl2")||this.canvas.getContext("experimental-webgl2")||this.canvas.getContext("webgl")||this.canvas.getContext("experimental-webgl")||this.canvas.getContext("moz-webgl");if(null===ctx)throw new Error("[CanvasDetector] ctx is null");try{const f="attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}",g="precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}",h=ctx.createBuffer();ctx.bindBuffer(ctx.ARRAY_BUFFER,h);const i=new Float32Array([-.2,-.9,0,.4,-.26,0,0,.7321,0]);ctx.bufferData(ctx.ARRAY_BUFFER,i,ctx.STATIC_DRAW),h.itemSize=3,h.numItems=3;const j=ctx.createProgram(),k=ctx.createShader(ctx.VERTEX_SHADER);ctx.shaderSource(k,f),ctx.compileShader(k);const l=ctx.createShader(ctx.FRAGMENT_SHADER);ctx.shaderSource(l,g),ctx.compileShader(l),ctx.attachShader(j,k),ctx.attachShader(j,l),ctx.linkProgram(j),ctx.useProgram(j),j.vertexPosAttrib=ctx.getAttribLocation(j,"attrVertex"),j.offsetUniform=ctx.getUniformLocation(j,"uniformOffset"),ctx.enableVertexAttribArray(j.vertexPosArray),ctx.vertexAttribPointer(j.vertexPosAttrib,h.itemSize,ctx.FLOAT,!1,0,0),ctx.uniform2f(j.offsetUniform,1,1),ctx.drawArrays(ctx.TRIANGLE_STRIP,0,h.numItems)}catch(error){return`canvas: ${error}`}const n=new Uint8Array(this.width*this.height*4);return ctx.readPixels(0,0,this.width,this.height,ctx.RGBA,ctx.UNSIGNED_BYTE,n),JSON.stringify(n).replace(/,?"[0-9]+":/g,"")}},_WebGlDetector_isCanvasSupported=new WeakMap},{}],8:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.murmurhash3_32_gc=exports.cyrb53=void 0;exports.cyrb53=function(str,seed=0){let h1=3735928559^seed,h2=1103547991^seed;for(let ch,i=0;i<str.length;i++)ch=str.charCodeAt(i),h1=Math.imul(h1^ch,2654435761),h2=Math.imul(h2^ch,1597334677);return h1=Math.imul(h1^h1>>>16,2246822507)^Math.imul(h2^h2>>>13,3266489909),h2=Math.imul(h2^h2>>>16,2246822507)^Math.imul(h1^h1>>>13,3266489909),4294967296*(2097151&h2)+(h1>>>0)};exports.murmurhash3_32_gc=function(str,seed){for(var k,l=str.length,h=seed^l,i=0;l>=4;)k=1540483477*(65535&(k=255&str.charCodeAt(i)|(255&str.charCodeAt(++i))<<8|(255&str.charCodeAt(++i))<<16|(255&str.charCodeAt(++i))<<24))+((1540483477*(k>>>16)&65535)<<16),h=1540483477*(65535&h)+((1540483477*(h>>>16)&65535)<<16)^(k=1540483477*(65535&(k^=k>>>24))+((1540483477*(k>>>16)&65535)<<16)),l-=4,++i;switch(l){case 3:h^=(255&str.charCodeAt(i+2))<<16;case 2:h^=(255&str.charCodeAt(i+1))<<8;case 1:h=1540483477*(65535&(h^=255&str.charCodeAt(i)))+((1540483477*(h>>>16)&65535)<<16)}return h=1540483477*(65535&(h^=h>>>13))+((1540483477*(h>>>16)&65535)<<16),(h^=h>>>15)>>>0}},{}],9:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FingerPrint=void 0;const FingerPrint_1=require("./FingerPrint");Object.defineProperty(exports,"FingerPrint",{enumerable:!0,get:function(){return FingerPrint_1.FingerPrint}})},{"./FingerPrint":4}]},{},[1]);