PageSourceSearch

https://kestava.fi/

html kestava.fi collected 2026-10-02 01:53:17 UTC 126,362 bytes, 941 lines download raw bytes

1
2
3<!DOCTYPE html>
4<html lang="en">
5<head>
6    <meta charset="utf-8" />
6<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info = {"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"45c079d520","applicationID":"6255458","transactionName":"YlwBMktRXRdUWkUPWlsWLjB6H2MFUlxCJVpbTREJVVxWFhpxXgtQ","queueTime":0,"applicationTime":607,"agent":"","atts":""}</script>
6<script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={xpid:"UAYPV1BXGwUCUVRWAgk=",licenseKey:"45c079d520",applicationID:"6255458",browserID:"6255500"};;/*! For license information please see nr-loader-full-1.322.0.min.js.LICENSE.txt */
7(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.322.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
7e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
7const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>S,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
7if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,R(e,t)}function R(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function w(e,t,r,n,i){if(R(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(w(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(w(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function S(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let R=0,w=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(R=R>0?Math.min(R,e):e),t&&(w=w>0?Math.max(w,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return R>0?Math.min(e,R):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return w>0?Math.max(e,w):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
7o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
7(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
7;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({95:"nr-full-compressor",222:"nr-full-recorder",649:"nr-full-iframe-message-handler",89
71:"nr-full"}[e]+"-1.322.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.322.0.PROD:";r.l=(n,i,s,a)=>{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={891:"sha512-YFF+tf82v8eglmCSz5XYYPZ9svAEVPEL8CjIs/VJ5WDjxajLkBKoCp6iBhqtcYRu8v8sXwAWX58PGV4RVzB2dQ==",222:"sha512-y0XrI32v2ZxZdktMLngwYUsETp/i/aYkdx9JOeIAmr2KYJdlDneMKYdNwPaZiOX3gb7AXywTby7jg1okwEkArw==",95:"sha512-WtCe89dmBu8YGhCnszRdHzYCzOqwTSeitVhY/ahmZczjI+0C6KOazsnU/vPsTDaM7VSG+iZW7zidI1t5+hpiYQ==",649:"sha512-AYJxsYTPRDF5tWSm4lWONX5VM69Ou9twLFZ8apchUI9gNOrXBkzP8QZ+PQkMz8nGjh/7oVMR+1cA+5dWFYhmmw=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={85:0,959:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.322.0.PROD"]=self["webpackChunk:NRBA-1.322.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
7ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var R=r(9232);var w=r(7836),T=r(3241);const S={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var A=r(9908),x=r(9752);function _(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,S)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:R.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=w.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,A.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var O=r(1863),k=r(4261),L=r(1738);var M=r(1687),P=r(4234),N=r(5289),j=r(5270),I=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends P.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,M.Ak)(e,this.featureName),t()}))}):(0,M.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
7{if((0,I.V)(e.init))try{const{setupAgentSession:t}=await r.e(891).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,A.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(649).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(891).then(r.bind(r,6589)),r.e(891).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,M.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,M.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,N.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,j.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}_(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,L.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,A.p)("api-"+k.Fw,[(0,O.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(891).then(r.bind(r,908)):r.e(891).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,N.sB)(t=>{e(t,"DOMContentLoaded")}),(0,N.GG)(t=>{e(t,"load")}),(0,N.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),_(this,e,e.loaderType||"agent"),t=this,(0,L.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,L.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,L.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,A.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,L.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,L.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,L.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,L.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,L.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,A.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,A.p)("docHidden",[(0,O.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,A.p)("winPagehide",[(0,O.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(891).then(r.bind(r,9018))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(891).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,O.t)()){"string"==typeof e&&(e=new Error(e)),(0,A.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,A.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,O.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,O.t)()){(0,A.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,O.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
7null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,A.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,O.t)()){(0,A.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,O.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,O.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,O.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const Re=["entry","scripts","all"],we=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Se={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Ae(e){(0,L.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Se.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=R.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:R.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||Re.includes(r.timingMethod)||(Se.invalidTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||R.f.BA,"parent.id":r.parent?.id})}
7),Object.entries(r.tags).forEach(([e,t])=>{we.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Se.disabled),u(r.id)&&u(r.name)||d(()=>Se.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Se.duplicateName(r),n===r.id&&t!==r.name&&Se.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Se.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,O.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
7imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,O.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,A.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class _e extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,L.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,L.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,L.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Ae(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,A.p)("ierr",[ee(t),(0,O.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,A.p)("err",[te(t),(0,O.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,A.p)("err",[re(t),(0,O.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(891).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var Oe=r(8990);let ke=1;function Le(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,Oe.I)(e,"nr@id",function(){return ke++})}function Me(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Pe=r(8139),Ne=r(3434),je=r(5732);const Ie={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||w.ee;const n=function(e){return(e||w.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(Ie[n.debugId]++)return n;Ie[n.debugId]=1,(0,Pe.u)(r,t);var i=(0,Ne.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,je.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||w.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,je.$5)(t);var o;r.emit(i+"before-start",[e],n),n[w.P]&&n[w.P].dt&&(o=n[w.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
7return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s=(0,ye.ZF)(),a=(0,ye.el)(),o=Date.now(),c={spanId:s,traceId:a,timestamp:o};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,a),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,o,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,a,o,r,n,i)),c}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,A.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=S,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){_(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Me(i);a&&(n.txSize=a)}this.startTime=(0,O.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
7!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Le(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Le(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,O.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,O.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,O.t)()-this.xhrCbStart,this.onload,t],t)}function R(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function w(e,t){this.params={},this.metrics={},this.startTime=(0,O.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Me(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,O.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Me(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function S(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):_(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Me(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function _(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Me(e.response):"text"===r||""===r||void 0===r?Me(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,A.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",R),r.on("fetch-start",w),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(891).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||w.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Ne.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,L.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,A.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,A.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,L.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,A.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
7if(!(0,I.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Pe.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,O.t)()}),this.eventsEE.on(pt,function(e,r){(0,A.p)("bst",[e[0],r,this.bstStart,(0,O.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,O.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,A.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,A.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(891).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,L.Y)(k.CH,function(){(0,A.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,L.Y)(k.Tb,function(){(0,A.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,j.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(891).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,A.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,j.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(891),r.e(222)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var Rt=r(981);const wt={},Tt=new Set;function St(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class At{constructor(e,t){this.timestamp=(0,O.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class xt extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,L.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,L.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Ae(e),function(e){(0,L.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(wt[r.debugId]++)return r;wt[r.debugId]=1,(0,V.G)(()=>{const e=(0,O.t)();Tt.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
7class n extends WebSocket{static name=Rt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new At(e[0],e[1]),this.targets=(0,je.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,O.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),Tt.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=St(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,O.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,Tt.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=St(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,A.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,A.p)("spv",[_t(e),(0,O.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,A.p)("spv",[_t(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,A.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
7h(e=>{const t=(0,C.s)(e=>{(0,A.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,A.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,A.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,A.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,A.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(891).then(r.bind(r,8019))):this.deregisterDrain()}}function _t(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Ot=r(2646);const kt=new Map;function Lt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||w.ee).get("logger")}(e),o=(0,Ne.YM)(a,void 0,s),c=new Ot.y(w.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Ne.Jt]||t[r];return kt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>kt.get(d),void 0,!0),a}var Mt=r(1910);class Pt extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,L.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,L.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Lt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Ae(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Mt.i)(g.gm.console[t]),Lt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(891).then(r.bind(r,5288)))}}new F({features:[K,G,vt,Et,nt,Y,_e,xt,Pt],loaderType:"pro"})})()})();</script>
7
8    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
9    <title>Kest&#228;v&#228;</title>
10    <meta property="og:title" content="Kest&#228;v&#228;" />
11    <meta name="twitter:title" content="Kest&#228;v&#228;">
12
13    <link rel="shortcut icon" href="/favicon.ico" />
14    <meta name="description" content="" />
15    <meta property="og:description" content="" />
16    <meta name="twitter:description" content="">
17    <!-- CSS -->
18<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" rel="stylesheet" type="text/css" />
19
20<link href="/v2/scripts/vendor/bootstrap/dist/css/bootstrap.min.css?v=1" rel="stylesheet" />
21<link href="/v2/scripts/vendor/bootstrap/dist/css/bootstrap-xl.css" rel="stylesheet" />
22<link href="/v2/scripts/vendor/bootstrap-jasny/dist/extend/css/jasny-bootstrap.min.css" rel="stylesheet" />
23<link href="/v2/scripts/vendor/select2/select2.css" rel="stylesheet" type="text/css" />
24<link href="/v2/scripts/vendor/select2/select2-bootstrap.css" rel="stylesheet" type="text/css" />
25<link href="/v2/scripts/vendor/nprogress/nprogress.css" rel="stylesheet" />
26<link href="/v2/scripts/vendor/toastr/toastr.css?v=2.0.3" rel="stylesheet" type="text/css" />
27<link href="/v2/scripts/vendor/jquerytimepicker/css/jquery.timepicker.css?v=1.82" rel="stylesheet" />
28<link rel="stylesheet" href="https://use.fontawesome.com/releases/v6.4.2/css/all.css">
29<link rel="stylesheet" href="https://use.fontawesome.com/releases/v6.4.2/css/v4-shims.css">
30<link href="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.0/css/jquery.dataTables.min.css" rel="stylesheet" type="text/css" />
31<link href="/v2/scripts/vendor/bootstrap-switch/css/bootstrap-switch.min.css" rel="stylesheet" />
32<link rel="stylesheet" type="text/css" href="/fonts/Nexa/style.css" />
33<link href="/v2/scripts/css/bundle?v=mMqw_clQTTnYkcQ4cGdZyGDoPuFBV_H8yJluP2TYr741" rel="stylesheet"/>
34
35
36<link href="https://kendo.cdn.telerik.com/2017.1.223/styles/kendo.common.min.css" rel="stylesheet"/>
37
38<link href="https://kendo.cdn.telerik.com/2017.1.223/styles/kendo.material.min.css" rel="stylesheet"/>
39
40<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
41<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
42<!--[if lt IE 9]>
43    
43<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
43
44    
44<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
44
45<![endif]-->
46
47    
48    <link href="/bundles/themes/css/fullfitness?v=qt6Y7apbe-iay-irXl6myfPoppfZUDBUW_Cd8uVs8uA1" rel="stylesheet"/>
49
50    
51
52<style>
53
54H1, H2, H3, H4, H5, H6, H7, H1 A:Link, H2 A:Link, H3 A:Link, H4 A:Link, H5 A:Link, H6 A:Link, H7 A:Link
55{
56    color: #021E3A!important;
57}
58.btn.btn-primary
59{
60    background-color:#00AEEF!important;
61    color: #ffffff!important;
62}
63
64.default-loading-spinner div:nth-child(1) {
65    border-color: #00AEEF!important;
66}
67
68.btn.btn-primary:hover, .btn.btn-primary:active, .btn.btn-primary.active, .btn.btn-primary.disabled, .btn.btn-primary[disabled]
69{
70    background-color:#00AEEF!important;
71    color: #ffffff!important;
72}
73
74.tt-button.p-button-primary {
75    background-color: #00AEEF;
76    color: #ffffff;
77    border-color: #00AEEF;
78}
79
80/* Override PrimeVue :enabled:hover styles */
81.tt-button.p-button-primary:enabled:hover,
82.tt-button.p-button-primary:enabled:active,
83.tt-button.p-button-primary:focus {
84    background-color: #00AEEF;
85    border-color: #00AEEF;
86    color: #ffffff;
87    filter: brightness(90%);
88}
89.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus {
90    color: #ffffff!important;
91    background-color:#00AEEF!important;
92}
93
94.dropdown-menu>li.active a,.dropdown-menu>li.active a:hover,.dropdown-menu>li.active a:focus {
95    background-color:#00AEEF!important;
96}
97
98.btn.btn-primary:hover, .btn.btn-primary:active, .btn.btn-primary.active, .btn.btn-primary.disabled {
99    opacity: 0.9;
100}
101.btn.btn-primary[disabled]{
102    opacity: 0.6;
103}
104
105.widget-header, .side-box H5, .gallery .item .details .action.resource-item
106{
107    background-color: #00AEEF!important;
108    border-color: #00AEEF!important;
109    color: #ffffff!important;
110}
111
112.panel.panel-primary > .panel-heading:not(.no-brand-panel-heading) {
113  background-color: #00AEEF!important;
114  border-color: #00AEEF!important;
115}
116
117.panel.panel-primary > .panel-heading H3, .panel.panel-primary > .panel-heading a {
118  color: #ffffff!important;
119}
120
121.panel.panel-primary > .panel-footer, .cta-block, .cta-block .k-widget.k-editor.k-editor-inline {
122  background-color: #00AEEF!important;
123  border-color: #00AEEF!important;
124  color: #ffffff!important;
125}
126
127.cta-block .btn,.cta-block .btn.tilt-themed-button,.cta-block .btn.btn-primary.tilt-themed-button{
128    color: #ffffff!important;
129    background-color: #00AEEF!important;
130    border: 1px solid #ffffff!important;
131}
132
133.cta-block p,.cta-block H1, .cta-block H1, .cta-block H2, .cta-block H3, .cta-block H4, .cta-block H5,
134    .cta-block H6, .cta-block H7, .cta-block H1 A:Link, .cta-block H2 A:Link,
135    .cta-block H3 A:Link, .cta-block H4 A:Link, .cta-block H5 A:Link, .cta-block H6 A:Link, .cta-block H7 A:Link {
136    color: #ffffff!important;
137}
138.k-event, .k-task-complete, .k-scheduler .k-header .k-button, .k-scheduler .k-header li, .k-scheduler .k-header, .k-scheduler .k-header .k-link {
139  color: #ffffff!important;
140  background-color: #00AEEF!important;
141  border-color: #00AEEF!important;
142}
143
144.event-template a, .event-template a:active, .event-template a:visited{
145  color: #ffffff!important;
146}
147
148.search .btn-search {
149  color: #ffffff!important;
150}
151.search .btn-search:hover, .search .search-form, .search .btn-search, .resource-card-cover {
152  background-color: #00AEEF!important;
153
154}
155
156.search .search-form,  .search .search-form H5, .search .btn-search {
157  color: #ffffff!important;
158}
159
160.services .services-icon {
161	color: #00AEEF!important;
162}
163
164.color-header { color: #00AEEF!important;}
165.headline h2,
166.headline h3,
167.headline h4 {
168	border-bottom-color: #00AEEF!important;
169}
170
171
172</style>
173
174
175    <style>
176        body{
177            background-color: #ffffff;
178            color: #7F7F7F;
179        }
180
181        p
182        {
183            color: #7F7F7F!important;
184        }
185
186        .content, .tt-widget-panel, .well, .content-container{
187            background-color: #ffffff!important;
188        }
189
190        a.publicMenuItem {
191        color: #021E3A!important;
192        }
193
194        .publicMenuItem:hover, .dropdown.open .publicMenuItem {
195            color: #333!important;
196        }
197
198        .inverse-navigation.navbar-inverse a.publicMenuItem {
199            color: #ffffff!important;
200        }
201
202        .fullfitness-navigation .login-button-container .btn,.fullfitness-navigation .login-button-container .btn:hover {
203            border-color: #ffffff!important;
204            color: #ffffff!important;
205        }
206
207        .inverse-navigation.navbar-inverse {
208            background-color: #021E3A;
209            border-color: #021E3A;
210        }
211
212        
213    </style>
214
215    <style>
216        /* This media query overrides hiding the video on mobile */
217@media (max-width: 767px) {
218    .video-banner .iframe-container{
219        display: inline!important;
220    }
221    .video-banner .video-banner-image-fallback {
222        display: none!important;
223    }
224}
225
226/* Override the background color of the banner */ 
227.video-banner {
228    background-color: #021E3A;
229}
230
231/* FAQ - buttons, questions and answers */
232.faq-item {
233    margin-bottom: 20px;
234}
235
236.question-container {
237    display: flex;
238    align-items: baseline;
239    justify-content: left;
240}
241
242.question-container > i {
243    font-size:1.7em;
244}
245
246.question-container > h3 {
247    margin-left: 30px;
248}
249
250.question-container > button {
251    margin-left: 20px;
252}
253
254.answer {
255    margin-top: 10px;
256    background-color: #f9f9f9;
257    padding: 10px;
258    border-left: 3px solid #00AEEF;
259}
260    </style>
261
262
263</head>
264<body>
265    <div class="website-wrapper">
266        <!-- HEAD NAV -->
267
268    <div class="navigation-container">
269        <div class="container main-container fullfitness-navigation">
270            
271<header class="navbar inverse-navigation navbar-inverse navbar-fixed-top" id="navbar-fixed-top">
272    <div class="container flex-menu-container">
273        <div class="navbar-header">
274            <div class="navbar-brand">
275                <div class="tenant-logo-container logo-container">
276    <div style="padding-top: 2px;"><a href="/"><img class="tenant-logo img-responsive" alt="Kest&#228;v&#228; Logo" src='https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/Kestava_white.png?version=2' /></a></div>
277    
278</div>
279
280
281    
282
283
284
285
286
287            </div>
288                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-nav">
289                    <span class="sr-only">Toggle navigation</span>
290                    <span class="icon-bar"></span>
291                    <span class="icon-bar"></span>
292                    <span class="icon-bar"></span>
293                </button>
294        </div>
295            <nav id="main-nav" class="collapse navbar-collapse">
296                <div class="pull-right">
297                    <ul class="nav navbar-nav">
298                        
299
300        <li>
301            <a href="/coaching" class="publicMenuItem">
302                <span>Valmennus</span>
303            </a>
304        </li>
305        <li>
306            <a href="/signup" class="publicMenuItem">
307                <span>J&#228;senyys</span>
308            </a>
309        </li>
310        <li>
311            <a href="/store" class="publicMenuItem">
312                <span>Kauppa</span>
313            </a>
314        </li>
315        <li>
316            <a href="/articles" class="publicMenuItem">
317                <span>Artikkelit</span>
318            </a>
319        </li>
320        <li>
321            <a href="/about" class="publicMenuItem">
322                <span>Meist&#228;</span>
323            </a>
324        </li>
325        <li>
326            <a href="/contact" class="publicMenuItem">
327                <span>Ota yhteytt&#228;</span>
328            </a>
329        </li>
330 
331
332                    </ul>
333                    <ul class="nav navbar-nav navbar-right login-button-container">
334                        
335
336        <a class="btn btn-primary tilt-themed-button login-button" href="/login"><i class="fa fa-lock"></i> Client login</a>
337
338                    </ul>
339                </div>
340            </nav>
341    </div>
342</header>
343
344        </div>
345    </div>
346
347    
348
349    <div class="video-banner-container">
350        <div class="video-banner  carousel-height">
351            
352            <div class="video-banner-image-fallback coverBackgroundImageSettings" style="background: url('https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/banner-images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/1_LandingPage.jpg') no-repeat center center;width: 100%;"></div>
353            <div class="iframe-container">
354                <iframe src="https://player.vimeo.com/video/997657188?muted=1&amp;autoplay=1&amp;loop=1&amp;autopause=0&amp;transparent=1&amp;controls=0&amp;player_id=0&amp;app_id=58479" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="" allow="autoplay; fullscreen"></iframe>
355            </div>
356
357
358
359                    
360           
361
362
363
364
365
366        </div>
367        <!-- https://player.vimeo.com/video/135335257?autoplay=true -->
368    </div>
369<style>
370    ;
371</style>
372
373
374
375    <div class="row">
376    <div class="col-md-12">
377        <div class="Zevero_ContentPanel" baseimagepath="https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/" style="position:relative;">
378            <div id="53baff5a-e307-4151-bc2a-91fe3a9e1379" contentkey="53baff5a-e307-4151-bc2a-91fe3a9e1379" class="contentContainer secondaryContentDiv editable-html">
379                
380            </div>
381
382        </div>
383    </div>
384</div>
385
386        <!-- END: HEAD NAV -->
387        <!-- BODY -->
388        
389
390<div class="body">
391    <main>
392        <!-- CONTENT -->
393        <div class="main-website-content" id="first-content">
394            <div class="container main-container content-container">
395                
396
397
398
399
400
401
402
403<div class="row">
404    <div class="col-md-12">
405        <div class="Zevero_ContentPanel" baseimagepath="https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/" showdefaultfullpagecontent="showdefaultfullpagecontent" style="position:relative;">
406            <div id="4c1b7e40-90b7-11e0-91e4-0800200c9a66" contentkey="4c1b7e40-90b7-11e0-91e4-0800200c9a66" class="contentContainer secondaryContentDiv editable-html">
407                <div class="is-section is-box is-bg-grey"><div class="is-boxes"><div class="is-box-centered"><div class="is-container is-builder container-fluid" id="contentareaQqdrV" style=""><div class="row"><div class="col-md-12 center"><div class="display"><h1 style="font-size:3.5em;" id="maintitle">TEKEE SINULLE HYVÄÄ</h1></div><p></p></div></div>
408<div class="row"><div class="col-md-12"><div class="row margin-bottom-30"><div class="col-md-4"><div class="services"><img alt="Triangle with text." height="46" src="https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/TriangleIloSySi.png" style="float:left;" width="64"><div class="desc"><h4>Laadukas</h4><p>Ammattitaitoinen valmennus, joka perustuu vankkaan kokemukseen ja ajantasaiseen tietoon.</p></div></div></div><div class="col-md-4"><div class="services"><img alt="Triangle with text." height="46" src="https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/TriangleIloSySi.png" style="float:left;" width="64"><div class="desc"><h4>Motivoiva</h4><p>Innostava ja kannustava ilmapiiri pitää sinut sitoutuneena tavoitteisiisi.<br></p></div></div></div><div class="col-md-4"><div class="services"><img alt="Triangle with text." height="46" src="https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/TriangleIloSySi.png" style="float:left;" width="64"><div class="desc"><h4>Yksilöllinen</h4><p>Valmentautuminen muokkautuu sinun tavoitteiden, tarpeiden ja kykyjen mukaan.</p></div></div></div></div></div></div><div class="row"><div class="col-md-6"><img alt="Athlete at the finish line" class="img-responsive img-full" src="https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/athlete_at_thefinishline.png" style="display:block;margin-left:auto;margin-right:auto;width:100%;"></div><div class="col-md-6"><h3>Kestävä - &nbsp;kohti parastasi</h3><p>Kestävä tarjoaa valmennusta, jonka tavoitteena on läpi elämän jatkuva kestävyys, hyvä fyysinen terveys ja iloinen mieli.</p><p>Olipa haaveenasi ennätys täydenmatkan triathlonissa tai kymmenen kilometrin juokseminen yhteenmenoon, me suhtaudumme unelmaasi intohimoisesti. Kestävä on valmis auttamaan sinua kohti omaa parastasi.</p><p>Kestävä valmennuksessa huomioidaan paitsi kestävyysharjoittelu, myös lihaskuntoharjoittelu ja terveellinen ravitsemus, sillä nämä kaikki ovat oleellisia palasia kohti kokonaisvaltaista kestävyyttä. Valmennuksessamme voit tarpeen mukaan myös painottaa jotain edellä mainittua osa-aluetta.</p><div style="margin:1em 0 2.5em;">
408<a class="btn btn-primary btn-lg edit" href="/coaching" title="" style="border-radius:50px">Tutustu valmennukseen</a>
409
410 </div></div></div><div class="row"><div class="col-md-12"><hr></div></div><div class="row"><div class="col-md-12 center"><h1>Asiakkailtamme</h1></div></div><div class="row"><div class="col-md-4 center"><div class="padding-20"><i class="icon ion-quote size-32" style="color:#808080;"></i><p>Eipä uskoisi tämän hetkisestä olotilasta, että edellispäivä suoritin puolimatkan ja vielä muuten alle unelmatavoitteeni joka oli 6h alitus! 🤩 Tästä on niin kiva jatkaa treenejä ja aktiivista elämää.</p><p><b>Nainen,</b>&nbsp;36 v.</p></div></div><div class="col-md-4 center"><div class="padding-20"><i class="icon ion-quote size-32" style="color:#808080;"></i><p>Kaisa muutti kyllä minun elämän ihan täysin. Valmennus, no tulokset puhuu puolestaan. Paras aika juoksun puolikkaalla on 2h ja nyt tehtiin uinti ja pyöräily niin sen jälkeen 1h51min. Ruokavalio valmennus oli ihan parasta, paino tippui ja sokerit pysyy hyvällä tasolla. Tuhannesti kiitos Kaisalle!.</p><p><b>Mies,</b>&nbsp;54 v.</p></div></div><div class="col-md-4 center"><div class="padding-20"><i class="icon ion-quote size-32" style="color:#808080;"></i><p>Olin jo pariin otteeseen heittämässä hanskat kokonaan tiskiin tämän kauden osalta, mutta Kaisan tsemppaus ja ryhmän hienojen kisafiilisten lukeminen sai vielä yrittämään. Ja sitten Kaisa taikoi aivan maagisen treeniohjelman heinäkuulle tähtäimenä tämä Turun puolikas. Oli aika rankka setti, mutta se kannatti! Fiilikset täällä edelleen aivan katossa. Ilman Kaisan treeniohjelmaa ja ryhmän positiivista meininkiä olisi jäänyt tekemättä. Eli kiitos teille!.</p><p><b>Mies,</b>&nbsp;46 v.</p></div></div>
411<div class="col-md-4 center"><div class="padding-20"><i class="icon ion-quote size-32" style="color:#808080;"></i><p>Tällä saa kyllä seuraavan stepin treenaamiseen ja hyvinvointiin. Vaikka olen vasta lähtökuopissa, niin hyviä vaikutuksia huomaa jo nyt.</p><p><b>Mies,</b>&nbsp;40 v.</p></div></div><div class="col-md-4 center"><div class="padding-20"><i class="icon ion-quote size-32" style="color:#808080;"></i><p>Iso kiitos Kaisalle jo nyt ja matka jatkuu! Vuosi sitten tänä päivänä olisin nauranut ääneen, jos joku olisi kertonut minu
411n osallistuvan triathlon kisaan.</p><p><b>Nainen,&nbsp;</b>47 v.</p></div></div><div class="col-md-4 center"><div class="padding-20"><i class="icon ion-quote size-32" style="color:#808080;"></i><p>Jaksoin hyvin kaikki elämäni kovimman harjoitusjakson treenit, kun opin ennakoimaan kovia treenipäiviä ruokailuissa jo etukäteen ja syömään oikean määrän oikeanlaista ravintoa myös treenien aikana.</p><p><b>Nainen,</b>&nbsp;38v.</p></div></div></div><div class="row"><div class="col-md-12"><hr></div></div><div class="row"><div class="col-md-12 center">
412            <h1>Usein kysytyt kysymykset</h1>
413        </div></div><div class="row"><div class="col-md-12">
414        <div class="faq-item">
415            <div class="question-container">
416                <i class="fa-solid fa-question" style="color:#021E3A"></i>
417               <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">Vastaus</button>
418                <h3>Kenelle valmennus sopii?</h3>
419            </div>
420            
421            <div class="answer" style="display:none;">
422             <p>Kestävä valmennus sopii kaikille, jotka haluavat treenata monipuolisesti kestävyysliikuntaa ja toivovat harrastamisen tueksi ammattitaitoista ja innostavaa valmennusta. Valmennuksessa on useita eri tasoja ja se sopii siis sekä aloittelijoille että koviin tuloksiin tähtääville kokeneille harrastajille.</p>                                                
423
424            </div>   
425        </div>
426</div></div>
427    
428<div class="row"><div class="col-md-12">
429            <div class="faq-item">
430            <div class="question-container">
431                <i class="fa-solid fa-question" style="color:#021E3A"></i>
432                <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">Vastaus</button>
433                <h3>Miten voin aloittaa?</h3>
434            </div>
435
436            <div class="answer" style="display:none;">
437
438                <p>Paras tapa aloittaa Kestävä valmennus on osallistua veloituksettomaan Pohja harjoitusjaksoon. Jakso kestää kaksi viikkoa, mutta voit suorittaa sen myös hitaammin korkeintaan kuukauden sisällä. Jakson aikana opit tärkeitä asioita kestävyysharjoitelusta ja pääset käsiksi Kestävä valmennuksen tyyliin.</p><p>Mikäli olet aikaisemmin ollut mukana Kaisan triathlonvalmennuksessa, voit myös suoraan ilmoittautua haluamaasi valmennukseen. Valmennuksen voi aloittaa koska tahansa, mutta mikäli tulet mukaan kesken kauden, ole yhteyksissä valmentajaan ja voitte miettiä yhdessä, tarvitsetko erillistä tukea harjoittelun alussa.<br></p>
439
440            </div>   
441        </div>
442</div></div><div class="row"><div class="col-md-12">
443        <div class="faq-item">
444            <div class="question-container">
445                <i class="fa-solid fa-question" style="color:#021E3A"></i>
446                <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">Vastaus</button>
447                <h3>Miten paljon pitää olla harjoitellut, jotta voi tulla mukaan valmennukseen?</h3>
448            </div>
449
450            <div class="answer" style="display:none;">
451                <p>Valmennuksessa on useita eri tasoja ja ohjelmia, joten se sopii niin kokeneille harrastajille kuin myös aloittelijoille.</p><p></p>
452
453            </div>   
454        </div>
455</div></div><div class="row"><div class="col-md-12">
456         <div class="faq-item">
457            <div class="question-container">
458                <i class="fa-solid fa-question" style="color:#021E3A"></i>
459                <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">Vastaus</button>
460                <h3>Mikä Kestävä valmennus sopii minulle parhaiten?</h3>
461            </div>
462
463            <div class="answer" style="display:none;">
464                <p><i>Oleellinen</i> valmennus sopii sinulle, mikäli kaipaat ammattitaitoista ja motivoivaa valmennusta ja olet valmis tarpeen mukaan itse sovittamaan valmennusohjelmaa omiin tarpeisiisi ja aikatauluihisi. Toki valmentaja antaa sinulle tarvittaessa myös <i>Oleellisessa</i> neuvoja, mutta hän ei ole jatkuvasti tukenasi ohjelman muokkaamisessa.</p><p><i>Yksilöllinen</i> valmennus sopii sinulle, mikäli kaipaat valmentajan tukea ohjelman luomisessa juuri sinun tarpeisiisi, mutta sinulle riittää, että valmentaja seuraa harjoitteluasi noin viikon välein. Jos esimerkiksi käyt vuorotöissä tai 
464sinulla on rajoitteita, jotka vaikuttavat isosti harjoitteluun, on <i>Yksilöllinen</i> hyvä vaihtoehto. Tämä valmennus saattaa myös olla tarpeen yksittäisen kuukauden / kuukausien ajaksi, mikäli esimerkiksi tähtäät johonkin tapahtumaan, johon <i>Oleellinen</i> ohjelma ei tähtää, etkä halua käyttää valmistautumisessa valmista triathlonin puolimatkalle tai täysmatkalle tähtäävää harjoitusjaksoa. Toisaalta voit ottaa Yksilöllisen myös yksittäiseksi kuukaudeksi vaikkapa silloin, jos sinulla on loma ja tavallista enemmän aikaa treenaamiseen.</p><p><i>Ainutlaatuinen</i> valmennus sopii sinulle, joka haluat laittaa kaiken likoon harjoittelussa ja kaipaat erittäin tiiviisti valmentajan tukea ja palautetta. <i>Ainutlaatuinen</i> valmennus tulee ottaa vähintään kolmeksi kuukaudeksi.</p><p>Jos olet epävarma, mikä valmennus sopii sinulle parhaiten, suosittelemme aloittamaan <i>Oleellinen</i> valmennuksella ja jos tämä ei tunnu riittävälle, voit vaihtaa <i>Yksilölliseen</i> tai <i>Ainutlaatuiseen</i>. Toki voit myös kertoa meille taustastasi ja autamme valinnassa.</p>
465
466            </div>   
467        </div>
468</div></div><div class="row"><div class="col-md-12">
469        <div class="faq-item">
470            <div class="question-container">
471                <i class="fa-solid fa-question" style="color:#021E3A"></i>
472                <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">Vastaus</button>
473                <h3>Onko valmennus vain triathlonia varten?</h3>
474            </div>
475
476            <div class="answer" style="display:none;">
477                <p>Valmennus pohjautuu monipuoliseen kestävyyspainotteiseen harjoitteluun. <i>Oleellinen</i>&nbsp;valmennuksen&nbsp;harjoitusohjelmat on lähtökohtaisesti tehty triathlon harjoittelun näkökulmasta, mutta halutessasi voit jättää esimerkiksi uinnin pois ja korvata sen muilla lajeilla. Valmentaja auttaa sinua tarvittaessa tässä. <i>Yksilöllinen</i> ja <i>Ainutlaatuinen</i> harjoitusohjelmat voivat tähdätä myös pyöräilyyn tai juoksuun, mutta tällöinkin harjoittelussa on aina mukana myös muita lajeja, sillä uskomme, että monipuolinen harjoittelu on paras kestävyyden pohja. Kestävä valmennukseen kuuluu aina myös voimaharjoittelua.</p><p></p>
478
479            </div>   
480        </div>
481</div></div><div class="row"><div class="col-md-12">
482        <div class="faq-item">
483            <div class="question-container">
484                <i class="fa-solid fa-question" style="color:#021E3A"></i>
485                <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">Vastaus</button>
486                <h3>Tähtääkö <i>Oleellinen</i>&nbsp;harjoitusohjelmat tiettyihin tapahtumiin ja jos, niin mihin?</h3>
487            </div>
488
489            <div class="answer" style="display:none;">
490                <p><i>Oleellinen</i> ryhmän ohjelmiin tulee kesän 2025 Suomen suurimmat triathlonkilpailut. Mikäli Suomessa ei järjestetä täydenmatkan kilpailua, tulee täydenmatkan kilpailuiksi Ironman Kööpenhamina ja Ironman Kalmar.
491
492Lisäksi <i>Oleellinen</i> jäsenillä on mahdollisuus tehdä 4-8 viikon pituinen valmis ohjelma ennen omaa pääkilpailua, mikäli se ei ole sama kuin ryhmällä. Toinen vaihtoehto on siirtyä Yksilöllinen ohjelmaan pariksi kuukaudeksi ennen omaa kilpailua.
493
494<i>Oleellinen</i> ohjelmia on syyskaudella 3 ja kevätkaudella 4 kpl. Syksyllä ohjelma kannattaa valita sen perusteella, mikä tuntuu itselle sopivalle treenimäärälle ja keväällä sitten kilpailun mukaan.
495
496<i>Oleellinen</i> ohjelmaa voi hyvin noudattaa, vaikkei osallistuisi mihinkään tapahtumaan. Jokaisen kisan kohdalle ohjelmaan tulee myös vaihtoehtoinen harjoitus.</p>
497
498            </div>   
499        </div>
500</div></div><div class="row"><div class="col-md-12">
501        <div class="faq-item">
502            <div class="question-container">
503                <i class="fa-solid fa-question" style="color:#021E3A"></i>
504                <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">
504Vastaus</button>
505                <h3>Onko valmennuksessa aina myös ravitsemusvalmennusta?</h3>
506            </div>
507
508            <div class="answer" style="display:none;">
509                <p>Kaikkiin Kestävä valmennuksiin kuuluu tietoa terveellisestä ja urheilua tukevasta ravitsemuksesta esimerkiksi luentojen ja tietoiskujen muodossa. Lisäksi harjoitusohjelmassa on aika ajoin ravitsemukseen liittyvää ohjeistusta ja vinkkejä.</p><p>Kestävä valmennuksiin osallistuvilla on myös mahdollisuus ostaa yksilöllistä ravitsemusvalmennusta alan huippuammattilaiselta Kaisa Salilta alennettuun jäsenhintaan. Tässä ravitsemusvalmennuksessa on tyypillisen tapaamisen lisäksi täysin uniikki mahdollisuus liittää yksilöllinen päivittäinen ruokavalio-ohjeistus yhteen treeniohjelman kanssa.</p><p><i>Ainutlaatuinen</i> valmennukseen kuuluu aina myös yksilöllinen ravitsemusvalmennus ja haluttaessa ruokavalio-ohjelma jakso.</p>
510
511            </div>   
512        </div>
513</div></div><div class="row"><div class="col-md-12">
514        <div class="faq-item">
515            <div class="question-container">
516                <i class="fa-solid fa-question" style="color:#021E3A"></i>
517                <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">Vastaus</button>
518                <h3>Mitä, jos haluan keskeyttää valmennuksen?</h3>
519            </div>
520            
521            <div class="answer" style="display:none;">
522                <p>Kestävä valmennuksen voi keskeyttää koska tahansa. Kestävä ei kuitenkaan tee maksujen palautuksia käyttämättömistä viikoista, jotka olet jo maksanut.</p><p>Mikäli kuitenkin olet ostanut yli kuukauden jakson ja sairastut, loukkaannut tai jonkun muun ulkoisen tekijän vuoksi harjoittelusi estyy täysin, ole ajoissa yhteyksissä meihin, niin pyrimme aina sovittamaan tilannetta esimerkiksi keskeyttämällä harjoittelusi, kunnes parannut ja siirtämällä jo ostettua aikaa tulevaisuuteen.</p>
523     
524            </div>   
525        </div>
526</div></div><div class="row"><div class="col-md-12">
527        <div class="faq-item">
528            <div class="question-container">
529                <i class="fa-solid fa-question" style="color:#021E3A"></i>
530               <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">Vastaus</button>
531                <h3>Miten voin maksaa?</h3>
532            </div>
533            
534            <div class="answer" style="display:none;">
535                <p>Voit maksaa suoraan Kestävä sivujen kautta yleisimillä korteilla. Käytössä on Stripe -maksujärjestelmä. Mikäli et jostain syystä halua tai voi maksaa kortilla, niin ota meihin yhteyttä. Katso myös vastaus "Voiko valmennuksen maksaa liikuntaedulla?</p>
536</div></div></div></div><div class="row"><div class="col-md-12">
537        <div class="faq-item">
538            <div class="question-container">
539                <i class="fa-solid fa-question" style="color:#021E3A"></i>
540               <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">Vastaus</button>
541                <h3>Voiko valmennuksen maksaa liikuntaedulla?</h3>
542            </div>
543            
544            <div class="answer" style="display:none;">
545                <p>Kyllä voi, huomioiden henkilöstöetuihin liittyvät säännöt. Käytössämme on yleisimmät palveluntarjoajat.</p>
546<div class="row margin-bottom-30"><div class="col-md-8"><div class="services"><img alt="ePassi" height="46" src="https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/Epassi_logo.png" style="float:left;" width="64"><div class="desc"><p>Ohjeet Koko summan maksamiseen:</p>
547<ol type="1">
548<li>Lataa ePassin maksuton mobiilisovellus omasta sovelluskaupastasi tai siirry kohtaan 2.</li>
549<li>Kirjaudu sovellukseen ePassin käyttäjätunnuksillasi.</li>
550<li>Klikkaa ”Hae palveluntarjoajaa tai palvelua" -painiketta ja syötä kenttään hakusana “Kestävä".</li>
551<li>Valitse haluamasi valmennusjäsenyys ja klikkaa se auki.</li>
552<li>Valitse ennakkoon annettu hinta haluamallesi valmennusjäsenyydelle ja maksa.</li>
553<li>Laita tämän jälkeen viesti <a href="https://kestava.fi/contact">yhteydenottolomakeella</a>, jossa kerrot seuraavat asiat:
554<ul>
555<li>minkä valmennusjäsenyyden olet maksanut ePassilla</li>
556<li>koska haluat valmennusjäsenyyden alkavan</li>
557<li>ePassi vahvistuskoodi</li>
558<li>sähköpostiosoite, jolle haluat valmennuksen rekisteröidä</li>
559</ul>
560</li>
561</ol>
562<p>Laitamme tämän jälkeen sinulle ohjeet, miten voit rekisteröityä Kestävä sovellukseen ja luoda tilin.</p>
563<p>Kun haluat ostaa valmennuksen ePassilla ja sinulla on alennuskoodi käytössäsi TAI saldosi riittää vain osasuoritukseen, niin <a href="https://kestava.fi/contact">ota yhteyttä.</a> meihin.</p></div></div></div></div>
564
565<div class="row margin-bottom-30"><div class="col-md-8"><div class="services"><img alt="Edenred" height="46" src="https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/Edenred_logo.png" style="float:left;" width="64"><div class="desc"><p>Ohjeet Koko summan maksamiseen:</p>
566<ol type="1">
567<li>
567Lataa MyEdenred Finland mobiilisovellus omasta sovelluskaupastasi tai siirry kohtaan 2.</li>
568<li>Kirjaudu sovellukseen Edenred käyttäjätunnuksillasi.</li>
569<li>Klikkaa "Luo mobiilimaksu" ja kirjoita hakusanaksi KESTÄVÄ</li>
570<li>Suorita maksu haluamallasi jäsenyydelle, maksa koko valmennuksen maksu, esim. yhden kuukauden maksu.</li>
571<li>Ota tapahtumasta kuvakaappaus ja laita tämän jälkeen viesti <a href="https://kestava.fi/contact">yhteydenottolomakeella</a>, jossa kerrot seuraavat asiat:
572<ul>
573<li>minkä valmennusjäsenyyden olet maksanut Edenredillä</li>
574<li>koska haluat valmennusjäsenyyden alkavan</li>
575<li>sähköpostiosoite, jolle haluat valmennuksen rekisteröidä</li>
576<li>liitä mukaan ottamasi kuvankaappaus Edenred -tapahtumasta</li>
577</ul>
578</li>
579</ol>
580<p>Laitamme tämän jälkeen sinulle ohjeet, miten voit rekisteröityä Kestävä sovellukseen ja luoda tilin.</p>
581<p>Kun haluat ostaa valmennuksen Edenredillä ja sinulla on alennuskoodi käytössäsi TAI haluat maksaa vain osasuoritukseen, niin <a href="https://kestava.fi/contact">ota yhteyttä.</a> meihin.</p></div></div></div></div>
582
583<div class="row margin-bottom-30"><div class="col-md-8"><div class="services"><img alt="Smartum" height="46" src="https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/SmartumPay_logo.png" style="float:left;" width="64"><div class="desc"><p>Ohjeet Koko summan maksamiseen:</p>
584<ol type="1">
585<li>Lataa Smartum Pay mobiilisovellus omasta sovelluskaupastasi tai siirry kohtaan 2.</li>
586<li>Kirjaudu sovellukseen Smartum Pay käyttäjätunnuksillasi.</li>
587<li>Etsi Kestävä sovelluksen käyttöpaikkahausta.</li>
588<li>Suorita maksu haluamallasi jäsenyydelle, maksa koko valmennuksen maksu, esim. yhden kuukauden maksu syöttämällä summa ja varmista, että käytät oikeaa etutyyppiä.</li>
589<li>Ota tapahtumasta kuvakaappaus ja laita tämän jälkeen viesti <a href="https://kestava.fi/contact">yhteydenottolomakeella</a>, jossa kerrot seuraavat asiat:
590<ul>
591<li>minkä valmennusjäsenyyden olet maksanut Smartum Pay:llä</li>
592<li>koska haluat valmennusjäsenyyden alkavan</li>
593<li>sähköpostiosoite, jolle haluat valmennuksen rekisteröidä</li>
594<li>liitä mukaan ottamasi kuvankaappaus Smartum Pay -tapahtumasta</li>
595</ul>
596</li>
597</ol>
598<p>Laitamme tämän jälkeen sinulle ohjeet, miten voit rekisteröityä Kestävä sovellukseen ja luoda tilin.</p>
599<p>Kun haluat ostaa valmennuksen Smartumilla ja sinulla on alennuskoodi käytössäsi TAI haluat maksaa vain osasuoritukseen, niin <a href="https://kestava.fi/contact">ota yhteyttä.</a> meihin.</p></div></div></div></div>
600
601</div></div></div></div><div class="row"><div class="col-md-12">
602        <div class="faq-item">
603            <div class="question-container">
604                <i class="fa-solid fa-question" style="color:#021E3A"></i>
605               <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">Vastaus</button>
606                <h3>Mikä on Kestävä sovellus?</h3>
607            </div>
608            
609            <div class="answer" style="display:none;">
610                <p>Kestävä sovellus on valmennuksessa käytettävä digitaalinen alusta. Sovellus toimii sekä selaimella, että ns. mobiiliappina. Käytössä olevat toiminnallisuudet riippuvat siitä kummalla tavalla käytät sovellusta. Voit ladata mobiiliapplikaation käyttämästäsi sovelluskaupasta:</p>
611<ul>
612<li><a href="https://apps.apple.com/fi/app/kest%C3%A4v%C3%A4/id6557050770" target="_blank">App Store</a> (iPhone/iPad)</li>
613<li><a href="https://play.google.com/store/apps/details?id=com.trainingtilt.Kestava" target="_blank">Google Play</a> (Android)</li>
614</ul>
615<p>Uskomme, että oma sovellus on ehdottomasti sujuvin tapa toteuttaa valmennusta. Mikäli kuitenkin esimerkiksi haluat harjoitusohjelmat mieluummin paperille ja jääkaapin oveen kuin älylaitteeseen, sinun on helppo tulostaa ohjelmien pdf -versiot itsellesi sovelluksen kautta.</p><p>Halutessasi voit linkittää urheilukellosi Kestävä sovellukseen ja näin tiedot harjoittelustasi siirtyy automaattisesti eri palveluiden välillä.</p>
616
617            </div>   
618        </div>
619</div></div><div class="row"><div class="col-md-12">
620        <div class="faq-item">
621            <div class="question-container">
622                <i class="fa-solid fa-question" style="color:#021E3A"></i>
623               <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">
623Vastaus</button>
624                <h3>Mitkä laitteet, esim. urheilukellon, voin liittää Kestävä sovellukseen?</h3>
625            </div>
626            
627            <div class="answer" style="display:none;">
628                <p>Voit liittää suoraan mm. Garmin, Polar tai Suunto tilisi Kestävä sovelluksen kautta ja harjoitusten tiedot synkroituvat automaattisesti Kestävä sovellukseen.</p><p>Monen muun liittäminen onnistuu Strava -tilin avulla.</p><p>Mikäli tästä herää kysyttävää, niin ota meihin yhteyttä.</p>
629            </div>   
630        </div>
631</div></div><div class="row"><div class="col-md-12">
632        <div class="faq-item">
633            <div class="question-container">
634                <i class="fa-solid fa-question" style="color:#021E3A"></i>
635               <button onclick="toggleAnswer(this)" class="btn btn-primary btn-lg" style="border-radius:50px">Vastaus</button>
636                <h3>Entä jos minulla ei ole varaa valmennukseen?</h3>
637            </div>
638            
639            <div class="answer" style="display:none;">
640                <p>Kestävä valmennuksen hinnoittelu perustuu siihen, että valmentajan tulee pystyä valmentamaan ammattilaisena, jolloin asiakas saa laadukasta vastinetta harjoitteluun käyttämälleen ajalle sekä valmennukseen laittamilleen rahoille.</p><p>Ymmärrämme kuitenkin, että on elämäntilanteita, joissa talous on yhtäkkiä todella tiukilla. Näissä tilanteissa monipuolinen ja motivoiva liikunnan harrastaminen voi olla jopa tärkeämpää kuin koskaan muulloin. Haluamme tukea asiakkaitamme hankalissa paikoissa. Mikäli siis tarvitset alennusta valmennuksesta pystyäksesi osallistumaan siihen, ole meihin yhteydessä ja kerro tilanteestasi.</p></div>
641
642            </div>   
643        </div>
644</div><div class="row"><div class="col-md-12">
645            <div class="question-container">
646                <i class="fa-solid fa-question" style="color:#021E3A"></i>
647                <h3>Eikö kysymystäsi löytynyt täältä?</h3>
648            </div>
649                <p style="margin: 5px 0 0 50px">Ole meihin rohkeasti <a href="/contact" title="">yhteydessä</a>, niin vastaamme mahdollisimman pian!<br></p>
650
651            </div></div></div></div></div></div>
652
653
654            </div>
655
656        </div>
657    </div>
658</div>
659
660<br />
661<div class="row">
662    <div class="col-md-12">
663        <div class="Zevero_ContentPanel" baseimagepath="https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/" style="position:relative;">
664            <div id="09435ec9-44e7-4c5e-853f-57f6c3a7eb21" contentkey="09435ec9-44e7-4c5e-853f-57f6c3a7eb21" class="contentContainer secondaryContentDiv editable-html">
665                
666            </div>
667
668        </div>
669    </div>
670</div>
671
672
673
674            </div>
675        </div>
676        <!-- END: CONTENT -->
677    </main>
678</div>
679
680
681    <div class="container widget-container-footer content-container">
682        <div class="row">
683            
684
685
686
687
688        </div>
689    </div>
690<footer class="fullfitness-footer">
691    
692
693<div class="row">
694    <div class="col-md-12">
695        <div class="Zevero_ContentPanel" style="position:relative;">
696            <div id="cbdeb58e-a81e-4b7a-8947-d6084806764b" contentkey="cbdeb58e-a81e-4b7a-8947-d6084806764b" class="contentContainer secondaryContentDiv editable-html">
697                
698            </div>
699
700        </div>
701    </div>
702</div>
703
704
705<div class="container-fluid footer">
706        <div class="row footer-links">
707            <div class="col-lg-4 col-lg-offset-4 col-xs-offset-0 col-xs-12 col-xs-offset-0 col-sm-3 text-center footer-left">
708                <div class="row">
709                    <div class="row">
710    <div class="col-md-12">
711        <div class="Zevero_ContentPanel" baseimagepath="https://tt-image-cdn-fharbphqg8h3bxg7.z03.azurefd.net/images-tenant-f48bdd76-1f74-4832-989e-da65c6503bc9/" style="position:relative;">
712            <div id="0d66f3ba-4504-4cc9-aa28-50a5bd4658e0" contentkey="0d66f3ba-4504-4cc9-aa28-50a5bd4658e0" class="contentContainer secondaryContentDiv editable-html">
713                
714            </div>
715
716        </div>
717    </div>
718</div>
719<br />
720                </div>
721                    <div class="row social-icons">
722                                                    <a target="_blank" href="https://www.facebook.com/61564465114115"><i class="fa fa-facebook-square fa-3x"></i></a>
723                                                    <a target="_blank" href="https://www.instagram.com/kestava.fi/"><i class="fa fa-instagram fa-3x"></i></a>
724
725
726
727                    </div>
728            </div>
729
730        </div>
731        <div class="row">
732            <div class="text-center col-sm-12">
733                        <label><a target="_blank" href="/terms">K&#228;ytt&#246;ehdot</a> | <a target="_blank" href="/privacy">Rekisteriseloste</a></label>
734                            </div>
735        </div>
736    </div>
737
738
739
740
741
742
743</footer>
744
745
746
747
748        <!-- END: BODY -->
749    </div>
750    
751
752
753
754
755
756    <div class="modal fade" id="loading-modal">
757    <div class="modal-dialog">
758        <div class="modal-content">
759                <div id="loading-container" class="loading">
760    <div class="col-md-12">
761        <div class="panel error-panel">
762            <div class="panel-heading">
763                <div class="loadingio-spinner-ripple-guvl0u7j3xt">
764    <div class="default-loading-spinner">
765        <div> </div> <div> </div>
766    </div>
767</div>
768            </div>
769        </div>
770    </div>
771</div>
772
773           
774        </div><!-- /.modal-content -->
775    </div><!-- /.modal-dialog -->
776</div><!-- /.modal -->
777
778
779
780    
781
782<!-- JS -->
783<script src="/scripts/prerequisites?v=upK8PBv_1neFKxgFmOyDmGV3N0-6LYvThZfzBpEeIkY1"></script>
783
784
785<script src="/scripts/jqueryui?v=duZvgbVzRo8y2XGXeUUpqiHgeyhhqZuUXUM1yrRNdjs1"></script>
785
786
787<script src="/scripts/site?v=QimCe-3AANqIDDp9HxfMF79J3-CH4-zg12fA0Dx9JAk1"></script>
787
788
789<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.0/js/jquery.dataTables.min.js"></script>
vendor: 2 bytes, line 789
789
790<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/md5.js"></script>
vendor: 2 bytes, line 790
790
791<script src="/v2/scripts/js/ark.min.js?v=22"></script>
791
792<!-- Kendo UI combined JavaScript -->
793<script src="https://kendo.cdn.telerik.com/2017.1.223/js/kendo.all.min.js"></script>
793
794
795
796<script src="/bundles/scripts/knockout?v=lsVJ82mQkDJVs6zavivBSeoLKNqlN5k5Rv_3joeoVmc1"></script>
796
797
798
799<script async src="//static.addtoany.com/menu/page.js"></script>
799
800
801<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
802<script src="/V2/scripts/vendor/jqueryfileupload/jquery.iframe-transport.js"></script>
802
803<!-- The basic File Upload plugin -->
804<script src="/V2/scripts/vendor/jqueryfileupload/jquery.fileupload.js"></script>
804
805
806<link rel="stylesheet" href="/V2/scripts/vendor/jqueryfileupload/jquery.fileupload.css">
807
808
809<link rel="stylesheet" href="/V2/scripts/vendor/cropper/cropper.min.css">
810<script src="/V2/scripts/vendor/cropper/cropper.min.js"></script>
810
811
812<script src="/bundles/scripts/tt?v=Qf9gNw10_BaiCeU_V4mG8CbP2suPW4Xx0YRg1luXnfA1"></script>
812
813
814
815<script type="text/javascript">
816    $(document).ajaxError(function (e, jqxhr, settings, exception) {
817        e.stopPropagation();
818        if (jqxhr != null && jqxhr.responseJSON != null) {
819            notificationService.ShowSpecificError(jqxhr.responseJSON.Message);
820        }
821
822        $('#loading-modal').modal('hide');
823    });
824
825    //detect any vimeo videos
826    $(document).ready(function () {
827        $(".vimeo-thumb").each(function (index) {
828            var thumbNailElement = $(this);
829            videoService.setVimeoThumbnailBackgroundImage(thumbNailElement.data("externalurl"), thumbNailElement);
830        });
831    });
832</script>
832
833    
834
835
836<script>
vendor: 345 bytes, lines 836-842
836
837  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
838  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
839  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
840  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
841
842  ga('create', '
842UA-41505204-9
vendor: 48 bytes, lines 842-845
842', 'auto');
843  ga('send', 'pageview');
844    
845
846</script>
846
847<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 65 bytes, lines 847-848
847
848<script async src="https://www.googletagmanager.com/gtag/js?id=
848G-DC5JESKZDT
vendor: 13 bytes, line 848
848"></script>
849<script>
850    
vendor: 144 bytes, lines 850-854
850window.dataLayer = window.dataLayer || [];
851    function gtag(){dataLayer.push(arguments);}
852    gtag('js', new Date());
853
854    gtag('config', '
854G-DC5JESKZDT
vendor: 41 bytes, lines 854-856
854', { 'send_page_view': true });
855    
856
857</script>
857<!-- Cookiebot Code -->
858<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="2dd53aeb-804d-48fe-bbcc-36adc6952767"  type="text/javascript"></script>
858
859<!-- End Cookiebot Code -->
860
861<!-- Meta Pixel Code -->
862<script>
vendor: 399 bytes, lines 862-871
862
863!function(f,b,e,v,n,t,s)
864{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
865n.callMethod.apply(n,arguments):n.queue.push(arguments)};
866if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
867n.queue=[];t=b.createElement(e);t.async=!0;
868t.src=v;s=b.getElementsByTagName(e)[0];
869s.parentNode.insertBefore(t,s)}(window, document,'script',
870'https://connect.facebook.net/en_US/fbevents.js');
871fbq('init', '
8711034649044826128
vendor: 30 bytes, lines 871-872
871');
872fbq('track', 'PageView');
873</script>
873
874<noscript><img height="1" width="1" style="display:none"
875src="https://www.facebook.com/tr?id=1034649044826128&ev=PageView&noscript=1"
876/></noscript>
877<!-- End Meta Pixel Code -->
878
879<!-- Initialize DataTables and define default sorting -->
880 
880<script>
881        $(document).ready(function() {
882            // Initialize DataTable
883            $('#kilpailutSuomessa').DataTable({
884                pageLength: 25,
885                order: [[1, 'asc']], // Default sorting by Päivämäärä column (second column)
886                columnDefs: [
887                    {
888                        targets: 1, // Päivämäärä column
889                        render: function(data, type, row) {
890                            // Ensure proper sorting for ISO dates
891                            return type === 'sort' || type === 'type' ? data : new Date(data).toLocaleDateString('fi-FI');
892                        }
893                    }
894                ]
895            });
896        });
897 </script>
897<script>
898function toggleAnswer(button) {
899    var answer = button.parentElement.nextElementSibling;
900    if (answer.style.display === "none") {
901        answer.style.display = "block";
902        button.textContent = "Piilota";
903    } else {
904        answer.style.display = "none";
905        button.textContent = "Vastaus";
906    }
907}
908</script>
908
909    
910    
910<script>
911
912    </script>
912
913
914
915
916    
916<script>
917        //add margin if top menu wraps
918        $(window).resize(function () {
919            addMarginForTallMenu(true);
920        });
921
922        var addMarginForTallMenu = function (isResize) {
923            var fixedNav = $('#navbar-fixed-top');
924            if (fixedNav) {
925                var overHeight = fixedNav.height() - 64;
926                if (overHeight < 0) { overHeight = 0; }
927                var topContent = $('#first-content');
928                if (overHeight > 0 || isResize) {
929                    if (topContent) {
930                        topContent.css('margin-top', overHeight);
931                    }
932                }
933
934            }
935        }
936
937        addMarginForTallMenu(false);
938    </script>
938
939
940</body>
941</html>

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.