PageSourceSearch

https://www.beneo.com/wp-content/plugins/friendly-captcha/public/vendor/v2/site.min.js

js beneo.com collected 2026-10-02 06:13:36 UTC 34,920 bytes, 13 lines download raw bytes

vendor: 11,679 bytes, line 1
1"use strict";(()=>{function e(e){let t=e;for(;t;){if("FORM"===t.tagName)return t;if(t.parentElement){t=t.parentElement;continue}const e=t.parentNode;t=e&&e.host?e.host:null}return null}function t(e,t){e.addEventListener("focusin",t,{once:!0,passive:!0})}function n(e,t){const n=document.createElement("input");return n.type="hidden",n.style.display="none",n.name=t,e.appendChild(n),n}function i(e,t,n){""===e.style[t]&&(e.style[t]=n)}function r(e){"loading"!==document.readyState?e():document.addEventListener("DOMContentLoaded",e)}function o(e,t){let n;"function"==typeof window.CustomEvent?n=new CustomEvent(t.name,{bubbles:!0,detail:t}):(n=document.createEvent("CustomEvent"),n.initCustomEvent(t.name,!0,!1,t)),e.dispatchEvent(n)}function s(e){let t,n;const i=new Promise(((e,i)=>{t=e,n=i}));return e&&e(t,n),{promise:i,resolve:t,reject:n}}function a(e,t){return 0===e.lastIndexOf(t,0)}function c(e){let t=[];const n=Object.keys(e),i=encodeURIComponent;for(let r=0;r<n.length;r++)t.push(`${i(n[r])}=${i(e[n[r]])}`);return t.join("&")}function l(e){const t=document.location;if(a(e,"/")||a(e,"."))return t.origin?t.origin:t.protocol+"//"+t.host;const n=e.match(N);if(!n)throw new Error("Invalid URL: "+e);return n[1]}function d(e,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"){let n="";for(let i=0;i<e;i++)n+=t.charAt(Math.floor(Math.random()*t.length));return n}function h(e){if(!X){let n=0;try{n=parseInt(sessionStorage.getItem(W)||"",10)}catch(t){}isNaN(n)&&(n=0),e&&n++,Y=n.toString();try{sessionStorage.setItem(W,Y)}catch(t){}}return Y}function g(){let e;try{e=sessionStorage.getItem(V)}catch(t){return q}return e||(e=d(12),sessionStorage.setItem(V,e)),e}function u(e){return e.toLowerCase().split("-")[0].split("_")[0]}function m(e){return e=u(e),-1!==U.indexOf(e)}function f(e){return e=u(e),(K[e]||K.en).title+" - Widget"}function p(e,t){return e=u(e),(K[e]||K.en)[t]}function y(e){e.textDecoration=e.fontStyle="none",e.fontWeight="500",e.fontFamily='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',e.lineHeight="1",e.letterSpacing="-0.0125rem"}function v(e){let t=e.language;return t&&"html"!==t||(t=function(e){for(;!e.lang||"string"!=typeof e.lang;)if(!(e=e.parentElement))return null;return e.lang}(e.element)||""),t}function b(){const e=window.performance;return e?e.now():0}function w(e,...t){for(let i=0;i<t.length;i++){const r=t[i];for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}return e}function k(){const e=[0,0,0,0,0,0,0];return{s:e,add(t){const n=++e[0],i=t-e[1],r=i/n,o=r*r,s=i*r*(n-1);e[1]+=r,e[4]+=s*o*(n*n-3*n+3)+6*o*e[2]-4*r*e[3],e[3]+=s*r*(n-2)-3*r*e[2],e[2]+=s,1==n?e[5]=e[6]=t:(t<e[5]&&(e[5]=t),t>e[6]&&(e[6]=t))}}}function E(){return/Android/i.test(navigator.userAgent)}function _(e,t,n=!1,i){const o=k();let s,a=!1;return r((()=>{(i=i||document.body)[J](e,(e=>{a&&!n||(s=e.timeStamp,a=!0)})),i[J](t,(e=>{a&&(o.add(e.timeStamp-s),a=!1)}))})),o.s}function R(e){const t=[];for(let n=0;n<e.length;n++)t.push(0),document[J](e[n],(()=>t[n]++));return t}function S(){const e=[0,0,0,0,0,0,0,0],t={8:1,46:1,9:2,45:3,17:4,13:5,37:6,38:6,39:6,40:6,33:7,34:7};return document[J]("keydown",(n=>{const i=n.keyCode;t[i]?e[t[i]]++:i>=112&&i<=123&&e[0]++})),e}function x(e,t,n,i){return Q.sqrt(Q.pow(e-t,2)+Q.pow(n-i,2))}function A(e,t,n){return Q.sqrt(Q.pow(e,2)+Q.pow(t,2)+Q.pow(n,2))}function M(e,t){let n=t-e;return n+=n>180?-360:n<-180?360:0,n}function I(e){const t=ie(e||ne.global).reduce(((e,t)=>{return e.concat(ie(ne[n=t]||n));var n}),[]).map(l);return t.length>0?t:ie(ne.global).map(l)}function C(){const e=document.querySelector('meta[name="frc-disable-eval-patching"]');return!!e&&!!e.content}function F(){const e=document.querySelector('meta[name="frc-api-endpoint"]');if(e)return e.content;const t=document.currentScript;if(t){const e=t.dataset.frcApiEndpoint;if(e)return e}const n=document.querySelector(".frc-captcha[data-api-endpoint]");if(n){const e=n.dataset.apiEndpoint;if(e)return e}}function P(){const e=window.Intl;if(!e||!e.DateTimeFormat)return;const t=new e.DateTimeFormat;return t&&t.resolvedOptions?t.resolvedOptions().timeZone:void 0}function O(e,t){const n=t.length;if(0===n)return-1;if(e<=2||1===n)return 0;const i=n-1,r=e-2;return r<=i?r:1+Math.floor(Math.random()*i)}function D(e,t,n){const i=l(e),r=l(t);let o=a(e,i)?e.slice(i.length):e;0===o.length?o="/":a(o,"/")||(o="/"+o);const s=-1===o.indexOf("?")?"?":"&";return r+o+s+"retry="+n}var T,z,N=/^((?:\w+:)?\/\/([^\/]+))/,j=class{constructor(e){this.ready=!1,this.buffer=[],this.id=e.id,this.type=e.type,this.element=e.element,this.onReady=e.onReady,this.origin=l(e.element.src)}send(e){this.ready?this.element.contentWindow.postMessage(e,this.origin):this.buffer.push(e)}setReady(e){this.onReady(),this.ready=e,this.ready&&this.flush()}flush(){for(let e=0;e<this.buffer.length;e++)this.element.contentWindow.postMessage(this.buffer[e],this.origin);this.buffer=[]}},L=class{constructor(){this.origins=new Set,this.targets={},this.answered=new Set,this.onReceiveRootMessage=()=>{},window.addEventListener("message",(e=>{this.onReceive(e)}))}listen(e){let t=this.onReceiveRootMessage;this.onReceiveRootMessage=n=>{t(n),e(n)}}addOrigins(e){e.forEach((e=>this.origins.add(e)))}send(e){if(e.from_id){const t=this.targets[e.from_id];if(!t)return void console.error(`[bus] Unexpected message from unknown sender ${e.from_id}`,e);"widget_announce"!==e.type&&"agent_announce"!==e.type||t.setReady(!0)}const t=e.rid;if(t){if(this.answered.has(t+e.to_id))return;this.answered.add(t+e.to_id)}if(""===e.to_id)return void this.onReceiveRootMessage(e);const n=this.targets[e.to_id];n?n.send(e):console.error(`[bus] Unexpected message to unknown target ${e.to_id}`,e)}onReceive(e){if(t=e.origin,n=this.origins,"*"!==t&&!n.has(t))return;var t,n;const i=e.data;i&&i._frc&&this.send(i)}registerTarget(e){this.targets[e.id]=e}registerTargetIFrame(e,t,n,i){const r=s();let o=new Promise((e=>setTimeout((()=>e("timeout")),i)));const a=new j({id:t,element:n,type:e,onReady:()=>r.resolve("registered")});return this.registerTarget(a),Promise.race([r.promise,o])}removeTarget(e){delete this.targets[e]}},W="frc_sc",V="frc_sid",X=!1,Y="0",q="__"+d(10),H=class{constructor(e){this.mem=new Map,this.storePrefix=e}get(e){const t=this.storePrefix+"__"+e;try{const e=sessionStorage.getItem(t);return null===e?void 0:e}catch(n){}return this.mem.get(e)}set(e,t){const n=this.storePrefix+"__"+e;try{void 0===t?(this.mem.delete(e),sessionStorage.removeItem(n)):(this.mem.set(e,t),sessionStorage.setItem(n,t))}catch(i){}}},$="undefined"!=typeof navigator&&void 0!==navigator.userAgentData,K={ar:{title:"التحقق من مكافحة الروبوتات",connecting:"التحقق من مكافحة الروبوتات قيد الاتصال…",retrying:"استغرق الاتصال بالتحقق من مكافحة الروبوتات وقتًا طويلاً.\n\nإعادة المحاولة…",failed:"فشل الاتصال بالتحقق من مكافحة الروبوتات."},bg:{title:"Проверка срещу роботи",connecting:"Зарежда се задачата…",retrying:"Неуспешно свързване.\n\nОпит за повторно свързване…",failed:"Неуспешно свързване."},ca:{title:"Verificació anti-robot",connecting:"Carregant el desafiament…",retrying:"Errada de conexió.\n\nReintentant…",failed:"Errada de conexió."},cs:{title:"Ověření proti robotům",connecting:"Připojování kontroly proti robotům…",retrying:"Připojení kontroly proti robotům trvalo příliš dlouho.\n\nOpakuji pokus…",failed:"Kontrola proti robotům se nepodařilo připojit."},da:{title:"Anti-robot-verifikation",connecting:"Anti-robot-kontrol forbinder…",retrying:"Anti-robot-kontrol tog for lang tid at oprette forbindelse.\n\nPrøver igen…",failed:"Anti-robot-kontrol kunne ikke oprette forbindelse."},nl:{title:"Anti-robotcheck",connecting:"Verbinden met Anti-robotcheck…",retrying:"Verbinden met Anti-robotcheck mislukt.\n\nOpnieuw aan het proberen…",failed:"Verbinden met Anti-robotcheck mislukt."},en:{title:"Anti-Robot verification",connecting:"Anti-Robot check connecting…",retrying:"Anti-Robot check took too long to connect.\n\nRetrying…",failed:"Anti-Robot check failed to connect."},fi:{title:"Robottien torjunnan vahvistus",connecting:"Robottien torjunnan tarkistus käynnissä…",retrying:"Robottien torjunnan tarkistus kesti liian kauan.\n\nYritetään uudelleen…",failed:"Robottien torjunnan tarkistus epäonnistui."},fr:{title:"Vérification anti-robot",connecting:"Connexion à la vérification anti-robot…",retrying:"La connexion à la vérification anti-robot a pris trop de temps.\n\nNouvelle tentative…",failed:"Échec de la connexion à la vérification anti-robot."},de:{title:"Anti-Roboter-Verifizierung",connecting:"Verbindung zur Anti-Roboter-Verifizierung wird hergestellt…",retrying:"Verbindung zur Anti-Roboter-Verifizierung hat zu lange gedauert.\n\nErneuter Versuch…",failed:"Verbindung zur Anti-Roboter-Verifizierung ist fehlgeschlagen."},hi:{title:"एंटी-रोबोट सत्यापन",connecting:"चुनौती लोड हो रही है…",retrying:"कनेक्शन विफल.\n\nपुनः प्रयास कर रहे हैं…",failed:"कनेक्शन विफल."},hu:{title:"Robotellenőrzés",connecting:"Robotellenőrzés csatlakozás…",retrying:"A robotellenőrzés túl sokáig tartott a csatlakozáshoz.\n\nÚjrapróbálom…",failed:"A robotellenőrzés nem tudott csatlakozni."},id:{title:"Verifikasi Anti-Robot",connecting:"Pemeriksaan Anti-Robot sedang terhubung…",retrying:"Pemeriksaan Anti-Robot memakan waktu terlalu lama untuk terhubung.\n\nMencoba lagi…",failed:"Pemeriksaan Anti-Robot gagal terhubung."},ja:{title:"ロボット防止認証",connecting:"チャレンジを読み込んでいます…",retrying:"接続失敗.\n\n再試行中…",failed:"接続失敗."},it:{title:"Verifica anti-robot",connecting:"Connessione verifica anti-robot in corso…",retrying:"La connessione alla verifica anti-robot ha richiesto troppo tempo.\n\nRiprovando…",failed:"Impossibile connettersi alla verifica anti-robot."},nb:{title:"Anti-robot-verifisering",connecting:"Laster inn utfordring…",retrying:"Klarte ikke å koble til.\n\nPrøver igjen…",failed:"Klarte ikke å koble til."},pl:{title:"Weryfikacja antyrobotowa",connecting:"Łączenie się z kontrolą antyrobotową…",retrying:"Łączenie się z kontrolą antyrobotową trwało zbyt długo. \n\nPonowna próba…",failed:"Nie udało się połączyć z kontrolą antyrobotową."},ro:{title:"Verificare anti-robot",connecting:"Se incarca testul…",retrying:"Conexiunea a esuat.\n\nReincercare…",failed:"Conexiunea a esuat."},pt:{title:"Verificação anti-robô",connecting:"Verificação anti-robô a ligar…",retrying:"A verificação anti-robô demorou demasiado tempo a ligar-se.\n\nA tentar novamente…",failed:"A verificação anti-robô não conseguiu ligar-se."},ru:{title:"Проверка антиробота",connecting:"Подключение к проверке антиробота…",retrying:"Подключение к проверке антиробота заняло слишком много времени.\n\nПовторяем попытку…",failed:"Не удалось подключиться к проверке антиробота."},sk:{title:"Overovanie proti robotom",connecting:"Pripojenie kontroly proti robotom…",retrying:"Pripojenie kontroly proti robotom trvalo príliš dlho.\n\nOpakujem pokus…",failed:"Pripojenie kontroly proti robotom sa nepod
1arilo."},sl:{title:"Preverjanje proti robotom",connecting:"Nalaganje izziva…",retrying:"Povezava ni uspela.\n\nPonovni poskus…",failed:"Povezava ni uspela."},es:{title:"Verificación antirrobot",connecting:"Conectando verificación antirrobot…",retrying:"La verificación antirrobot tardó demasiado en conectarse.\n\nReintentando…",failed:"Error al conectar la verificación antirrobot."},sv:{title:"Anti-robotverifiering",connecting:"Anti-robotverifiering ansluter…",retrying:"Anti-robotverifiering tog för lång tid att ansluta.\n\nFörsöker igen…",failed:"Anti-robotverifiering kunde inte ansluta."},th:{title:"การตรวจสอบป้องกันบอท",connecting:"กำลังโหลดการท้าทาย…",retrying:"เชื่อมต่อไม่สำเร็จ.\n\nกำลังลองใหม่…",failed:"เชื่อมต่อไม่สำเร็จ."},tr:{title:"Robot önleme doğrulaması",connecting:"Robot önleme kontrolü bağlanıyor…",retrying:"Robot önleme kontrolü bağlanmak için çok uzun sürdü.\n\nYeniden deniyor…",failed:"Robot önleme kontrolü bağlanamadı."},vi:{title:"Xác minh chống robot",connecting:"Kiểm tra robot đang kết nối…",retrying:"Kiểm tra chống robot mất quá nhiều thời gian để kết nối.\n\nĐang thử lại…",failed:"Kiểm tra chống robot không thể kết nối."},zh:{title:"反机器人验证",connecting:"反机器人验证正在连接…",retrying:"反机器人验证连接耗时过长。\n\n正在重试…",failed:"反机器人验证连接失败。"}},U=["ar","he","fa","ur","ps","sd","yi"],B="FrcFrameId",G="frc-i-agent",Z=class{constructor(e){this.state="init",this.response=".UNINITIALIZED",this.focusEventPending=!1,this.isDestroyed=!1,this.id=e.id;const t=e.createOpts;if(this.e=t.element,this.ready=e.registered,!this.e)throw new Error("No element provided to mount widget under.");this.e.frcWidget=this,this.formFieldName=void 0===t.formFieldName?"frc-captcha-response":t.formFieldName,this.sitekey=t.sitekey,this._reset=e.callbacks.onReset,this._destroy=e.callbacks.onDestroy,this._trigger=e.callbacks.onTrigger,this.startMode=e.createOpts.startMode||"focus",null!==this.formFieldName&&(this.hiddenFormEl=n(this.e,this.formFieldName)),this.setState({response:".UNCONNECTED",state:"init"}),this.ready.then((()=>{this.handleStartMode()}))}handleStartMode(){if("focus"!==this.startMode||this.focusEventPending||this.isDestroyed)"auto"===this.startMode&&this.trigger("auto");else{const n=e(this.e);n&&(this.focusEventPending=!0,t(n,(e=>{this.trigger("focus",{ev:e}),this.focusEventPending=!1})))}}reset(e={trigger:"root"}){if(this.isDestroyed)throw new Error("Can not reset destroyed widget.");this.setState({response:".RESET",state:"reset",resetTrigger:e.trigger}),this._reset(e),this.handleStartMode()}destroy(){this.isDestroyed=!0,this.hiddenFormEl&&this.hiddenFormEl.remove(),this.hiddenFormEl=void 0,this.setState({response:".DESTROYED",state:"destroyed"}),this._destroy()}trigger(e,t={}){if(this.isDestroyed)throw new Error("Can not start destroyed widget.");const n=function(e,t,n,i){const r=b(),o=n.getBoundingClientRect(),s={v:1,tt:e,pnow:r,sm:t,el:{bcr:[o.left,o.top,o.width,o.height],con:document.body.contains(n)},stack:(new Error).stack||"",we:!!window.event,weit:!!window.event&&!!window.event.isTrusted};return i&&(s.ev={ts:i.timeStamp,rt:!!i.relatedTarget,eot:!!i.explicitOriginalTarget,it:i.isTrusted}),s}(e,this.startMode,this.e,t.ev);this._trigger({trigger:n})}start(){this.trigger("programmatic")}setState(e){const t=this.state!==e.state;this.response=e.response,this.state=e.state,this.hiddenFormEl&&!1!==this.e.isConnected&&(this.hiddenFormEl.value=e.response),t&&this.dispatchWidgetEvent({name:"frc:widget.statechange",error:e.error,mode:e.mode}),"expired"===this.state?this.dispatchWidgetEvent({name:"frc:widget.expire"}):"completed"===this.state?this.dispatchWidgetEvent({name:"frc:widget.complete"}):"error"===this.state?this.dispatchWidgetEvent({name:"frc:widget.error",error:e.error}):"reset"===this.state&&this.dispatchWidgetEvent({name:"frc:widget.reset",trigger:e.resetTrigger})}dispatchWidgetEvent(e){const t={response:this.response,state:this.state,id:this.id};w(t,e),o(this.e,t)}addEventListener(e,t,n){this.e.addEventListener(e,t,n)}removeEventListener(e,t,n){this.e.removeEventListener(e,t,n)}getState(){return this.state}getResponse(){return this.response}getElement(){return this.e}},J="addEventListener",Q=Math,ee=class{constructor(e){this.rn=0,this.i=0,this.smel={n:0,ts:0,d:0};const t="mouse",n=this.smel,i=e=>{n.n||(n.fts=e.timeStamp,n.fxy=[e.clientX,e.clientY,e.screenX,e.screenY]),n.n++,e.type===t+"leave"&&(n.d+=e.timeStamp-n.ts),n.ts=e.timeStamp,n.xy=[e.clientX,e.clientY]},o=document;r((()=>{const e=o.body;
vendor: 16,171 bytes, line 1
1e[J](t+"enter",i),e[J](t+"leave",i)})),this.bh={onoff:{kdu:_("keydown","keyup"),cse:_("compositionstart","compositionend"),mdu:_(t+"down",t+"up"),mle:_(t+"leave",t+"enter"),med:_(t+"enter",t+"down",!0),semd:_("scrollend",t+"down",!0,o),se:_("scroll","scrollend",!1,o),pdc:_("pointerdown","pointercancel",!0),mmc:_(t+"move","click",!0),tse:_("touchstart","touchend"),fikd:_("focusin","keydown",!0)},nev:R([t+"out","pointercancel","focus","focusin","blur","visibilitychange","copy","paste","cut","contextmenu","click","auxclick","wheel","resize"]),nk:S(),mov:this.setupMovementMetrics(),dm:this.setupMotionMetrics(),do:this.setupOrientationMetrics()},this.dep=e.disableEvalPatching||!1,this.takeTraceRecords=function(e){const t=[],n=new Map,i=window,r=function(){try{const e=document.createElement("iframe");e.style.display="none",(document.body||document.head).appendChild(e);const t=e?e.contentWindow:0;return e.remove(),t||i}catch(e){return i}}(),o=Function.prototype.toString,s=function(...e){const t="function"==typeof this&&n.get(this),i=this===s?o:t||this;return o.apply(i,e)};Function.prototype.toString=s;const a="prototype",c=i.EventTarget?i.EventTarget[a].dispatchEvent:{},l=[["Document."+a+".documentElement",i.Document[a],"documentElement"],["Element."+a+".shadowRoot",i.Element[a],"shadowRoot"],["Node."+a+".nodeType",i.Node[a],"nodeType"],["Object.is",i.Object,"is"],["Array."+a+".slice",i.Array[a],"slice"],["Document."+a+".querySelectorAll",i.Document[a],"querySelectorAll"],["Document."+a+".createElement",i.Document[a],"createElement"],["EventTarget."+a+".dispatchEvent",c,"dispatchEvent"]];return e.disableEvalPatching||l.push(["eval",i,"eval"]),l.forEach((function([e,o,s]){const a=Object.getOwnPropertyDescriptor(o,s),c=a&&(a.get||a.set);if(!a)return;if(c){if(!a.get)return}else if("object"!=typeof a.value&&"function"!=typeof a.value)return;let l=0,d=0;const h=function(...n){const o=Date.now();if(o-l>=1e3&&(d=0,l=o),d<50){const n={d:o,pnow:b(),n:e,st:(r.Error||i.Error)("FriendlyCaptcha_DummyTrace").stack||""};t.length>2e4&&t.splice(0,1e3),t.push(n),d++}return(c?a.get:a.value).apply(this,n)};try{const e=c?a.get?a.get():void 0:a.value();e&&(h.length=e.length,h.name=e.name)}catch(g){}try{const e=w({},a);c?e.get=h:e.value=h,Object.defineProperty(o,s,e),n.set(h,c?a.get:a.value)}catch(g){}})),function(){return t.splice(0,t.length)}}(e)}setupMovementMetrics(){let e,t=[];const n=k(),i=k(),o=k(),s={t:n.s,v:o.s,d:i.s,ns:0},a=()=>{const r=t[t.length-1];if(t.length>=200||r&&(r[0]&&this.tm.timeStamp===r[1]||!r[0]&&this.mm.timeStamp===r[1])){if(clearInterval(e),e=void 0,1===t.length)return s.ns++,void(t=[]);const a=t[0];n.add(r[1]-a[1]),i.add(x(r[2],a[2],r[3],a[3]));for(let e=1;e<t.length;e++){const n=t[e],i=t[e-1],r=1e3*x(n[2],i[2],n[3],i[3]),s=n[1]-i[1];o.add(r/s)}return void(t=[])}let a=0;if(r?a=r[0]:this.mm&&this.tm?a=this.mm.timeStamp>this.tm.timeStamp?0:1:this.mm||(a=1),a){const e=this.tm.touches[0];e&&t.push([1,this.tm.timeStamp,e.screenX,e.screenY])}else t.push([0,this.mm.timeStamp,this.mm.screenX,this.mm.screenY])};let c=-1;return r((()=>{const t=document.body;t[J]("mousemove",(t=>{this.mm=t,void 0===e&&(a(),e=setInterval(a,50))})),t[J]("touchmove",(t=>{this.tm=t;const n=t.touches[0];if(n){const e=n.radiusX+1.234*n.radiusY;e!==c&&(c=e,this.rn++)}void 0===e&&(a(),e=setInterval(a,50))}))})),s}setupMotionMetrics(){const e=k(),t=k(),n={n:0,ts:0,ac:e.s,rr:t.s,i:0,g:!1};return E()?(window[J]("devicemotion",(i=>{n.ts=i.timeStamp,n.i=i.interval,n.g=!i.acceleration;const r=i.acceleration||i.accelerationIncludingGravity;r&&e.add(A(r.x,r.y,r.z));const o=i.rotationRate;o&&t.add(A(o.alpha,o.beta,o.gamma))})),n):n}setupOrientationMetrics(){const e=k(),t=k(),n={fts:0,ts:0,gd:e.s,bd:t.s};if(!E())return n;let i;return window[J]("deviceorientation",(r=>{null!=r.gamma&&null!=r.beta&&null!=r.alpha&&(n.ts=r.timeStamp,n.a=r.alpha,n.b=r.beta,n.g=r.gamma,i?(e.add(M(r.gamma,n.g)),t.add(M(n.b,r.beta))):(n.fts=n.ts,i=!0))})),n}gmm(){const e=this.mm;return e&&{xy:[e.clientX,e.clientY,e.screenX,e.screenY,e.offsetX,e.offsetY,e.pageX,e.pageY,e.movementX,e.movementY],ts:e.timeStamp}}gtm(){const e=this.tm,t=e&&e.touches,n=t&&t[0];return e&&n&&{id:n.identifier,xy:[n.clientX,n.clientY,n.screenX,n.screenY,n.pageX,n.pageY],r:[n.radiusX,n.radiusX,n.rotationAngle,n.force],n:t.length,ts:e.timeStamp,rn:this.rn}}get(e){const t=document.body,n=window,i=n.performance;return{v:1,i:++this.i,hl:history.length,fe:!!window.frameElement,dep:this.dep,wid:e,sc:parseInt(h(!1)),sid:g(),conv:0,t:{pnow:b(),pto:i&&i.timeOrigin||0,ts:Date.now()},dims:{d:[n.innerWidth,n.innerHeight,n.outerWidth,n.outerHeight,n.screenX,n.screenY,n.pageXOffset,n.pageYOffset,t.clientWidth,t.clientHeight],dpr:n.devicePixelRatio},mel:this.smel,mm:this.gmm(),tm:this.gtm(),bh:this.bh,stack:(new Error).stack||"",trc:this.takeTraceRecords()}}},te=e=>e.map((e=>`https://${e}.frcapi.com`)).join(","),ne={eu:te(["eu","eu0","eu1"]),global:te(["global","global0","global1"])},ie=e=>e.split(",").map((e=>e.trim())).filter((e=>!!e)),re="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",oe=class{constructor(e){if(this.timeout=null,this.data=null,this.e=e.element,!this.e)throw new Error("No element provided for mounting Risk Intelligence handle.");this.e.frcRiskIntelligence=this,this.formFieldName=void 0===e.formFieldName?"frc-risk-intelligence-token":e.formFieldName,null!==this.formFieldName&&(this.hiddenFormEl=n(this.e,this.formFieldName)),this.startMode=e.startMode||"focus",this.requestRiskIntelligence=e.riskIntelligence,this.handleStartMode()}handleStartMode(){if("none"===this.startMode)console.warn('Risk Intelligence <div> found with data-start="none" (no-op), skipping...',this.e);else if("auto"===this.startMode)this.request();else{const n=e(this.e);n?t(n,(()=>{this.request()})):console.warn('Risk Intelligence <div> with startMode of "focus" found without a parent <form> element, skipping...',this.e)}}request(){this.requestRiskIntelligence().then((e=>{null!==this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout((()=>{o(this.e,{name:"frc:riskintelligence.expire"})}),e.expiresAt-Date.now()),this.data={token:e.token,expiresAt:e.expiresAt},this.hiddenFormEl&&(this.hiddenFormEl.value=e.token),o(this.e,{name:"frc:riskintelligence.complete",token:e.token,expiresAt:e.expiresAt})})).catch((e=>{o(this.e,{name:"frc:riskintelligence.error",error:{code:e.code,detail:e.detail}})}))}getData(){return this.data}getElement(){return this.e}addEventListener(e,t,n){this.e.addEventListener(e,t,n)}removeEventListener(e,t,n){this.e.removeEventListener(e,t,n)}},se="FrcFrameId",ae="FrcAgentOriginKey",ce=0;window.frcaptcha=new class{constructor(e={}){if(this.agents=new Map,this.agentState=new Map,this.widgets=new Map,this._attached=s(),this.attached=this._attached.promise,this.riskIntelligencePromises=new Map,this.clearRiskIntelligencePromises=new Map,this.riskIntelligenceHandles=[],this.apiEndpoint=e.apiEndpoint,(z=z||new L).listen((e=>this.onReceiveMessage(e))),this.bus=z,++ce>1&&console.warn("Multiple Friendly Captcha SDKs created, this is not recommended. Please use a single SDK instance."),this.signals=function(e){return T||(T=new ee(e))}({disableEvalPatching:e.disableEvalPatching||C()}),e.startAgent){const e=I(this.apiEndpoint||F()),t=this.getRetryOrigins(e);this.ensureAgentIFrame(t)}this.setupPeriodicRefresh()}getRetryOrigins(e){return function(e){return 0===e.length?[]:[e[0]].concat(function(e){const t=e.slice();for(let n=t.length-1;n>0;n--){const e=Math.floor(Math.random()*(n+1)),i=t[n];t[n]=t[e],t[e]=i}return t}(e.slice(1)))}(e)}onReceiveMessage(e){if("root_set_response"===e.type){const t=this.widgets.get(e.widget_id);if(!t)return void(1===ce&&console.warn(`Received set response message for widget ${e.widget_id} that doesn't exist`));t.setState(e)}else if(a(e.type,"root_store"))this.handleStoreMessage(e);else if("root_signals_get"===e.type)this.handleSignalsGetMessage(e);else if("widget_language_change"===e.type)this.handleWidgetLanguageChange(e);else if("widget_reset"===e.type){const t=this.widgets.get(e.from_id);if(!t)return void(1===ce&&console.warn(`Received reset message for widget ${e.from_id} that doesn't exist`));t.reset({trigger:"widget"})}else a(e.type,"root_risk_intelligence")&&this.handleRiskIntelligenceMessage(e)}handleRiskIntelligenceMessage(e){if("root_risk_intelligence_generate_reply"===e.type){const t=this.riskIntelligencePromises.get(e.uid);t?(e.data?t.resolve(e.data):e.error?t.reject(e.error):console.warn("Received risk intelligence generate reply message with no data"),this.riskIntelligencePromises.delete(e.uid)):console.warn("Received risk intelligence generate reply message with no promise to resolve")}else if("root_risk_intelligence_clear_reply"===e.type){const t=this.clearRiskIntelligencePromises.get(e.uid);t?e.error?t.reject(e.error):t.resolve():console.warn("Received risk intelligence clear reply message with no promise to resolve"),this.clearRiskIntelligencePromises.delete(e.uid)}}handleWidgetLanguageChange(e){const t=this.widgets.get(e.from_id);if(!t)return void(1===ce&&console.warn(`Received language change message for widget ${e.from_id} that doesn't exist`));const n=t.getElement(),i=n.querySelector("iframe");i&&(i.title=f(e.language));const r=n.querySelector(".frc-banner");if(r){const t=r.style;m(e.language)?(t.left="6px",t.right="auto"):(t.left="auto",t.right="6px")}}handleSignalsGetMessage(e){const t=this.signals.get(e.widget_id);this.bus.send({type:"root_signals_get_reply",from_id:"",to_id:e.from_id,_frc:1,rid:e.rid,value:t})}handleStoreMessage(e){const t=e.from_id,n=this.agentState.get(t);n?"root_store_get"===e.type?this.bus.send({type:"root_store_get_reply",from_id:"",to_id:t,_frc:1,rid:e.rid,value:n.store.get(e.key),sa:!0}):"root_store_set"===e.type&&(n.store.set(e.key,e.value),this.bus.send({type:"root_store_set_reply",from_id:"",to_id:t,_frc:1,rid:e.rid,sa:!0})):console.error(`Store not found ${t}`)}ensureAgentIFrame(e){let t=1;const n=O(t,e),i=e[n],r=i+"/api/v2/captcha/agent",o=this.agents.get(i);if(o&&o.dataset[se])return o.dataset[se];let s=document.getElementsByClassName(G);for(let c=0;c<s.length;c++){const e=s[c];if(e.dataset[ae]===i&&e.dataset[se])return this.agents.set(i,e),e.dataset[se]}const a="a_"+d(12),l=function(e,t,n){const i={origin:document.location.origin,sess_id:g(),sess_c:h(!0),comm_id:t,sdk_v:"1.0.0",v:"1",agent_id:t,ts:Date.now().toString()},r=document.createElement("iframe");r.className=G,r.dataset[B]=t,r.src=n+"?"+c(i),r.frcSDK=e;const o=r.style;return o.width=o.height=o.border=o.visibility="0",o.display="none",r}(this,a,r);l.dataset[ae]=i;const u=l.src;let m=i;this.agents.set(i,l),this.agentState.set(a,{store:new H(i),origin:i}),document.body.appendChild(l);const f=()=>{this.bus.registerTargetIFrame("agent",a,l,this.getRetryTimeout(t)).then((n=>{if("timeout"===n){if(t>=5)return console.error(`[Friendly Captcha] Failed to load agent iframe after ${t-1} retries.`),l.remove(),void this.agents.delete(i);const n=t+1,r=O(n,e);m=e[r]||m,console.warn("[Friendly Captcha] Retrying agent iframe load."),l.src=D(u,m,n-1),t=n,f()}}))};return f(),a}setupPeriodicRefresh(){let e=1;setInterval((()=>{const t="&expire="+e++;this.agents.forEach((e=>{e.src+=t})),this.widgets.forEach((e=>{e.getElement().querySelector("iframe").src+=t}))}),1296e5)}getRetryTimeout(e){return 1e3*(1.5+Math.pow(e,1.8))}attach(e){const[t,n]=[document.querySelectorAll(".frc-captcha"),document.querySelectorAll(".frc-risk-intelligence")];for(let o=0;o<n.length;o++){const e=n[o];if(e&&!e.frcRiskIntelligence){const t=e.dataset,n=t.sitekey;if(!n){console.warn("Risk Intelligence <div> found with no sitekey, skipping...",e);continue}this.riskIntelligenceHandles.push(new oe({element:e,formFieldName:t.formFieldName,startMode:t.start,riskIntelligence:()=>this.riskIntelligence({sitekey:n,apiEndpoint:t.apiEndpoint})}))}}void 0===e&&(e=t),Array.isArray(e)||e instanceof NodeList||(e=[e]);const i=[];for(let o=0;o<e.length;o++){const t=e[o];if(t&&!t.frcWidget){const e=t.dataset,n={element:t,sitekey:e.sitekey,formFieldName:e.formFieldName,apiEndpoint:e.apiEndpoint,language:e.lang,theme:e.theme,startMode:e.start};i.push(this.createWidget(n))}}const r=this.getAllWidgets();return this._attached.resolve(r),this.attached=Promise.resolve(r),i}createWidget(e){function t(t){const n=(i=JSON.stringify({sdk_v:"1.0.0",sitekey:e.sitekey||"",retry:o+"",endpoint:A,ua:navigator.userAgent,tz:P()||""}),window.TextEncoder?function(e){const t=e.length;let n="";for(let i=0;i<t;i+=3){const t=e[i+0],r=e[i+1],o=e[i+2];let s="";s+=re.charAt(t>>>2),s+=re.charAt((3&t)<<4|r>>>4),s+=re.charAt((15&r)<<2|o>>>6),s+=re.charAt(63&o),n+=s}return t%3==2?n=n.substring(0,n.length-1)+"=":t%3==1&&(n=n.substring(0,n.length-2)+"=="),n}((new TextEncoder).encode(i)):"");var i;let r=".ERROR.UNREACHABLE";n&&(r+="~"+n),R.setState({state:"error",response:r,error:{code:"network_error",detail:t}})}const n=I(e.apiEndpoint||this.apiEndpoint||F()),r=this.getRetryOrigins(n);let o=1;this.bus.addOrigins(n);const a=r[O(o,r)]||n[0],u=this.ensureAgentIFrame(r),b="w_"+d(12),k=e=>{const t={from_id:b,to_id:u,_frc:1};this.bus.send(w(t,e))},E={onDestroy:()=>{k({type:"root_destroy_widget"}),this.bus.removeTarget(b),this.widgets.delete(b),e.element.innerHTML="",e.element.removeAttribute("style")},onReset:()=>{k({type:"root_reset_widget"})},onTrigger:e=>{k({type:"root_trigger_widget",trigger:e.trigger})}},_=s(),R=new Z({id:b,createOpts:e,callbacks:E,registered:_.promise});this.widgets.set(b,R);const S=function(e,t,n,i){const r=document.createElement("iframe"),o=v(i),s={origin:document.location.origin,sess_id:g(),sess_c:h(!0),comm_id:t,sdk_v:"1.0.0",v:"1",agent_id:e,lang:o,sitekey:i.sitekey||"",ts:Date.now().toString()};i.theme&&(s.theme=i.theme),$&&(r.allow="clipboard-write"),r.frameBorder="0",r.src=n+"?"+c(s),r.className="frc-i-widget",r.title=f(o),r.dataset[B]=t;const a=r.style;return a.border=a.visibility="0",a.position="absolute",a.height=a.width="100%",a.userSelect="none",a["-webkit-tap-highlight-color"]="transparent",a.display="none",i.element.appendChild(r),r}(u,b,a+"/api/v2/captcha/widget",e),x=S.src;let A=a;const M=function(e){const t=document.createElement("div");t.classList.add("frc-widget-placeholder");const n=t.style,i="dark"===e.theme||"auto"===e.theme&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches;return n.color=i?"#fff":"#222",n.backgroundColor=i?"#171717":"#fafafa",n.borderRadius="4px",n.border="1px solid",n.borderColor="#ddd",n.padding="8px",n.height=n.width="100%",n.fontSize="14px",n.boxSizing="border-box",y(n),e.element.appendChild(t),t}(e);!function(e){const t=i;t(e,"position","relative"),t(e,"height","70px"),t(e,"padding","0"),t(e,"width","316px"),t(e,"maxWidth","100%"),t(e,"maxHeight","100%"),t(e,"overflow","hidden"),t(e,"borderRadius","4px")}(e.element),function(e){const t=document.createElement("div");t.classList.add("frc-banner");const n=v(e),i="dark"===e.theme||"auto"===e.theme&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches;let r="#565656",o="#a2a2a2";i&&(r="#a2a2a2",o="#565656");const s=t.style;s.position="absolute",s.bottom="6px",m(n)?s.left="6px":s.right="6px",s.lineHeight="1";const a=document.createElement("a");a.href="https://friendlycaptcha.com",a.rel="noopener";const c=a.style;y(c),c.color=r,c.fontSize="10px",c.userSelect="none",c.textDecorationLine="underline",c.textDecorationThickness="1px",c.textDecorationColor=o,c.letterSpacing="-0.0125rem",a.target="_blank",a.textContent="Friendly Captcha",a.onmouseenter=()=>c.textDecorationColor=r,a.onmouseleave=()=>c.textDecorationColor=o,t.appendChild(a),e.element.appendChild(t)}(e);let C=v(e);m(C)&&(e.element.dir="rtl");const T=M.style;M.textContent=p(C,"connecting");const z=()=>{this.bus.registerTargetIFrame("widget",b,S,this.getRetryTimeout(o)).then((n=>{if("timeout"===n){if(o>=5)return console.error(`[Friendly Captcha] Failed to load widget iframe after ${o-1} retries.`),t("Widget load timeout, stopped retrying"),T.borderColor="#f00",T.fontSize="12px",void function(e,t,n){const i=[((e,t)=>{const n=document.createElement("a");n.href=e,n.target="_blank",n.rel="noopener",n.textContent=t;
vendor: 2,240 bytes, lines 1-13
1const i=n.style;return y(i),i.textDecoration="underline",i.color="#565656",n.onmouseenter=()=>i.textDecoration="none",n.onmouseleave=()=>i.textDecoration="underline",n})(`${t}/connectionTest`,p(n,"failed"))];e.textContent="",i.forEach((t=>e.appendChild(t)))}(M,l(S.src),C);const e=o+1,n=O(e,r);A=r[n]||A,T.backgroundColor="#fee",T.color="#222",M.textContent=p(C,"retrying")+` (${o})`,console.warn(`[Friendly Captcha] Retrying widget ${b} iframe load.`),t("Widget load timeout, will retry"),S.src=D(x,A,e-1),o=e,z()}else"registered"===n&&(e.element.removeChild(M),S.style.display="")}))};return z(),_.resolve(),R}riskIntelligence(e){const t=I(e.apiEndpoint||this.apiEndpoint||F()),n=this.getRetryOrigins(t);this.bus.addOrigins(t);const i=this.ensureAgentIFrame(n),r=d(8);this.bus.send({type:"root_risk_intelligence_generate",to_id:i,from_id:"",_frc:1,sitekey:e.sitekey,bypassCache:e.bypassCache||!1,uid:r});const o=s();return this.riskIntelligencePromises.set(r,o),o.promise}clearRiskIntelligence(e){const t=I((null==e?void 0:e.apiEndpoint)||this.apiEndpoint||F()),n=this.getRetryOrigins(t);this.bus.addOrigins(t);const i=this.ensureAgentIFrame(n),r=d(8);this.bus.send({type:"root_risk_intelligence_clear",to_id:i,from_id:"",_frc:1,sitekey:null==e?void 0:e.sitekey,uid:r});const o=s();return this.clearRiskIntelligencePromises.set(r,o),o.promise}getAllWidgets(){const e=[];return this.widgets.forEach((t=>{e.push(t)})),e}getWidgetById(e){return this.widgets.get(e)}getAllRiskIntelligenceHandles(){const e=[];return this.riskIntelligenceHandles.forEach((t=>{e.push(t)})),e}clear(){this.widgets.forEach((e=>{e.destroy()})),this.agents.forEach((e=>{e.remove()})),this.agents.clear()}},r((function(){window.frcaptcha.attach()}))})();
2/*!
3 * Copyright (c) Friendly Captcha GmbH 2023.
4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
7 */
8/*!
9 * Copyright (c) Friendly Captcha GmbH 2026.
10 * This Source Code Form is subject to the terms of the Mozilla Public
11 * License, v. 2.0. If a copy of the MPL was not distributed with this
12 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
13 */

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.