PageSourceSearch

http://pisos-costa-del-sol.com/js/easylocation-storefront.min.js

js pisos-costa-del-sol.com collected 2026-10-04 06:45:03 UTC 53,342 bytes, 1 lines download raw bytes

1"use strict";let xApiKey="91e359ab7-2b63-539e-1de2-c4bf731367a7";if("object"!=typeof easylocation){if(document.addEventListener=document.addEventListener||function(e,o){document.attachEvent("on"+e,o)},"function"!=typeof window.CustomEvent){let CustomEvent=function(e,o){o=o||{bubbles:!1,cancelable:!1,detail:void 0};let t=document.createEvent("CustomEvent");return t.initCustomEvent(e,o.bubbles,o.cancelable,o.detail),t};CustomEvent.prototype=window.Event.prototype,window.CustomEvent=CustomEvent}var easylocation={urlLocation:"https://geo.geoproapp.com",recordLocation:"https://api.geoproapp.com/api/record",urlIp:"https://api.ipify.org?format=json",objectKeys:function(e){if("undefined"!=typeof Object&&Object.keys)try{return Object.keys(e)}catch(e){easylocation.warn("Error using native Object.keys:",e)}var o=[];try{if(e&&"object"==typeof e)for(var t in e)e.hasOwnProperty(t)&&o.push(t)}catch(e){easylocation.warn("Error in objectKeys fallback:",e)}return o},logMessage:function(){var e=arguments[0],o=Array.from(arguments).slice(1),t=!1;try{t=sessionStorage.getItem("geopro-debug")}catch(e){t=!1}if(-1!==window.location.search.indexOf("debug=1")||t){try{sessionStorage.setItem("geopro-debug","true")}catch(e){}console[e].apply(console,["EasyLocation:"].concat(o))}},log:function(){arguments&&arguments.length&&easylocation.logMessage.apply(this,["log"].concat(Array.from(arguments)))},warn:function(){arguments&&arguments.length&&easylocation.logMessage.apply(this,["warn"].concat(Array.from(arguments)))},info:function(){arguments&&arguments.length&&easylocation.logMessage.apply(this,["info"].concat(Array.from(arguments)))},originalRedirectText:"It seems you're in %COUNTRY%. Redirect to %STORENAME%?",parameters:{redirect_text:"It seems you're in %COUNTRY%. Redirect to %STORENAME%?",yes:"Yes, please",no:"No, thanks","background-color":"0096ff","text-color":"ffffff","yes-background-color":"000000","yes-text-color":"ffffff","no-background-color":"888888","no-text-color":"ffffff","layout-selector":"top",popup_delay:0,"permanent-redirect":0},homeLink:"https://"+window.location.hostname,flagSourcePrefix:"https://cdn.shopify.com/s/files/1/0805/2978/5109/files/geopro-flags-",base64:{_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var o,t,a,n,i,r,s,l="",c=0;for(e=easylocation.base64._utf8_encode(e);c<e.length;)n=(o=e.charCodeAt(c++))>>2,i=(3&o)<<4|(t=e.charCodeAt(c++))>>4,r=(15&t)<<2|(a=e.charCodeAt(c++))>>6,s=63&a,isNaN(t)?r=s=64:isNaN(a)&&(s=64),l=l+this._keyStr.charAt(n)+this._keyStr.charAt(i)+this._keyStr.charAt(r)+this._keyStr.charAt(s);return l},decode:function(e){var o,t,a,n,i,r,s="",l=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<e.length;)o=this._keyStr.indexOf(e.charAt(l++))<<2|(n=this._keyStr.indexOf(e.charAt(l++)))>>4,t=(15&n)<<4|(i=this._keyStr.indexOf(e.charAt(l++)))>>2,a=(3&i)<<6|(r=this._keyStr.indexOf(e.charAt(l++))),s+=String.fromCharCode(o),64!=i&&(s+=String.fromCharCode(t)),64!=r&&(s+=String.fromCharCode(a));return s=easylocation.base64._utf8_decode(s)},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");for(var o="",t=0;t<e.length;t++){var a=e.charCodeAt(t);a<128?o+=String.fromCharCode(a):a>127&&a<2048?(o+=String.fromCharCode(a>>6|192),o+=String.fromCharCode(63&a|128)):(o+=String.fromCharCode(a>>12|224),o+=String.fromCharCode(a>>6&63|128),o+=String.fromCharCode(63&a|128))}return o},_utf8_decode:function(e){for(var o="",t=0,a=0,n=0;t<e.length;)if((a=e.charCodeAt(t))<128)o+=String.fromCharCode(a),t++;else if(a>191&&a<224)n=e.charCodeAt(t+1),o+=String.fromCharCode((31&a)<<6|63&n),t+=2;else{n=e.charCodeAt(t+1);var i=e.charCodeAt(t+2);o+=String.fromCharCode((15&a)<<12|(63&n)<<6|63&i),t+=3}return o}},locales:["af","af_NA","af_ZA","agq","agq_CM","ak","ak_GH","am","am_ET","ar","ar_001","ar_AE","ar_BH","ar_DJ","ar_DZ","ar_EG","ar_EH","ar_ER","ar_IL","ar_IQ","ar_JO","ar_KM","ar_KW","ar_LB","ar_LY","ar_MA","ar_MR","ar_OM","ar_PS","ar_QA","ar_SA","ar_SD","ar_SO","ar_SS","ar_SY","ar_TD","ar_TN","ar_YE","as","as_IN","asa","asa_TZ","ast","ast_ES","az","az_Cyrl","az_Cyrl_AZ","az_Latn","az_Latn_AZ","bas","bas_CM","be","be_BY","bem","bem_ZM","bez","bez_TZ","bg","bg_BG","bm","bm_ML","bn","bn_BD","bn_IN","bo","bo_CN","bo_IN","br","br_FR","brx","brx_IN","bs","b
1s_BA","bs_Cyrl","bs_Cyrl_BA","bs_Latn","bs_Latn_BA","ca","ca_AD","ca_ES","ca_FR","ca_IT","ccp","ccp_BD","ccp_IN","ce","ce_RU","cgg","cgg_UG","chr","chr_US","ckb","ckb_IQ","ckb_IR","cs","cs_CZ","cy","cy_GB","da","da_DK","da_GL","dav","dav_KE","de","de_AT","de_BE","de_CH","de_DE","de_IT","de_LI","de_LU","dje","dje_NE","dsb","dsb_DE","dua","dua_CM","dyo","dyo_SN","dz","dz_BT","ebu","ebu_KE","ee","ee_GH","ee_TG","el","el_CY","el_GR","en","us","en-ar","en-de","en-eu","en-in","en-fr","en-sp","en_001","en_150","en_AE","en_AG","en_AI","en_AS","en_AT","en_AU","en_BB","en_BE","en_BI","en_BH","en_BM","en_BS","en_BW","en_BZ","en_CA","en_CC","en_CH","en_CK","en_CM","en_CX","en_CY","en_DE","en_DG","en_DK","en_DM","en_ER","en_ES","en_FI","en_FJ","en_FK","en_FM","en_GB","en_GD","en_GG","en_GH","en_GI","en_GM","en_GU","en_GY","en_HK","en_IE","en_IL","en_IM","en_IN","en_IO","en_IT","en_JE","en_JM","en_JP","en_KE","en_KI","en_KN","en_KY","en_LC","en_LR","en_LS","en_MG","en_MH","en_MO","en_MP","en_MS","en_MT","en_MU","en_MW","en_MY","en_NA","en_NO","en_NF","en_NG","en_NL","en_NR","en_NU","en_NZ","en_PG","en_PH","en_PK","en_PN","en_PR","en_PW","en_RW","en_SB","en_SC","en_SD","en_SE","en_SG","en_SH","en_SI","en_SL","en_SS","en_SX","en_SZ","en_TC","en_TK","en_TO","en_TT","en_TV","en_TZ","en_UG","en_UM","en_US","en_US_POSIX","en_VC","en_VG","en_VI","en_VU","en_WS","en_ZA","en_ZM","en_ZW","en_ex","eo","es","es_419","es_AR","es_BO","es_BR","es_BZ","es_CL","es_CO","es_CR","es_CU","es_DO","es_EA","es_EC","es_ES","es_GQ","es_GT","es_HN","es_IC","es_MX","es_NI","es_PA","es_PE","es_PH","es_PR","es_PY","es_SV","es_US","es_UY","es_VE","et","et_EE","eu","eu_ES","ewo","ewo_CM","fa","fa_AF","fa_IR","ff","ff_CM","ff_GN","ff_MR","ff_SN","fi","fi_FI","fil","fil_PH","fo","fo_DK","fo_FO","fr","fr_BE","fr_BF","fr_BI","fr_BJ","fr_BL","fr_CA","fr_CD","fr_CF","fr_CG","fr_CH","fr_CI","fr_CM","fr_DJ","fr_DZ","fr_FR","fr_GA","fr_GF","fr_GN","fr_GP","fr_GQ","fr_HT","fr_KM","fr_LU","fr_MA","fr_MC","fr_MF","fr_MG","fr_ML","fr_MQ","fr_MR","fr_MU","fr_NC","fr_NE","fr_PF","fr_PM","fr_RE","fr_RW","fr_SC","fr_SN","fr_SY","fr_TD","fr_TG","fr_TN","fr_VU","fr_WF","fr_YT","fur","fur_IT","fy","fy_NL","ga","ga_IE","gd","gd_GB","gl","gl_ES","gsw","gsw_CH","gsw_FR","gsw_LI","gu","gu_IN","guz","guz_KE","gv","gv_GB","gv_IM","ha","ha_GH","ha_NE","ha_NG","ha_Latn","ha_Latn_GH","ha_Latn_NE","ha_Latn_NG","haw","haw_US","he","he_IL","hi","hi_IN","hr","hr_BA","hr_HR","hsb","hsb_DE","hu","hu_HU","hy","hy_AM","id","id_ID","ig","ig_NG","ii","ii_CN","is","is_IS","it","it-de","it-eu","it-in","it_CH","it_IT","it_SM","it_VA","ja","ja_JP","jgo","jgo_CM","jmc","jmc_TZ","ka","ka_GE","kab","kab_DZ","kam","kam_KE","kde","kde_TZ","kea","kea_CV","khq","khq_ML","ki","ki_KE","kk","kk_KZ","kk_Cyrl","kk_Cyrl_KZ","kkj","kkj_CM","kl","kl_GL","kln","kln_
1KE","km","km_KH","kn","kn_IN","ko","ko_KP","ko_KR","kok","kok_IN","ks","ks_IN","ksb","ksb_TZ","ksf","ksf_CM","ksh","ksh_DE","kw","kw_GB","ky","ky_KG","lag","lag_TZ","lb","lb_LU","lg","lg_UG","lkt","lkt_US","ln","ln_AO","ln_CD","ln_CF","ln_CG","lo","lo_LA","lrc","lrc_IQ","lrc_IR","lt","lt_LT","lu","lu_CD","luo","luo_KE","luy","luy_KE","lv","lv_LV","mas","mas_KE","mas_TZ","mer","mer_KE","mfe","mfe_MU","mg","mg_MG","mgh","mgh_MZ","mgo","mgo_CM","mk","mk_MK","ml","ml_IN","mn","mn_MN","mr","mr_IN","ms","ms_BN","ms_MY","ms_SG","mt","mt_MT","mua","mua_CM","my","my_MM","mzn","mzn_IR","naq","naq_NA","nb","nb_NO","nb_SJ","nd","nd_ZW","nds","nds_DE","nds_NL","ne","ne_IN","ne_NP","nl","nl_AW","nl_BE","nl_BQ","nl_CW","nl_NL","nl_SR","nl_SX","nmg","nmg_CM","nn","nn_NO","nnh","nnh_CM","nus","nus_SS","nyn","nyn_UG","om","om_ET","om_KE","or","or_IN","os","os_GE","os_RU","pa","pa_Arab","pa_Arab_PK","pa_Guru","pa_Guru_IN","pl","pl_PL","ps","ps_AF","pt","pt_AO","pt_BR","pt_CH","pt_CV","pt_GQ","pt_GW","pt_LU","pt_MO","pt_MZ","pt_PT","pt_ST","pt_TL","qu","qu_BO","qu_EC","qu_PE","rm","rm_CH","rn","rn_BI","ro","ro_MD","ro_RO","rof","rof_TZ","ru","ru_BY","ru_KG","ru_KZ","ru_MD","ru_RU","ru_UA","rw","rw_RW","rwk","rwk_TZ","sah","sah_RU","saq","saq_KE","sbp","sbp_TZ","se","se_FI","se_NO","se_SE","seh","seh_MZ","ses","ses_ML","sg","sg_CF","shi","shi_Latn","shi_Latn_MA","shi_Tfng","shi_Tfng_MA","si","si_LK","sk","sk_SK","sl","sl_SI","smn","smn_FI","sn","sn_ZW","so","so_DJ","so_ET","so_KE","so_SO","sq","sq_AL","sq_MK","sq_XK","sr","sr_Cyrl","sr_Cyrl_BA","sr_Cyrl_ME","sr_Cyrl_RS","sr_Cyrl_XK","sr_Latn","sr_Latn_BA","sr_Latn_ME","sr_Latn_RS","sr_Latn_XK","sv","sv_AX","sv_FI","sv_SE","sw","sw_CD","sw_KE","sw_TZ","sw_UG","ta","ta_IN","ta_LK","ta_MY","ta_SG","te","te_IN","teo","teo_KE","teo_UG","tg","tg_TJ","th","th_TH","ti","ti_ER","ti_ET","to","to_TO","tr","tr_CY","tr_TR","tt","tt_RU","twq","twq_NE","tzm","tzm_MA","tzm_Latn","tzm_Latn_MA","ug","ug_CN","uk","uk_UA","ur","ur_IN","ur_PK","uz","uz_Arab","uz_Arab_AF","uz_Cyrl","uz_Cyrl_UZ","uz_Latn","uz_Latn_UZ","vai","vai_Latn","vai_Latn_LR","vai_Vaii","vai_Vaii_LR","vi","vi_VN","vun","vun_TZ","wae","wae_CH","wo","wo_SN","xog","xog_UG","yav","yav_CM","yi","yi_001","yo","yo_BJ","yo_NG","yue","yue_Hans","yue_Hans_CN","yue_Hant","yue_Hant_HK","zgh","zgh_MA","zh","zh_Hans","zh_Hans_CN","zh_Hans_HK","zh_Hans_MO","zh_Hans_SG","zh_Hant","zh_Hant_HK","zh_Hant_MO","zh_Hant_TW","zu","zu_ZA","en_ksaa","en_kw","en-kw","en-sa","en-qa"],localesIso:["af","ak","sq","am","ar","hy","as","az","bm","bn","eu","be","bs","br","bg","my","ca","ckb","ce","zh-CN","zh-TW","kw","hr","cs","da","nl","dz","eo","et","ee","fo","fil","fi","fr","ff","gl","lg","ka","de","el","gu","ha","he","hi","hu","is","ig","id","ia","ga","it","ja","jv","kl","kn","ks","kk","km","ki","rw","ko","ku","ky","lo","lv","ln","lt","lu","lb","mk","mg","ms","ml","mt","gv","mr","mn","mi","ne","nd","se","no","nb","nn","or","om","os","ps","fa","pt-BR","pt-PT","pa","qu","ro","rm","rn","ru","sg","sa","sc","gd","sr","sn","ii","sd","si","sk","sl","so","es","su","sw","sv","tg","ta","tt","te","th","bo","ti","to","tr","tk","ur","ug","uz","vi","cy","fy","wo","xh","yi","yo","zu"],ready:!1,locationData:null,lang:"en",footerSelectors:[".site-footer",".footer","footer"],actions:{CLOSE:"modal-close",YES:"yes",NO:"no",NO_CACHED:"no-cached",MANUAL_LINK_CLICK:"manual-link-click",NO_RULE_MATCHED:"no-rule-matched",FOUND_MATCHING_RULE_REFERRER:"found-matching-rule-referrer",SAME_URL:"same-url",CHOICE_SHOWN:"choice-shown",NO_RULES:"no-rules",OWNER_DETECTED:"owner-detected",SHOPIFY_PREVIEW_MODE:"shopify-preview-mode",EXACT_MATCH:"exact-match",MANUALLY_DISABLED:"manually-disabled",SAME_LOCALE:"same-locale",INSTANT_REDIRECT_INTERVAL_NOT_PASSED:"instant-redirect-interval-not-passed"},recordPureRedirect:!1,automated_redirect:!1,locationCached:!1,usedLocale:null,isLocalStorageAvailable:function(){try{var e=window.localStorage,o="__storage_test__";return e.setItem(o,o),e.removeItem(o),!0}catch(e){return!1}},getItem:function(e,o){return this.isLocalStorageAvailable()&&localStorage.getItem(e)||o()},setItem:function(e,o){this.isLocalStorageAvailable()&&localStorage.setItem(e,o)},removeItem:function(e){this.isLocalStorageAvailable()&&localStorage.removeItem(e)},tryCatchInfo:function(e,o){try{return e()}catch(e){return o||"0"}},generateUserUniqueId:function(e){if(this.getItem("geoip-ident-v4",(function(){return null})))return this.getItem("geoip-ident-v4");var o=easylocation.generateUUIDv4();return this.setItem("geoip-ident-v4",o),o},generateEventUuid:function(){return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,(function(e){var o=16*Math.random()|0;return("x"===e?o:3&o|8).toString(16)}))},generateUUIDv4:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const o=16*Math.random()|0;return("x"===e?o:3&o|8).toString(16)}))},exceptionToSentryInterface:function(e){var o=(e.stack||"").split("\n").map((function(e){var o=e.split("@");return{filename:o.length>1?o[1]:null,function:o.length>0?o[0]:null}}));return{type:e.name,value:e.message,stacktrace:{frames:o}}},reportToSentryEnvelope:function(e,o,t,a){if(-1===["fatal","error","warning","info","debug"].indexOf(a=a||"error"))throw new Error("Invalid level");var n="4507550373445632",i="o4506196830715904.ingest.us.sentry.io",r=`https://${i}/api/${n}/envelope/?sentry_key=aa4cacd33be28673d7e69be559ce7ad7`,s={dsn:`https://aa4cacd33be28673d7e69be559ce7ad7@${i}/${n}`,sent_at:(new Date).toISOString(),event_id:this.generateEventUuid()},l={message:e,level:a,environment:"production",transaction:window.location.href,tags:{exact_url:window.location.href},user:{id:window.Shopify&&window.Shopify.shop?window.Shopify.shop:"unknown",ip_address:"{{auto}}"},extra:o,logger:"EasyLocationTae",contexts:{browser:{type:"browser",name:navigator.userAgent}},server_name:window.location.hostname,exception:t};fetch(r,{method:"POST",body:`${JSON.stringify(s)}\n${JSON.stringify({type:"event"})}\n${JSON.stringify(l)}\n`,headers:{"Content-Type":"text/plain"},keepalive:!0,priority:"high",referrerPolicy:"no-referrer",mode:"no-cors"})},recordAction:function(e,o,t){try{o=o||{};let i=!(!window.Shopify||!window.Shopify.shop)&&window.Shopify.shop;if(!i)return void easylocation.warn("No Shopify domain found");if(!window.fetch)return void easylocation.warn("No fetch support");var a=this.actions,n=easylocation.objectKeys(a).map((function(e){return a[e]}));if(!e||-1===n.indexOf(e))return void easylocation.warn("Invalid action:",e);if(t){let o=this.getCookie(`geoip-${e}`);if(o&&"1"===o)return;easylocation.setCookie(`geoip-${e}`,"1",{expires:240})}let r=this.getCookie("geoip-admin")||"0",s=window.location.href||"/",l=this.parameters["layout-selector"]||"",c=this.matchedLocaleFromIp||{},d=this.locationData;d||(d="1"===r?this.getCookie("geoip-location-admin"):this.getCookie("geoip-location")),d=d||{};try{!o.referer&&document.referrer&&document.referrer.length>0&&(o.referer=document.referrer)}catch(e){easylocation.warn("Error getting referrer:",e)}let p=this.getCookie("geoip-pageview-count")||1;this.getItem("geoip-pageview-count",(function(){return 0}))>0&&(p=2),o.userAgent=easylocation.tryCatchInfo((function(){return navigator.userAgent}),"unknown"),o.platform=easylocation.tryCatchInfo((function(){return navigator.platform}),"unknown"),o.language=easylocation.tryCatchInfo((function(){return navigator.language}),"unknown"),o.screen=easylocation.tryCatchInfo((function(){return screen.width+"x"+screen.height}),"unknown"),o.colorDepth=easylocation.tryCatchInfo((function(){return screen.colorDepth}),"unknown"),o.timezone=easylocation.tryCatchInfo((function(){return(new Date).getTimezoneOffset()}),"unknown");let _={pagePath:s,action:e,data:o,myshopifyDomain:i,layout:l,isAdmin:"1"===r,ip:d.ip||"-",country:d.country&&d.country.iso_code?d.country.iso_code.toLowerCase():"-",locationCached:this.locationCached||!1,matchedLocale:c,browserLocale:function(){try{return navigator.language||navigator.userLanguage||"en"}catch(e){return"en"}}(),usedLocale:this.usedLocale,userUniqueId:this.generateUserUniqueId(d.ip),pageviewCount:p};easylocation.log("New action:",_),fetch(this.recordLocation,{method:"POST",body:JSON.stringify(_),headers:{"Content-Type":"text/plain"},keepalive:!0,priority:"high",referrerPolicy:"no-referrer",mode:"no-cors"}).then((e=>{if(e.ok)return e.json();let o=e.text(),t=e.status;new Error(`Response status: ${t}, response text: ${o}`)}))}catch(t){easylocation.warn("Error recording action:",t),easylocation.reportToSentryEnvelope("Error recording action",{action:e,data:o},easylocation.exceptionToSentryInterface(t))}},run:function(){var e=this;let o=this.getCookie("geoip-pageview-count")||0;this.getItem("geoip-pageview-count",(function(){return 0}))>0&&(o=2,this.removeItem("geoip-pageview-count")),this.setCookie("geoip-pageview-count",parseInt(o)+1,{expires:86400});if(this.getCookie("geoip-redirect-closed"))easylocation.log("The redirect was closed by the user previously"),easylocation.recordAction(easylocation.actions.NO_CACHED,{},!1),function(){let o=e.getConfig();o&&o.parameters&&"object"==typeof o.parameters&&o.parameters.domains_list&&(easylocation.parameters=o.parameters,e.locationData=e.getCookie("geoip-location"),setTimeout((()=>{e.setDropdownRedirect(),e.initDropdownRedirect(),e.addStylesBlock(document.querySelector(".geo-ip"))}),1500))}();else{let e=this.loadParameters();if(!e||!e.length)return easylocation.log("Early terminating, no rules"),void easylocation.recordAction(easylocation.actions.NO_RULES,{},!1);this.storedRules=e,this.getLocation(e)}},runCallForLocale:function(){const e=this;this.getJSON(this.urlLocation,(o=>{o&&"success"===o.message&&o.data&&Array.isArray(o.data.possibleLocales)&&e.runThroughLocales(o.data.possibleLocales)}),{"x-api-key":xApiKey})},runThroughLocales:function(e){const o=this.parameters.localization||{};for(let t=0;t<e.length;t++){let a=e[t];if(o.hasOwnProperty(a)){this.matchedLocaleFromIp=a,easylocation.log("Matched locale from IP:",a);break}}},getLocation:function(e){let o=!1;for(let t=0;t<e.length;t++)if(e[t].ip||e[t].ip_exceptions||easylocation.parameters.owner_ip_mode){o=!0;break}let t=this.getCookie("geoip-location"),a=this.getCookie("geoip-admin");if(easylocation.log("IsAdmin:",a),!t||o&&!t.ip||a&&"1"===a)easylocation.locationCached=!1,easylocation.log("Fetching location data..."),this.getJSON(this.urlLocation,(t=>{if(t&&"success"===t.message){if(easylocation.log("Location data:",t.data),!0===t.isCrawler)return;const _setData=(o,t,a)=>{o.ip=t||"",a?(easylocation.setCookie("geoip-admin","1",{expires:86400}),easylocation.setCookie("geoip-location-admin",o,{expires:86400}),easylocation.log("Caching admin location data and flagging as admin:",o),easylocation.log("Further requests will still fetch fresh data")):(easylocation.setCookie("geoip-location",o,{expires:86400}),easylocation.log("Caching location data:",o)),this.locationData=o,this.locationData&&this.locationData.possibleLocales&&this.runThroughLocales(this.locationData.possibleLocales),this.implementRules(e)};if(!t.data.continent||!t.data.country)return void easylocation.warn("Unknown location");o?(easylocation.log("Fetching IP data (because of rules)"),this.getJSON(this.urlIp,(e=>{easylocation.log("IP data:",e),_setData(t.data,e.ip,e.isAdmin||!1)}))):_setData(t.data,t.ip,t.isAdmin||!1)}}),{"x-api-key":xApiKey});else{if(easylocation.locationCached=!0,this.locationData=t,!0===t.isCrawler)return;easylocation.log("Location data is cached:",t),this.locationData&&this.locationData.possibleLocales&&this.runThroughLocales(this.locationData.possibleLocales),this.implementRules(e)}},getConfig:function(){let e=document.querySelector("meta.geo-ip"),o=null;try{o=e?JSON.parse(easylocation.base64Decode(e.content)):null}catch(e){return easylocation.warn("Failed to decode config:",e),null}return o},loadParameters:function(){let e=this.getConfig(),o=[];return e&&("object"==typeof e.parameters&&(this.parameters=e.parameters),void 0!==e.rulesList&&(o=e.rulesList)),o},storedRules:[],implementRules:function(e){let o=!0;for(let t=0;t<e.length;t++)if(this.compareCountries(e[t])){o=!1,easylocation.log("Rule matched:",e[t]),this.goRedirect(e[t]);break}
1o&&(easylocation.recordAction(easylocation.actions.NO_RULE_MATCHED,{},!1),easylocation.log("No rule matched"))},relativeLinkDetected:!1,ignoreLocaleRedirectCookie:!1,goRedirect:function(e){e=JSON.parse(JSON.stringify(e));var o="redirect"===easylocation.parameters["layout-selector"]&&"about:blank"!==e.link;if(o){let o=easylocation.isSameLocale(e),t=easylocation.compareUrls(window.location.href,e.link);if(t&&!1===o){easylocation.log("Same url but different locale, redirecting");try{easylocation.setCookie("easyLocationLocaleRedirect",!1)}catch(e){}easylocation.parameters.show_popup_for_same_website=!0,easylocation.ignoreLocaleRedirectCookie=!0}if(t){let o="show_popup_for_same_website"in easylocation.parameters;if(!o||o&&!1===easylocation.parameters.show_popup_for_same_website)return easylocation.log("Same URL, not instant redirecting",window.location.href,e.link),void easylocation.recordAction(easylocation.actions.SAME_URL,{},!0)}}"1"===e.domain_redirect&&"about:blank"!==e.link&&(e.link=easylocation.getDomainLink(e.link));try{var t=document.referrer;if(!o&&t&&this.storedRules&&this.storedRules.length>0){var a=new URL(t).hostname;if(a){var n=!1;for(let e of this.storedRules)if(e.link){var i=new URL(e.link).hostname,r=i.indexOf("www.")>-1?i.replace("www.",""):"www."+i;if(a===i||a===r){n=!0;break}}if(n)return easylocation.recordAction(easylocation.actions.FOUND_MATCHING_RULE_REFERRER,{referer:t},!0),void easylocation.log("Found matching rule for referer domain, not showing popup/redirect",t)}}}catch(e){}if("top"!==easylocation.parameters["layout-selector"]&&"popup"!==easylocation.parameters["layout-selector"]||"about:blank"===e.link)easylocation.log("Rule layout selector:",easylocation.parameters["layout-selector"]),easylocation.shouldDoInstantRedirect(e)?(easylocation.log("Instant redirecting"),easylocation.automated_redirect=!0,easylocation.recordPureRedirect=!0,easylocation.pureRedirect(e)):easylocation.log("Not instant redirecting");else{if(easylocation.log("Rule layout selector:",easylocation.parameters["layout-selector"]),easylocation.parameters["permanent-redirect"]&&easylocation.getCookie("geoip-permanent-redirect"))return easylocation.automated_redirect=!0,easylocation.recordPureRedirect=!0,easylocation.log("Permanent redirect and cookie set, redirecting"),void easylocation.pureRedirect(e);let runIt=function(o=!1){let listener=function(){easylocation.choice_id=(new Date).getTime(),easylocation.recordAction(easylocation.actions.CHOICE_SHOWN,{rule:e,automated:easylocation.automated_redirect,choice_id:easylocation.choice_id||null},!1),easylocation.log("Showing popup with rule and choice_id:",e,easylocation.choice_id),easylocation.onReady((function(){easylocation.setTemplateBanner(e)})),o||document.removeEventListener("easylocation_render",listener)};o||window.did_easylocation_render?listener():document.addEventListener("easylocation_render",listener)},closeIt=function(){easylocation.setCookie("geoip-redirect-closed",!0),easylocation.log("Popup closed, not redirecting")},o="show_popup_for_same_website"in easylocation.parameters&&!0===easylocation.parameters.show_popup_for_same_website;easylocation.compareUrls(window.location.href,e.link,o)?(easylocation.log("Detected same URL",window.location.href,e.link),this.relativeLinkDetected&&(easylocation.log("Relative link detected"),easylocation.parameters.show_popup_for_same_website=!0),"show_popup_for_same_website"in easylocation.parameters?!0===easylocation.parameters.show_popup_for_same_website?(easylocation.log("Showing popup for same website"),runIt()):(easylocation.log("Not showing popup for same website"),easylocation.recordAction(easylocation.actions.SAME_URL,{},!0),closeIt()):(easylocation.log("No setting for same website, not showing popup"),easylocation.recordAction(easylocation.actions.SAME_URL,{},!0),closeIt())):(easylocation.log("Not same URL, showing popup"),runIt(!0))}},getJSON:function(e,o,t){let a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="json",a.onload=()=>{200===a.status?o(a.response):o(null)},t&&easylocation.objectKeys(t).forEach((e=>a.setRequestHeader(e,t[e]))),a.send()},getDomainLink:function(e){e.startsWith("/")&&(e=window.location.origin+e,this.relativeLinkDetected=!0),e.match(/(^(https?:)*?\/\/)/i,"")||(e="https://"+e);let o=new URL(window.location.href),t=o.pathname.split("/");for(let e=0;e<easylocation.locales.length;e++)if(t[1]&&t[1].toLowerCase()==easylocation.locales[e].replace("_","-").toLowerCase()){delete t[1];break}if(void 0!==t[1])for(let e=0;e<easylocation.localesIso.length;e++)if(t[1].toLowerCase().includes(easylocation.localesIso[e]+"_")||t[1].toLowerCase().includes(easylocation.localesIso[e]+"-")||t[1].toLowerCase()===easylocation.localesIso[e]){delete t[1];break}o.pathname=t.join("/").replace("//","/");let a=new RegExp(window.location.protocol+"//"+window.location.host,"g"),n=new URL(e.replace(/\/*?$/,"")),i=window.location.href.replace(window.location.pathname,o.pathname).replace(a,n.href.replace(/\?.+$/,"").replace(/\/$/,"")).replace(n.pathname+n.pathname+"/",n.pathname+"/");return o.pathname.includes(n.pathname)&&i.replace(n.pathname,""),n.search&&(i+=o.search?n.search.replace("?","&"):n.search),i},getCookie:function(e){if(e="el-"+e,easylocation.supportsLocalStorage()&&void 0!==localStorage[e])try{let o=JSON.parse(unescape(localStorage[e]));if(!(o&&o.expires))return o.value;let t=(new Date).getTime().toString();return o&&o.expires&&t-o.expires>0?void localStorage.removeItem(e):o.value}catch(e){return}try{if(void 0===document.cookie)return;let o=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)"));if(!o)return;let t=JSON.parse(unescape(o[1]));return"false"===t?t=!1:"true"===t&&(t=!0),t}catch(e){return}}
1,setCookie:function(e,o,t){e="el-"+e;let a={value:o,expires:null},n=(t=t||{}).expires;if(n){n=parseInt(n);let e=new Date;e.setTime(e.getTime()+1e3*n),n=t.expires=e,n.toUTCString&&(t.expires=n.toUTCString()),a.expires=n.getTime().toString()}if(easylocation.supportsLocalStorage())return void(localStorage[e]=JSON.stringify(a));let i=e+"="+(o=escape(JSON.stringify(o)));for(let e in t){i+=";"+e;let o=t[e];!0!==o&&(i+="="+o)}i+=";path=/",document.cookie=i},supportsLocalStorage:function(){return easylocation.isLocalStorageAvailable()},compareCountries:function(e){let o=[],t=[];if(Array.isArray(e.countries)?o=e.countries:void 0!==e.countries&&null!==e.countries&&(o=e.countries.split(",")),Array.isArray(e.exceptions)?t=e.exceptions:void 0!==e.exceptions&&null!==e.exceptions&&(t=e.exceptions.split(",")),!0===easylocation.checkIp(e.ip))return!0;if(!0===easylocation.checkIp(e.ip_exceptions))return!1;let a=!1;for(let e=0;e<o.length;e++){let t=o[e];("all countries"===t.toLowerCase()||easylocation.checkCountry(t)||easylocation.checkRegion(t)||easylocation.checkContinent(t))&&(a=!0)}if(a){for(let e=0;e<t.length;e++){let o=t[e];if("all countries"===o.toLowerCase()||easylocation.checkCountry(o)||easylocation.checkRegion(o)||easylocation.checkContinent(o))return!1}return!0}return!1},checkCountry:function(e){return easylocation.locationData.country.names.en===e},checkContinent:function(e){return easylocation.locationData.continent.names.en===e},checkRegion:function(e){let o=easylocation.locationData.region,t=easylocation.locationData.country.names.en;if(e.includes(" / ")){let a=e.split(" / ");if(t==a[0]&&o===a[1])return!0}return!1},checkIp:function(e){return!!e&&(easylocation.locationData&&!!easylocation.locationData.ip&&-1!==e.split(",").indexOf(easylocation.locationData.ip))},pureRedirect:function(e){if(easylocation.parameters.owner_ip_mode&&easylocation.locationData.ip==easylocation.parameters.owner_ip)return easylocation.log("Owner detected, not instant redirecting"),void easylocation.recordAction(easylocation.actions.OWNER_DETECTED,{rule:e,owner_ip:easylocation.parameters.owner_ip,user_ip:easylocation.locationData.ip},!1);if("#redirectoff"==window.location.hash&&easylocation.setCookie("easyLocationNoRedirect",!0),"#redirecton"==window.location.hash&&easylocation.setCookie("easyLocationNoRedirect",!1),"object"==typeof Shopify&&Shopify.designMode||window.frameElement&&window.frameElement.id&&"theme-editor-iframe"==window.frameElement.id)return this.closeBanner(!1),void easylocation.recordAction(easylocation.actions.SHOPIFY_PREVIEW_MODE,{},!1);let o="show_popup_for_same_website"in easylocation.parameters,t=o&&!1===easylocation.parameters.show_popup_for_same_website||!o,a=easylocation.compareUrls(window.location.href,e.link,t);if((()=>{try{let o=e.link;o.endsWith("/")&&(o=o.slice(0,-1));let t=new URL(o),a=`${window.location.protocol}//${window.location.host}${window.location.pathname}`;a.endsWith("/")&&(a=a.slice(0,-1));let n=new URL(a);return window.location.href.toLowerCase()===e.link.toLowerCase()||n.origin===t.origin&&n.pathname.toLowerCase()===t.pathname.toLowerCase()}catch(o){return window.location.href.toLowerCase()===e.link.toLowerCase()}})())return easylocation.log("Exact match, not redirecting",e.link),easylocation.recordAction(easylocation.actions.EXACT_MATCH,{rule:e,url:e.link,href:`${window.location.protocol}//${window.location.host}${window.location.pathname}`},!1),void this.closeBanner(!1);if(a){if(!o||o&&!1===easylocation.parameters.show_popup_for_same_website)return easylocation.log("Same URL, setting not active, not instant redirecting",window.location.href,e.link),void this.closeBanner(!1);try{let o=new URL(e.link).pathname,t=window.location.pathname;if("/"===o&&"/"!==t)return easylocation.log("Same URL, setting active, but current path is different, not instant redirecting",window.location.href,e.link),void this.closeBanner(!1)}catch(e){easylocation.log("Error comparing paths",e)}try{this.removeItem("el-easyLocationLocaleRedirect")}catch(e){}}if(easylocation.getCookie("easyLocationNoRedirect"))return easylocation.log("Redirect is manually disabled, not redirecting"),easylocation.recordAction(easylocation.actions.MANUALLY_DISABLED,{},!1),void this.closeBanner(!1);let n=this.isSameLocale(e);
1if(n)return easylocation.log("Same locale, not redirecting"),easylocation.recordAction(easylocation.actions.SAME_LOCALE,{rule:e},!1),void this.closeBanner(!1);if(!1===n){if(easylocation.getCookie("easyLocationLocaleRedirect")&&!easylocation.ignoreLocaleRedirectCookie)return easylocation.log("Locale redirect already done, not redirecting"),void this.closeBanner(!1);easylocation.log("Locale redirect not done, setting easyLocationLocaleRedirect:true"),easylocation.setCookie("easyLocationLocaleRedirect",!0)}if(easylocation.log("Link before prepare:",e.link),"about:blank"!==e.link){let o=e.link.match(/(^(https?:)*?\/\/)/i);if(!o){let t;t=e.link.split("#"),t=t[0].split("?"),t=t[0].split("/"),t[0].match(/^\w+([\.-]?\w+)*(\.\w{2,3})+$/i)?o||(e.link="https://"+e.link):["#","?","/"].indexOf(e.link[0])<0&&(e.link="/"+e.link)}}easylocation.log("Link after prepare:",e.link),easylocation.recordPureRedirect&&(easylocation.recordPureRedirect=!1,easylocation.recordAction(easylocation.actions.YES,{rule:e,automated:easylocation.automated_redirect,url:e.link,choice_id:easylocation.choice_id||null}),easylocation.automated_redirect=!1);let i=new window.CustomEvent("easylocation_redirect_after_check",e);document.dispatchEvent(i),easylocation.log("Dispatching event and redirecting to:",e.link),window.location.search.includes("debug")&&window.location.search.includes("noRedirect")?easylocation.log("Debug and noRedirect are true, not redirecting"):setTimeout((function(){window.location.href=e.link}),5)},shouldDoInstantRedirect:function(e){if(!easylocation.getCookie("noRepeatInstantRedirectInterval"))return easylocation.parameters.repeat_switcher&&"about:blank"!==e.link?easylocation.setCookie("noRepeatInstantRedirectInterval",(new Date).getTime()):this.removeItem("noRepeatInstantRedirectInterval"),!0;{let e=6e4*easylocation.parameters.repeat_period,o=(new Date).getTime()-easylocation.getCookie("noRepeatInstantRedirectInterval");if(o>e)return easylocation.setCookie("noRepeatInstantRedirectInterval",(new Date).getTime()),!0;easylocation.log("Instant redirect interval not passed"),easylocation.recordAction(easylocation.actions.INSTANT_REDIRECT_INTERVAL_NOT_PASSED,{interval:e,diff:o},!1)}return!1},matchedLocaleFromIp:null,getDelayTime:function(){let e=easylocation.parameters.popup_delay&&easylocation.parameters.popup_delay>0?1e3*easylocation.parameters.popup_delay:-1;return!1===easylocation.parameters.repeat_switcher&&"redirect"===easylocation.parameters["layout-selector"]&&(e=-1),e},setTemplateBanner:function(e){if(this.isSameLocale(e))return;this.checkLocalization(),this.setDropdownRedirect(e);easylocation.setStoreCountryName(e);let o=document.createEvent("Event");o.initEvent("easylocation_before_render",!0,!0),document.dispatchEvent(o),easylocation.setCookie("easyLocationLocaleRedirect",!1);let t=document.createElement("div");t.id="geoip-banner";let a=document.createElement("div");a.className="geoip-"+easylocation.parameters["layout-selector"]+"-banner",a.style.backgroundColor="#"+easylocation.parameters["background-color"],"function"!=typeof window.easylocationCustomTemplate?a.innerHTML=easylocation.getBanner(easylocation.parameters,e):a.innerHTML=window.easylocationCustomTemplate(easylocation.parameters,e);let n=document.querySelector("body"),i=easylocation.getDelayTime();function _render(){t.innerHTML="",t.style.opacity=1,t.appendChild(a),n.insertBefore(t,n.firstChild),easylocation.addStylesBlock(t);let o=new window.CustomEvent("easylocation_render",e);document.dispatchEvent(o),window.did_easylocation_render=!0}let r=a.querySelector("a.geoip-rule-link");if(r&&(r.addEventListener("click",(function(o){easylocation.recordAction(easylocation.actions.MANUAL_LINK_CLICK,{rule:e,url:r.href})})),r.addEventListener("contextmenu",(function(o){easylocation.recordAction(easylocation.actions.MANUAL_LINK_CLICK,{rule:e,url:r.href})}))),"popup"===easylocation.parameters["layout-selector"]){easylocation.addPopupStyles(t);let o=a.querySelectorAll(".geoip-close-icon, .geoip-close-btn");for(let t=0;t<o.length;t++)o[t].addEventListener("click",(function(o){if(easylocation.recordAction(easylocation.actions.CLOSE,{rule:e,delayTime:i}),-1==i)easylocation.hideBanner();else{if(i>0){let e=(new Date).getTime().toString();easylocation.setCookie("geoip-delay",+e+i),setTimeout(_render,i)}easylocation.hideBanner(o)}}));if(i>0){easylocation.log("Delaytime > 0",i);let e=(new Date).getTime().toString(),o=easylocation.getCookie("geoip-delay");
1if(o){let t=o-e;t<0?(t=10,easylocation.log("Render delayed by:",t),setTimeout(_render,t)):easylocation.log("Not showing banner, delay not passed")}else easylocation.log("Showing banner, delay set"),easylocation.setCookie("geoip-delay",+e+i),_render()}else easylocation.log("No delay, showing banner"),_render()}else easylocation.log("Not popup, showing banner..."),easylocation.addTopBarStyle(t),_render();a.querySelector(".geoip-no-btn")&&a.querySelector(".geoip-no-btn").addEventListener("click",(function(){easylocation.recordAction(easylocation.actions.NO,{rule:e,choice_id:easylocation.choice_id||null}),easylocation.closeBanner()})),a.querySelector(".geoip-yes-btn")&&a.querySelector(".geoip-yes-btn").addEventListener("click",(function(){if(easylocation.recordPureRedirect=!0,easylocation.setCookie("geoip-permanent-redirect",1,{expires:31536e4}),a.querySelector(".easylocation-domains-list")){let o=("function"==typeof structuredClone?structuredClone:function(e){return JSON.parse(JSON.stringify(e))})(e);o.link=a.querySelector(".easylocation-domains-list").value,easylocation.pureRedirect(o)}else easylocation.pureRedirect(e)})),easylocation.parameters.domains_list&&easylocation.initDropdownRedirect()},compareUrls(e,o,t){var a=e,n=o,i=t||!1;e=e.replace(/(https?:\/\/){0,1}(www\.){0,1}(.+?)\/?$/,"$3"),o=o.replace(/(https?:\/\/){0,1}(www\.){0,1}(.+?)\/?$/,"$3");try{if(a=new URL(a),n=new URL(n),i){if(a.hostname===n.hostname&&a.pathname===n.pathname)return!0;if(a.hostname.replace("www.","")===n.hostname.replace("www.","")&&a.pathname===n.pathname)return!0}else{if(a.hostname===n.hostname)return!0;if(a.hostname.replace("www.","")===n.hostname.replace("www.",""))return!0}}catch(t){return easylocation.info("Invalid URLS",e,o),e===o}return e===o},setDropdownRedirect:function(e=""){if(!this.parameters.domains_list)return!1;let o=document.createElement("div");o.className="easylocation-select-wrap";let t=this.buildListDomains("",!0);if(o.innerHTML=t,easylocation.footerSelectors.map(((e,t)=>{if(document.querySelector(e))return document.querySelector(e).append(o)})))return!0;document.querySelector("body").append(o)},initDropdownRedirect:function(){document.querySelectorAll(".easylocation-domains-list")&&document.querySelectorAll(".easylocation-domains-list").forEach(((e,o)=>{e.addEventListener("change",(o=>{if(e.classList.contains("geo-footer")){let e=o.target.value;e.match(/(^(https?:)*?\/\/)/i,"")||(e="https://"+e),window.location.assign(e)}}))}))},isSameLocale:function(e){let o,t,a,n,i,r=null,s=null;const oldMode=()=>{for(let o=0;o<easylocation.locales.length;o++)a=new RegExp("/("+easylocation.locales[o].replace("_","-")+")(/|\\?|#|$)","i"),r||(n=window.location.href.match(a),n&&n[1]&&(r=n[1].toLowerCase())),s||(i=e.link.match(a),i&&i[1]&&(s=i[1].toLowerCase()));if(!r)try{const o=window.location.pathname.split("/")[1];o&&easylocation.isUnknownLocale(o)&&easylocation.reportUnknownLocale(o,{pathSegment:o,redirectUrl:e.link})}catch(e){easylocation.warn("Error checking for unknown locale in oldMode:",e)}if(!s)try{const o=e.link.split("/")[3];o&&easylocation.isUnknownLocale(o)&&easylocation.reportUnknownLocale(o,{pathSegment:o,redirectUrl:e.link})}catch(e){easylocation.warn("Error checking for unknown locale in redirect URL (oldMode):",e)}};if("function"==typeof URL)try{o=new URL(window.location.href),t=o.pathname.split("/"),t&&t[1]&&easylocation.isUnknownLocale(t[1])&&easylocation.reportUnknownLocale(t[1],{pathSegment:t[1],redirectUrl:e.link});let a=easylocation.locales.find((e=>e&&t[1]&&e.toLowerCase()===t[1].toLowerCase())),n=easylocation.locales.find((e=>e&&t[1]&&e.toLowerCase().replace("_","-")===t[1].toLowerCase()));t&&t[1]&&(a||n)&&(r=t[1]),o=new URL(e.link),t=o.pathname.split("/"),t&&t[1]&&easylocation.isUnknownLocale(t[1])&&easylocation.reportUnknownLocale(t[1],{pathSegment:t[1],redirectUrl:e.link});let i=easylocation.locales.find((e=>e&&t[1]&&e.toLowerCase()===t[1].toLowerCase())),l=easylocation.locales.find((e=>e&&t[1]&&e.toLowerCase().replace("_","-")===t[1].toLowerCase()));t&&t[1]&&(i||l)&&(s=t[1]),o.hostname!==window.location.hostname&&(s=null)}catch(o){easylocation.info("Rule link is not a valid URL",e.link),r=null,s=null,oldMode()}else oldMode();return s?r==s:null},isValidLocalePattern:function(e){if(!e||"string"!=typeof e)return!1;return/^[a-z]{2,3}([_-][A-Za-z0-9]{2,4})?([_-][A-Za-z0-9]{2,3})?$/i.test(e)},isUnknownLocale:function(e){if(!e)return!1;const o=e.toLowerCase().replace("-","_");return!easylocation.locales.some((e=>e.toLowerCase().replace("-","_")===o))&&easylocation.isValidLocalePattern(e)},reportUnknownLocale:function(e,o){try{easylocation.reportToSentryEnvelope("Unknown locale pattern detected",{detectedLocale:e,currentUrl:window.location.href,redirectUrl:o.redirectUrl||null,urlPathSegment:o.pathSegment||null,shopDomain:window.Shopify&&window.Shopify.shop?window.Shopify.shop:"unknown",message:"A locale-like pattern was found in URL but is not in the known locales list. Consider adding it to the locales array."},null,"warning"),easylocation.log("Unknown locale reported to Sentry:",e)}catch(e){easylocation.warn("Failed to report unknown locale:",e)}},getBanner:function(e,o){return['<div class="geoip-main-block">','<div class="geoip-text-block">',easylocation.setStoreCountryName(o),"</div>",'<div class = "geoip-button-block">
1','<button class="geoip-yes-btn">',e.yes,"</button>",'<button class="geoip-no-btn">',e.no,"</button>","</div>","</div>",'<span class="geoip-close-icon">&times;</span>'].join("")},addPopupStyles:function(e){e.style.height="100%",e.style.width="100%",e.style.position="fixed",e.style.zIndex="9999999999999",e.style.backgroundColor="rgba(0, 0, 0, 0.8)"},addTopBarStyle:function(e){e.style.width="100%"},setStoreCountryName:function(e){let o="string"==typeof e.lang?e.lang:"string"==typeof easylocation.lang?easylocation.lang:"en",t=easylocation.locationData.country.names[o];"en"==o&&["United States","Netherlands","Czech Republic","Vatican City"].indexOf(t)>=0&&(t="the "+t);let a=easylocation.parameters.redirect_text,n=this.flagSourcePrefix+easylocation.locationData.country.iso_code.toLowerCase()+".svg";if(easylocation.locationData&&easylocation.locationData.country&&easylocation.locationData.country.iso_code||(n=this.flagSourcePrefix+"us.svg"),this.parameters.domains_list){let o=a.lastIndexOf("?"),t=a.slice(o+1);a=a.slice(0,o)+t,-1===o&&(o=easylocation.parameters.redirect_text.length-1,t="",a=easylocation.parameters.redirect_text),a=a.replace(/%STORENAME%/g,'<span class="geoip-store-name">'+this.buildListDomains(e)+"</span>")}else a=a.replace(/%STORENAME%/g,'<span class="geoip-store-name"><a href = "'+e.link+'" class="geoip-rule-link">'+e.store_name+"</a></span>");return"popup"===this.parameters["layout-selector"]&&easylocation.parameters.redirect_text===easylocation.originalRedirectText&&(a=a.replace(/. Redirect to/g,". <br>Redirect to")),a.replace(/%COUNTRY%/g,'<img class="goeip-flag" src="'+n+'" alt="'+t+'"><span class="geoip-country-name">'+t+"</span>")},buildListDomains:function(e,o=!1){let t=this.getConfig().rulesList,a='<select class="easylocation-domains-list'+(o?" geo-footer":"")+'">',n=easylocation.parameters.store_title&&easylocation.parameters.store_title.length?easylocation.parameters.store_title:"Home redirect";if(e)a=a+'<option value="'+e.link+'">'+e.store_name+"</option>",t.map(((o,t)=>{o.store_name!==e.store_name&&"about:blank"!==o.link&&(a="1"===o.domain_redirect?a+'<option value="'+easylocation.getDomainLink(o.link)+'">'+o.store_name+"</option>":a+'<option value="'+o.link+'">'+o.store_name+"</option>")})),a=a+'<option value="'+easylocation.homeLink+'">'+n+"</option>";else{let e={exact_mach:NaN,overlap:{}};if(t.map(((o,t)=>{isNaN(e.exact_mach)&&(o.link==window.location.href&&(e.exact_mach=t),window.location.href.includes(o.link)&&(e.overlap[t]=o.link))})),0!==easylocation.objectKeys(e.overlap).length){let o="",t="";for(let a in e.overlap){let n=e.overlap[a];const i=n.toString().length;i>o&&(o=i,t=n)}e.overlap=t}t.map(((o,t)=>{"about:blank"!==o.link&&(isNaN(e.exact_mach)||t!==e.exact_mach?isNaN(e.exact_mach&&e.overlap.length)&&e.overlap==o.link?(a=a+'<option selected value="'+o.link+'">'+o.store_name+"</option>",e.overlap="link-was-selected"):a=a+'<option value="'+o.link+'">'+o.store_name+"</option>":a=a+'<option selected value="'+o.link+'">'+o.store_name+"</option>")})),a=isNaN(e.exact_mach)&&!e.overlap.length?a+'<option selected value="'+easylocation.homeLink+'">'+n+"</option>":a+'<option value="'+easylocation.homeLink+'">'+n+"</option>"}return a+="</select>",a},closeBanner:function(e=!0){e&&easylocation.setCookie("geoip-redirect-closed",!0),easylocation.hideBanner()},hideBanner:function(){let e=document.querySelector("div#geoip-banner");e&&(e.style.opacity=0,e.style.transition="opacity 0.3s",setTimeout((function(){e.parentNode.removeChild(e)}),300))},addStylesBlock:function(e){let o=document.createElement("style"),t=easylocation.parameters,a=[".geoip-store-name a:hover{color:inherit;}",".geoip-popup-banner .geoip-main-block button:first-child{margin-left: 0;}",".geoip-top-banner .geoip-close-icon{display:none}",".geoip-top-banner{position:relative;z-index:9999;text-align:center;padding: 7px 0;box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.12);}",".geoip-top-banner .geoip-button-block{display:inline-block; margin:5px;}",".geoip-top-banner .geoip-text-block{margin-right:20px; display: inline-block;}",".geoip-store-name{font-weight:bold}",".geoip-store-name a{color:inherit;text-decoration: underline;} ",".geoip-country-name{font-weight:bold}
1",".goeip-flag{width: 20px; height: 15px; position: relative; top: 1px; border-radius: 3px; margin-right: 6px; display: inline-block;}",".geoip-text-block{line-height:28px !important; font-size:18px; font-family:sans-serif; margin-right:10px; font-weight:lighter}",".geoip-text-block,.geoip-close-icon{color:#"+t["text-color"]+"}",".geoip-main-block button{background:none; border:0; font-size:14px;  margin-left:10px; cursor:pointer; padding:6px 11px; border-radius: 6px;line-height: initial !important;}",".geoip-main-block button:hover{opacity:0.8}",".geoip-popup-banner{z-index:99999999999; position:fixed; left:0; top:0; right:0; bottom:0; margin:auto; width:450px; height:fit-content; padding:40px; border-radius:7px;}",".geoip-popup-banner .geoip-main-block{position:relative;}",".geoip-close-icon{position:absolute;right:14px;top:9px;cursor:pointer;font-size: 23px; line-height: 0.6;color: transparent;width: 16px;height: 16px;}",".geoip-close-icon{background-size: 16px; background-repeat: no-repeat;background-image: url(\"data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9.13101 7.99993L14.1654 2.96553C14.4782 2.65273 14.4782 2.14713 14.1654 1.83433C13.8526 1.52153 13.347 1.52153 13.0342 1.83433L7.99981 6.86873L2.96541 1.83433C2.65261 1.52153 2.14701 1.52153 1.83421 1.83433C1.52141 2.14713 1.52141 2.65273 1.83421 2.96553L6.86861 7.99993L1.83421 13.0343C1.52141 13.3471 1.52141 13.8527 1.83421 14.1655C1.99021 14.3215 2.19501 14.3999 2.39981 14.3999C2.60461 14.3999 2.80941 14.3215 2.96541 14.1655L7.99981 9.13113L13.0342 14.1655C13.1902 14.3215 13.395 14.3999 13.5998 14.3999C13.8046 14.3999 14.0094 14.3215 14.1654 14.1655C14.4782 13.8527 14.4782 13.3471 14.1654 13.0343L9.13101 7.99993Z' fill='white'/%3E%3Cmask id='mask0_3267_31733' style='mask-type:luminance' maskUnits='userSpaceOnUse' x='1' y='1' width='14' height='14'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9.13101 7.99993L14.1654 2.96553C14.4782 2.65273 14.4782 2.14713 14.1654 1.83433C13.8526 1.52153 13.347 1.52153 13.0342 1.83433L7.99981 6.86873L2.96541 1.83433C2.65261 1.52153 2.14701 1.52153 1.83421 1.83433C1.52141 2.14713 1.52141 2.65273 1.83421 2.96553L6.86861 7.99993L1.83421 13.0343C1.52141 13.3471 1.52141 13.8527 1.83421 14.1655C1.99021 14.3215 2.19501 14.3999 2.39981 14.3999C2.60461 14.3999 2.80941 14.3215 2.96541 14.1655L7.99981 9.13113L13.0342 14.1655C13.1902 14.3215 13.395 14.3999 13.5998 14.3999C13.8046 14.3999 14.0094 14.3215 14.1654 14.1655C14.4782 13.8527 14.4782 13.3471 14.1654 13.0343L9.13101 7.99993Z' fill='white'/%3E%3C/mask%3E%3Cg mask='url(%23mask0_3267_31733)'%3E%3Crect width='17.0667' height='17.0667' fill='%23111213'/%3E%3C/g%3E%3C/svg%3E%0A\");}",".geoip-popup-banner .easylocation-domains-list {width:100%; margin-top: 5px;}",".geoip-popup-banner .geoip-text-block{text-align:center; margin:0 auto; line-height:27px; padding-bottom:20px}",".geoip-popup-banner .geoip-button-block{margin:0 auto; text-align:center;}",".geoip-popup-banner .geoip-button-block button{display:block; width:100%; margin-left:0;}",".geoip-popup-banner .geoip-button-block button:first-child{margin-bottom: 10px;}",".geoip-button-block:first-child{margin-left:0}",".geoip-button-block button{color: #ffffff;font-size:16px;padding:12px 24px;min-width:160px;min-height:48px;}",".geoip-button-block .geoip-yes-btn{color:#"+t["yes-text-color"]+";background-color:#"+t["yes-background-color"]+"}",".geoip-button-block .geoip-no-btn{color:#"+t["no-text-color"]+";background-color:#"+t["no-background-color"]+"}",".easylocation-domains-list{display: inline-block; width: auto; position: relative; z-index: 10; border: 0.5px solid #d3d6d8; border-radius: 6px; height: 48px; font-family: sans-serif;}",".easylocation-domains-list{padding: 12px 35px 12px 12px; line-height: 19px; cursor:pointer; appearance: none; background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI1IiB2aWV3Qm94PSIwIDAgOCA1IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQuMzUzNTUgNC4zOTA1OUM0LjE1ODI5IDQuNTg1ODUgMy44NDE3MSA0LjU4NTg1IDMuNjQ2NDUgNC4zOTA1OUwwLjgxODAxOSAxLjU2MjE2QzAuNjIyNzU3IDEuMzY2OSAwLjYyMjc1NyAxLjA1MDMyIDAuODE4MDE5IDAuODU1MDU0QzEuMDEzMjggMC42NTk3OTIgMS4zMjk4NiAwLjY1OTc5MSAxLjUyNTEzIDAuODU1MDU0TDQgMy4zMjk5M0w2LjQ3NDg3IDAuODU1MDUzQzYuNjcwMTQgMC42NTk3OTEgNi45ODY3MiAwLjY1OTc5MSA3LjE4MTk4IDAuODU1MDUzQzcuMzc3MjQgMS4wNTAzMiA3LjM3NzI0IDEuMzY2OSA3LjE4MTk4IDEuNTYyMTZMNC4zNTM1NSA0LjM5MDU5WiIgZmlsbD0iIzgzODM4MyIvPgo8L3N2Zz4K); background-repeat: no-repeat; background-position: right 0.7rem top 50%; background-size: 12px auto;}",".easylocation-domains-list.geo-footer{appearance: auto;}",".easylocation-domains-list:focus-visible {outline: none; box-shadow: none; outline-offset: none;}",".geo-footer.easylocation-domains-list {margin: 24px auto; display: block; background: rgba(255,255,255,0.5); padding: 8px; padding-left: 32px; border: 1px solid #000; font-size: 14px; background-image: url(data:image/png;base64,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); background-size: 22px; background-repeat: no-repeat; background-position: 5px;}","@media screen and (max-width:480px){",".geoip-text-block{width:100%; float:left}",".geoip-main-block button{margin-bottom:10px}",".geoip-popup-banner{width:100%; max-width: calc(100vw - 150px)}",".geoip-popup-banner .geoip-text-block{width:100%}","}","@media screen and (max-width:480px){",".geoip-popup-banner{width:100%; max-width: calc(100vw - 10px)}","}"];"hide_the_no_button"in t&&!0===t.hide_the_no_button&&a.push(".geoip-no-btn {display:none !important;}"),o.innerHTML=a.join(""),e.parentNode.insertBefore(o,e)},base64Decode:function(e){return window.atob?window.atob(e):easylocation.base64.decode(e)},onReady:function(e){"loading"!=document.readyState?e():document.addEventListener("DOMContentLoaded",e)},checkLocalization:function(){if(easylocation.usedLocale="default",!easylocation.parameters.localization)return;let e=navigator.language||navigator.userLanguage,o=easylocation.parameters.localization,t=!1;for(let a in o)if(a.includes(e)){easylocation.usedLocale=o[a].locale,easylocation.parameters.no=o[a].no,easylocation.parameters.yes=o[a].yes,easylocation.parameters.redirect_text=o[a].redirect_text,t=!0;break}let a=!0===easylocation.parameters.prefer_browser_locale;this.matchedLocaleFromIp&&!a&&(easylocation.parameters.no=o[this.matchedLocaleFromIp].no,easylocation.parameters.yes=o[this.matchedLocaleFromIp].yes,easylocation.parameters.redirect_text=o[this.matchedLocaleFromIp].redirect_text)},runWhenDataLoaded:function(){let e=new Promise(((e,o)=>{var t=["geoip-location-admin","geoip-location"];t.some((e=>easylocation.getCookie(e)))?e():function check(){t.some((e=>easylocation.getCookie(e)))?e():window.geopro_cancel&&"1"==window.geopro_cancel?o("Cancelled"):setTimeout(check,100)}()}));easylocation.log("Waiting for data to be loaded"),e.then((()=>{easylocation.log("EasyLocation data loaded"),document.dispatchEvent(new CustomEvent("easylocation_data_loaded")),easylocation.run()})).catch((e=>{easylocation.warn("Data loading cancelled or failed:",e)}))}};document.addEventListener("DOMContentLoaded",(function(){easylocation.ready=!0}));let e=new Event("easylocation_before_run",{bubbles:!0,cancelable:!0});document.dispatchEvent(e);try{easylocation.runWhenDataLoaded()}catch(e){easylocation.reportToSentryEnvelope("Error running EasyLocation",{},easylocation.exceptionToSentryInterface(e))}}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.