PageSourceSearch

https://www.hebbia.com/static/js-module/modules/matrixMockTable/matrixMockTable.module.js?v=5ee006775b99

js hebbia.com collected 2026-09-24 09:34:49 UTC 30,502 bytes, 1 lines download raw bytes

1"use strict";function effectiveZoom(i){const e=parseFloat(getComputedStyle(i).zoom);return Number.isFinite(e)&&e>0?e:1}window.matchMedia("(max-width: 39.999em)").matches&&document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>{i.dataset.density="compact",i.querySelectorAll("[data-matrix-density]").forEach(e=>{e.setAttribute("aria-pressed",String(e.dataset.matrixDensity==="compact"))})});const densityMocks=document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)");densityMocks.forEach(i=>{i.querySelectorAll("[data-matrix-density]").forEach(o=>{o.addEventListener("click",()=>{const p=o.dataset.matrixDensity;p!==i.dataset.density&&densityMocks.forEach(g=>{g.dataset.density=p,g.querySelectorAll("[data-matrix-density]").forEach(l=>{l.setAttribute("aria-pressed",String(l.dataset.matrixDensity===p))})})})})}),document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>{const e=i.querySelector("[data-matrix-add-column]"),o=i.querySelector("[data-matrix-add-menu]");if(!e||!o)return;const p=o.querySelector("[data-matrix-glide]"),g=o.querySelector(".matrix-mock__addMenuGlide"),l=[...o.querySelectorAll("[data-menu-row]")],d=()=>{o.dataset.open="false",o.setAttribute("aria-hidden","true"),e.setAttribute("aria-expanded","false"),g.style.opacity="0"},a=()=>{const u=i.getBoundingClientRect(),_=e.getBoundingClientRect();o.style.top=`${_.bottom-u.top+4}px`,o.style.left=`${_.left-u.left}px`,o.dataset.open="true",o.setAttribute("aria-hidden","false"),e.setAttribute("aria-expanded","true")};e.addEventListener("click",u=>{u.stopPropagation(),o.dataset.open==="true"?d():a()});const f=u=>{const _=p.getBoundingClientRect(),c=u.getBoundingClientRect();g.style.top=`${c.top-_.top}px`,g.style.height=`${c.height}px`,g.style.opacity="1"};l.forEach(u=>{u.addEventListener("mouseenter",()=>f(u)),u.addEventListener("focus",()=>f(u))}),p.addEventListener("mouseleave",()=>{g.style.opacity="0"}),o.addEventListener("click",u=>u.stopPropagation()),document.addEventListener("click",d),document.addEventListener("keydown",u=>{u.key==="Escape"&&d()})}),document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>{const e=[...i.querySelectorAll(".matrix-mock__table > tbody > tr")],o=i.querySelector("[data-matrix-select-all]");if(!e.length)return;const p=(l,d)=>{const a=l.querySelector("[data-matrix-select-row]");d?l.dataset.selected="true":delete l.dataset.selected,a&&a.setAttribute("aria-checked",String(d))},g=()=>{if(!o)return;const l=e.filter(d=>d.dataset.selected).length;o.setAttribute("aria-checked",l===0?"false":l===e.length?"true":"mixed")};e.forEach(l=>{const d=l.querySelector("[data-matrix-select-row]");if(!d)return;const a=f=>{f.stopPropagation(),p(l,!l.dataset.selected),g()};d.addEventListener("click",a),d.addEventListener("keydown",f=>{(f.key===" "||f.key==="Enter")&&(f.preventDefault(),a(f))})}),o&&o.addEventListener("click",l=>{l.stopPropagation();const d=e.some(a=>!a.dataset.selected);e.forEach(a=>p(a,d)),g()})}),document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>{const e=i.querySelector(".matrix-mock__tableWrapper");if(!e)return;const o=()=>{e.scrollLeft>0?i.dataset.scrolledX="true":delete i.dataset.scrolledX};e.addEventListener("scroll",o,{passive:!0}),o()}),document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>{const e=i.querySelector("[data-matrix-theme-toggle]");if(!e)return;const o=e.querySelector(".matrix-mock__msIcon"),p=[i.querySelector("[data-matrix-column-editor]"),i.querySelector("[data-matrix-cell-editor]")].filter(Boolean);function g(d){i.querySelectorAll(".matrix-mock__logoImg").forEach(a=>{const f=d?"light":"dark",u=a.src.replace(/\/theme\/(dark|light)\//,`/theme/${f}/`);u!==a.src&&(delete a.dataset.retried,delete a.closest("td").dataset.logoFailed,a.src=u)})}let l=null;e.addEventListener("click",()=>{const d=i.dataset.theme!=="dark";i.dataset.themeFlip="true",clearTimeout(l),l=setTimeout(()=>{delete i.dataset.themeFlip}
1,100),[i,...p].forEach(a=>{d?a.dataset.theme="dark":delete a.dataset.theme}),g(d),e.setAttribute("aria-pressed",String(d)),e.setAttribute("aria-label",d?"Switch to light mode":"Switch to dark mode"),o&&(o.textContent=d?"light_mode":"dark_mode")})}),document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>{i.querySelectorAll("[data-matrix-resize-handle]").forEach(o=>{o.addEventListener("click",p=>p.stopPropagation()),o.addEventListener("mousedown",p=>{p.preventDefault(),p.stopPropagation();const g=o.closest(".matrix-mock__th"),l=p.clientX,d=g.getBoundingClientRect().width;function a(u){const _=Math.max(180,d+(u.clientX-l));g.style.inlineSize=`${_}px`}function f(){document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",f)}document.addEventListener("mousemove",a),document.addEventListener("mouseup",f)})})}),document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>{const e=i.querySelector("[data-matrix-column-editor]"),o=i.querySelector(".matrix-mock__table");if(!e||!o)return;document.body.appendChild(e);const p=e.querySelector("[data-matrix-column-editor-title]"),g=e.querySelector("[data-matrix-column-editor-rows]"),l=e.querySelector("[data-matrix-column-editor-prompt]"),d=e.querySelector(".matrix-mock__columnEditorPromptBox");let a=null;function f(c){const y=document.createElement("div");y.className="matrix-mock__columnEditorRow";const m=document.createElement("span");if(m.className="matrix-mock__columnEditorRowLabel typography-body-small",m.textContent=c.label,c.required){const t=document.createElement("span");t.className="matrix-mock__columnEditorRequired",t.setAttribute("aria-hidden","true"),t.textContent="*",m.appendChild(t)}const n=document.createElement("span");if(n.className="matrix-mock__columnEditorRowValue",c.options){const t=document.createElement("span");t.className="matrix-mock__columnEditorOptions";const[s,...x]=c.options,h=document.createElement("span");if(h.className="matrix-mock__selectBadge typography-label-small",h.style.backgroundColor="var(--pill-blue-bg)",h.style.color="var(--pill-blue-text)",h.textContent=s,t.appendChild(h),x.length){const E=document.createElement("span");E.className="matrix-mock__columnEditorOptionsMore typography-body-small",E.textContent=`+${x.length}`,t.appendChild(E)}n.appendChild(t)}else if(c.chip){const t=document.createElement("span");t.className="matrix-mock__columnEditorChip typography-body-small";const s=document.createElement("span");s.className="matrix-mock__msIcon",s.setAttribute("aria-hidden","true"),s.textContent="domain",t.append(s,document.createTextNode(c.value)),n.appendChild(t)}else{if(c.icon){const s=document.createElement("span");s.className="matrix-mock__msIcon matrix-mock__columnEditorOutputIcon",s.setAttribute("aria-hidden","true"),s.textContent=c.icon,n.appendChild(s)}const t=document.createElement("span");t.className="matrix-mock__columnEditorRowText typography-body-small",c.muted&&t.classList.add("matrix-mock__columnEditorRowText--muted"),t.textContent=c.value==="Select sources\u2026"?"Select":c.value,n.appendChild(t)}const r=document.createElement("span");return r.className="matrix-mock__msIcon matrix-mock__columnEditorChevron",r.setAttribute("aria-hidden","true"),r.textContent="keyboard_arrow_down",n.appendChild(r),y.append(m,n),y}function u(){e.dataset.open="false",e.setAttribute("aria-hidden","true"),a=null}function _(c){p.value=c.dataset.columnTitle||"";let y={rows:[],prompt:!0};try{y=JSON.parse(c.dataset.columnEditor||"{}")}catch{}g.replaceChildren(...(y.rows||[]).map(f)),l.textContent=c.dataset.columnPrompt||"",d.style.display=y.prompt?"":"none";const m=c.getBoundingClientRect(),n=effectiveZoom(e);e.style.top=`${(m.bottom+window.scrollY-1)/n}px`;const r=i.getBoundingClientRect(),t=Math.min(380*n,r.width-16);e.style.maxWidth=`${t/n}px`;const s=i.querySelector(".matrix-mock__tableWrapper"),x=effectiveZoom(i);let h=0;if(s){const w=s.getBoundingClientRect(),S=Math.max(w.left,Math.min(m.left,r.right-t-8));let A=s.scrollLeft+(m.left-S)/x;A=Math.max(0,Math.min(A,s.scrollWidth-s.clientWidth)),h=(A-s.scrollLeft)*x,h&&s.scrollTo({left:A,behavior:"smooth"})}const E=[...o.querySelectorAll("[data-matrix-column-header]")],b=E[E.length-1]===c;let k=b?m.right-h-t+1:m.left-h-1;const v=r.right-t-8,L=k>v;k=Math.max(r.left+8,Math.min(k,v)),e.style.transformOrigin=b||L?"top right":"top left",e.style.right="auto",e.style.left=`${(k+window.scrollX)/n}px`,e.dataset.open="true",e.setAttribute("aria-hidden","false"),a=c,h&&s&&"onscrollend"in s&&s.addEventListener("scrollend",()=>{if(e.dataset.open!=="true"||a!==c)return;const w=c.getBoundingClientRect();let S=b?w.right-t+1:w.left-1;S=Math.max(r.left+8,Math.min(S,r.right-t-8)),e.style.left=`${(S+window.scrollX)/n}px`},{once:!0})}o.addEventListener("click",c=>{const y=c.target.closest("[data-matrix-column-header]");!y||!o.contains(y)||(c.stopPropagation(),document.dispatchEvent(new CustomEvent("matrix:columnHeaderClicked")),a===y&&e.dataset.open==="true"?u():_(y))}),e.addEventListener("click",c=>c.stopPropagation()),e.querySelector(".matrix-mock__columnEditorSave").addEventListener("click",u),document.addEventListener("click",u),document.addEventListener("keydown",c=>{c.key==="Escape"&&u()})}),document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>
1{const e=i.querySelector(".matrix-mock__table");if(!e)return;const o=["matrix-mock__cell--rangeSelected","matrix-mock__cell--rangeSingle","matrix-mock__cell--rangeTop","matrix-mock__cell--rangeRight","matrix-mock__cell--rangeBottom","matrix-mock__cell--rangeLeft"];let p=!1,g=null,l=null,d=null,a=null;function f(){e.querySelectorAll(".matrix-mock__cell--rangeSelected").forEach(m=>{m.classList.remove(...o)}),g=l=d=a=null}function u(m,n,r,t){f();const s=Math.min(m,r),x=Math.max(m,r),h=Math.min(n,t),E=Math.max(n,t),b=s===x&&h===E;e.querySelectorAll(":scope > tbody > tr").forEach(k=>{k.sectionRowIndex<s||k.sectionRowIndex>x||Array.from(k.cells).forEach(v=>{if(!(v.cellIndex<h||v.cellIndex>E)){if(v.classList.add("matrix-mock__cell--rangeSelected"),b){v.classList.add("matrix-mock__cell--rangeSingle");return}k.sectionRowIndex===s&&v.classList.add("matrix-mock__cell--rangeTop"),k.sectionRowIndex===x&&v.classList.add("matrix-mock__cell--rangeBottom"),v.cellIndex===h&&v.classList.add("matrix-mock__cell--rangeLeft"),v.cellIndex===E&&v.classList.add("matrix-mock__cell--rangeRight")}})}),g=m,l=n,d=r,a=t}e.addEventListener("mousedown",m=>{const n=m.target.closest(".matrix-mock__cell");n&&(m.preventDefault(),p=!0,g=n.parentElement.sectionRowIndex,l=n.cellIndex,u(g,l,g,l))}),document.addEventListener("mousemove",m=>{if(!p)return;const n=document.elementFromPoint(m.clientX,m.clientY),r=n&&n.closest(".matrix-mock__cell");!r||!e.contains(r)||u(g,l,r.parentElement.sectionRowIndex,r.cellIndex)}),document.addEventListener("mouseup",()=>{p=!1});const _=()=>e.querySelectorAll(":scope > tbody > tr");function c(m){const n=e.closest(".matrix-mock__tableWrapper");if(!n)return;const r=n.getBoundingClientRect(),t=m.getBoundingClientRect(),s=m.parentElement.querySelector(".matrix-mock__cell--company"),x=s&&s!==m?s.getBoundingClientRect().right:r.left,h=e.querySelector(".matrix-mock__th"),E=h?r.top+h.getBoundingClientRect().height:r.top;t.left<x?n.scrollLeft-=x-t.left:t.right>r.right&&(n.scrollLeft+=t.right-r.right),t.top<E?n.scrollTop-=E-t.top:t.bottom>r.bottom&&(n.scrollTop+=t.bottom-r.bottom)}const y={ArrowUp:[-1,0],ArrowDown:[1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]};document.addEventListener("keydown",m=>{if(d===null)return;if(m.key==="Escape"){f();return}const n=y[m.key];if(!n||document.querySelector('[data-matrix-cell-editor][data-open="true"]')||m.target instanceof HTMLElement&&m.target.closest('input, textarea, [contenteditable="true"]'))return;const r=_(),t=Array.from(r[0].querySelectorAll(":scope > .matrix-mock__cell"));if(!t.length)return;const s=t[0].cellIndex,x=t[t.length-1].cellIndex,h=Math.min(Math.max(d+n[0],0),r.length-1),E=Math.min(Math.max(a+n[1],s),x);if(h===d&&E===a){m.preventDefault();return}m.preventDefault(),m.shiftKey?u(g,l,h,E):u(h,E,h,E);const b=r[h].cells[E];b&&c(b)}),document.addEventListener("click",m=>{e.contains(m.target)||f()}),document.addEventListener("matrix:columnHeaderClicked",f),document.addEventListener("matrix:cellEditorOpened",f)}),document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>{const e=i.querySelector(".matrix-mock__table"),o=i.querySelector("[data-matrix-cell-editor]");if(!e||!o)return;document.body.appendChild(o);const p=o.querySelector("[data-matrix-cell-editor-content]");function g(){o.dataset.open="false",o.setAttribute("aria-hidden","true")}function l(d){p.replaceChildren(...Array.from(d.childNodes).map(s=>s.cloneNode(!0)));const a=d.getBoundingClientRect(),f=effectiveZoom(o),u=i.getBoundingClientRect(),_=u.width-16;o.style.minWidth=`${Math.min(a.width,800*f,_)/f}px`,o.style.maxWidth=`${Math.min(Math.max(a.width,500*f),_)/f}px`;const c=Math.min(Math.max(a.width,500*f),800*f,_),y=i.querySelector(".matrix-mock__tableWrapper"),m=effectiveZoom(i);let n=0;if(y){const s=y.getBoundingClientRect(),x=Math.max(s.left,Math.min(a.left,u.right-c-8));let h=y.scrollLeft+(a.left-x)/m;h=Math.max(0,Math.min(h,y.scrollWidth-y.clientWidth)),n=(h-y.scrollLeft)*m,n&&y.scrollTo({left:h,behavior:"smooth"})}o.style.top=`${(a.top+window.scrollY)/f}px`,o.style.left=`${(a.left-n+window.scrollX)/f}px`,o.style.maxHeight=`${(window.innerHeight-a.top+24)/f}px`,o.dataset.open="true",o.setAttribute("aria-hidden","false");const r=parseFloat(o.style.maxWidth)*f,t=s=>{const x=u.right-r-8,h=Math.max(u.left+8,Math.min(s,x));o.style.left=`${(h+window.scrollX)/f}px`};t(a.left-n),n&&y&&"onscrollend"in y&&y.addEventListener("scrollend",()=>{o.dataset.open==="true"&&t(d.getBoundingClientRect().left)},{once:!0}),document.dispatchEvent(new CustomEvent("matrix:cellEditorOpened"))}e.addEventListener("dblclick",d=>{const a=d.target.closest(".matrix-mock__cell");a&&(a.dataset.loading||(d.stopPropagation(),l(a)))}),o.addEventListener("click",d=>d.stopPropagation()),document.addEventListener("click",g),document.addEventListener("keydown",d=>{d.key==="Escape"&&g()}),document.addEventListener("matrix:columnHeaderClicked",g)}),document.querySelectorAll("[data-matrix-folder]").forEach(i=>
1{const e=Array.from(i.querySelectorAll("[data-matrix-usecase-tab]")),o=Array.from(i.querySelectorAll("[data-matrix-usecase-panel]"));e.forEach(p=>{p.addEventListener("click",()=>{i.dataset.firstActive=String(p===e[0]),e.forEach(g=>{const l=g===p;g.classList.toggle("matrix-folder__tab--active",l),g.setAttribute("aria-selected",String(l))}),o.forEach(g=>{g.hidden=g.dataset.matrixUsecasePanel!==p.dataset.matrixUsecaseTab})})})}),document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>{if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;const e=Array.from(i.querySelectorAll("tbody .matrix-mock__cell"));if(!e.length)return;const o=["Loading","Searching docs","Searching web","Understanding question","Generating calculation"];e.forEach(n=>{n.dataset.loading="true";const r=document.createElement("span");if(r.className="matrix-mock__cellLoading typography-body-small",n.classList.contains("matrix-mock__cell--company")){const t=n.querySelector(".matrix-mock__companyName");r.textContent=t?`Resolving ${t.textContent.trim()}`:"Loading"}else r.textContent=o[Math.floor(Math.random()*o.length)];n.append(r)});const p=4;function g(n){let r=0;for(let t=0;t<p;t++)r=r<<1|n>>t&1;return r}function l(n,r){const t=Math.max(g(n),g(r));return t===0?0:Math.floor(Math.log2(t))+1}const d=[];Array.from(i.querySelectorAll(".matrix-mock__table > tbody > tr")).forEach((n,r)=>{Array.from(n.querySelectorAll(".matrix-mock__cell")).forEach((t,s)=>{const x=l(r,s);(d[x]=d[x]||[]).push(t)})}),d.forEach(n=>{for(let r=n.length-1;r>0;r--){const t=Math.floor(Math.random()*(r+1));[n[r],n[t]]=[n[t],n[r]]}});let a=!1;function f(){if(a)return;a=!0;const n=500,r=1150,t=780;d.forEach((s,x)=>{s.forEach((h,E)=>{const b=s.length>1?E/(s.length-1)*t:0,k=n+x*r+b;setTimeout(()=>{delete h.dataset.loading;const v=h.querySelector(".matrix-mock__cellLoading");if(v&&v.remove(),h.classList.add("matrix-mock__cell--reveal"),setTimeout(()=>{h.classList.remove("matrix-mock__cell--reveal")},600),h.classList.contains("matrix-mock__cell--company")&&!h.dataset.logoFailed){const L=h.querySelectorAll(".matrix-mock__companyLogo");L.forEach(S=>{S.loading="eager"});const w=L[0];if(w&&!w.complete){h.dataset.logoFetching="true";const S=()=>{delete h.dataset.logoFetching};w.addEventListener("load",S,{once:!0}),w.addEventListener("error",S,{once:!0})}}},k)})})}const u=16,_=24,c=(n,r,t)=>{const s=Math.min(n,r,t),x=[n-s,r-s,t-s],h=Math.max(...x);if(h<_)return null;const E=255/h;return`rgb(${Math.round(x[0]*E)} ${Math.round(x[1]*E)} ${Math.round(x[2]*E)})`},y=(n,r)=>{const t=new Image;t.crossOrigin="anonymous",t.onload=()=>{try{const s=document.createElement("canvas");s.width=u,s.height=u;const x=s.getContext("2d");if(!x)return;x.drawImage(t,0,0,u,u);const{data:h}=x.getImageData(0,0,u,u);let E=null,b=0;for(let v=0;v<h.length;v+=4){if(h[v+3]<200)continue;const L=h[v],w=h[v+1],S=h[v+2],A=Math.max(L,w,S),C=Math.min(L,w,S),T=(A-C)*(1-Math.abs(A+C-255)/255);T>b&&(b=T,E=[L,w,S])}if(!E)return;const k=c(E[0],E[1],E[2]);k&&r(k)}catch{}},t.src=n};i.querySelectorAll(".matrix-mock__cell--company").forEach(n=>{const r=n.querySelector(".matrix-mock__companyLogo");!r||n.dataset.logoFailed||y(r.src,t=>{n.querySelectorAll(".matrix-mock__companyStack, .matrix-mock__companyCard").forEach(s=>s.style.setProperty("--glow-color",t))})});const m=i.closest("[data-matrix-usecase-panel]");!m||!m.hidden?f():e.forEach(n=>{delete n.dataset.loading;const r=n.querySelector(".matrix-mock__cellLoading");r&&r.remove()})});const ADD_COLUMN={title:"Customer Concentration",icon:"subject",prompt:"Identify customer and revenue concentration risk: name any customer above 10% of revenue, give the top-10 share, and state typical contract length or renewal terms.",outputLabel:"Paragraph",outputIcon:"subject",editor:{rows:[{label:"Output",value:"Paragraph",icon:"subject"},{label:"Model",value:"Auto",icon:"alt_route",required:!0},{label:"Sources",value:"Select",muted:!0},{label:"Input",value:"Company",chip:!0}],prompt:!0}},ADD_COLUMN_ANSWERS=[["No single client exceeds 10% of net revenue \u2014 the largest issuing partner is ~7.4% (FY2025).","The top 10 are ~38% of net revenue at a weighted-average remaining term of 4.6 years.","Two of the top five renew in FY2027, both with incumbent-favourable extension rights."],["The largest client is ~9.1% of revenue (a top-5 US issuer), down from 11.3% in FY2023.","The top 10 are ~34% of revenue across three segments, with no segment above 45% internally.","Expiries are staggered by design: no more than three top-20 contracts lapse in any one year."],["One client is ~12.8% of revenue \u2014 above the disclosure threshold and named in the 10-K.","The top 10 are ~41% of revenue and the top three are all enterprise retail.","That >10% relationship renews Dec-2027 and has already been re-bid once."],["No customer is above 10%; the book is ~740k SMB merchants.","The top 10 partners carry ~22% of volume, concentrated in two ISV referral channels.","ISV agreements run 3 years with 12-month tails; the larger of the two renews Sep-2026."],["Consumer-direct, so there is no customer concentration \u2014 but the largest bank sponsor settles ~31% of volume.","The top 10 merchants account for ~14% of transaction volume.","The sponsorship runs to Mar-2029, and a second sponsor was added in FY2025 to cut single-point exposure."],["A national grocery group is ~10.4% of revenue, first crossing the threshold in FY2025.","The top 10 are ~36% of revenue.","The grocery contract is evergreen with 180-day termination for convenience on either side."],["A single national fleet programme is ~15.2% of revenue \u2014 the highest single exposure in the screen.","The top 10 are ~48% of revenue; fleet economics reward scale, so this is structural rather than drift.","That programme was extended to 2031 in Feb-2026, removing the nearest cliff."],["The largest client is ~8.7% of revenue, and none has exceeded 10% in the past three fiscal years.","The top 10 are ~29% of revenue, spread across four end markets.","Median remaining term is 3.1 years and no single year holds more than 18% of contracted revenue."],["The largest client is ~6.2% of net revenue against a base of ~410k merchants.","The top 10 are ~19% of net revenue.","The real concentration is in distribution \u2014 tw
1o bank referral channels drive ~34% of new bookings."],["The largest client is ~5.8% of revenue; a software-led base is inherently long-tail.","The top 10 are ~17% of revenue.","Net revenue retention was 112% in FY2025 against ~9% gross logo churn, concentrated in the sub-$50k cohort."],["One merchant partner is ~18.9% of GMV \u2014 the largest single exposure in the screen.","The top 10 merchants are ~52% of GMV and the top three are all apparel.","That partner's exclusivity lapses Jan-2027 and at least one competitor has bid."],["One client is ~11.6% of revenue, disclosed since FY2024.","The top 10 are ~39% of revenue.","The >10% client renewed Jun-2026 for five years, on a repriced \u2014 lower \u2014 rate card."],["No customer is above 10%; the epay segment's largest retail partner is ~6.9% of group revenue.","The top 10 are ~24% of revenue across three segments.","epay retail agreements are 1\u20132 year and repriced annually: high churn, low cliff risk."],["Consumer remittance, so no customer concentration \u2014 but the largest payout network covers ~27% of corridors.","The top 10 corridors carry ~58% of send volume, led by two migration corridors.","Payout agreements typically run 3 years and are non-exclusive on both sides."],["A single marketplace platform is ~13.4% of revenue.","The top 10 are ~46% of revenue; a B2B platform mix concentrates naturally.","The marketplace contract renews Apr-2027, and the account has grown every year since onboarding."],["The largest client is ~9.6% of revenue, just under the disclosure threshold.","The top 10 are ~33% of revenue.","Weighted-average remaining term is 2.8 years; the two largest are on auto-renew with 90-day notice."],["One client is ~21.7% of revenue \u2014 the highest single-customer exposure in the screen.","The top 10 are ~61% of revenue.","The risk is material: that top relationship is a one-year agreement, renewed annually since 2021."],["The largest client is ~7.1% of revenue, and none has passed 10% in any of the past five years.","The top 10 are ~26% of revenue.","Contracts are multi-year with mid-term repricing, and none falls due inside 24 months."],["Consumer-direct, so no customer concentration \u2014 interchange is earned across ~7.4m active members.","The exposure is to counterparties instead: of two issuing bank partners, the larger settles ~64% of card volume.","The primary issuing agreement runs to Jun-2030 with a 24-month wind-down."],["The largest merchant partner is ~11.2% of GMV.","The top 10 merchants are ~37% of GMV, spread across five verticals.","Risk is moderate: that partner is non-exclusive and Pylon is one of three checkout options."],["The largest client is ~4.9% of revenue across ~63k billing customers.","The top 10 are ~15% of revenue.","Subscriptions are monthly, but embedded-payments attach makes switching costly, so churn stays low."],["A single EMEA distributor is ~19.4% of revenue.","The top 10 are ~55% of revenue; hardware distribution concentrates by design.","That distributor agreement expires Dec-2026 and has not been extended."],["The largest client is ~10.8% of revenue.","The top 10 are ~35% of revenue.","The >10% client is in year two of a seven-year contract signed after a competitive re-bid."],["The largest client is ~8.3% of revenue and has been the same institution since 2016.","The top 10 are ~31% of revenue, all financial institutions.","Core processing contracts run 5\u20137 years with punitive deconversion fees, so churn is structurally low."],["The largest client is ~6.7% of revenue.","The top 10 are ~21% of revenue.","Two of the top five are ISV partners rather than end customers, so the exposure is to channel, not to logo."],["A single institutional trading counterparty is ~16.3% of revenue.","The top 10 are ~49% of revenue; an institutional mix concentrates sharply.","Risk is high: institutional agreements run 12 months, and volumes track crypto cycles rather than contract terms."]],RUN_STEPS=["Understanding question","Searching docs","Searching web","Generating answer"];document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>
1{const e=i.querySelector(".matrix-mock__table"),o=i.querySelector("[data-matrix-add-menu]");if(!e||!o)return;const p=e.querySelector("thead tr"),g=[...e.querySelectorAll(":scope > tbody > tr")];let l=null,d=[];function a(_){const c=document.createElement("th");c.scope="col",c.className="matrix-mock__th",c.dataset.matrixColumnHeader="",c.dataset.columnTitle=_,c.dataset.columnPrompt=ADD_COLUMN.prompt,c.dataset.columnOutputLabel=ADD_COLUMN.outputLabel,c.dataset.columnOutputIcon=ADD_COLUMN.outputIcon,c.dataset.columnEditor=JSON.stringify(ADD_COLUMN.editor);const y=document.createElement("span");y.className="matrix-mock__thInner";const m=document.createElement("span");m.className="matrix-mock__msIcon",m.setAttribute("aria-hidden","true"),m.textContent=ADD_COLUMN.icon;const n=document.createElement("span");n.className="matrix-mock__thLabel type-ui-matrix",n.textContent=_,y.append(m,n);const r=document.createElement("span");return r.className="matrix-mock__thResizeHandle",r.dataset.matrixResizeHandle="",r.setAttribute("aria-hidden","true"),c.append(y,r),c}function f(_){const c=document.createElement("span");return c.className="matrix-mock__cellText type-ui-matrix",_.forEach(y=>{const m=document.createElement("span");m.className="matrix-mock__cellPara",m.textContent=y,c.append(m)}),c}function u(){d.forEach(clearTimeout),d.forEach(clearInterval),d=[],l||(p.append(a(ADD_COLUMN.title)),l=g.map(t=>t.appendChild(document.createElement("td"))));const _=l.map((t,s)=>{t.className="matrix-mock__cell",t.dataset.loading="true";const x=document.createElement("span");return x.className="matrix-mock__cellLoading typography-body-small",x.textContent=RUN_STEPS[0],t.replaceChildren(x),{cell:t,label:x,index:s}}),c=e.closest(".matrix-mock__tableWrapper");if(c&&c.scrollTo({left:c.scrollWidth,behavior:"smooth"}),window.matchMedia("(prefers-reduced-motion: reduce)").matches){_.forEach(({cell:t,label:s,index:x})=>{s.remove(),delete t.dataset.loading,t.append(f(ADD_COLUMN_ANSWERS[x%ADD_COLUMN_ANSWERS.length]))});return}const y=_.map((t,s)=>s);for(let t=y.length-1;t>0;t--){const s=Math.floor(Math.random()*(t+1));[y[t],y[s]]=[y[s],y[t]]}const m=900,n=420,r=260;y.forEach((t,s)=>{const{cell:x,label:h,index:E}=_[t],b=m+s*n+Math.random()*r;let k=0;const v=setInterval(()=>{k=Math.min(k+1,RUN_STEPS.length-1),h.textContent=RUN_STEPS[k]},700);d.push(v),d.push(setTimeout(()=>{clearInterval(v),h.remove(),delete x.dataset.loading,x.append(f(ADD_COLUMN_ANSWERS[E%ADD_COLUMN_ANSWERS.length])),x.classList.add("matrix-mock__cell--reveal"),setTimeout(()=>x.classList.remove("matrix-mock__cell--reveal"),600)},b))})}o.querySelectorAll("[data-menu-row]").forEach(_=>{_.addEventListener("click",()=>{o.dataset.open="false",o.setAttribute("aria-hidden","true");const c=i.querySelector("[data-matrix-add-column]");c&&c.setAttribute("aria-expanded","false"),u()})})}),document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>{const e=[...i.querySelectorAll("[data-matrix-demo-cta]")],o=i.querySelector("[data-matrix-demo-popover]");if(!e.length||!o)return;const p=()=>{o.dataset.open="false",o.setAttribute("aria-hidden","true"),e.forEach(l=>l.setAttribute("aria-expanded","false"))},g=l=>{const d=effectiveZoom(i),a=i.getBoundingClientRect(),f=l.getBoundingClientRect();o.style.top=`${(f.bottom-a.top+4)/d}px`,o.style.left=`${(f.left-a.left)/d}px`,o.dataset.open="true",o.setAttribute("aria-hidden","false"),e.forEach(u=>u.setAttribute("aria-expanded",String(u===l)))};e.forEach(l=>{l.addEventListener("click",d=>{d.stopPropagation(),o.dataset.open==="true"&&l.getAttribute("aria-expanded")==="true"?p():g(l)})}),o.addEventListener("click",l=>l.stopPropagation()),document.addEventListener("click",p),document.addEventListener("keydown",l=>{l.key==="Escape"&&p()})}),document.querySelectorAll(".matrix-mock:not(.matrix-mock__columnEditor):not(.matrix-mock__cellEditor)").forEach(i=>{const e=i.querySelector(".matrix-mock__tableWrapper"),o=i.querySelector("[data-matrix-vscroll]"),p=i.querySelector("[data-matrix-vscroll-thumb]");if(!e||!o||!p)return;const g=()=>{o.style.top=`${e.offsetTop}px`,o.style.height=`${e.offsetHeight}px`;
1const{scrollHeight:a,clientHeight:f,scrollTop:u}=e;if(a<=f+1){o.dataset.scrollable="false";return}o.dataset.scrollable="true";const _=o.clientHeight,c=Math.max(32,f/a*_),y=_-c,m=a-f;p.style.height=`${c}px`,p.style.transform=`translateY(${u/m*y}px)`};e.addEventListener("scroll",g,{passive:!0}),new ResizeObserver(g).observe(e),new MutationObserver(g).observe(i,{attributes:!0,attributeFilter:["data-density"]}),g();let l=null;p.addEventListener("pointerdown",a=>{a.preventDefault(),l={y:a.clientY,scrollTop:e.scrollTop},p.setPointerCapture(a.pointerId),o.dataset.dragging="true"}),p.addEventListener("pointermove",a=>{if(!l)return;const f=o.clientHeight,u=p.offsetHeight,c=(e.scrollHeight-e.clientHeight)/(f-u);e.scrollTop=Math.round(l.scrollTop+(a.clientY-l.y)*c)});const d=()=>{l=null,delete o.dataset.dragging};p.addEventListener("pointerup",d),p.addEventListener("pointercancel",d),o.addEventListener("pointerdown",a=>{if(a.target===p)return;const f=o.getBoundingClientRect(),u=p.offsetHeight,_=e.scrollHeight-e.clientHeight,c=(a.clientY-f.top-u/2)/(o.clientHeight-u);e.scrollTop=Math.round(Math.min(Math.max(c,0),1)*_)})});

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.